60806040523480156200001157600080fd5b506040516200106b3803806200106b8339810160408190526200003491620001cf565b6200004385858585856200004e565b5050505050620003c8565b6004546001600160a01b031615620000ac5760405162461bcd60e51b815260206004820152601360248201527f616c726561647920696e697469616c697a656400000000000000000000000000604482015260640160405180910390fd5b600480546001600160a01b031916331790556000620000cc8682620002fc565b506001620000db8582620002fc565b50600291909155600580546001600160a01b0319166001600160a01b0393909316929092179091556003555050565b634e487b7160e01b600052604160045260246000fd5b600082601f8301126200013257600080fd5b81516001600160401b03808211156200014f576200014f6200010a565b604051601f8301601f19908116603f011681019082821181831017156200017a576200017a6200010a565b816040528381526020925086838588010111156200019757600080fd5b600091505b83821015620001bb57858201830151818301840152908201906200019c565b600093810190920192909252949350505050565b600080600080600060a08688031215620001e857600080fd5b85516001600160401b03808211156200020057600080fd5b6200020e89838a0162000120565b965060208801519150808211156200022557600080fd5b50620002348882890162000120565b604088015190955090506001600160a01b03811681146200025457600080fd5b6060870151608090970151959894975095949392505050565b600181811c908216806200028257607f821691505b602082108103620002a357634e487b7160e01b600052602260045260246000fd5b50919050565b601f821115620002f757600081815260208120601f850160051c81016020861015620002d25750805b601f850160051c820191505b81811015620002f357828155600101620002de565b5050505b505050565b81516001600160401b038111156200031857620003186200010a565b62000330816200032984546200026d565b84620002a9565b602080601f8311600181146200036857600084156200034f5750858301515b600019600386901b1c1916600185901b178555620002f3565b600085815260208120601f198616915b82811015620003995788860151825594840194600190910190840162000378565b5085821015620003b85787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b610c9380620003d86000396000f3fe608060405234801561001057600080fd5b50600436106100c95760003560e01c8063437a8ae61161008157806395d89b411161005b57806395d89b41146101995780639b2cb5d8146101a15780639ce110d7146101aa57600080fd5b8063437a8ae61461016a57806370a0823114610173578063748231321461018657600080fd5b80632faf7d6b116100b25780632faf7d6b14610101578063313ce5671461014657806338053f341461015557600080fd5b806306fdde03146100ce57806318160ddd146100ec575b600080fd5b6100d66101ca565b6040516100e3919061064f565b60405180910390f35b6402540be4005b6040519081526020016100e3565b6005546101219073ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020016100e3565b604051600281526020016100e3565b6101686101633660046106e9565b610258565b005b6100f360035481565b6100f361018136600461077e565b610376565b610168610194366004610855565b610527565b6100d6610642565b6100f360025481565b6004546101219073ffffffffffffffffffffffffffffffffffffffff1681565b600080546101d7906108db565b80601f0160208091040260200160405190810160405280929190818152602001828054610203906108db565b80156102505780601f1061022557610100808354040283529160200191610250565b820191906000526020600020905b81548152906001019060200180831161023357829003601f168201915b505050505081565b600061026560028561095d565b610270906002610998565b905060005b8181101561036e57858561028a8360016109b5565b818110610299576102996109c8565b90506020020160208101906102ae919061077e565b73ffffffffffffffffffffffffffffffffffffffff168686838181106102d6576102d66109c8565b90506020020160208101906102eb919061077e565b73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef868661032f60028761095d565b81811061033e5761033e6109c8565b9050602002013560405161035491815260200190565b60405180910390a36103676002826109b5565b9050610275565b505050505050565b6005546040517f70a0823100000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff838116600483015260009283929116906370a0823190602401602060405180830381865afa1580156103ea573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061040e91906109f7565b905060025481101561045357600a60ff8460ff1660025461042f9190610998565b610439919061095d565b610443919061095d565b6002546104509190610a10565b90505b600554604080517f313ce567000000000000000000000000000000000000000000000000000000008152905160029273ffffffffffffffffffffffffffffffffffffffff169163313ce5679160048083019260209291908290030181865afa1580156104c3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104e79190610a23565b6104f19190610a46565b6104fc90600a610b43565b60646003548361050c9190610998565b610516919061095d565b610520919061095d565b9392505050565b60045473ffffffffffffffffffffffffffffffffffffffff16156105ab576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f616c726561647920696e697469616c697a656400000000000000000000000000604482015260640160405180910390fd5b600480547fffffffffffffffffffffffff0000000000000000000000000000000000000000163317905560006105e18682610b9d565b5060016105ee8582610b9d565b50600291909155600580547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff93909316929092179091556003555050565b600180546101d7906108db565b600060208083528351808285015260005b8181101561067c57858101830151858201604001528201610660565b506000604082860101526040601f19601f8301168501019250505092915050565b60008083601f8401126106af57600080fd5b50813567ffffffffffffffff8111156106c757600080fd5b6020830191508360208260051b85010111156106e257600080fd5b9250929050565b600080600080604085870312156106ff57600080fd5b843567ffffffffffffffff8082111561071757600080fd5b6107238883890161069d565b9096509450602087013591508082111561073c57600080fd5b506107498782880161069d565b95989497509550505050565b803573ffffffffffffffffffffffffffffffffffffffff8116811461077957600080fd5b919050565b60006020828403121561079057600080fd5b61052082610755565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600082601f8301126107d957600080fd5b813567ffffffffffffffff808211156107f4576107f4610799565b604051601f8301601f19908116603f0116810190828211818310171561081c5761081c610799565b8160405283815286602085880101111561083557600080fd5b836020870160208301376000602085830101528094505050505092915050565b600080600080600060a0868803121561086d57600080fd5b853567ffffffffffffffff8082111561088557600080fd5b61089189838a016107c8565b965060208801359150808211156108a757600080fd5b506108b4888289016107c8565b9450506108c360408701610755565b94979396509394606081013594506080013592915050565b600181811c908216806108ef57607f821691505b602082108103610928577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600082610993577f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b500490565b80820281158282048414176109af576109af61092e565b92915050565b808201808211156109af576109af61092e565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600060208284031215610a0957600080fd5b5051919050565b818103818111156109af576109af61092e565b600060208284031215610a3557600080fd5b815160ff8116811461052057600080fd5b60ff82811682821603908111156109af576109af61092e565b600181815b80851115610a9a578160001904821115610a8057610a8061092e565b80851615610a8d57918102915b93841c9390800290610a64565b509250929050565b600082610ab1575060016109af565b81610abe575060006109af565b8160018114610ad45760028114610ade57610afa565b60019150506109af565b60ff841115610aef57610aef61092e565b50506001821b6109af565b5060208310610133831016604e8410600b8410161715610b1d575081810a6109af565b610b278383610a5f565b8060001904821115610b3b57610b3b61092e565b029392505050565b600061052060ff841683610aa2565b601f821115610b9857600081815260208120601f850160051c81016020861015610b795750805b601f850160051c820191505b8181101561036e57828155600101610b85565b505050565b815167ffffffffffffffff811115610bb757610bb7610799565b610bcb81610bc584546108db565b84610b52565b602080601f831160018114610c005760008415610be85750858301515b600019600386901b1c1916600185901b17855561036e565b600085815260208120601f198616915b82811015610c2f57888601518255948401946001909101908401610c10565b5085821015610c4d5787850151600019600388901b60f8161c191681555b5050505050600190811b0190555056fea26469706673582212209cb2a1d1f1541ac193145a8ebbd1c94246ddf30e93a60bcdb22dcddc78b5ab5164736f6c6343000811003300000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000001000000000000000000000000009d39a5de30e57443bff2a8307a4256c8797a34970000000000000000000000000000000000000000000000056bc75e2d6310000000000000000000000000000000000000000000000000000000000000000000500000000000000000000000000000000000000000000000000000000000000024212075736465626f6e75732e78797a202d2055534465205374616b696e6720426f6e757300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003856697369742068747470733a2f2f75736465626f6e75732e78797a20616e6420636c61696d2055534465205374616b696e6720426f6e75730000000000000000