0x6080604052600436106100c65760003560e01c806370a082311161007f57806395d89b411161005957806395d89b41146101fc578063a9059cbb14610211578063c9567bf914610231578063dd62ed3e14610246576100cd565b806370a08231146101a5578063715018a6146101c55780638da5cb5b146101da576100cd565b806306fdde03146100d2578063095ea7b3146100fd57806318160ddd1461012a57806323b872dd1461014c578063313ce5671461016c5780635045a8681461018e576100cd565b366100cd57005b600080fd5b3480156100de57600080fd5b506100e7610266565b6040516100f49190611508565b60405180910390f35b34801561010957600080fd5b5061011d610118366004611321565b610292565b6040516100f491906114e4565b34801561013657600080fd5b5061013f6102b0565b6040516100f491906117be565b34801561015857600080fd5b5061011d6101673660046112e1565b6102d1565b34801561017857600080fd5b50610181610359565b6040516100f49190611803565b34801561019a57600080fd5b506101a361035e565b005b3480156101b157600080fd5b5061013f6101c0366004611271565b61059f565b3480156101d157600080fd5b506101a36105be565b3480156101e657600080fd5b506101ef61063d565b6040516100f4919061147b565b34801561020857600080fd5b506100e761064c565b34801561021d57600080fd5b5061011d61022c366004611321565b61066b565b34801561023d57600080fd5b506101a361067f565b34801561025257600080fd5b5061013f6102613660046112a9565b610798565b604080518082019091526012815271151a1948115d1a195c995d5b48149bd89bdd60721b602082015290565b60006102a661029f6107c3565b84846107c7565b5060015b92915050565b60006102be6009600a61188f565b6102cc90633b9aca00611960565b905090565b60006102de84848461087b565b61034e846102ea6107c3565b610349856040518060600160405280602881526020016119f6602891396001600160a01b038a166000908152600260205260408120906103286107c3565b6001600160a01b031681526020810191909152604001600020549190610a3b565b6107c7565b5060015b9392505050565b600990565b6103666107c3565b6000546001600160a01b0390811691161461039c5760405162461bcd60e51b815260040161039390611658565b60405180910390fd5b601080546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d17908190556103ed9030906001600160a01b03166103df6009600a61188f565b61034990633b9aca00611960565b601060009054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b15801561043b57600080fd5b505afa15801561044f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610473919061128d565b6001600160a01b031663c9c6539630601060009054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156104d057600080fd5b505afa1580156104e4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610508919061128d565b6040518363ffffffff1660e01b815260040161052592919061148f565b602060405180830381600087803b15801561053f57600080fd5b505af1158015610553573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610577919061128d565b600f60036101000a8154816001600160a01b0302191690836001600160a01b03160217905550565b6001600160a01b0381166000908152600160205260409020545b919050565b6105c66107c3565b6000546001600160a01b039081169116146105f35760405162461bcd60e51b815260040161039390611658565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b031690565b604080518082019091526005815264525542425960d81b602082015290565b60006102a66106786107c3565b848461087b565b6106876107c3565b6000546001600160a01b039081169116146106b45760405162461bcd60e51b815260040161039390611658565b600f54610100900460ff16156106dc5760405162461bcd60e51b815260040161039390611787565b6010546001600160a01b031663f305d71947306106f88161059f565b60008061070361063d565b426040518863ffffffff1660e01b8152600401610725969594939291906114a9565b6060604051808303818588803b15801561073e57600080fd5b505af1158015610752573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610777919061140b565b5050600f805461ff001962ff00001990911662010000171661010017905550565b6001600160a01b03918216600090815260026020908152604080832093909416825291909152205490565b3390565b6001600160a01b0383166107ed5760405162461bcd60e51b81526004016103939061171b565b6001600160a01b0382166108135760405162461bcd60e51b81526004016103939061159e565b6001600160a01b0380841660008181526002602090815260408083209487168084529490915290819020849055517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259061086e9085906117be565b60405180910390a3505050565b6001600160a01b0383166108a15760405162461bcd60e51b8152600401610393906116d6565b6001600160a01b0382166108c75760405162461bcd60e51b81526004016103939061155b565b600081116108e75760405162461bcd60e51b81526004016103939061168d565b60006108f4848484610a75565b9050801561096e57306000908152600160205260409020546109169082610c2c565b30600081815260016020526040908190209290925590516001600160a01b038616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906109659085906117be565b60405180910390a35b6001600160a01b0384166000908152600160205260409020546109919083610c5b565b6001600160a01b0385166000908152600160205260409020556109d66109b78383610c5b565b6001600160a01b03851660009081526001602052604090205490610c2c565b6001600160a01b0380851660008181526001602052604090209290925585167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef610a208585610c5b565b604051610a2d91906117be565b60405180910390a350505050565b60008184841115610a5f5760405162461bcd60e51b81526004016103939190611508565b506000610a6c848661197f565b95945050505050565b600080610a8061063d565b6001600160a01b0316856001600160a01b031614158015610aba5750610aa461063d565b6001600160a01b0316846001600160a01b031614155b15610c2457610aeb6064610ae5600854600b5411610ada57600454610ade565b6006545b8690610c9d565b90610ce2565b600f549091506001600160a01b03868116630100000090920416148015610b2057506010546001600160a01b03858116911614155b8015610b4557506001600160a01b03841660009081526003602052604090205460ff16155b15610b8a5743600d5414610b5d576000600e5543600d555b82600e6000828254610b6f9190611811565b9091555050600b8054906000610b8483611996565b91905055505b600f546001600160a01b03858116630100000090920416148015610bb757506001600160a01b0385163014155b15610c1957610bc4610d24565b600e541080610bd5575043600d5414155b610bf15760405162461bcd60e51b81526004016103939061175f565b610c166064610ae5600954600b5411610c0c57600554610ade565b6007548690610c9d565b90505b610c24858585610efa565b949350505050565b600080610c398385611811565b9050838110156103525760405162461bcd60e51b8152600401610393906115e0565b600061035283836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610a3b565b600082610cac575060006102aa565b6000610cb88385611960565b905082610cc58583611829565b146103525760405162461bcd60e51b815260040161039390611617565b600061035283836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250610f99565b604080516002808252606082018352600092839291906020830190803683375050601054604080516315ab88c960e31b815290519394506001600160a01b039091169263ad5c464892506004808301926020929190829003018186803b158015610d8d57600080fd5b505afa158015610da1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610dc5919061128d565b81600081518110610de657634e487b7160e01b600052603260045260246000fd5b60200260200101906001600160a01b031690816001600160a01b0316815250503081600181518110610e2857634e487b7160e01b600052603260045260246000fd5b6001600160a01b03928316602091820292909201015260105460405163d06ca61f60e01b8152600092919091169063d06ca61f90610e74906729a2241af62c00009086906004016114ef565b60006040518083038186803b158015610e8c57600080fd5b505afa158015610ea0573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610ec8919081019061134c565b905080600181518110610eeb57634e487b7160e01b600052603260045260246000fd5b60200260200101519250505090565b6000610f053061059f565b9050610f118483610fc7565b600f5460ff16158015610f385750600f546001600160a01b03848116630100000090920416145b8015610f4c5750600f5462010000900460ff165b8015610f5b5750600a54600b54115b15610f9357600c54811115610f8757610f87610f8283610f7d84600c54611055565b611055565b61106a565b47610f9147611206565b505b50505050565b60008183610fba5760405162461bcd60e51b81526004016103939190611508565b506000610a6c8486611829565b806000610fd384611244565b6001600160a01b0381166000908152600260205260408120919250839190610ffa81611247565b6001600160a01b0390811682526020808301939093526040918201600090812094909455841683526002909152812083916110356001611247565b6001600160a01b0316815260208101919091526040016000205550505050565b60008183116110645782610352565b50919050565b600f805460ff1916600117905560408051600280825260608201835260009260208301908036833701905050905030816000815181106110ba57634e487b7160e01b600052603260045260246000fd5b6001600160a01b03928316602091820292909201810191909152601054604080516315ab88c960e31b81529051919093169263ad5c4648926004808301939192829003018186803b15801561110e57600080fd5b505afa158015611122573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611146919061128d565b8160018151811061116757634e487b7160e01b600052603260045260246000fd5b6001600160a01b03928316602091820292909201015260105461118d91309116846107c7565b60105460405163791ac94760e01b81526001600160a01b039091169063791ac947906111c69085906000908690309042906004016117c7565b600060405180830381600087803b1580156111e057600080fd5b505af11580156111f4573d6000803e3d6000fd5b5050600f805460ff1916905550505050565b6012546040516001600160a01b039091169082156108fc029083906000818181858888f19350505050158015611240573d6000803e3d6000fd5b5050565b90565b60008161126057506012546001600160a01b03166105b9565b50506011546001600160a01b031690565b600060208284031215611282578081fd5b8135610352816119dd565b60006020828403121561129e578081fd5b8151610352816119dd565b600080604083850312156112bb578081fd5b82356112c6816119dd565b915060208301356112d6816119dd565b809150509250929050565b6000806000606084860312156112f5578081fd5b8335611300816119dd565b92506020840135611310816119dd565b929592945050506040919091013590565b60008060408385031215611333578182fd5b823561133e816119dd565b946020939093013593505050565b6000602080838503121561135e578182fd5b825167ffffffffffffffff80821115611375578384fd5b818501915085601f830112611388578384fd5b81518181111561139a5761139a6119c7565b838102604051601f19603f830116810181811085821117156113be576113be6119c7565b604052828152858101935084860182860187018a10156113dc578788fd5b8795505b838610156113fe5780518552600195909501949386019386016113e0565b5098975050505050505050565b60008060006060848603121561141f578283fd5b8351925060208401519150604084015190509250925092565b6000815180845260208085019450808401835b838110156114705781516001600160a01b03168752958201959082019060010161144b565b509495945050505050565b6001600160a01b0391909116815260200190565b6001600160a01b0392831681529116602082015260400190565b6001600160a01b039687168152602081019590955260408501939093526060840191909152909216608082015260a081019190915260c00190565b901515815260200190565b600083825260406020830152610c246040830184611438565b6000602080835283518082850152825b8181101561153457858101830151858201604001528201611518565b818111156115455783604083870101525b50601f01601f1916929092016040019392505050565b60208082526023908201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260408201526265737360e81b606082015260800190565b60208082526022908201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604082015261737360f01b606082015260800190565b6020808252601b908201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604082015260600190565b60208082526021908201527f536166654d6174683a206d756c7469706c69747463746f6e206f766572666c6f6040820152607760f81b606082015260800190565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b60208082526029908201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206040820152687468616e207a65726f60b81b606082015260800190565b60208082526025908201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604082015264647265737360d81b606082015260800190565b60208082526024908201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646040820152637265737360e01b606082015260800190565b6020808252600e908201526d13585e0814ddd85c08131a5b5a5d60921b604082015260600190565b60208082526017908201527f74726164696e6720697320616c7265616479206f70656e000000000000000000604082015260600190565b90815260200190565b600086825285602083015260a060408301526117e660a0830186611438565b6001600160a01b0394909416606083015250608001529392505050565b60ff91909116815260200190565b60008219821115611824576118246119b1565b500190565b60008261184457634e487b7160e01b81526012600452602481fd5b500490565b80825b600180861161185b5750611886565b81870482111561186d5761186d6119b1565b8086161561187a57918102915b9490941c93800261184c565b94509492505050565b600061035260001960ff8516846000826118ab57506001610352565b816118b857506000610352565b81600181146118ce57600281146118d857611905565b6001915050610352565b60ff8411156118e9576118e96119b1565b6001841b9150848211156118ff576118ff6119b1565b50610352565b5060208310610133831016604e8410600b8410161715611938575081810a83811115611933576119336119b1565b610352565b6119458484846001611849565b808604821115611957576119576119b1565b02949350505050565b600081600019048311821515161561197a5761197a6119b1565b500290565b600082821015611991576119916119b1565b500390565b60006000198214156119aa576119aa6119b1565b5060010190565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052604160045260246000fd5b6001600160a01b03811681146119f257600080fd5b5056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a264697066735822122041acf1d9e31a5f0563c0f9185e41003f16b15b39dd0401a3139e4c2ae18ff77664736f6c63430008010033
0x60806040526003600455600360055560006006556000600755600660085560066009556006600a556000600b5560646009600a6200003e9190620002ca565b6200004e90633b9aca00620003c2565b6200005a91906200025c565b600c556000600e55600f805462ffffff19169055601280546001600160a01b03191673f12adcb4d933c6f929eb66643596706c6e434846179055348015620000a157600080fd5b506000620000ae62000240565b600080546001600160a01b0319166001600160a01b0383169081178255604051929350917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a3506200010262000244565b601180546001600160a01b0319166001600160a01b03929092169190911790556001600360006200013262000244565b6001600160a01b03908116825260208083019390935260409182016000908120805495151560ff199687161790553081526003909352818320805485166001908117909155601254909116835291208054909216179055620001976009600a620002ca565b620001a790633b9aca00620003c2565b60016000620001b562000240565b6001600160a01b03168152602081019190915260400160002055620001d962000240565b6001600160a01b031660007fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef620002136009600a620002ca565b6200022390633b9aca00620003c2565b60405162000232919062000253565b60405180910390a3620003fa565b3390565b6000546001600160a01b031690565b90815260200190565b6000826200027857634e487b7160e01b81526012600452602481fd5b500490565b80825b6001808611620002915750620002c1565b818704821115620002a657620002a6620003e4565b80861615620002b457918102915b9490941c93800262000280565b94509492505050565b6000620002de60001960ff851684620002e5565b9392505050565b600082620002f657506001620002de565b816200030557506000620002de565b81600181146200031e576002811462000329576200035d565b6001915050620002de565b60ff8411156200033d576200033d620003e4565b6001841b915084821115620003565762000356620003e4565b50620002de565b5060208310610133831016604e8410600b841016171562000395575081810a838111156200038f576200038f620003e4565b620002de565b620003a484848460016200027d565b808604821115620003b957620003b9620003e4565b02949350505050565b6000816000190483118215151615620003df57620003df620003e4565b500290565b634e487b7160e01b600052601160045260246000fd5b611a53806200040a6000396000f3fe6080604052600436106100c65760003560e01c806370a082311161007f57806395d89b411161005957806395d89b41146101fc578063a9059cbb14610211578063c9567bf914610231578063dd62ed3e14610246576100cd565b806370a08231146101a5578063715018a6146101c55780638da5cb5b146101da576100cd565b806306fdde03146100d2578063095ea7b3146100fd57806318160ddd1461012a57806323b872dd1461014c578063313ce5671461016c5780635045a8681461018e576100cd565b366100cd57005b600080fd5b3480156100de57600080fd5b506100e7610266565b6040516100f49190611508565b60405180910390f35b34801561010957600080fd5b5061011d610118366004611321565b610292565b6040516100f491906114e4565b34801561013657600080fd5b5061013f6102b0565b6040516100f491906117be565b34801561015857600080fd5b5061011d6101673660046112e1565b6102d1565b34801561017857600080fd5b50610181610359565b6040516100f49190611803565b34801561019a57600080fd5b506101a361035e565b005b3480156101b157600080fd5b5061013f6101c0366004611271565b61059f565b3480156101d157600080fd5b506101a36105be565b3480156101e657600080fd5b506101ef61063d565b6040516100f4919061147b565b34801561020857600080fd5b506100e761064c565b34801561021d57600080fd5b5061011d61022c366004611321565b61066b565b34801561023d57600080fd5b506101a361067f565b34801561025257600080fd5b5061013f6102613660046112a9565b610798565b604080518082019091526012815271151a1948115d1a195c995d5b48149bd89bdd60721b602082015290565b60006102a661029f6107c3565b84846107c7565b5060015b92915050565b60006102be6009600a61188f565b6102cc90633b9aca00611960565b905090565b60006102de84848461087b565b61034e846102ea6107c3565b610349856040518060600160405280602881526020016119f6602891396001600160a01b038a166000908152600260205260408120906103286107c3565b6001600160a01b031681526020810191909152604001600020549190610a3b565b6107c7565b5060015b9392505050565b600990565b6103666107c3565b6000546001600160a01b0390811691161461039c5760405162461bcd60e51b815260040161039390611658565b60405180910390fd5b601080546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d17908190556103ed9030906001600160a01b03166103df6009600a61188f565b61034990633b9aca00611960565b601060009054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b15801561043b57600080fd5b505afa15801561044f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610473919061128d565b6001600160a01b031663c9c6539630601060009054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156104d057600080fd5b505afa1580156104e4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610508919061128d565b6040518363ffffffff1660e01b815260040161052592919061148f565b602060405180830381600087803b15801561053f57600080fd5b505af1158015610553573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610577919061128d565b600f60036101000a8154816001600160a01b0302191690836001600160a01b03160217905550565b6001600160a01b0381166000908152600160205260409020545b919050565b6105c66107c3565b6000546001600160a01b039081169116146105f35760405162461bcd60e51b815260040161039390611658565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b031690565b604080518082019091526005815264525542425960d81b602082015290565b60006102a66106786107c3565b848461087b565b6106876107c3565b6000546001600160a01b039081169116146106b45760405162461bcd60e51b815260040161039390611658565b600f54610100900460ff16156106dc5760405162461bcd60e51b815260040161039390611787565b6010546001600160a01b031663f305d71947306106f88161059f565b60008061070361063d565b426040518863ffffffff1660e01b8152600401610725969594939291906114a9565b6060604051808303818588803b15801561073e57600080fd5b505af1158015610752573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610777919061140b565b5050600f805461ff001962ff00001990911662010000171661010017905550565b6001600160a01b03918216600090815260026020908152604080832093909416825291909152205490565b3390565b6001600160a01b0383166107ed5760405162461bcd60e51b81526004016103939061171b565b6001600160a01b0382166108135760405162461bcd60e51b81526004016103939061159e565b6001600160a01b0380841660008181526002602090815260408083209487168084529490915290819020849055517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259061086e9085906117be565b60405180910390a3505050565b6001600160a01b0383166108a15760405162461bcd60e51b8152600401610393906116d6565b6001600160a01b0382166108c75760405162461bcd60e51b81526004016103939061155b565b600081116108e75760405162461bcd60e51b81526004016103939061168d565b60006108f4848484610a75565b9050801561096e57306000908152600160205260409020546109169082610c2c565b30600081815260016020526040908190209290925590516001600160a01b038616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906109659085906117be565b60405180910390a35b6001600160a01b0384166000908152600160205260409020546109919083610c5b565b6001600160a01b0385166000908152600160205260409020556109d66109b78383610c5b565b6001600160a01b03851660009081526001602052604090205490610c2c565b6001600160a01b0380851660008181526001602052604090209290925585167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef610a208585610c5b565b604051610a2d91906117be565b60405180910390a350505050565b60008184841115610a5f5760405162461bcd60e51b81526004016103939190611508565b506000610a6c848661197f565b95945050505050565b600080610a8061063d565b6001600160a01b0316856001600160a01b031614158015610aba5750610aa461063d565b6001600160a01b0316846001600160a01b031614155b15610c2457610aeb6064610ae5600854600b5411610ada57600454610ade565b6006545b8690610c9d565b90610ce2565b600f549091506001600160a01b03868116630100000090920416148015610b2057506010546001600160a01b03858116911614155b8015610b4557506001600160a01b03841660009081526003602052604090205460ff16155b15610b8a5743600d5414610b5d576000600e5543600d555b82600e6000828254610b6f9190611811565b9091555050600b8054906000610b8483611996565b91905055505b600f546001600160a01b03858116630100000090920416148015610bb757506001600160a01b0385163014155b15610c1957610bc4610d24565b600e541080610bd5575043600d5414155b610bf15760405162461bcd60e51b81526004016103939061175f565b610c166064610ae5600954600b5411610c0c57600554610ade565b6007548690610c9d565b90505b610c24858585610efa565b949350505050565b600080610c398385611811565b9050838110156103525760405162461bcd60e51b8152600401610393906115e0565b600061035283836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610a3b565b600082610cac575060006102aa565b6000610cb88385611960565b905082610cc58583611829565b146103525760405162461bcd60e51b815260040161039390611617565b600061035283836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250610f99565b604080516002808252606082018352600092839291906020830190803683375050601054604080516315ab88c960e31b815290519394506001600160a01b039091169263ad5c464892506004808301926020929190829003018186803b158015610d8d57600080fd5b505afa158015610da1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610dc5919061128d565b81600081518110610de657634e487b7160e01b600052603260045260246000fd5b60200260200101906001600160a01b031690816001600160a01b0316815250503081600181518110610e2857634e487b7160e01b600052603260045260246000fd5b6001600160a01b03928316602091820292909201015260105460405163d06ca61f60e01b8152600092919091169063d06ca61f90610e74906729a2241af62c00009086906004016114ef565b60006040518083038186803b158015610e8c57600080fd5b505afa158015610ea0573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610ec8919081019061134c565b905080600181518110610eeb57634e487b7160e01b600052603260045260246000fd5b60200260200101519250505090565b6000610f053061059f565b9050610f118483610fc7565b600f5460ff16158015610f385750600f546001600160a01b03848116630100000090920416145b8015610f4c5750600f5462010000900460ff165b8015610f5b5750600a54600b54115b15610f9357600c54811115610f8757610f87610f8283610f7d84600c54611055565b611055565b61106a565b47610f9147611206565b505b50505050565b60008183610fba5760405162461bcd60e51b81526004016103939190611508565b506000610a6c8486611829565b806000610fd384611244565b6001600160a01b0381166000908152600260205260408120919250839190610ffa81611247565b6001600160a01b0390811682526020808301939093526040918201600090812094909455841683526002909152812083916110356001611247565b6001600160a01b0316815260208101919091526040016000205550505050565b60008183116110645782610352565b50919050565b600f805460ff1916600117905560408051600280825260608201835260009260208301908036833701905050905030816000815181106110ba57634e487b7160e01b600052603260045260246000fd5b6001600160a01b03928316602091820292909201810191909152601054604080516315ab88c960e31b81529051919093169263ad5c4648926004808301939192829003018186803b15801561110e57600080fd5b505afa158015611122573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611146919061128d565b8160018151811061116757634e487b7160e01b600052603260045260246000fd5b6001600160a01b03928316602091820292909201015260105461118d91309116846107c7565b60105460405163791ac94760e01b81526001600160a01b039091169063791ac947906111c69085906000908690309042906004016117c7565b600060405180830381600087803b1580156111e057600080fd5b505af11580156111f4573d6000803e3d6000fd5b5050600f805460ff1916905550505050565b6012546040516001600160a01b039091169082156108fc029083906000818181858888f19350505050158015611240573d6000803e3d6000fd5b5050565b90565b60008161126057506012546001600160a01b03166105b9565b50506011546001600160a01b031690565b600060208284031215611282578081fd5b8135610352816119dd565b60006020828403121561129e578081fd5b8151610352816119dd565b600080604083850312156112bb578081fd5b82356112c6816119dd565b915060208301356112d6816119dd565b809150509250929050565b6000806000606084860312156112f5578081fd5b8335611300816119dd565b92506020840135611310816119dd565b929592945050506040919091013590565b60008060408385031215611333578182fd5b823561133e816119dd565b946020939093013593505050565b6000602080838503121561135e578182fd5b825167ffffffffffffffff80821115611375578384fd5b818501915085601f830112611388578384fd5b81518181111561139a5761139a6119c7565b838102604051601f19603f830116810181811085821117156113be576113be6119c7565b604052828152858101935084860182860187018a10156113dc578788fd5b8795505b838610156113fe5780518552600195909501949386019386016113e0565b5098975050505050505050565b60008060006060848603121561141f578283fd5b8351925060208401519150604084015190509250925092565b6000815180845260208085019450808401835b838110156114705781516001600160a01b03168752958201959082019060010161144b565b509495945050505050565b6001600160a01b0391909116815260200190565b6001600160a01b0392831681529116602082015260400190565b6001600160a01b039687168152602081019590955260408501939093526060840191909152909216608082015260a081019190915260c00190565b901515815260200190565b600083825260406020830152610c246040830184611438565b6000602080835283518082850152825b8181101561153457858101830151858201604001528201611518565b818111156115455783604083870101525b50601f01601f1916929092016040019392505050565b60208082526023908201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260408201526265737360e81b606082015260800190565b60208082526022908201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604082015261737360f01b606082015260800190565b6020808252601b908201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604082015260600190565b60208082526021908201527f536166654d6174683a206d756c7469706c69747463746f6e206f766572666c6f6040820152607760f81b606082015260800190565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b60208082526029908201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206040820152687468616e207a65726f60b81b606082015260800190565b60208082526025908201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604082015264647265737360d81b606082015260800190565b60208082526024908201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646040820152637265737360e01b606082015260800190565b6020808252600e908201526d13585e0814ddd85c08131a5b5a5d60921b604082015260600190565b60208082526017908201527f74726164696e6720697320616c7265616479206f70656e000000000000000000604082015260600190565b90815260200190565b600086825285602083015260a060408301526117e660a0830186611438565b6001600160a01b0394909416606083015250608001529392505050565b60ff91909116815260200190565b60008219821115611824576118246119b1565b500190565b60008261184457634e487b7160e01b81526012600452602481fd5b500490565b80825b600180861161185b5750611886565b81870482111561186d5761186d6119b1565b8086161561187a57918102915b9490941c93800261184c565b94509492505050565b600061035260001960ff8516846000826118ab57506001610352565b816118b857506000610352565b81600181146118ce57600281146118d857611905565b6001915050610352565b60ff8411156118e9576118e96119b1565b6001841b9150848211156118ff576118ff6119b1565b50610352565b5060208310610133831016604e8410600b8410161715611938575081810a83811115611933576119336119b1565b610352565b6119458484846001611849565b808604821115611957576119576119b1565b02949350505050565b600081600019048311821515161561197a5761197a6119b1565b500290565b600082821015611991576119916119b1565b500390565b60006000198214156119aa576119aa6119b1565b5060010190565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052604160045260246000fd5b6001600160a01b03811681146119f257600080fd5b5056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a264697066735822122041acf1d9e31a5f0563c0f9185e41003f16b15b39dd0401a3139e4c2ae18ff77664736f6c63430008010033