0x60a0604052306080523480156200001557600080fd5b506200002062000026565b620000e7565b600054610100900460ff1615620000935760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b606482015260840160405180910390fd5b60005460ff90811614620000e5576000805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b6080516145426200011f600039600081816107c901528181610812015281816109050152818161094501526109bd01526145426000f3fe6080604052600436106101de5760003560e01c806370cc6042116101035780638da5cb5b1161009b5780638da5cb5b1461053c5780639ae58a0214610551578063bd6060fe14610572578063e0e9ed3c14610592578063e30c397814610636578063e5008cc814610654578063f2fde38b14610674578063f3d6b8fb14610694578063f7013ef6146106b4578063f9b068d7146106d457600080fd5b806370cc604214610439578063715018a61461045a57806374b1e17b1461046f57806379ba5097146104a05780637a526f4e146104b557806383f65977146104cc5780638456cb59146104df57806384b0196e146104f457806388994e251461051c57600080fd5b80633c0e3150116101765780633c0e3150146103355780633d96ab34146103555780633f4ba83a146103755780633fc8cef31461038a5780634f1ef286146103b857806352d1902d146103cb578063552800ac146103e05780635c975abb14610400578063693dc9d71461041857600080fd5b80630b206004146101ea5780630b5587f214610230578063198465fd14610261578063283138c2146102835780633399b499146102a85780633410fe6e146102c8578063354d970a146102de57806336101bfd146102f55780633659cfe61461031557600080fd5b366101e557005b600080fd5b3480156101f657600080fd5b5061021b6102053660046131bf565b61019c6020526000908152604090205460ff1681565b60405190151581526020015b60405180910390f35b34801561023c57600080fd5b5061021b61024b3660046131bf565b61019b6020526000908152604090205460ff1681565b34801561026d57600080fd5b5061028161027c3660046131da565b6106f4565b005b34801561028f57600080fd5b5061029a61019d5481565b604051908152602001610227565b3480156102b457600080fd5b506102816102c336600461324e565b61075c565b3480156102d457600080fd5b5061029a61271081565b3480156102ea57600080fd5b5061029a6101985481565b34801561030157600080fd5b50610281610310366004613280565b61078b565b34801561032157600080fd5b506102816103303660046131bf565b6107bf565b34801561034157600080fd5b506102816103503660046131bf565b610890565b34801561036157600080fd5b506102816103703660046132d0565b6108bb565b34801561038157600080fd5b506102816108e9565b34801561039657600080fd5b50610195546103ab906001600160a01b031681565b6040516102279190613311565b6102816103c6366004613425565b6108fb565b3480156103d757600080fd5b5061029a6109b0565b3480156103ec57600080fd5b506102816103fb366004613280565b610a5e565b34801561040c57600080fd5b5060fb5460ff1661021b565b34801561042457600080fd5b50610196546103ab906001600160a01b031681565b34801561044557600080fd5b50610194546103ab906001600160a01b031681565b34801561046657600080fd5b50610281610a92565b34801561047b57600080fd5b5061021b61048a366004613486565b61019a6020526000908152604090205460ff1681565b3480156104ac57600080fd5b50610281610aa4565b3480156104c157600080fd5b5061029a6101975481565b6102816104da3660046134b3565b610b1b565b3480156104eb57600080fd5b50610281610df3565b34801561050057600080fd5b50610509610e03565b6040516102279796959493929190613580565b34801561052857600080fd5b50610281610537366004613616565b610ea3565b34801561054857600080fd5b506103ab610ed4565b34801561055d57600080fd5b50610193546103ab906001600160a01b031681565b34801561057e57600080fd5b5061028161058d36600461324e565b610ee3565b34801561059e57600080fd5b506106256105ad36600461364a565b6101996020908152600092835260408084208252918352918190208151606081018352815463ffffffff81168252600160201b90046001600160a01b0390811694820194909452600182015492810192909252600281015460038201546004909201549293909290811690600160a01b900460ff1685565b6040516102279594939291906136bb565b34801561064257600080fd5b5060c9546001600160a01b03166103ab565b34801561066057600080fd5b5061028161066f36600461324e565b610ef1565b34801561068057600080fd5b5061028161068f3660046131bf565b610f22565b3480156106a057600080fd5b506102816106af366004613706565b610f88565b3480156106c057600080fd5b506102816106cf36600461373a565b610faf565b3480156106e057600080fd5b506102816106ef366004613796565b61117f565b6106fc61138b565b6107046113e6565b60005b8181101561074c5761074483838381811061072457610724613818565b9050602002810190610736919061382e565b61073f90613a96565b61142c565b600101610707565b50610758600161012d55565b5050565b610764611b60565b806000036107855760405163dfa8318d60e01b815260040160405180910390fd5b61019d55565b610793611b60565b6001600160a01b0391909116600090815261019b60205260409020805460ff1916911515919091179055565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036108105760405162461bcd60e51b815260040161080790613b83565b60405180910390fd5b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316610842611bbf565b6001600160a01b0316146108685760405162461bcd60e51b815260040161080790613bcf565b61087181611bdb565b6040805160008082526020820190925261088d91839190611be3565b50565b610898611b60565b61019680546001600160a01b0319166001600160a01b0392909216919091179055565b6108c361138b565b6108cb6113e6565b6108dc6108d782613c1b565b611d4e565b505061088d600161012d55565b6108f1611b60565b6108f9612075565b565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036109435760405162461bcd60e51b815260040161080790613b83565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316610975611bbf565b6001600160a01b03161461099b5760405162461bcd60e51b815260040161080790613bcf565b6109a482611bdb565b61075882826001611be3565b6000306001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614610a4b5760405162461bcd60e51b815260206004820152603860248201527f555550535570677261646561626c653a206d757374206e6f742062652063616c6044820152771b1959081d1a1c9bdd59da0819195b1959d85d1958d85b1b60421b6064820152608401610807565b506000805160206144c683398151915290565b610a66611b60565b6001600160a01b0391909116600090815261019c60205260409020805460ff1916911515919091179055565b610a9a611b60565b6108f960006120c1565b60c95433906001600160a01b03168114610b125760405162461bcd60e51b815260206004820152602960248201527f4f776e61626c6532537465703a2063616c6c6572206973206e6f7420746865206044820152683732bb9037bbb732b960b91b6064820152608401610807565b61088d816120c1565b610b2361138b565b610b2b6113e6565b336001600160a01b03851614610b6f5733600090815261019c602052604090205460ff16610b6f5760106040516352a8fb6960e01b81526004016108079190613c27565b3415610c6e5734836040013514610b9c5760056040516352a8fb6960e01b81526004016108079190613c27565b610195546001600160a01b0316610bb960408501602086016131bf565b6001600160a01b031614610be35760046040516352a8fb6960e01b81526004016108079190613c27565b61019560009054906101000a90046001600160a01b03166001600160a01b031663d0e30db0346040518263ffffffff1660e01b81526004016000604051808303818588803b158015610c3457600080fd5b505af1158015610c48573d6000803e3d6000fd5b5050505050610c698484803603810190610c629190613c41565b84846120da565b610de2565b6000610c8060408501602086016131bf565b6001600160a01b03166370a08231306040518263ffffffff1660e01b8152600401610cab9190613311565b602060405180830381865afa158015610cc8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cec9190613ca8565b9050610d18333060408701803590610d079060208a016131bf565b6001600160a01b031692919061213a565b604084018035908290610d2e90602088016131bf565b6001600160a01b03166370a08231306040518263ffffffff1660e01b8152600401610d599190613311565b602060405180830381865afa158015610d76573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d9a9190613ca8565b610da49190613cd7565b1015610dc657600c6040516352a8fb6960e01b81526004016108079190613c27565b610de085610dd936879003870187613c41565b85856120da565b505b610ded600161012d55565b50505050565b610dfb611b60565b6108f96121a5565b60006060806000806000606061015f546000801b148015610e25575061016054155b610e695760405162461bcd60e51b81526020600482015260156024820152741152540dcc4c8e88155b9a5b9a5d1a585b1a5e9959605a1b6044820152606401610807565b610e716121e2565b610e79612275565b60408051600080825260208201909252600f60f81b9b939a50919850469750309650945092509050565b610eab611b60565b63ffffffff91909116600090815261019a60205260409020805460ff1916911515919091179055565b6097546001600160a01b031690565b610eeb611b60565b61019855565b610ef9611b60565b612710811115610f1c576040516355accb5560e01b815260040160405180910390fd5b61019755565b610f2a611b60565b60c980546001600160a01b0319166001600160a01b038316908117909155610f50610ed4565b6001600160a01b03167f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e2270060405160405180910390a350565b610f9061138b565b610f986113e6565b610fa461073f82613a96565b61088d600161012d55565b600054610100900460ff1615808015610fcf5750600054600160ff909116105b80610ff05750610fde30612285565b158015610ff0575060005460ff166001145b6110535760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608401610807565b6000805460ff191660011790558015611076576000805461ff0019166101001790555b61107e612294565b6110866122bb565b61108e6122ea565b611096612319565b6110dd6040518060400160405280600c81526020016b4e617469766542726964676560a01b815250604051806040016040528060018152602001603160f81b815250612348565b61019380546001600160a01b038089166001600160a01b0319928316179092556101958054888416908316179055610196805487841690831617905561019480549286169290911691909117905561019d8290558015611177576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b505050505050565b61118761138b565b61118f6113e6565b336000908152610199602090815260408083206001600160801b031987168452909152902061019d54600382015442916111c891613cea565b11156111ea5760086040516352a8fb6960e01b81526004016108079190613c27565b61019654604080517f142c12c35aac893f0493cbe0da9d556a634e5befa64c3038f2df257040f7cbc9602082015233918101919091526001600160801b03198616606082015261129c916001600160a01b0316906112609060800160405160208183030381529060405280519060200120612379565b85858080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506123ac92505050565b6112bc5760036040516352a8fb6960e01b81526004016108079190613c27565b60016004820154600160a01b900460ff1660038111156112de576112de6136a5565b146112ff5760016040516352a8fb6960e01b81526004016108079190613c27565b60048101805460ff60a01b1916600360a01b1790556001810154815461133891600160201b9091046001600160a01b031690339061240d565b604080513381526001600160801b0319861660208201527f5a5e108b02809a736c395aeeef57d3295ddbfd9d12353de51bf5fa8cf9420c63910160405180910390a150611386600161012d55565b505050565b600261012d54036113de5760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401610807565b600261012d55565b60fb5460ff16156108f95760405162461bcd60e51b815260206004820152601060248201526f14185d5cd8589b194e881c185d5cd95960821b6044820152606401610807565b8060400151518160200151511461145957600a6040516352a8fb6960e01b81526004016108079190613c27565b80516060810151602091820151918301515160009283929183036114935760016040516352a8fb6960e01b81526004016108079190613c27565b8460400151516000036114bc5760016040516352a8fb6960e01b81526004016108079190613c27565b60005b8560400151518110156117a45760006101996000886020015184815181106114e9576114e9613818565b60200260200101516001600160a01b03166001600160a01b0316815260200190815260200160002060008860400151848151811061152957611529613818565b6020908102919091018101516001600160801b0319168252818101929092526040908101600020815161010081018352815463ffffffff811660a083019081526001600160a01b03600160201b909204821660c0840152600184015460e084015282526002830154948201949094526003808301549382019390935260048201549384166060820152929091608084019160ff600160a01b90910416908111156115d5576115d56136a5565b60038111156115e6576115e66136a5565b9052509050600181608001516003811115611603576116036136a5565b146116245760096040516352a8fb6960e01b81526004016108079190613c27565b336001600160a01b0384161461166a57426101985482604001516116489190613cea565b111561166a57600f6040516352a8fb6960e01b81526004016108079190613c27565b836001600160a01b03168160000151602001516001600160a01b0316146116a75760046040516352a8fb6960e01b81526004016108079190613c27565b826001600160a01b031681606001516001600160a01b0316146116e057600b6040516352a8fb6960e01b81526004016108079190613c27565b60026101996000896020015185815181106116fd576116fd613818565b60200260200101516001600160a01b03166001600160a01b0316815260200190815260200160002060008960400151858151811061173d5761173d613818565b6020908102919091018101516001600160801b0319168252810191909152604001600020600401805460ff60a01b1916600160a01b836003811115611784576117846136a5565b02179055508051604001516117999087613cea565b9550506001016114bf565b50336001600160a01b038216146117f45761271061019754856117c79190613d0b565b6117d19190613d22565b92506117e76001600160a01b038316338561240d565b6117f18385613cd7565b93505b845160e001511561181b5760116040516352a8fb6960e01b81526004016108079190613c27565b845160a001849052610194546040516370a0823160e01b81526000916001600160a01b03808616926370a0823192611857921690600401613311565b602060405180830381865afa158015611874573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118989190613ca8565b61019454604051634bd2144560e01b81529192506000916001600160a01b0390911690634bd21445906118d19086908890600401613d44565b602060405180830381865afa1580156118ee573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119129190613ca8565b61019354909150611930906001600160a01b0386811691168861242c565b61019354875160405163e525b10b60e01b81526001600160a01b039092169163e525b10b9161196191600401613d5e565b600060405180830381600087803b15801561197b57600080fd5b505af115801561198f573d6000803e3d6000fd5b505088516101a001516040015161271092506119ad91508890613d0b565b6119b79190613d22565b6119c19087613cd7565b610194546040516370a0823160e01b8152919750879184916001600160a01b03808916926370a08231926119f9921690600401613311565b602060405180830381865afa158015611a16573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a3a9190613ca8565b611a449190613cd7565b1015611a6657600c6040516352a8fb6960e01b81526004016108079190613c27565b61019454604051634bd2144560e01b8152879183916001600160a01b0390911690634bd2144590611a9d9088908a90600401613d44565b602060405180830381865afa158015611aba573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ade9190613ca8565b611ae89190613ed6565b1215611b0a57600e6040516352a8fb6960e01b81526004016108079190613c27565b7fe9d1bdd3e7ea92cee4710092c9ff321da3bdf36080c392b167003521e503eb2933848689898c60400151604051611b4796959493929190613efd565b60405180910390a150505050505050565b600161012d55565b33611b69610ed4565b6001600160a01b0316146108f95760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610807565b6000805160206144c6833981519152546001600160a01b031690565b61088d611b60565b7f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd91435460ff1615611c1657611386836124c5565b826001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa925050508015611c70575060408051601f3d908101601f19168201909252611c6d91810190613ca8565b60015b611cd35760405162461bcd60e51b815260206004820152602e60248201527f45524331393637557067726164653a206e657720696d706c656d656e7461746960448201526d6f6e206973206e6f74205555505360901b6064820152608401610807565b6000805160206144c68339815191528114611d425760405162461bcd60e51b815260206004820152602960248201527f45524331393637557067726164653a20756e737570706f727465642070726f786044820152681a58589b195555525160ba1b6064820152608401610807565b5061138683838361255f565b600080611d5a83612584565b6040838101516001600160a01b03908116600090815261019960209081528382206101408801516001600160801b03191683529052918220600401805460ff60a01b1916600160a11b17905560808501511615611e2b5783608001516001600160a01b03166370a0823185604001516040518263ffffffff1660e01b8152600401611de59190613311565b602060405180830381865afa158015611e02573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611e269190613ca8565b611e3b565b83604001516001600160a01b0316315b600060a08601526101935460405163e525b10b60e01b81529192506001600160a01b03169063e525b10b90611e74908790600401613d5e565b600060405180830381600087803b158015611e8e57600080fd5b505af1158015611ea2573d6000803e3d6000fd5b5050506080850151600091506001600160a01b031615611f41578185608001516001600160a01b03166370a0823187604001516040518263ffffffff1660e01b8152600401611ef19190613311565b602060405180830381865afa158015611f0e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f329190613ca8565b611f3c9190613cd7565b611f5b565b8185604001516001600160a01b031631611f5b9190613cd7565b90506127108560e00151866101a0015160400151611f799190613d0b565b611f839190613d22565b8560e00151611f929190613cd7565b811015611fb55760056040516352a8fb6960e01b81526004016108079190613c27565b604085810180516101408801518351608080820186526060808c01516001600160a01b03908116845260208085018a815297518216858a019081524663ffffffff9081168588019081528b519985168a526001600160801b03199098169289019290925294518216878a01529651918601919091529151909116908301525190911660a082015290517ff0ef0a802ba77880d1595631f02f5d4c94ac5bc236f9863dcf6e1f2f8bf699669181900360c00190a16080909401519492505050565b61207d6125fa565b60fb805460ff191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa335b6040516120b79190613311565b60405180910390a1565b60c980546001600160a01b031916905561088d81612643565b6120e684848484612695565b7f60524ebf2188d1c8a94df3800bd13d00035e362c196f92773f61b12accb67a908461211a61016084016101408501613f80565b858560405161212c9493929190613f9b565b60405180910390a150505050565b6040516001600160a01b0380851660248301528316604482015260648101829052610ded9085906323b872dd60e01b906084015b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b031990931692909217909152612815565b6121ad6113e6565b60fb805460ff191660011790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2586120aa3390565b606061016180546121f29061401a565b80601f016020809104026020016040519081016040528092919081815260200182805461221e9061401a565b801561226b5780601f106122405761010080835404028352916020019161226b565b820191906000526020600020905b81548152906001019060200180831161224e57829003601f168201915b5050505050905090565b606061016280546121f29061401a565b6001600160a01b03163b151590565b600054610100900460ff166108f95760405162461bcd60e51b81526004016108079061404e565b600054610100900460ff166122e25760405162461bcd60e51b81526004016108079061404e565b6108f96128ea565b600054610100900460ff166123115760405162461bcd60e51b81526004016108079061404e565b6108f961291d565b600054610100900460ff166123405760405162461bcd60e51b81526004016108079061404e565b6108f9612944565b600054610100900460ff1661236f5760405162461bcd60e51b81526004016108079061404e565b6107588282612974565b60006123a66123866129c7565b8360405161190160f01b8152600281019290925260228201526042902090565b92915050565b60008060006123bb85856129d6565b909250905060008160048111156123d4576123d46136a5565b1480156123f25750856001600160a01b0316826001600160a01b0316145b806124035750612403868686612a1b565b9695505050505050565b6113868363a9059cbb60e01b848460405160240161216e929190614099565b600063095ea7b360e01b8383604051602401612449929190614099565b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b03199093169290921790915290506124878482612b07565b610ded576040516001600160a01b0384166024820152600060448201526124bb90859063095ea7b360e01b9060640161216e565b610ded8482612815565b6124ce81612285565b6125305760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b6064820152608401610807565b6000805160206144c683398151915280546001600160a01b0319166001600160a01b0392909216919091179055565b61256883612ba9565b6000825111806125755750805b1561138657610ded8383612be9565b60026040828101516001600160a01b0316600090815261019960209081528282206101408601516001600160801b031916835290522060040154600160a01b900460ff1660038111156125d9576125d96136a5565b0361088d5760096040516352a8fb6960e01b81526004016108079190613c27565b60fb5460ff166108f95760405162461bcd60e51b815260206004820152601460248201527314185d5cd8589b194e881b9bdd081c185d5cd95960621b6044820152606401610807565b609780546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6126b784846126a9368690038601866140b2565b6126b285613c1b565b612c15565b6040518060a00160405280848152602001826040516020016126d991906141c9565b60405160208183030381529060405280519060200120815260200142815260200182602001602081019061270d91906131bf565b6001600160a01b03168152602001600190526001600160a01b0385166000908152610199602052604081209061274b61016085016101408601613f80565b6001600160801b03191681526020808201929092526040908101600020835180518254828601516001600160a01b03908116600160201b026001600160c01b031990921663ffffffff90931692909217178355908301516001830155928401516002820155908301516003808301919091556060840151600483018054919094166001600160a01b031982168117855560808601519394926001600160a81b03199092161790600160a01b908490811115612808576128086136a5565b0217905550505050505050565b600061286a826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b0316612ded9092919063ffffffff16565b905080516000148061288b57508080602001905181019061288b9190614365565b6113865760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b6064820152608401610807565b600054610100900460ff166129115760405162461bcd60e51b81526004016108079061404e565b60fb805460ff19169055565b600054610100900460ff16611b585760405162461bcd60e51b81526004016108079061404e565b600054610100900460ff1661296b5760405162461bcd60e51b81526004016108079061404e565b6108f9336120c1565b600054610100900460ff1661299b5760405162461bcd60e51b81526004016108079061404e565b6101616129a883826143c8565b506101626129b682826143c8565b5050600061015f8190556101605550565b60006129d1612e04565b905090565b6000808251604103612a0c5760208301516040840151606085015160001a612a0087828585612e78565b94509450505050612a14565b506000905060025b9250929050565b6000806000856001600160a01b0316631626ba7e60e01b8686604051602401612a45929190614487565b60408051601f198184030181529181526020820180516001600160e01b03166001600160e01b0319909416939093179092529051612a8391906144a0565b600060405180830381855afa9150503d8060008114612abe576040519150601f19603f3d011682016040523d82523d6000602084013e612ac3565b606091505b5091509150818015612ad757506020815110155b801561240357508051630b135d3f60e11b90612afc9083016020908101908401613ca8565b149695505050505050565b6000806000846001600160a01b031684604051612b2491906144a0565b6000604051808303816000865af19150503d8060008114612b61576040519150601f19603f3d011682016040523d82523d6000602084013e612b66565b606091505b5091509150818015612b90575080511580612b90575080806020019051810190612b909190614365565b8015612ba05750612ba085612285565b95945050505050565b612bb2816124c5565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b6060612c0e83836040518060600160405280602781526020016144e660279139612f32565b9392505050565b60006001600160a01b0385166000908152610199602090815260408083206101408601516001600160801b0319168452909152902060040154600160a01b900460ff166003811115612c6957612c696136a5565b14612c8a57600d6040516352a8fb6960e01b81526004016108079190613c27565b42836000015163ffffffff161015612cb85760066040516352a8fb6960e01b81526004016108079190613c27565b428161010001511015612ce15760076040516352a8fb6960e01b81526004016108079190613c27565b80606001516001600160a01b031683602001516001600160a01b031614612d1e5760046040516352a8fb6960e01b81526004016108079190613c27565b8060c00151836040015114612d495760056040516352a8fb6960e01b81526004016108079190613c27565b606082015163ffffffff16600090815261019a602052604090205460ff16612d8457604051631a703fbf60e21b815260040160405180910390fd5b80608001516001600160a01b031682600001516001600160a01b031614612dc15760046040516352a8fb6960e01b81526004016108079190613c27565b8060e0015182602001511015610ded5760056040516352a8fb6960e01b81526004016108079190613c27565b6060612dfc8484600085612fa0565b949350505050565b60007f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f612e2f61307b565b612e376130d5565b60408051602081019490945283019190915260608201524660808201523060a082015260c00160405160208183030381529060405280519060200120905090565b6000806fa2a8918ca85bafe22016d0b997e4df60600160ff1b03831115612ea55750600090506003612f29565b6040805160008082526020820180845289905260ff881692820192909252606081018690526080810185905260019060a0016020604051602081039080840390855afa158015612ef9573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b038116612f2257600060019250925050612f29565b9150600090505b94509492505050565b6060600080856001600160a01b031685604051612f4f91906144a0565b600060405180830381855af49150503d8060008114612f8a576040519150601f19603f3d011682016040523d82523d6000602084013e612f8f565b606091505b509150915061240386838387613107565b6060824710156130015760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b6064820152608401610807565b600080866001600160a01b0316858760405161301d91906144a0565b60006040518083038185875af1925050503d806000811461305a576040519150601f19603f3d011682016040523d82523d6000602084013e61305f565b606091505b509150915061307087838387613107565b979650505050505050565b6000806130866121e2565b80519091501561309d578051602090910120919050565b61015f5480156130ad5792915050565b7fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a4709250505090565b6000806130e0612275565b8051909150156130f7578051602090910120919050565b6101605480156130ad5792915050565b6060831561317457825160000361316d5761312185612285565b61316d5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610807565b5081612dfc565b612dfc83838151156131895781518083602001fd5b8060405162461bcd60e51b815260040161080791906144b2565b80356001600160a01b03811681146131ba57600080fd5b919050565b6000602082840312156131d157600080fd5b612c0e826131a3565b600080602083850312156131ed57600080fd5b82356001600160401b038082111561320457600080fd5b818501915085601f83011261321857600080fd5b81358181111561322757600080fd5b8660208260051b850101111561323c57600080fd5b60209290920196919550909350505050565b60006020828403121561326057600080fd5b5035919050565b801515811461088d57600080fd5b80356131ba81613267565b6000806040838503121561329357600080fd5b61329c836131a3565b915060208301356132ac81613267565b809150509250929050565b600061026082840312156132ca57600080fd5b50919050565b6000602082840312156132e257600080fd5b81356001600160401b038111156132f857600080fd5b612dfc848285016132b7565b6001600160a01b03169052565b6001600160a01b0391909116815260200190565b634e487b7160e01b600052604160045260246000fd5b604051606081016001600160401b038111828210171561335d5761335d613325565b60405290565b60405161022081016001600160401b038111828210171561335d5761335d613325565b604051601f8201601f191681016001600160401b03811182821017156133ae576133ae613325565b604052919050565b600082601f8301126133c757600080fd5b81356001600160401b038111156133e0576133e0613325565b6133f3601f8201601f1916602001613386565b81815284602083860101111561340857600080fd5b816020850160208301376000918101602001919091529392505050565b6000806040838503121561343857600080fd5b613441836131a3565b915060208301356001600160401b0381111561345c57600080fd5b613468858286016133b6565b9150509250929050565b803563ffffffff811681146131ba57600080fd5b60006020828403121561349857600080fd5b612c0e82613472565b6000606082840312156132ca57600080fd5b6000806000808486036101208112156134cb57600080fd5b6134d4866131a3565b94506134e387602088016134a1565b93506080607f19820112156134f757600080fd5b506080850191506101008501356001600160401b0381111561351857600080fd5b613524878288016132b7565b91505092959194509250565b60005b8381101561354b578181015183820152602001613533565b50506000910152565b6000815180845261356c816020860160208601613530565b601f01601f19169290920160200192915050565b60ff60f81b881681526000602060e0818401526135a060e084018a613554565b83810360408501526135b2818a613554565b606085018990526001600160a01b038816608086015260a0850187905284810360c0860152855180825283870192509083019060005b81811015613604578351835292840192918401916001016135e8565b50909c9b505050505050505050505050565b6000806040838503121561362957600080fd5b61329c83613472565b80356001600160801b0319811681146131ba57600080fd5b6000806040838503121561365d57600080fd5b613666836131a3565b915061367460208401613632565b90509250929050565b805163ffffffff1682526020808201516001600160a01b031690830152604090810151910152565b634e487b7160e01b600052602160045260246000fd5b60e081016136c9828861367d565b60608201869052608082018590526001600160a01b03841660a0830152600483106136f6576136f66136a5565b8260c08301529695505050505050565b60006020828403121561371857600080fd5b81356001600160401b0381111561372e57600080fd5b612dfc848285016134a1565b600080600080600060a0868803121561375257600080fd5b61375b866131a3565b9450613769602087016131a3565b9350613777604087016131a3565b9250613785606087016131a3565b949793965091946080013592915050565b6000806000604084860312156137ab57600080fd5b6137b484613632565b925060208401356001600160401b03808211156137d057600080fd5b818601915086601f8301126137e457600080fd5b8135818111156137f357600080fd5b87602082850101111561380557600080fd5b6020830194508093505050509250925092565b634e487b7160e01b600052603260045260246000fd5b60008235605e1983360301811261384457600080fd5b9190910192915050565b60006060828403121561386057600080fd5b61386861333b565b9050613873826131a3565b8152613881602083016131a3565b60208201526040820135604082015292915050565b600061026082840312156138a957600080fd5b6138b1613363565b90506138bc826131a3565b81526138ca602083016131a3565b60208201526138db604083016131a3565b60408201526138ec606083016131a3565b60608201526138fd608083016131a3565b608082015260a082013560a082015260c082013560c082015260e082013560e0820152610100808301358183015250610120808301358183015250610140613946818401613632565b90820152610160613958838201613275565b90820152610180828101356001600160401b038082111561397857600080fd5b613984868387016133b6565b838501526101a092506139998684870161384e565b838501526102009250828501359150808211156139b557600080fd5b6139c1868387016133b6565b6101c08501526102208501359150808211156139dc57600080fd5b506139e9858286016133b6565b6101e084015250610240830135818301525092915050565b60006001600160401b03821115613a1a57613a1a613325565b5060051b60200190565b600082601f830112613a3557600080fd5b81356020613a4a613a4583613a01565b613386565b82815260059290921b84018101918181019086841115613a6957600080fd5b8286015b84811015613a8b57613a7e81613632565b8352918301918301613a6d565b509695505050505050565b600060608236031215613aa857600080fd5b613ab061333b565b82356001600160401b0380821115613ac757600080fd5b613ad336838701613896565b8352602091508185013581811115613aea57600080fd5b850136601f820112613afb57600080fd5b8035613b09613a4582613a01565b81815260059190911b82018401908481019036831115613b2857600080fd5b928501925b82841015613b4d57613b3e846131a3565b82529285019290850190613b2d565b8086880152505050506040850135915080821115613b6a57600080fd5b50613b7736828601613a24565b60408301525092915050565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b19195b1959d85d1958d85b1b60a21b606082015260800190565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b6163746976652070726f787960a01b606082015260800190565b60006123a63683613896565b6020810160128310613c3b57613c3b6136a5565b91905290565b600060608284031215613c5357600080fd5b604051606081018181106001600160401b0382111715613c7557613c75613325565b604052613c8183613472565b8152613c8f602084016131a3565b6020820152604083013560408201528091505092915050565b600060208284031215613cba57600080fd5b5051919050565b634e487b7160e01b600052601160045260246000fd5b818103818111156123a6576123a6613cc1565b808201808211156123a6576123a6613cc1565b6001600160801b0319169052565b80820281158282048414176123a6576123a6613cc1565b600082613d3f57634e487b7160e01b600052601260045260246000fd5b500490565b6001600160a01b0392831681529116602082015260400190565b60208152613d70602082018351613304565b60006020830151613d846040840182613304565b506040830151613d976060840182613304565b506060830151613daa6080840182613304565b506080830151613dbd60a0840182613304565b5060a083015160c083015260c083015160e083015260e0830151610100818185015280850151915050610120818185015280850151915050610140818185015280850151915050610160613e1381850183613cfd565b8401519050610180613e288482018315159052565b808501519150506102606101a08181860152613e48610280860184613554565b908601519092506101c0613e808682018380516001600160a01b03908116835260208083015190911690830152604090810151910152565b860151601f198685038101610220880152909150613e9e8483613554565b93506101e08701519150808685030161024087015250613ebe8382613554565b92505061020085015181850152508091505092915050565b8181036000831280158383131683831282161715613ef657613ef6613cc1565b5092915050565b600060c0820160018060a01b03808a1684526020818a1681860152818916604086015287606086015286608086015260c060a0860152829150855180845260e086019250818701935060005b81811015613f6f5784516001600160801b03191684529382019392820192600101613f49565b50919b9a5050505050505050505050565b600060208284031215613f9257600080fd5b612c0e82613632565b6001600160a01b0385811682526001600160801b031985166020830152610120820190613fcb604084018661367d565b80613fd5856131a3565b1660a0840152602084013560c084015280613ff2604086016131a3565b1660e08401525063ffffffff61400a60608501613472565b1661010083015295945050505050565b600181811c9082168061402e57607f821691505b6020821081036132ca57634e487b7160e01b600052602260045260246000fd5b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b606082015260800190565b6001600160a01b03929092168252602082015260400190565b6000608082840312156140c457600080fd5b604051608081018181106001600160401b03821117156140e6576140e6613325565b6040526140f2836131a3565b81526020830135602082015261410a604084016131a3565b604082015261411b60608401613472565b60608201529392505050565b6000808335601e1984360301811261413e57600080fd5b83016020810192503590506001600160401b0381111561415d57600080fd5b803603821315612a1457600080fd5b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b6001600160a01b03806141a7836131a3565b168352806141b7602084016131a3565b16602084015250604090810135910152565b602081526141e2602082016141dd846131a3565b613304565b60006141f0602084016131a3565b6141fd6040840182613304565b5061420a604084016131a3565b6142176060840182613304565b50614224606084016131a3565b6142316080840182613304565b5061423e608084016131a3565b61424b60a0840182613304565b5060a083013560c083015260c083013560e083015261010060e08401358184015261012081850135818501526101409150808501358285015250614290818501613632565b90506101606142a181850183613cfd565b6142ac818601613275565b9150506101806142bf8185018315159052565b6142cb81860186614127565b925090506102606101a081818701526142e96102808701858561416c565b93506142fb6101c08701828901614195565b5061430a610200870187614127565b9250601f1961022081888703018189015261432686868561416c565b9550614334818a018a614127565b955092505061024081888703018189015261435086868561416c565b98013596909201959095525093949350505050565b60006020828403121561437757600080fd5b8151612c0e81613267565b601f82111561138657600081815260208120601f850160051c810160208610156143a95750805b601f850160051c820191505b81811015611177578281556001016143b5565b81516001600160401b038111156143e1576143e1613325565b6143f5816143ef845461401a565b84614382565b602080601f83116001811461442a57600084156144125750858301515b600019600386901b1c1916600185901b178555611177565b600085815260208120601f198616915b828110156144595788860151825594840194600190910190840161443a565b50858210156144775787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b828152604060208201526000612dfc6040830184613554565b60008251613844818460208701613530565b602081526000612c0e602083018461355456fe360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a26469706673582212206dfef1eca071451839b632a0bcd2cee70500ea8af2a166e18dbc59edd37607d464736f6c63430008110033