0 txs
344 calls
constructor
constructor()
functions
admin
viewfunction admin() view returns (address)
allPairs
viewfunction allPairs(uint256) view returns (address)
allPairsLength
viewfunction allPairsLength() view returns (uint256)
emergencyAdmin
viewfunction emergencyAdmin() view returns (address)
exchangeReserves
viewfunction exchangeReserves() view returns (address)
pairs
viewfunction pairs(address, address) view returns (address)
pendingAdmin
viewfunction pendingAdmin() view returns (address)
pendingEmergencyAdmin
viewfunction pendingEmergencyAdmin() view returns (address)
poolCreationDefaults
viewfunction poolCreationDefaults() view returns (address factory, address token0, address token1, uint16 fee, uint16 vFee, uint256 maxReserveRatio)
vPoolManager
viewfunction vPoolManager() view returns (address)
acceptAdmin
nonpayablefunction acceptAdmin()
acceptEmergencyAdmin
nonpayablefunction acceptEmergencyAdmin()
createPair
nonpayablefunction createPair(address tokenA, address tokenB) returns (address pair)
setDefaultAllowList
nonpayablefunction setDefaultAllowList(address[] _defaultAllowList)
setExchangeReservesAddress
nonpayablefunction setExchangeReservesAddress(address _exchangeReserves)
setPendingAdmin
nonpayablefunction setPendingAdmin(address newPendingAdmin)
setPendingEmergencyAdmin
nonpayablefunction setPendingEmergencyAdmin(address newPendingEmergencyAdmin)
setVPoolManagerAddress
nonpayablefunction setVPoolManagerAddress(address _vPoolManager)
events
DefaultAllowListChanged
event DefaultAllowListChanged(address[] allowList)
ExchangeReserveAddressChanged
event ExchangeReserveAddressChanged(address newExchangeReserve)
FactoryNewAdmin
event FactoryNewAdmin(address newAdmin)
FactoryNewEmergencyAdmin
event FactoryNewEmergencyAdmin(address newEmergencyAdmin)
FactoryNewPendingAdmin
event FactoryNewPendingAdmin(address newPendingAdmin)
FactoryNewPendingEmergencyAdmin
event FactoryNewPendingEmergencyAdmin(address newPendingEmergencyAdmin)
FactoryVPoolManagerChanged
event FactoryVPoolManagerChanged(address newVPoolManager)
PairCreated
event PairCreated(address poolAddress, address factory, address token0, address token1, uint16 fee, uint16 vFee, uint256 maxReserveRatio)
errors
No errors.
creation bytecode
0x608060405234801561001057600080fd5b5060028054336001600160a01b03199182168117909255600480549091169091179055615f96806100426000396000f3fe60806040523480156200001157600080fd5b50600436106200012d5760003560e01c80636d495f8311620000af578063b5358fab116200007a578063b5358fab14620002dd578063c4ce80d114620002f1578063c9c653961462000308578063f851a440146200031f578063fea77eae146200033357600080fd5b80636d495f83146200028457806370905dce146200029b5780638d018b4d14620002af578063ad4d1ee514620002c657600080fd5b806337e0376b11620000fc57806337e0376b14620002095780634dd18bf5146200021d578063574f2ba314620002345780635e278915146200024657806369454b86146200025057600080fd5b80630d19c79d14620001325780630e18b68114620001b95780631e3dd18b14620001c55780632678224714620001f5575b600080fd5b600954600a54600b54600c546200016f936001600160a01b03908116938116929081169161ffff600160a01b8304811692600160b01b9004169086565b604080516001600160a01b0397881681529587166020870152939095169284019290925261ffff908116606084015216608082015260a081019190915260c0015b60405180910390f35b620001c362000347565b005b620001dc620001d636600462000ef1565b620003ec565b6040516001600160a01b039091168152602001620001b0565b600354620001dc906001600160a01b031681565b600754620001dc906001600160a01b031681565b620001c36200022e36600462000f24565b62000417565b600154604051908152602001620001b0565b620001c3620004ad565b620001dc6200026136600462000f4b565b60006020818152928152604080822090935290815220546001600160a01b031681565b620001c36200029536600462000f24565b62000549565b600454620001dc906001600160a01b031681565b620001c3620002c036600462000f89565b620006c9565b620001c3620002d736600462000f24565b6200085e565b600554620001dc906001600160a01b031681565b620001c36200030236600462000f24565b620008ef565b620001dc6200031936600462000f4b565b62000a6d565b600254620001dc906001600160a01b031681565b600654620001dc906001600160a01b031681565b6003546001600160a01b031633146200038d5760405162461bcd60e51b81526020600482015260036024820152624f504160e81b60448201526064015b60405180910390fd5b60038054600280546001600160a01b0383166001600160a01b031991821681179092559091169091556040519081527f49979123b2bc91263f3f2f1a87e92ce0e486c6c70943d1d67f8beee550efb663906020015b60405180910390a1565b60018181548110620003fd57600080fd5b6000918252602090912001546001600160a01b0316905081565b6002546001600160a01b03163314620004585760405162461bcd60e51b81526020600482015260026024820152614f4160f01b604482015260640162000384565b600380546001600160a01b0319166001600160a01b0383169081179091556040519081527f07a0003b2bc46a6950059c8ae85d2c7e50e9b46f922fe6aba4317d26f2f6f0f9906020015b60405180910390a150565b6005546001600160a01b03163314620004ef5760405162461bcd60e51b81526020600482015260036024820152624f504160e81b604482015260640162000384565b60058054600480546001600160a01b0383166001600160a01b031991821681179092559091169091556040519081527f4e08187fea80af9168fe976bfc7234414071130284ac83e2a6563750f74a2cf390602001620003e2565b6002546001600160a01b031633146200058a5760405162461bcd60e51b81526020600482015260026024820152614f4160f01b604482015260640162000384565b6001600160a01b038116620005ca5760405162461bcd60e51b81526020600482015260056024820152644956504d4160d81b604482015260640162000384565b306001600160a01b0316816001600160a01b031663e14f870d6040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000613573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000639919062001003565b6001600160a01b0316146200067a5760405162461bcd60e51b815260040162000384906020808252600490820152634956504d60e01b604082015260600190565b600780546001600160a01b0319166001600160a01b0383169081179091556040519081527fe823a8e80e62dc26cf857355ee4f23825d6881b26707a1a9a9b3248ac3af0aec90602001620004a2565b6002546001600160a01b031633146200070a5760405162461bcd60e51b81526020600482015260026024820152614f4160f01b604482015260640162000384565b62ffffff811115620007455760405162461bcd60e51b815260206004820152600360248201526210551360ea1b604482015260640162000384565b60015b818110156200080f5782826200076060018462001039565b8181106200077257620007726200104f565b905060200201602081019062000789919062000f24565b6001600160a01b0316838383818110620007a757620007a76200104f565b9050602002016020810190620007be919062000f24565b6001600160a01b031611620007fc5760405162461bcd60e51b8152602060048201526003602482015262414c5560e81b604482015260640162000384565b620008078162001065565b905062000748565b506200081e6008838362000e64565b507f3100a95101e6b59aeaea5117410f1539971c1536f72dc73ce806a450c85e394c82826040516200085292919062001081565b60405180910390a15050565b6004546001600160a01b03163314620008a05760405162461bcd60e51b81526020600482015260036024820152624f454160e81b604482015260640162000384565b600580546001600160a01b0319166001600160a01b0383169081179091556040519081527fe193ea528cfd9222d51ca7a5197c2f22df949ae773d1069cfabeffa68fe856bd90602001620004a2565b6002546001600160a01b03163314620009305760405162461bcd60e51b81526020600482015260026024820152614f4160f01b604482015260640162000384565b6001600160a01b038116620009715760405162461bcd60e51b815260040162000384906020808252600490820152634945524160e01b604082015260600190565b306001600160a01b0316816001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015620009ba573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620009e0919062001003565b6001600160a01b03161462000a1e5760405162461bcd60e51b815260206004820152600360248201526224a2a960e91b604482015260640162000384565b600680546001600160a01b0319166001600160a01b0383169081179091556040519081527f565432aa4b07668ec2d26adccb36e35bebdd6779cc94dca1f3b704e253b4010590602001620004a2565b6000816001600160a01b0316836001600160a01b03160362000ab75760405162461bcd60e51b8152602060048201526002602482015261494160f01b604482015260640162000384565b60008062000ac6858562000de2565b90925090506001600160a01b03821662000b085760405162461bcd60e51b81526020600482015260026024820152615a4160f01b604482015260640162000384565b6001600160a01b038281166000908152602081815260408083208585168452909152902054161562000b625760405162461bcd60e51b8152602060048201526002602482015261504560f01b604482015260640162000384565b6040805160c081018252308082526001600160a01b03858116602084018190529085169383018490526103e56060840181905260808401526107d060a0909301839052600980546001600160a01b03199081169093179055600a8054909216179055600b805475ffffffffffffffffffffffffffffffffffffffffffff19169092176103e560a01b1761ffff60b01b19166103e560b01b17909155600c55600062000c0e838362000e15565b90508060405162000c1f9062000ecc565b8190604051809103906000f590508015801562000c40573d6000803e3d6000fd5b50600980546001600160a01b0319908116909155600a80549091169055600b80547fffffffffffffffff0000000000000000000000000000000000000000000000001690556000600c55604051636447c35d60e01b81529094506001600160a01b03851690636447c35d9062000cbc90600890600401620010d3565b600060405180830381600087803b15801562000cd757600080fd5b505af115801562000cec573d6000803e3d6000fd5b505050506001600160a01b0383811660008181526020818152604080832087861680855290835281842080546001600160a01b0319908116978c169788179091558484528285208686528452828520805482168817905560018054808201825595527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf6909401805490941686179093558051948552309185019190915283019190915260608201526103e56080820181905260a08201526107d060c08201527f70084adbff44be952e8bb87558f46235532635d476e79e29558665fa7d6c12ce9060e00160405180910390a15050505b92915050565b600080826001600160a01b0316846001600160a01b03161062000e0757828462000e0a565b83835b915091509250929050565b600080600062000e26858562000de2565b604080516001600160a01b03938416602080830191909152929093168382015280518084038201815260609093019052815191012095945050505050565b82805482825590600052602060002090810192821562000eba579160200282015b8281111562000eba5781546001600160a01b0319166001600160a01b0384351617825560209092019160019091019062000e85565b5062000ec892915062000eda565b5090565b614e64806200112683390190565b5b8082111562000ec8576000815560010162000edb565b60006020828403121562000f0457600080fd5b5035919050565b6001600160a01b038116811462000f2157600080fd5b50565b60006020828403121562000f3757600080fd5b813562000f448162000f0b565b9392505050565b6000806040838503121562000f5f57600080fd5b823562000f6c8162000f0b565b9150602083013562000f7e8162000f0b565b809150509250929050565b6000806020838503121562000f9d57600080fd5b823567ffffffffffffffff8082111562000fb657600080fd5b818501915085601f83011262000fcb57600080fd5b81358181111562000fdb57600080fd5b8660208260051b850101111562000ff157600080fd5b60209290920196919550909350505050565b6000602082840312156200101657600080fd5b815162000f448162000f0b565b634e487b7160e01b600052601160045260246000fd5b8181038181111562000ddc5762000ddc62001023565b634e487b7160e01b600052603260045260246000fd5b6000600182016200107a576200107a62001023565b5060010190565b60208082528181018390526000908460408401835b86811015620010c8578235620010ac8162000f0b565b6001600160a01b03168252918301919083019060010162001096565b509695505050505050565b6020808252825482820181905260008481528281209092916040850190845b81811015620011195783546001600160a01b031683526001938401939285019201620010f2565b5090969550505050505056fe60e06040523480156200001157600080fd5b506001600381905550336001600160a01b0316630d19c79d6040518163ffffffff1660e01b815260040160c060405180830381865afa15801562000059573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200007f91906200011d565b600755600480546001600160e01b0316600160f01b61ffff9384160261ffff60e01b191617600160e01b93909216929092021790556001600160a01b0390811660c05290811660a0521660805261076c600855600580546001600160801b0316600560841b17905562000195565b80516001600160a01b03811681146200010557600080fd5b919050565b805161ffff811681146200010557600080fd5b60008060008060008060c087890312156200013757600080fd5b6200014287620000ed565b95506200015260208801620000ed565b94506200016260408801620000ed565b935062000172606088016200010a565b925062000182608088016200010a565b915060a087015190509295509295509295565b60805160a05160c051614b3a6200032a6000396000818161066b015281816106f801528181610c4201528181610f72015281816112d7015281816113b3015281816115e60152818161198c015281816121e00152818161244b0152818161268001528181612e95015281816132640152818161330701526134060152600081816103640152818161064601528181610c0401528181610f33015281816110700152818161138a015281816115a801528181611a3f015281816121bf0152818161241e0152818161265f01528181612e68015281816130e201528181613226015281816132cc015281816133a7015281816133e001528181613439015261359a0152600081816106d1015281816107c0015281816108ba0152818161095601528181610b2a01528181610cac01528181610dd70152818161116c015281816116500152818161177b01528181611aac01528181611d5101528181611e9101528181611eba01528181611f5701528181612b8701528181612c3801528181612efb01528181613fd001526140750152614b3a6000f3fe608060405234801561001057600080fd5b50600436106102cd5760003560e01c806370a082311161018c578063aa6ca808116100ee578063d66bd52411610097578063dd62ed3e11610071578063dd62ed3e1461075d578063ddca3f4314610796578063e9dcafaa146107ab57600080fd5b8063d66bd52414610722578063d832b87a14610742578063da33b3df1461074a57600080fd5b8063c45a0155116100c8578063c45a0155146106cc578063d21220a7146106f3578063d5d7b44b1461071a57600080fd5b8063aa6ca80814610638578063b509354114610696578063ba81c385146106a957600080fd5b806395d89b4111610150578063a457c2d71161012a578063a457c2d7146105ff578063a66395e614610612578063a9059cbb1461062557600080fd5b806395d89b41146105c05780639860691c146105e357806399b64de1146105ec57600080fd5b806370a082311461052c57806377c6a715146105555780638858c7531461057557806389afcb441461057e5780638a689784146105a657600080fd5b8063313ce56711610235578063597e1fb5116101f95780636447c35d116101d35780636447c35d146104d457806364be513f146104e75780636a6278421461051957600080fd5b8063597e1fb5146104a157806362a6d197146104ae57806363f19ea1146104c157600080fd5b8063313ce5671461042457806339509351146104335780634617a937146104465780634e44c32e1461044e578063591f09eb1461047657600080fd5b806311d14c6b11610297578063268c74e411610271578063268c74e4146103d65780632a635b4e146103df578063300c947a1461041157600080fd5b806311d14c6b1461039e57806318160ddd146103b157806323b872dd146103c357600080fd5b8062113e08146102d2578062a535981461030157806306fdde031461030b578063095ea7b31461033c5780630dfe16811461035f575b600080fd5b600454604080516001600160701b038084168252600160701b9093049092166020830152015b60405180910390f35b6103096107be565b005b60408051808201909152600c81526b05669727475737761702d4c560a41b60208201525b6040516102f891906143f8565b61034f61034a366004614423565b61089e565b60405190151581526020016102f8565b6103867f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b0390911681526020016102f8565b6103096103ac36600461444f565b6108b8565b6002545b6040519081526020016102f8565b61034f6103d1366004614478565b610a71565b6103b560075481565b6103f26103ed366004614502565b610a97565b604080516001600160a01b0390931683526020830191909152016102f8565b6103b561041f36600461457e565b6114cd565b604051601281526020016102f8565b61034f610441366004614423565b611c97565b6103b5611cd6565b60045461046390600160f01b900461ffff1681565b60405161ffff90911681526020016102f8565b600554610489906001600160801b031681565b6040516001600160801b0390911681526020016102f8565b600b5461034f9060ff1681565b6103866104bc3660046145f1565b611d25565b6103096104cf3660046145f1565b611d4f565b6103096104e236600461467b565b611e86565b60045461050190600160701b90046001600160701b031681565b6040516001600160701b0390911681526020016102f8565b6103b5610527366004614721565b612370565b6103b561053a366004614721565b6001600160a01b031660009081526020819052604090205490565b6103b5610563366004614721565b600c6020526000908152604090205481565b6103b560085481565b61059161058c366004614721565b612603565b604080519283526020830191909152016102f8565b60055461048990600160801b90046001600160801b031681565b604080518082019091526007815266056535741504c560cc1b602082015261032f565b6103b560065481565b6103096105fa36600461474e565b61290c565b61034f61060d366004614423565b612a0d565b6103096106203660046145f1565b612aaa565b61034f610633366004614423565b612b1d565b604080516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000811682527f0000000000000000000000000000000000000000000000000000000000000000166020820152016102f8565b6103096106a4366004614787565b612b2b565b61034f6106b7366004614721565b600a6020526000908152604090205460ff1681565b6103867f000000000000000000000000000000000000000000000000000000000000000081565b6103867f000000000000000000000000000000000000000000000000000000000000000081565b6103b5613168565b6103b5610730366004614721565b600d6020526000908152604090205481565b6009546103b5565b600454610501906001600160701b031681565b6103b561076b366004614787565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b60045461046390600160e01b900461ffff1681565b6103b56107b936600461457e565b613181565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166370905dce6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561081c573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061084091906147c5565b6001600160a01b0316336001600160a01b03161461088a5760405162461bcd60e51b81526020600482015260026024820152614f4560f01b60448201526064015b60405180910390fd5b600b805460ff19811660ff90911615179055565b6000336108ac818585613660565b60019150505b92915050565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166370905dce6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610916573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061093a91906147c5565b6001600160a01b0316336001600160a01b031614806109eb57507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663f851a4406040518163ffffffff1660e01b8152600401602060405180830381865afa1580156109b2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109d691906147c5565b6001600160a01b0316336001600160a01b0316145b610a1c5760405162461bcd60e51b81526020600482015260026024820152614f4160f01b6044820152606401610881565b600580546001600160801b03908116600160801b918416918202179091556040519081527fcaaa7d3acc870fbbecd0fd5b1b5318711a76bc6beee2883e7c8d6bbf3c77b3ad906020015b60405180910390a150565b600033610a7f858285613784565b610a8a858585613816565b60019150505b9392505050565b600080600260035403610aec5760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401610881565b6002600355600b5460ff1615610b285760405162461bcd60e51b81526020600482015260016024820152604360f81b6044820152606401610881565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663fea77eae6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610b86573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610baa91906147c5565b6001600160a01b0316336001600160a01b031614610bef5760405162461bcd60e51b81526020600482015260026024820152614f4160f01b6044820152606401610881565b6001600160a01b03861615801590610c3957507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316866001600160a01b031614155b8015610c7757507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316866001600160a01b031614155b610ca85760405162461bcd60e51b8152602060048201526002602482015261125560f21b6044820152606401610881565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166337e0376b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610d08573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d2c91906147c5565b60405163a8c6edc960e01b81526001600160a01b038a81166004830152306024830152919091169063a8c6edc99060440161010060405180830381865afa158015610d7b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d9f91906147e2565b60408082015160a083015191516334a2a5c360e11b81526001600160a01b0391821660048201529181166024830152919250818a16917f000000000000000000000000000000000000000000000000000000000000000016906369454b8690604401602060405180830381865afa158015610e1e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e4291906147c5565b6001600160a01b031614610e815760405162461bcd60e51b815260040161088190602080825260049082015263049494b560e41b604082015260600190565b80608001518911158015610eaf57506040808201516001600160a01b03166000908152600d60205220548911155b610ee15760405162461bcd60e51b8152602060048201526003602482015262414f4560e81b6044820152606401610881565b6040808201516001600160a01b03166000908152600a602052205460ff16610f315760405162461bcd60e51b8152602060048201526003602482015262544e5760e81b6044820152606401610881565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031681602001516001600160a01b03161480610faa57507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031681602001516001600160a01b0316145b610fdc5760405162461bcd60e51b815260206004820152600360248201526213939560ea1b6044820152606401610881565b610feb8160400151888b6139ba565b60006110008a83608001518460600151613a11565b9050841561106c576020820151604080840151905163cc1fd73160e01b8152339263cc1fd731926110399286908c908c90600401614882565b600060405180830381600087803b15801561105357600080fd5b505af1158015611067573d6000803e3d6000fd5b505050505b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031683602001516001600160a01b0316146110c357600454600160701b90046001600160701b03166110d0565b6004546001600160701b03165b6001600160701b03166110e68460200151613adb565b6110f091906148ec565b9050818110156111285760405162461bcd60e51b815260206004820152600360248201526212509160ea1b6044820152606401610881565b61115061113583836148ec565b60646111418b856148ff565b61114b919061492c565b613bc8565b602084015195509350831561116a5761116a8533866139ba565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166337e0376b6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156111c8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111ec91906147c5565b6001600160a01b031663de9ea2398b308785886060015161120d919061494e565b61121791906148ec565b8f886080015161122791906148ec565b6040516001600160e01b031960e087901b1681526001600160a01b03948516600482015293909216602484015260448301526064820152608401600060405180830381600087803b15801561127b57600080fd5b505af115801561128f573d6000803e3d6000fd5b505050505060006112a38360400151613adb565b905060008082116112b55760006112c8565b6112c88285608001518660600151613a11565b905060008111801561130f57507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031684602001516001600160a01b0316145b15611338576004546113359082906001600160701b03600160701b820481169116613a11565b90505b600680548201808255604080870180516001600160a01b039081166000908152600c60209081528482205490950390955581518116855282852095909555519093168252600d905220556113dc6113ae7f0000000000000000000000000000000000000000000000000000000000000000613adb565b6113d77f0000000000000000000000000000000000000000000000000000000000000000613adb565b613bde565b6040808301516001600160a01b0381166000908152600d60205291909120547f3f78f965596026d67092e66b7de2aaf2c33839a6b15485c4dec57f03e35e8a3e9190611426611cd6565b604080516001600160a01b03909416845260208401929092529082015260600160405180910390a160208083015160408085015181516001600160a01b039384168152908316938101939093528201839052606082018c90528a8116608083015289169033907f84e4b114d7cc75c5991508169b879228cf0ae428ba30144d51b8fc6a674aa9a89060a00160405180910390a3505060016003559097909650945050505050565b60006002600354036115215760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401610881565b6002600355600b5460ff161561155d5760405162461bcd60e51b81526020600482015260016024820152604360f81b6044820152606401610881565b600086116115935760405162461bcd60e51b815260206004820152600360248201526249414f60e81b6044820152606401610881565b6001600160a01b038416158015906115dd57507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316846001600160a01b031614155b801561161b57507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316846001600160a01b031614155b61164c5760405162461bcd60e51b8152602060048201526002602482015261125560f21b6044820152606401610881565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166337e0376b6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156116ac573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116d091906147c5565b60405163a8c6edc960e01b81523060048201526001600160a01b038881166024830152919091169063a8c6edc99060440161010060405180830381865afa15801561171f573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061174391906147e2565b602081015160a08201516040516334a2a5c360e11b81526001600160a01b0392831660048201529082166024820152919250808816917f0000000000000000000000000000000000000000000000000000000000000000909116906369454b8690604401602060405180830381865afa1580156117c4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117e891906147c5565b6001600160a01b0316146118275760405162461bcd60e51b815260040161088190602080825260049082015263049494b560e41b604082015260600190565b806080015187106118605760405162461bcd60e51b8152602060048201526003602482015262414f4560e81b6044820152606401610881565b60608101516080820151600454600092611886928b92600160f01b900461ffff16613c78565b90506118978260400151878a6139ba565b8315611901576020820151604080840151905163cc1fd73160e01b8152339263cc1fd731926118ce9286908b908b90600401614882565b600060405180830381600087803b1580156118e857600080fd5b505af11580156118fc573d6000803e3d6000fd5b505050505b60006119108360200151613adb565b6020808501516001600160a01b03166000908152600d909152604090205490915061193b90826148ec565b9350818410156119735760405162461bcd60e51b815260206004820152600360248201526249494160e81b6044820152606401610881565b60006119888285606001518660800151613a11565b90507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031684604001516001600160a01b0316036119eb576004546119e89082906001600160701b03600160701b820481169116613a11565b90505b600680548201808255602080870180516001600160a01b039081166000908152600c845260408082205490950390955581518116855283852095909555519093168252600d90925220819055611a636113ae7f0000000000000000000000000000000000000000000000000000000000000000613adb565b6000611a6d611cd6565b9050600754811115611aaa5760405162461bcd60e51b8152600401610881906020808252600490820152631510941560e21b604082015260600190565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166337e0376b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611b08573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b2c91906147c5565b6001600160a01b031663de9ea239308b888860600151611b4c919061494e565b8e8960800151611b5c91906148ec565b6040516001600160e01b031960e087901b1681526001600160a01b03948516600482015293909216602484015260448301526064820152608401600060405180830381600087803b158015611bb057600080fd5b505af1158015611bc4573d6000803e3d6000fd5b505050602080860151604080516001600160a01b0390921682529181018590529081018390527f3f78f965596026d67092e66b7de2aaf2c33839a6b15485c4dec57f03e35e8a3e915060600160405180910390a160208085015160408087015181516001600160a01b039384168152908316938101939093528201859052606082018c90528a8116608083015289169033907f84e4b114d7cc75c5991508169b879228cf0ae428ba30144d51b8fc6a674aa9a89060a0015b60405180910390a35050600160035550909695505050505050565b3360008181526001602090815260408083206001600160a01b03871684529091528120549091906108ac9082908690611cd190879061494e565b613660565b6004546000906001600160701b031680611cf1576000611d1f565b600181901b611d036103e86064614961565b62ffffff16600654611d1591906148ff565b611d1f919061492c565b91505090565b60098181548110611d3557600080fd5b6000918252602090912001546001600160a01b0316905081565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166370905dce6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611dad573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611dd191906147c5565b6001600160a01b0316336001600160a01b031614611e165760405162461bcd60e51b81526020600482015260026024820152614f4560f01b6044820152606401610881565b600754811115611e515760405162461bcd60e51b815260040161088190602080825260049082015263125495d560e21b604082015260600190565b60088190556040518181527f77f0773cce90b3c7a365117b2463a279ec138c4ab7a241d604f91ebabd8fc25690602001610a66565b336001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161480611f4f57507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663f851a4406040518163ffffffff1660e01b8152600401602060405180830381865afa158015611f16573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f3a91906147c5565b6001600160a01b0316336001600160a01b0316145b80611fec57507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166370905dce6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611fb3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611fd791906147c5565b6001600160a01b0316336001600160a01b0316145b61201d5760405162461bcd60e51b81526020600482015260026024820152614f4160f01b6044820152606401610881565b60015b81518110156120e257816120356001836148ec565b8151811061204557612045614988565b60200260200101516001600160a01b031682828151811061206857612068614988565b60200260200101516001600160a01b0316116120d25760405162461bcd60e51b8152602060048201526024808201527f616c6c6f77206c697374206d75737420626520756e6971756520616e6420736f6044820152631c9d195960e21b6064820152608401610881565b6120db8161499e565b9050612020565b506000600980548060200260200160405190810160405280929190818152602001828054801561213b57602002820191906000526020600020905b81546001600160a01b0316815260019091019060200180831161211d575b5050505050905060005b81518110156121a8576000600a600084848151811061216657612166614988565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff19169115159190911790556121a18161499e565b9050612145565b5081516121bc906009906020850190614321565b507f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000006000805b855181101561232b57836001600160a01b031686828151811061222857612228614988565b60200260200101516001600160a01b0316141580156122725750826001600160a01b031686828151811061225e5761225e614988565b60200260200101516001600160a01b031614155b1561231b576001600a600088848151811061228f5761228f614988565b60200260200101516001600160a01b03166001600160a01b0316815260200190815260200160002060006101000a81548160ff021916908315150217905550600c60008783815181106122e4576122e4614988565b60200260200101516001600160a01b03166001600160a01b031681526020019081526020016000205482612318919061494e565b91505b6123248161499e565b9050612203565b5060068190556040517fc2d08e7ae40f88bd169469bbcfa69c8213cb98772e0bab7de792256c59139eec906123619087906149b7565b60405180910390a15050505050565b60006002600354036123c45760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401610881565b6002600355600b5460ff16156124005760405162461bcd60e51b81526020600482015260016024820152604360f81b6044820152606401610881565b6004546001600160701b0380821691600160701b90041660006124427f0000000000000000000000000000000000000000000000000000000000000000613adb565b9050600061246f7f0000000000000000000000000000000000000000000000000000000000000000613adb565b9050600061247d85846148ec565b9050600061248b85846148ec565b9050600061249860025490565b9050806000036124d5576103e86124b76124b284866148ff565b613ccd565b6124c191906148ec565b97506124d060006103e8613e33565b6124fb565b6124f8876124e383866148ff565b6124ed919061492c565b8761114184866148ff565b97505b6000612505611cd6565b9050806125156103e86064614961565b62ffffff16612524919061494e565b6125316103e86064614961565b6125409062ffffff168b6148ff565b61254a919061492c565b9850600089116125825760405162461bcd60e51b8152602060048201526003602482015262494c4d60e81b6044820152606401610881565b61258c8a8a613e33565b6125968686613bde565b896001600160a01b03167f94c792774c59479f7bd68442f3af3691c02123a5aabee8b6f9116d8af8aa666985858c6125cd60025490565b60408051948552602085019390935291830152606082015260800160405180910390a25050600160035550949695505050505050565b6000806002600354036126585760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401610881565b60026003557f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000000000000000000000000000000000000000000060006126aa83613adb565b905060006126b783613adb565b905060006126c430613adb565b905060006126d160025490565b9050806126de83866148ff565b6126e8919061492c565b9750806126f583856148ff565b6126ff919061492c565b96506000881180156127115750600087115b6127435760405162461bcd60e51b815260206004820152600360248201526224a62160e91b6044820152606401610881565b61274d3083613e9c565b612758868a8a6139ba565b612763858a896139ba565b600061276d611cd6565b905080156128835760005b6009548110156128815760006009828154811061279757612797614988565b60009182526020808320909101546001600160a01b0316808352600d909152604090912054909150801561286e576000856127d288846148ff565b6127dc919061492c565b90506127e9838f836139ba565b6001600160a01b0383166000908152600c60205260409020548661280d89836148ff565b612817919061492c565b61282190826148ec565b6001600160a01b0385166000908152600c6020526040902081905560068054909101829003905561285282846148ec565b6001600160a01b0385166000908152600d602052604090205550505b50508061287a9061499e565b9050612778565b505b61288c87613adb565b945061289786613adb565b93506128a38585613bde565b6001600160a01b038a16337fa476cebfbe7485684f5578d84d8a64a8afe93a0a2a3047bd6f3e681e108b8f118b8b6128da60025490565b6040805193845260208401929092529082015260600160405180910390a3505050505050506001600381905550915091565b612914613fce565b60008261ffff1611801561292c575060008161ffff16115b801561293d57506103e88261ffff16105b801561294e57506103e88161ffff16105b6129805760405162461bcd60e51b815260206004820152600360248201526249464360e81b6044820152606401610881565b600480546001600160e01b0316600160e01b61ffff8581169182027dffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1692909217600160f01b928516928302179092556040805192835260208301919091527faa1ebd1f8841401ae5e1a0f2febc87d5f597ae458fca8277cd0e43b92633183c91015b60405180910390a15050565b3360008181526001602090815260408083206001600160a01b038716845290915281205490919083811015612a925760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b6064820152608401610881565b612a9f8286868403613660565b506001949350505050565b612ab2613fce565b60008111612ae85760405162461bcd60e51b815260206004820152600360248201526212549560ea1b6044820152606401610881565b60078190556040518181527f047f24f47d2c93ef7523cb3c84c3b367df61e4899214a2a48784cfa09da91fdf90602001610a66565b6000336108ac818585613816565b600260035403612b7d5760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401610881565b60026003819055507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663f851a4406040518163ffffffff1660e01b8152600401602060405180830381865afa158015612be3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612c0791906147c5565b6001600160a01b0316336001600160a01b0316148015612c305750600854612c2d611cd6565b10155b80612ccd57507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166370905dce6040518163ffffffff1660e01b8152600401602060405180830381865afa158015612c94573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612cb891906147c5565b6001600160a01b0316336001600160a01b0316145b612cfe5760405162461bcd60e51b81526020600482015260026024820152614f4160f01b6044820152606401610881565b6001600160a01b0382166000908152600a602052604090205460ff16612d4c5760405162461bcd60e51b8152602060048201526003602482015262544e5760e81b6044820152606401610881565b600080826001600160a01b031663aa6ca8086040518163ffffffff1660e01b81526004016040805180830381865afa158015612d8c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612db09190614a04565b91509150600080846001600160a01b031662113e086040518163ffffffff1660e01b81526004016040805180830381865afa158015612df3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612e179190614a4a565b6001600160701b031691506001600160701b03169150856001600160a01b0316846001600160a01b031614612e4b57919291905b6001600160a01b038681166000908152600d6020526040902054907f000000000000000000000000000000000000000000000000000000000000000081169085161480612ec957507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316846001600160a01b0316145b8015612f7357506040516334a2a5c360e11b81526001600160a01b0388811660048301528581166024830152808816917f0000000000000000000000000000000000000000000000000000000000000000909116906369454b8690604401602060405180830381865afa158015612f44573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612f6891906147c5565b6001600160a01b0316145b612fa55760405162461bcd60e51b81526020600482015260036024820152620494e560ec1b6044820152606401610881565b6001600160a01b0387166000908152600c60209081526040808320805460068054919091039055839055600d909152812055612fe28787836139ba565b856001600160a01b031663e9dcafaa6130628386868b6001600160a01b031663ddca3f436040518163ffffffff1660e01b8152600401602060405180830381865afa158015613035573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906130599190614a7d565b61ffff166140ca565b604080516000815260208101918290526001600160e01b031960e085901b1690915261309691908890309060248101614a9a565b6020604051808303816000875af11580156130b5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906130d99190614ad6565b506131066113ae7f0000000000000000000000000000000000000000000000000000000000000000613adb565b7f3f78f965596026d67092e66b7de2aaf2c33839a6b15485c4dec57f03e35e8a3e876000613132611cd6565b604080516001600160a01b03909416845260208401929092529082015260600160405180910390a1505060016003555050505050565b60006131776103e86064614961565b62ffffff16905090565b60006002600354036131d55760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401610881565b6002600355600b5460ff16156132115760405162461bcd60e51b81526020600482015260016024820152604360f81b6044820152606401610881565b6001600160a01b0384161580159061325b57507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316846001600160a01b031614155b801561329957507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316846001600160a01b031614155b6132ca5760405162461bcd60e51b8152602060048201526002602482015261125560f21b6044820152606401610881565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316856001600160a01b0316148061333b57507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316856001600160a01b0316145b61336d5760405162461bcd60e51b815260206004820152600360248201526213939560ea1b6044820152606401610881565b600086116133a35760405162461bcd60e51b815260206004820152600360248201526249414f60e81b6044820152606401610881565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316866001600160a01b031614613404577f0000000000000000000000000000000000000000000000000000000000000000613426565b7f00000000000000000000000000000000000000000000000000000000000000005b60045490915060009081906134729084907f0000000000000000000000000000000000000000000000000000000000000000906001600160701b0380821691600160701b900416614118565b915091508089106134ab5760405162461bcd60e51b8152602060048201526003602482015262414f4560e81b6044820152606401610881565b6134b688888b6139ba565b60006134d88a84846004601c9054906101000a900461ffff1661ffff16613c78565b9050851561353e5760405163cc1fd73160e01b8152339063cc1fd7319061350b9087908d9086908d908d90600401614882565b600060405180830381600087803b15801561352557600080fd5b505af1158015613539573d6000803e3d6000fd5b505050505b8261354885613adb565b61355291906148ec565b94506000851180156135645750808510155b6135965760405162461bcd60e51b815260206004820152600360248201526249494160e81b6044820152606401610881565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316856001600160a01b0316149050613609816135e6576135e18c856148ec565b6135f0565b6135f0878661494e565b826135ff576113d7888761494e565b6113d78d866148ec565b50604080516001600160a01b0386811682528b81166020830152918101839052606081018c90529089169033907f54787c404bb33c88e86f4baf88183a3b0141d0a848e6a9f7a13b66ae3a9b73d190608001611c7c565b6001600160a01b0383166136c25760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610881565b6001600160a01b0382166137235760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610881565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b03838116600090815260016020908152604080832093861683529290522054600019811461381057818110156138035760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e63650000006044820152606401610881565b6138108484848403613660565b50505050565b6001600160a01b03831661387a5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610881565b6001600160a01b0382166138dc5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610881565b6001600160a01b038316600090815260208190526040902054818110156139545760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b6064820152608401610881565b6001600160a01b03848116600081815260208181526040808320878703905593871680835291849020805487019055925185815290927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a3613810565b604080516001600160a01b038416602482015260448082018490528251808303909101815260649091019091526020810180516001600160e01b031663a9059cbb60e01b179052613a0c90849061414b565b505050565b6000808411613a625760405162461bcd60e51b815260206004820152601a60248201527f56535741503a20494e53554646494349454e545f414d4f554e540000000000006044820152606401610881565b600083118015613a725750600082115b613abe5760405162461bcd60e51b815260206004820152601d60248201527f56535741503a20494e53554646494349454e545f4c49515549444954590000006044820152606401610881565b82613ac983866148ff565b613ad3919061492c565b949350505050565b604051306024820152600090819081906001600160a01b0385169060440160408051601f198184030181529181526020820180516001600160e01b03166370a0823160e01b17905251613b2e9190614aef565b600060405180830381855afa9150503d8060008114613b69576040519150601f19603f3d011682016040523d82523d6000602084013e613b6e565b606091505b5091509150818015613b8257506020815110155b613bb45760405162461bcd60e51b815260206004820152600360248201526223212360e91b6044820152606401610881565b80806020019051810190613ad39190614ad6565b6000818310613bd75781610a90565b5090919050565b600580546fffffffffffffffffffffffffffffffff1916426001600160801b0316179055600480546001600160e01b031916600160701b6001600160701b038481169182026dffffffffffffffffffffffffffff1916929092179185169182179092556040805191825260208201929092527fa74621c1abba1dca03b6708d02443d60ddfd3f4273745060c4355afc9daa52c69101612a01565b6000806103e8613c8887876148ff565b613c9291906148ff565b9050600083613ca188876148ec565b613cab91906148ff565b9050613cb7818361492c565b613cc290600161494e565b979650505050505050565b600081600003613cdf57506000919050565b600182608081901c15613cf75760409190911b9060801c5b604081901c15613d0c5760209190911b9060401c5b602081901c15613d215760109190911b9060201c5b601081901c15613d365760089190911b9060101c5b600881901c15613d4b5760049190911b9060081c5b600481901c15613d605760029190911b9060041c5b600281901c15613d7257600182901b91505b6001828581613d8357613d83614916565b048301901c91506001828581613d9b57613d9b614916565b048301901c91506001828581613db357613db3614916565b048301901c91506001828581613dcb57613dcb614916565b048301901c91506001828581613de357613de3614916565b048301901c91506001828581613dfb57613dfb614916565b048301901c91506001828581613e1357613e13614916565b048301901c9150613ad382838681613e2d57613e2d614916565b04613bc8565b8060026000828254613e45919061494e565b90915550506001600160a01b038216600081815260208181526040808320805486019055518481527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35050565b6001600160a01b038216613efc5760405162461bcd60e51b815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f206164647265736044820152607360f81b6064820152608401610881565b6001600160a01b03821660009081526020819052604090205481811015613f705760405162461bcd60e51b815260206004820152602260248201527f45524332303a206275726e20616d6f756e7420657863656564732062616c616e604482015261636560f01b6064820152608401610881565b6001600160a01b0383166000818152602081815260408083208686039055600280548790039055518581529192917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a3505050565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663f851a4406040518163ffffffff1660e01b8152600401602060405180830381865afa15801561402c573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061405091906147c5565b6001600160a01b0316336001600160a01b031614806140975750336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016145b6140c85760405162461bcd60e51b81526020600482015260026024820152614f4160f01b6044820152606401610881565b565b6000806140d783876148ff565b905060006140e585836148ff565b90506000826140f66103e8896148ff565b614100919061494e565b905061410c818361492c565b98975050505050505050565b600080856001600160a01b0316856001600160a01b03161461413b57828461413e565b83835b9097909650945050505050565b60006141a0826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b031661421d9092919063ffffffff16565b805190915015613a0c57808060200190518101906141be9190614b0b565b613a0c5760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b6064820152608401610881565b6060613ad38484600085856001600160a01b0385163b61427f5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610881565b600080866001600160a01b0316858760405161429b9190614aef565b60006040518083038185875af1925050503d80600081146142d8576040519150601f19603f3d011682016040523d82523d6000602084013e6142dd565b606091505b5091509150613cc2828286606083156142f7575081610a90565b8251156143075782518084602001fd5b8160405162461bcd60e51b815260040161088191906143f8565b828054828255906000526020600020908101928215614383579160200282015b82811115614383578251825473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b03909116178255602090920191600190910190614341565b5061438f929150614393565b5090565b5b8082111561438f5760008155600101614394565b60005b838110156143c35781810151838201526020016143ab565b50506000910152565b600081518084526143e48160208601602086016143a8565b601f01601f19169290920160200192915050565b602081526000610a9060208301846143cc565b6001600160a01b038116811461442057600080fd5b50565b6000806040838503121561443657600080fd5b82356144418161440b565b946020939093013593505050565b60006020828403121561446157600080fd5b81356001600160801b0381168114610a9057600080fd5b60008060006060848603121561448d57600080fd5b83356144988161440b565b925060208401356144a88161440b565b929592945050506040919091013590565b60008083601f8401126144cb57600080fd5b50813567ffffffffffffffff8111156144e357600080fd5b6020830191508360208285010111156144fb57600080fd5b9250929050565b60008060008060008060a0878903121561451b57600080fd5b86359550602087013561452d8161440b565b9450604087013561453d8161440b565b935060608701359250608087013567ffffffffffffffff81111561456057600080fd5b61456c89828a016144b9565b979a9699509497509295939492505050565b60008060008060006080868803121561459657600080fd5b8535945060208601356145a88161440b565b935060408601356145b88161440b565b9250606086013567ffffffffffffffff8111156145d457600080fd5b6145e0888289016144b9565b969995985093965092949392505050565b60006020828403121561460357600080fd5b5035919050565b634e487b7160e01b600052604160045260246000fd5b604051610100810167ffffffffffffffff811182821017156146445761464461460a565b60405290565b604051601f8201601f1916810167ffffffffffffffff811182821017156146735761467361460a565b604052919050565b6000602080838503121561468e57600080fd5b823567ffffffffffffffff808211156146a657600080fd5b818501915085601f8301126146ba57600080fd5b8135818111156146cc576146cc61460a565b8060051b91506146dd84830161464a565b81815291830184019184810190888411156146f757600080fd5b938501935b8385101561410c57843592506147118361440b565b82825293850193908501906146fc565b60006020828403121561473357600080fd5b8135610a908161440b565b61ffff8116811461442057600080fd5b6000806040838503121561476157600080fd5b823561476c8161473e565b9150602083013561477c8161473e565b809150509250929050565b6000806040838503121561479a57600080fd5b82356147a58161440b565b9150602083013561477c8161440b565b80516147c08161440b565b919050565b6000602082840312156147d757600080fd5b8151610a908161440b565b600061010082840312156147f557600080fd5b6147fd614620565b825162ffffff8116811461481057600080fd5b815261481e602084016147b5565b602082015261482f604084016147b5565b6040820152606083015160608201526080830151608082015261485460a084016147b5565b60a082015261486560c084016147b5565b60c082015261487660e084016147b5565b60e08201529392505050565b60006001600160a01b03808816835280871660208401525084604083015260806060830152826080830152828460a0840137600060a0848401015260a0601f19601f85011683010190509695505050505050565b634e487b7160e01b600052601160045260246000fd5b818103818111156108b2576108b26148d6565b80820281158282048414176108b2576108b26148d6565b634e487b7160e01b600052601260045260246000fd5b60008261494957634e487b7160e01b600052601260045260246000fd5b500490565b808201808211156108b2576108b26148d6565b62ffffff818116838216028082169190828114614980576149806148d6565b505092915050565b634e487b7160e01b600052603260045260246000fd5b6000600182016149b0576149b06148d6565b5060010190565b6020808252825182820181905260009190848201906040850190845b818110156149f85783516001600160a01b0316835292840192918401916001016149d3565b50909695505050505050565b60008060408385031215614a1757600080fd5b8251614a228161440b565b602084015190925061477c8161440b565b80516001600160701b03811681146147c057600080fd5b60008060408385031215614a5d57600080fd5b614a6683614a33565b9150614a7460208401614a33565b90509250929050565b600060208284031215614a8f57600080fd5b8151610a908161473e565b84815260006001600160a01b03808616602084015280851660408401525060806060830152614acc60808301846143cc565b9695505050505050565b600060208284031215614ae857600080fd5b5051919050565b60008251614b018184602087016143a8565b9190910192915050565b600060208284031215614b1d57600080fd5b81518015158114610a9057600080fdfea164736f6c6343000812000aa164736f6c6343000812000a