0 txs
1 call
constructor
constructor(address _galaxisRegistry)
functions
APP
purefunction APP() pure returns (bytes32)
baseVersion
purefunction baseVersion() pure returns (uint256)
currentTokenOwnerAddress
viewfunction currentTokenOwnerAddress(uint32 _tokenId) view returns (address)
existsData
viewfunction existsData(uint32) view returns (uint8)
galaxisRegistry
viewfunction galaxisRegistry() view returns (address)
getAutographs
viewfunction getAutographs(uint32 _tokenId) view returns (string[])
getAutographsAndStates
viewfunction getAutographsAndStates(uint32 _tokenId) view returns (string[] _autoGraphs, uint8[] _states)
getByteAndBit
purefunction getByteAndBit(uint32 _offset) pure returns (uint32 _byte, uint8 _bit)
getData
viewfunction getData(uint32 _tokenId) view returns (bytes)
getData
viewfunction getData(uint32[] _tokenIds) view returns (bytes[])
getDefaultTokenDataOutput
viewfunction getDefaultTokenDataOutput() view returns (bytes)
getOutputBufferLength
viewfunction getOutputBufferLength(uint32 _tokenId) view returns (uint16, uint16)
getProperties
viewfunction getProperties(uint32 _tokenId, bytes32[] _names) view returns (bytes[])
getProperty
viewfunction getProperty(bytes32 _name, uint32 _tokenId) view returns (bytes)
getSchema
viewfunction getSchema() view returns (tuple[])
getStates
viewfunction getStates(uint32 _tokenId) view returns (uint8[])
GTRegistry
viewfunction GTRegistry() view returns (address)
hasTrait
viewfunction hasTrait(uint32 _tokenId) view returns (bool result)
initialized
viewfunction initialized() view returns (bool)
isInitialized
viewfunction isInitialized(uint32 _tokenId) view returns (bool result)
modifier_lock
viewfunction modifier_lock() view returns (bool)
movement_permission
viewfunction movement_permission() view returns (uint8)
status
viewfunction status(uint32 _tokenId) view returns (uint8)
tellEverything
viewfunction tellEverything() view returns (tuple)
TRAIT_TYPE
purefunction TRAIT_TYPE() pure returns (uint16)
traitId
viewfunction traitId() view returns (uint16)
version
purefunction version() pure returns (uint256)
addTrait
nonpayablefunction addTrait(uint32[] _tokenIds)
decrementCounter
nonpayablefunction decrementCounter(uint32 _tokenId)
fulfillAutograph
nonpayablefunction fulfillAutograph(uint32 _tokenId, string _signature)
incrementCounter
nonpayablefunction incrementCounter(uint32 _tokenId)
init
nonpayablefunction init()
removeTrait
nonpayablefunction removeTrait(uint32[] _tokenIds) returns (bool)
requestAutograph
nonpayablefunction requestAutograph(address _claimant, uint32 _tokenId)
setData
nonpayablefunction setData(uint32 _tokenId, bytes _bytesData)
setProperties
nonpayablefunction setProperties(uint32 _tokenId, bytes32[] _names, bytes[] inputs)
setProperty
nonpayablefunction setProperty(bytes32 _name, uint32 _tokenId, bytes input)
setup
nonpayablefunction setup(address _registry, uint16 _traitId, tuple _traitConfig, bytes[] _defaultPropValues)
events
tokenTraitChangeEvent
event tokenTraitChangeEvent(uint32 indexed _tokenId)
errors
No errors.
creation bytecode
0x60a06040526000805460ff60b01b191690556003805460ff19169055348015602657600080fd5b506040516159df3803806159df8339810160408190526043916053565b6001600160a01b03166080526081565b600060208284031215606457600080fd5b81516001600160a01b0381168114607a57600080fd5b9392505050565b6080516158fd6100e2600039600081816103d60152818161065f01528181610ff40152818161117c015281816114d9015281816116510152818161195d01528181611bc401528181611df10152818161229401526145a401526158fd6000f3fe608060405234801561001057600080fd5b50600436106102325760003560e01c80637d4898ef11610130578063b2ae54b8116100b8578063d1e92a2a1161007c578063d1e92a2a14610558578063e1c7392a14610578578063e4cf0e2914610580578063e90cd93614610588578063f22cac85146105b957600080fd5b8063b2ae54b8146104da578063b7a11b01146104e4578063c6402b5f146104f7578063c9170a001461050a578063c9cf21e91461053857600080fd5b806388afafec116100ff57806388afafec146104755780638a3ac3271461048857806396b039ed1461049557806396ec6fec146104b55780639e81c315146104c757600080fd5b80637d4898ef146104295780638174263b1461043c5780638468062c1461044f578063848098db1461046257600080fd5b8063492a9b17116101be57806363f7f7921161018257806363f7f792146103865780636b122fe0146103a9578063759cd04c146103be5780637671114d146103d157806377c6614a1461041057600080fd5b8063492a9b171461031a57806353bdfa2e1461033e57806354fd4d5014610351578063559d86b5146103655780635bf63c881461037857600080fd5b80632eed4066116102055780632eed40661461029e5780632f151b76146102be5780633099d0ac146102d3578063346ab9d0146102f45780633e35701a1461030757600080fd5b80630a60854c14610237578063158ef93e1461024c5780631ade6623146102755780632a65a22d14610288575b600080fd5b61024a6102453660046147b7565b6105cc565b005b60005461026090600160b01b900460ff1681565b60405190151581526020015b60405180910390f35b61024a610283366004614855565b61084d565b60055b60405161ffff909116815260200161026c565b6102b16102ac3660046148d9565b61095a565b60405161026c9190614946565b6102c6610d43565b60405161026c9190614a4f565b6102e66102e13660046148d9565b610e2e565b60405161026c929190614b94565b6102606103023660046148d9565b610e4c565b61024a610315366004614ce7565b610e5f565b600d5461032c90610100900460ff1681565b60405160ff909116815260200161026c565b61026061034c3660046147b7565b610f60565b6378a448f55b60405190815260200161026c565b61024a610373366004614d9f565b6110e9565b60005461028b9061ffff1681565b61032c6103943660046148d9565b600b6020526000908152604090205460ff1681565b6103b1611232565b60405161026c9190614dee565b61024a6103cc366004614e01565b611446565b6103f87f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b03909116815260200161026c565b6000546103f8906201000090046001600160a01b031681565b61024a6104373660046148d9565b6115be565b61032c61044a3660046148d9565b6117b7565b61024a61045d366004614e59565b611917565b61024a610470366004614ef1565b611d5e565b6102b1610483366004614f5c565b611f3b565b600d546102609060ff1681565b6104a86104a33660046147b7565b612048565b60405161026c9190614f81565b680c2eae8decee4c2e0d60bb1b610357565b6104a86104d5366004614fd8565b612112565b6378a495e9610357565b6102606104f23660046148d9565b6121de565b61024a6105053660046148d9565b612201565b61051d6105183660046148d9565b612427565b6040805161ffff93841681529290911660208301520161026c565b61054b6105463660046148d9565b6126ef565b60405161026c919061501d565b61056b6105663660046148d9565b6126fa565b60405161026c9190615030565b61024a612705565b6102b161274d565b61059b6105963660046148d9565b612962565b6040805163ffffffff909316835260ff90911660208301520161026c565b6103f86105c73660046148d9565b61298e565b600054604051630403639960e31b81526001600160a01b03620100008304169163201b1cc89161060791339161ffff90911690600401615043565b602060405180830381865afa158015610624573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106489190615060565b806106e65750604051631d2e660b60e21b815233907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906374b9982c9061069a9060040161507d565b602060405180830381865afa1580156106b7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106db91906150a1565b6001600160a01b0316145b61070b5760405162461bcd60e51b8152600401610702906150be565b60405180910390fd5b60005b81518161ffff16101561084957610741828261ffff1681518110610734576107346150ee565b60200260200101516121de565b6107ef57600d5460021961010090910460ff16016107845761077f828261ffff1681518110610772576107726150ee565b6020026020010151612b5c565b610837565b6107ac828261ffff168151811061079d5761079d6150ee565b60200260200101516001612c12565b818161ffff16815181106107c2576107c26150ee565b602002602001015163ffffffff166000805160206158a883398151915260405160405180910390a2610837565b60405162461bcd60e51b815260206004820152601f60248201527f54726169743a20546f6b656e20616c72656164792068617320747261697421006044820152606401610702565b806108418161511a565b91505061070e565b5050565b600054604051630403639960e31b81526001600160a01b03620100008304169163201b1cc89161088891339161ffff90911690600401615043565b602060405180830381865afa1580156108a5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108c99190615060565b6109155760405162461bcd60e51b815260206004820152601860248201527f4175746f6772617068203a206e6f7420616e2061646d696e00000000000000006044820152606401610702565b6109558383838080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250612c2b92505050565b505050565b606060008061096884612427565b9092509050600061ffff83166001600160401b0381111561098b5761098b61473c565b6040519080825280601f01601f1916602001820160405280156109b5576020820181803683370190505b5063ffffffff86166000908152600760205260408120805492935090916109db9061513b565b80601f0160208091040260200160405190810160405280929190818152602001828054610a079061513b565b8015610a545780601f10610a2957610100808354040283529160200191610a54565b820191906000526020600020905b815481529060010190602001808311610a3757829003601f168201915b50505050509050610a6486610e4c565b610af65760098054610a759061513b565b80601f0160208091040260200160405190810160405280929190818152602001828054610aa19061513b565b8015610aee5780601f10610ac357610100808354040283529160200191610aee565b820191906000526020600020905b815481529060010190602001808311610ad157829003601f168201915b505050505090505b8051600003610b5957600354610b109060ff16602061516f565b61ffff166001600160401b03811115610b2b57610b2b61473c565b6040519080825280601f01601f191660200182016040528015610b55576020820181803683370190505b5090505b602082810190848401016000805b60035460ff9081169082161015610d3557610b8360208361518d565b60ff808316600090815260026020526040902060010154919350166009816013811115610bb257610bb2614959565b1480610bcf5750600a816013811115610bcd57610bcd614959565b145b15610ce25760ff8216600090815260066020908152604080832063ffffffff8f16845290915281208054610c029061513b565b80601f0160208091040260200160405190810160405280929190818152602001828054610c2e9061513b565b8015610c7b5780601f10610c5057610100808354040283529160200191610c7b565b820191906000526020600020905b815481529060010190602001808311610c5e57829003601f168201915b5050505050905088865260208901985080516020810481602082021015610ca0576001015b9086526020909501946000905b80821015610cd257602060018301028301518752602087019650600182019150610cad565b602081028b019a50505050610d25565b610ceb81612e17565b15610d1e5760ff8216600090815260026020526040902060010154610d1990610100900460e01b8c87612f29565b610d25565b8286015185525b5060209390930192600101610b67565b509398975050505050505050565b610d9a60408051610120810182526000808252602080830182905282840182905260608084018390526080840183905260a084015260c0830182905260e08301829052835190810190935282529061010082015290565b60408051610120810190915260005461ffff16815260208101600561ffff1681526000546201000090046001600160a01b031660208201526040016378a495e981526020016378a448f58152602001610df1611232565b815260035460ff166020820152604001680c2eae8decee4c2e0d60bb1b815260408051602081810190925260015460ff1615158152910152919050565b606080610e3a8361302b565b610e4384613097565b91509150915091565b6000610e598260026130ed565b92915050565b600054600160b01b900460ff1615610eb95760405162461bcd60e51b815260206004820152601b60248201527f54726169743a20616c726561647920696e697469616c697a65642100000000006044820152606401610702565b600080546001600160b01b031916620100006001600160a01b0387160261ffff19161761ffff851617815582516001805460ff19169115159190911790555b81518160ff161015610f5957818160ff1681518110610f1957610f196150ee565b6020026020010151600a60008360ff1660ff1681526020019081526020016000209081610f4691906151e8565b5080610f51816152a7565b915050610ef8565b5050505050565b60008054604051630403639960e31b81526001600160a01b03620100008304169163201b1cc891610f9c91339161ffff90911690600401615043565b602060405180830381865afa158015610fb9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fdd9190615060565b8061107b5750604051631d2e660b60e21b815233907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906374b9982c9061102f9060040161507d565b602060405180830381865afa15801561104c573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061107091906150a1565b6001600160a01b0316145b6110975760405162461bcd60e51b8152600401610702906150be565b60005b82518160ff1610156110de576110cb838260ff16815181106110be576110be6150ee565b60200260200101516131b3565b50806110d6816152a7565b91505061109a565b50600190505b919050565b600054604051630403639960e31b81526001600160a01b03620100008304169163201b1cc89161112491339161ffff90911690600401615043565b602060405180830381865afa158015611141573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111659190615060565b806112035750604051631d2e660b60e21b815233907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906374b9982c906111b79060040161507d565b602060405180830381865afa1580156111d4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111f891906150a1565b6001600160a01b0316145b61121f5760405162461bcd60e51b8152600401610702906150be565b6112298282613309565b61084982612b5c565b60035460609060009060ff166001600160401b038111156112555761125561473c565b6040519080825280602002602001820160405280156112c357816020015b6040805161010081018252600080825260208083018290529282018190526060808301526080820181905260a0820181905260c0820181905260e082015282526000199092019101816112735790505b50905060005b60035460ff90811690821610156114405760ff80821660009081526002602090815260409182902082516101008101909352805483526001810154929390929184019116601381111561131e5761131e614959565b601381111561132f5761132f614959565b81526001820154610100900460e01b6001600160e01b03191660208201526002820180546040909201916113629061513b565b80601f016020809104026020016040519081016040528092919081815260200182805461138e9061513b565b80156113db5780601f106113b0576101008083540402835291602001916113db565b820191906000526020600020905b8154815290600101906020018083116113be57829003601f168201915b5050509183525050600382015460ff9081161515602083015260048301546040830152600583015460608301526006909201548216151560809091015283518491841690811061142d5761142d6150ee565b60209081029190910101526001016112c9565b50919050565b600054604051630403639960e31b81526001600160a01b03620100008304169163201b1cc89161148191339161ffff90911690600401615043565b602060405180830381865afa15801561149e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114c29190615060565b806115605750604051631d2e660b60e21b815233907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906374b9982c906115149060040161507d565b602060405180830381865afa158015611531573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061155591906150a1565b6001600160a01b0316145b61157c5760405162461bcd60e51b8152600401610702906150be565b6b1bdddb995c97dcdd1bdc995960a21b83036115aa5760405162461bcd60e51b8152600401610702906152c6565b6115b382612b5c565b6109558383836135a8565b600054604051630403639960e31b81526001600160a01b03620100008304169163201b1cc8916115f991339161ffff90911690600401615043565b602060405180830381865afa158015611616573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061163a9190615060565b806116d85750604051631d2e660b60e21b815233907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906374b9982c9061168c9060040161507d565b602060405180830381865afa1580156116a9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116cd91906150a1565b6001600160a01b0316145b6116f45760405162461bcd60e51b8152600401610702906150be565b600061170a6631b7bab73a32b960c91b83611f3b565b61171390615317565b61171e90600161518d565b905061010081106117815760405162461bcd60e51b815260206004820152602760248201527f47656e6572696354726169743a20636f756e7465722065786365656473206d616044820152667820283235352960c81b6064820152608401610702565b6108496631b7bab73a32b960c91b83836040516020016117a391815260200190565b604051602081830303815290604052611446565b6000806117c3836121de565b156118fe5760006117e16930b1ba34bb30ba34b7b760b11b85611f3b565b6117ea90615317565b905060006118056932bc3834b930ba34b7b760b11b86611f3b565b61180e90615317565b905060006118266631b7bab73a32b960c91b87611f3b565b61182f90615317565b905060008290036118495761184642610e1061518d565b91505b80156118f55742831115801561185f5750814211155b156118ec57600d5460021961010090910460ff16016118e35760006118936b1bdddb995c97dcdd1bdc995960a21b88611f3b565b8060200190518101906118a691906150a1565b905060006118b38861298e565b9050806001600160a01b0316826001600160a01b0316036118d757600195506118dc565b600295505b50506118fa565b600193506118fa565b600293506118fa565b600393505b5050505b80600381111561191057611910614959565b9392505050565b604051631d2e660b60e21b815260206004820152601860248201527f4155544f47524150485f54524149545f434f4e53554d4552000000000000000060448201526000907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906374b9982c90606401602060405180830381865afa1580156119ac573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119d091906150a1565b9050336001600160a01b03821614611a2a5760405162461bcd60e51b815260206004820152601a60248201527f4175746f6772617068203a20496e76616c69642073656e6465720000000000006044820152606401610702565b600080600060029054906101000a90046001600160a01b03166001600160a01b0316639d759d5f6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611a80573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611aa491906150a1565b6001600160a01b031663f5a24eec6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611ae1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b05919061533b565b905060008060029054906101000a90046001600160a01b03166001600160a01b031663f282a8e16040518163ffffffff1660e01b8152600401602060405180830381865afa158015611b5b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b7f919061533b565b604051631d2e660b60e21b815260206004820152601160248201527021a0a9222fa7aba722a92fa927aaaa22a960791b60448201529091506000906001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016906374b9982c90606401602060405180830381865afa158015611c0b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c2f91906150a1565b90506001600160a01b03811615611cca5760405163ab90d92560e01b81526001600160a01b03888116600483015263ffffffff808616602484015280851660448401528816606483015282169063ab90d92590608401602060405180830381865afa925050508015611cbe575060408051601f3d908101601f19168201909252611cbb91810190615060565b60015b15611ce7579350611ce7565b6000611cd58761298e565b6001600160a01b038981169116149450505b83611d4c5760405162461bcd60e51b815260206004820152602f60248201527f4175746f6772617068203a20796f7520646f206e6f74206f776e206f7220636f60448201526e1b9d1c9bdb081d1a1a5cc818d85c99608a1b6064820152608401610702565b611d55866138c4565b50505050505050565b600054604051630403639960e31b81526001600160a01b03620100008304169163201b1cc891611d9991339161ffff90911690600401615043565b602060405180830381865afa158015611db6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611dda9190615060565b80611e785750604051631d2e660b60e21b815233907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906374b9982c90611e2c9060040161507d565b602060405180830381865afa158015611e49573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611e6d91906150a1565b6001600160a01b0316145b611e945760405162461bcd60e51b8152600401610702906150be565b611e9d83612b5c565b60005b82518160ff161015611f35576000838260ff1681518110611ec357611ec36150ee565b602002602001015190506b1bdddb995c97dcdd1bdc995960a21b8103611efb5760405162461bcd60e51b8152600401610702906152c6565b611f228186858560ff1681518110611f1557611f156150ee565b60200260200101516135a8565b5080611f2d816152a7565b915050611ea0565b50505050565b60008281526004602090815260408083205460ff908116808552600290935292206001015460609216611f6d84610e4c565b158015611f805750611f7e81612e17565b155b1561202d5760ff82166000908152600260208190526040909120018054611fa69061513b565b80601f0160208091040260200160405190810160405280929190818152602001828054611fd29061513b565b801561201f5780601f10611ff45761010080835404028352916020019161201f565b820191906000526020600020905b81548152906001019060200180831161200257829003601f168201915b505050505092505050610e59565b6120378285613a1e565b92505050610e59565b505092915050565b6060600082516001600160401b038111156120655761206561473c565b60405190808252806020026020018201604052801561209857816020015b60608152602001906001900390816120835790505b50905060005b83518163ffffffff16101561210b576120d5848263ffffffff16815181106120c8576120c86150ee565b602002602001015161095a565b828263ffffffff16815181106120ed576120ed6150ee565b6020026020010181905250808061210390615358565b91505061209e565b5092915050565b6060600082516001600160401b0381111561212f5761212f61473c565b60405190808252806020026020018201604052801561216257816020015b606081526020019060019003908161214d5790505b50905060005b83518163ffffffff1610156121d6576121a0848263ffffffff1681518110612192576121926150ee565b602002602001015186611f3b565b828263ffffffff16815181106121b8576121b86150ee565b602002602001018190525080806121ce90615358565b915050612168565b509392505050565b6000806121ec8360016130ed565b60015490915060ff1615610e59571592915050565b600054604051630403639960e31b81526001600160a01b03620100008304169163201b1cc89161223c91339161ffff90911690600401615043565b602060405180830381865afa158015612259573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061227d9190615060565b8061231b5750604051631d2e660b60e21b815233907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906374b9982c906122cf9060040161507d565b602060405180830381865afa1580156122ec573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061231091906150a1565b6001600160a01b0316145b6123375760405162461bcd60e51b8152600401610702906150be565b600061234d6631b7bab73a32b960c91b83611f3b565b61235690615317565b9050806123bd5760405162461bcd60e51b815260206004820152602f60248201527f47656e6572696354726169743a20617474656d707420746f2064656372656d6560448201526e373a103d32b9379031b7bab73a32b960891b6064820152608401610702565b60006123d46731b7b7b63237bbb760c11b84611f3b565b6123dd90615317565b905061240b6631b7bab73a32b960c91b846123f9600186615371565b6040516020016117a391815260200190565b6109556930b1ba34bb30ba34b7b760b11b846123f9844261518d565b600354600090819060ff168161243e82602061516f565b63ffffffff86166000908152600760205260408120805492935083926124639061513b565b80601f016020809104026020016040519081016040528092919081815260200182805461248f9061513b565b80156124dc5780601f106124b1576101008083540402835291602001916124dc565b820191906000526020600020905b8154815290600101906020018083116124bf57829003601f168201915b5050505050905060005b60035460ff90811690821610156126e25760ff80821660009081526002602052604090206001015416600981601381111561252357612523614959565b14806125405750600a81601381111561253e5761253e614959565b145b156126d957600061255560ff8416602061516f565b6040805160028082528183019092529192506000919060208201818036833750508651919250501561266a578461258d83601e615384565b61ffff16815181106125a1576125a16150ee565b602001015160f81c60f81b816000815181106125bf576125bf6150ee565b60200101906001600160f81b031916908160001a905350846125e283601f615384565b61ffff16815181106125f6576125f66150ee565b602001015160f81c60f81b81600181518110612614576126146150ee565b60200101906001600160f81b031916908160001a90535060206126368261539f565b60f01c61264391906153ec565b61264e90602061516f565b612659906040615384565b6126639088615384565b96506126d6565b600060f81b81600081518110612682576126826150ee565b60200101906001600160f81b031916908160001a905350600060f81b816001815181106126b1576126b16150ee565b60200101906001600160f81b031916908160001a9053506126d3602088615384565b96505b50505b506001016124e6565b5091969095509350505050565b6060610e598261302b565b6060610e5982613097565b61270d613c5b565b61272b6f6175746f67726170685f73746174657360801b600a613e7a565b612743696175746f67726170687360b01b600a613e7a565b61274b613e86565b565b60606000808061275c83612427565b9150915060008261ffff166001600160401b0381111561277e5761277e61473c565b6040519080825280601f01601f1916602001820160405280156127a8576020820181803683370190505b509050602080820190838301016000805b60035460ff9081169082161015612955576127d560208361518d565b60ff80831660009081526002602052604090206001015491935016600981601381111561280457612804614959565b14806128215750600a81601381111561281f5761281f614959565b145b156129235760ff8216600090815260086020526040812080546128439061513b565b80601f016020809104026020016040519081016040528092919081815260200182805461286f9061513b565b80156128bc5780601f10612891576101008083540402835291602001916128bc565b820191906000526020600020905b81548152906001019060200180831161289f57829003601f168201915b50505050509050878652602088019750805160208104816020820210156128e1576001015b9086526020909501946000905b80821015612913576020600183010283015187526020870196506001820191506128ee565b602081028a019950505050612945565b60ff821660009081526002602081905260408220612941910161540d565b8652505b50602093909301926001016127b9565b5092979650505050505050565b60008061297060088461544e565b915061297d826008615465565b6129879084615485565b9050915091565b60008060029054906101000a90046001600160a01b03166001600160a01b0316639d759d5f6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156129e2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612a0691906150a1565b6001600160a01b03166374b9982c600060029054906101000a90046001600160a01b03166001600160a01b031663b7ace66a6040518163ffffffff1660e01b8152600401600060405180830381865afa158015612a67573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052612a8f91908101906154ef565b6040518263ffffffff1660e01b8152600401612aab9190614946565b602060405180830381865afa158015612ac8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612aec91906150a1565b6040516331a9108f60e11b815263ffffffff841660048201526001600160a01b039190911690636352211e90602401602060405180830381865afa158015612b38573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e5991906150a1565b600d5460021961010090910460ff1601612bf5576000612b8b6b1bdddb995c97dcdd1bdc995960a21b83611f3b565b806020019051810190612b9e91906150a1565b6001600160a01b031603612bf257612bf26b1bdddb995c97dcdd1bdc995960a21b82612bc98461298e565b604080516001600160a01b039092166020830152016040516020818303038152906040526135a8565b50565b612bf26b1bdddb995c97dcdd1bdc995960a21b82612bc98461298e565b60015460ff1615612c1f57155b610849826001836141df565b6000612c3683613097565b90506000815111612c895760405162461bcd60e51b815260206004820152601b60248201527f4175746f6772617068203a206e6f2073746174657320666f756e6400000000006044820152606401610702565b600060018251612c999190615371565b9050600260ff16828281518110612cb257612cb26150ee565b602002602001015160ff1614612d305760405162461bcd60e51b815260206004820152603860248201527f4175746f6772617068203a206175746f6772617068206e6f742072657175657360448201527f746564206f7220616c72656164792066756c66696c6c656400000000000000006064820152608401610702565b6000612d3b8561302b565b905081815114612da85760405162461bcd60e51b815260206004820152603260248201527f4175746f6772617068203a2061207369676e61747572652077617320666f756e604482015271321030ba103a3434b9903837b9b4ba34b7b760711b6064820152608401610702565b6000612db38261431e565b905084818481518110612dc857612dc86150ee565b60200260200101819052506003848481518110612de757612de76150ee565b602002602001019060ff16908160ff1681525050612e0586826143c6565b612e0f868561442f565b505050505050565b6000600c826013811115612e2d57612e2d614959565b03612e3a57506001919050565b600d826013811115612e4e57612e4e614959565b03612e5b57506001919050565b600e826013811115612e6f57612e6f614959565b03612e7c57506001919050565b600f826013811115612e9057612e90614959565b03612e9d57506001919050565b6010826013811115612eb157612eb1614959565b03612ebe57506001919050565b6011826013811115612ed257612ed2614959565b03612edf57506001919050565b6012826013811115612ef357612ef3614959565b03612f0057506001919050565b6013826013811115612f1457612f14614959565b03612f2157506001919050565b506000919050565b60405163ffffffff8316602482015260009081903090869060440160408051601f198184030181529181526020820180516001600160e01b03166001600160e01b0319909416939093179092529051612f829190615523565b600060405180830381855afa9150503d8060008114612fbd576040519150601f19603f3d011682016040523d82523d6000602084013e612fc2565b606091505b50915091508161301f5760405162461bcd60e51b815260206004820152602260248201527f54726169743a20696e7465726e616c206d6574686f642063616c6c206661696c604482015261195960f21b6064820152608401610702565b60200151909152505050565b60606000613046696175746f67726170687360b01b84611f3b565b905080516000036130835760408051600080825260208201909252906121d6565b6060815260200190600190039081613067579050509392505050565b80806020019051810190611910919061553f565b606060006130b86f6175746f67726170685f73746174657360801b84611f3b565b905080516000036130d95760408051600080825260208201909252906121d6565b808060200190518101906119109190615600565b60008082600281111561310257613102614959565b905060008061311086612962565b915091508260ff1660010361315f5761312a816002615770565b61313590600161577f565b63ffffffff9092166000908152600b60205260409020549190911660ff1615159250610e59915050565b8260ff166002036131aa57613175816002615770565b61318090600161577f565b63ffffffff9092166000908152600c60205260409020549190911660ff1615159250610e59915050565b50505092915050565b60006131be826121de565b6132145760405162461bcd60e51b815260206004820152602160248201527f54726169743a20546f6b656e20646f6573206e6f7420686176652074726169746044820152602160f81b6064820152608401610702565b63ffffffff82166000908152600760205260408120613232916146ee565b60005b60035460ff90811690821610156132c95760ff80821660009081526002602052604090206001015416600981601381111561327257613272614959565b148061328f5750600a81601381111561328d5761328d614959565b145b156132c05760ff8216600090815260066020908152604080832063ffffffff8816845290915281206132c0916146ee565b50600101613235565b506132d5826000612c12565b6132e282600260006141df565b60405163ffffffff8316906000805160206158a883398151915290600090a2506001919050565b613312826121de565b61332157613321826001612c12565b61332a82610e4c565b61333b5761333b82600260016141df565b60035460009061334f9060ff16602061516f565b90508061ffff16825110156133a65760405162461bcd60e51b815260206004820152601e60248201527f54726169743a204d657373616765206e6f74206c6f6e6720656e6f75676800006044820152606401610702565b60008161ffff166001600160401b038111156133c4576133c461473c565b6040519080825280601f01601f1916602001820160405280156133ee576020820181803683370190505b509050602080820190840160005b60035460ff90811690821610156135605760ff8082166000908152600260205260409020600101548351911690600982601381111561343d5761343d614959565b148061345a5750600a82601381111561345857613458614959565b145b1561353a578781016020018051808752906000826001600160401b038111156134855761348561473c565b6040519080825280601f01601f1916602001820160405280156134af576020820181803683370190505b5090506020810160208404846020820210156134c9576001015b60005b818110156134eb576020948501805184529492909201916001016134cc565b50505080600660008860ff1660ff16815260200190815260200160002060008e63ffffffff1663ffffffff168152602001908152602001600020908161353191906151e8565b5050505061354b565b61354382612e17565b61354b578085525b505060209283019291909101906001016133fc565b5063ffffffff8616600090815260076020526040902061358084826151e8565b5060405163ffffffff8716906000805160206158a883398151915290600090a2505050505050565b6135b1826121de565b6135c0576135c0826001612c12565b6135c982610e4c565b61366e576135da82600260016141df565b61366e82600980546135eb9061513b565b80601f01602080910402602001604051908101604052809291908181526020018280546136179061513b565b80156136645780601f1061363957610100808354040283529160200191613664565b820191906000526020600020905b81548152906001019060200180831161364757829003601f168201915b5050505050613309565b60008381526004602090815260408083205460ff908116808552600290935292206001015490911661369f81612e17565b156136ec5760405162461bcd60e51b815260206004820152601e60248201527f54726169743a2043616e6e6f7420736574206c6f6769632076616c75652100006044820152606401610702565b6003546000906137009060ff16602061516f565b63ffffffff86166000908152600760205260408120805492935090916137259061513b565b80601f01602080910402602001604051908101604052809291908181526020018280546137519061513b565b801561379e5780601f106137735761010080835404028352916020019161379e565b820191906000526020600020905b81548152906001019060200180831161378157829003601f168201915b5050505050905080516000036137f8578161ffff166001600160401b038111156137ca576137ca61473c565b6040519080825280601f01601f1916602001820160405280156137f4576020820181803683370190505b5090505b6000600984601381111561380e5761380e614959565b148061382b5750600a84601381111561382957613829614959565b145b15613866575060ff8416600090815260066020908152604080832063ffffffff8a1684529091529020859061386082826151e8565b5061386c565b50602085015b80516020868102840181019190915263ffffffff8816600090815260079091526040902061389a83826151e8565b5050505060405163ffffffff8516906000805160206158a883398151915290600090a25050505050565b60016138cf826117b7565b60ff161461391f5760405162461bcd60e51b815260206004820152601c60248201527f4175746f6772617068203a207472616974206e6f7420616374697665000000006044820152606401610702565b600061392a82613097565b8051909150156139c657600360ff1681600183516139489190615371565b81518110613958576139586150ee565b602002602001015160ff16146139c65760405162461bcd60e51b815260206004820152602d60248201527f4175746f6772617068203a206f6e6c79206f6e6520616374697665207265717560448201526c195cdd081c195c9b5a5d1d1959609a1b6064820152608401610702565b80516001018152604080516020019052600281600183516139e79190615371565b815181106139f7576139f76150ee565b602002602001019060ff16908160ff1681525050613a15828261442f565b61084982612201565b60ff8281166000908152600260209081526040808320600101548151838152808301909252606094169291602082018180368337019050509050602081016009836013811115613a7057613a70614959565b1480613a8d5750600a836013811115613a8b57613a8b614959565b145b15613b455760ff8616600090815260066020908152604080832063ffffffff8916845290915290208054613ac09061513b565b80601f0160208091040260200160405190810160405280929190818152602001828054613aec9061513b565b8015613b395780601f10613b0e57610100808354040283529160200191613b39565b820191906000526020600020905b815481529060010190602001808311613b1c57829003601f168201915b50505050509150613c52565b613b4e83612e17565b15613b815760ff8616600090815260026020526040902060010154613b7c90610100900460e01b8683612f29565b613c52565b63ffffffff851660009081526007602052604081208054613ba19061513b565b80601f0160208091040260200160405190810160405280929190818152602001828054613bcd9061513b565b8015613c1a5780601f10613bef57610100808354040283529160200191613c1a565b820191906000526020600020905b815481529060010190602001808311613bfd57829003601f168201915b5050505050905060008760ff166020613c33919061516f565b613c3e906020615384565b61ffff169190910151602084019081529150505b50949350505050565b600054600160b01b900460ff1615613cb55760405162461bcd60e51b815260206004820152601b60248201527f54726169743a20616c726561647920696e697469616c697a65642100000000006044820152606401610702565b613cea6565786973747360d01b600c7fb7a11b0101698da6b700a2cbeb884e47cc482bbfbdc8adfa78bfbf389bfab352614471565b613d246a1a5b9a5d1a585b1a5e995960aa1b600c7f346ab9d0d784b641d01667f58ba89f4b4e1d5c676f04880e7744af0824d02ce7614471565b613d3e6b1bdddb995c97dcdd1bdc995960a21b600b613e7a565b613d7a6c1bdddb995c97d8dd5c9c995b9d609a1b60137ff22cac85b6325a870a6880df699bc73f929a1cdbe07090a5c8558e02116389a2614471565b613d956c6d6f6469666965725f6c6f636b60981b6001613e7a565b613db67236b7bb32b6b2b73a2fb832b936b4b9b9b4b7b760691b6002613e7a565b613dce6930b1ba34bb30ba34b7b760b11b6007613e7a565b613de46731b7b7b63237bbb760c11b6007613e7a565b613dfc6932bc3834b930ba34b7b760b11b6007613e7a565b613e116631b7bab73a32b960c91b6002613e7a565b613e29691c9bde585b1d1e57da5960b21b6007613e7a565b613e456d1c9bde585b1d1e57d85b5bdd5b9d60921b6007613e7a565b61274b6573746174757360d01b600d7f8174263b3ef0075354f0562e27c2370f5b2dcd95d8ce34c99c62b222deecc0d8614471565b61084982826000614478565b600080613e91614561565b9150915060005b60035460ff908116908216101561412b5760ff808216600090815260026020908152604080832081516101008101909252805482526001810154939491939092840191166013811115613eed57613eed614959565b6013811115613efe57613efe614959565b81526001820154610100900460e01b6001600160e01b0319166020820152600282018054604090920191613f319061513b565b80601f0160208091040260200160405190810160405280929190818152602001828054613f5d9061513b565b8015613faa5780601f10613f7f57610100808354040283529160200191613faa565b820191906000526020600020905b815481529060010190602001808311613f8d57829003601f168201915b5050509183525050600382015460ff90811615156020830152600483015460408301526005830154606083015260069092015490911615156080909101528051909150691c9bde585b1d1e57da5960b21b1480614018575080516d1c9bde585b1d1e57d85b5bdd5b9d60921b145b156140ce57805160609069236421a7a4e2e1a825a760b21b0161405757604080516020810187905201604051602081830303815290604052905061408e565b81516d236421a7a4e2e1a827a4a422a46360921b0161408e5760408051602081018690520160405160208183030381529060405290505b60ff83166000908152600a602052604090206140aa82826151e8565b5060ff83166000908152600260208190526040909120016140cb82826151e8565b50505b80516b24222466a3682322e42366a760a21b016141225760408051600060208201520160408051601f1981840301815291815260ff8416600090815260026020819052919020019061412090826151e8565b505b50600101613e98565b5060006141496c6d6f6469666965725f6c6f636b60981b6000611f3b565b61415290615317565b600d805460ff1916929091119190911790556141857236b7bb32b6b2b73a2fb832b936b4b9b9b4b7b760691b6000611f3b565b8060200190518101906141989190615796565b600d60016101000a81548160ff021916908360ff1602179055506141ba61274d565b6009906141c790826151e8565b50506000805460ff60b01b1916600160b01b17905550565b6000806141eb85612962565b9092509050600184600281111561420457614204614959565b0361428657821561424e5761421a816002615770565b63ffffffff83166000908152600b60205260409020805460ff9283169281169290921760ff19909216919091179055610f59565b614259816002615770565b63ffffffff83166000908152600b60205260409020805460ff19811692191660ff16919091179055610f59565b600284600281111561429a5761429a614959565b03610f595782156142e4576142b0816002615770565b63ffffffff83166000908152600c60205260409020805460ff9283169281169290921760ff19909216919091179055610f59565b6142ef816002615770565b63ffffffff83166000908152600c60205260409020805460ff19811692191660ff169190911790555050505050565b60608151600161432e919061518d565b6001600160401b038111156143455761434561473c565b60405190808252806020026020018201604052801561437857816020015b60608152602001906001900390816143635790505b50905060005b825181101561144057828181518110614399576143996150ee565b60200260200101518282815181106143b3576143b36150ee565b602090810291909101015260010161437e565b6000816040516020016143d9919061501d565b6040516020818303038152906040529050606081806020019051810190614400919061553f565b905060005b835181101561441657600101614405565b50611f35696175746f67726170687360b01b85846135a8565b6000816040516020016144429190615030565b60405160208183030381529060405290506109556f6175746f67726170685f73746174657360801b84836135a8565b6109558383835b60035460008481526004602052604090205460ff91821691161561449b57600080fd5b6000848152600460209081526040808320805460ff861660ff1991821681179092559084526002909252909120858155600181810180549293879391929116908360138111156144ed576144ed614959565b021790555060018101805464ffffffff00191661010060e086901c0217905560ff82166000908152600a60205260409020600282019061452d90826157b1565b506003805460ff16906000614541836152a7565b91906101000a81548160ff021916908360ff160217905550505050505050565b604051631d2e660b60e21b815260206004820152600e60248201526d0a082b29a8a9ca8be9a82a8a492b60931b6044820152600090819081906001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016906374b9982c90606401602060405180830381865afa1580156145eb573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061460f91906150a1565b90506001600160a01b0381166146795760405162461bcd60e51b815260206004820152602960248201527f54726169743a205041594d454e545f4d4154524958206164647265737320636160448201526806e6e6f7420626520360bc1b6064820152608401610702565b60408051633583a33f60e21b81526005600482015281516001600160a01b0384169263d60e8cfc92602480820193918290030181865afa1580156146c1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906146e59190615883565b92509250509091565b5080546146fa9061513b565b6000825580601f1061470a575050565b601f016020900490600052602060002090810190612bf291905b808211156147385760008155600101614724565b5090565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f191681016001600160401b038111828210171561477a5761477a61473c565b604052919050565b60006001600160401b0382111561479b5761479b61473c565b5060051b60200190565b63ffffffff81168114612bf257600080fd5b600060208083850312156147ca57600080fd5b82356001600160401b038111156147e057600080fd5b8301601f810185136147f157600080fd5b80356148046147ff82614782565b614752565b81815260059190911b8201830190838101908783111561482357600080fd5b928401925b8284101561484a57833561483b816147a5565b82529284019290840190614828565b979650505050505050565b60008060006040848603121561486a57600080fd5b8335614875816147a5565b925060208401356001600160401b038082111561489157600080fd5b818601915086601f8301126148a557600080fd5b8135818111156148b457600080fd5b8760208285010111156148c657600080fd5b6020830194508093505050509250925092565b6000602082840312156148eb57600080fd5b8135611910816147a5565b60005b838110156149115781810151838201526020016148f9565b50506000910152565b600081518084526149328160208601602086016148f6565b601f01601f19169290920160200192915050565b602081526000611910602083018461491a565b634e487b7160e01b600052602160045260246000fd5b600082825180855260208086019550808260051b8401018186016000805b85811015614a4157601f19878503018a5282516101008151865286820151601481106149c757634e487b7160e01b85526021600452602485fd5b868801526040828101516001600160e01b031916908701526060808301518188018390526149f78389018261491a565b92505050608080830151614a0e8289018215159052565b505060a0828101519087015260c0808301519087015260e09182015115159190950152988401989184019160010161498d565b509198975050505050505050565b60208152614a6460208201835161ffff169052565b60006020830151614a7b604084018261ffff169052565b5060408301516001600160a01b03811660608401525060608301516080830152608083015160a083015260a08301516101208060c0850152614ac161014085018361496f565b915060c0850151614ad760e086018260ff169052565b5060e085015161010085810191909152909401515115159390920192909252919050565b60008282518085526020808601955060208260051b8401016020860160005b84811015614b4857601f19868403018952614b3683835161491a565b98840198925090830190600101614b1a565b5090979650505050505050565b60008151808452602080850194506020840160005b83811015614b8957815160ff1687529582019590820190600101614b6a565b509495945050505050565b604081526000614ba76040830185614afb565b8281036020840152614bb98185614b55565b95945050505050565b6001600160a01b0381168114612bf257600080fd5b8015158114612bf257600080fd5b60006001600160401b03821115614bfe57614bfe61473c565b50601f01601f191660200190565b600082601f830112614c1d57600080fd5b8135614c2b6147ff82614be5565b818152846020838601011115614c4057600080fd5b816020850160208301376000918101602001919091529392505050565b600082601f830112614c6e57600080fd5b81356020614c7e6147ff83614782565b82815260059290921b84018101918181019086841115614c9d57600080fd5b8286015b84811015614cdc5780356001600160401b03811115614cc05760008081fd5b614cce8986838b0101614c0c565b845250918301918301614ca1565b509695505050505050565b6000806000808486036080811215614cfe57600080fd5b8535614d0981614bc2565b9450602086013561ffff81168114614d2057600080fd5b93506020603f1982011215614d3457600080fd5b50604051602081016001600160401b038282108183111715614d5857614d5861473c565b8160405260408801359150614d6c82614bd7565b81835291935060608701359180831115614d8557600080fd5b5050614d9387828801614c5d565b91505092959194509250565b60008060408385031215614db257600080fd5b8235614dbd816147a5565b915060208301356001600160401b03811115614dd857600080fd5b614de485828601614c0c565b9150509250929050565b602081526000611910602083018461496f565b600080600060608486031215614e1657600080fd5b833592506020840135614e28816147a5565b915060408401356001600160401b03811115614e4357600080fd5b614e4f86828701614c0c565b9150509250925092565b60008060408385031215614e6c57600080fd5b8235614e7781614bc2565b91506020830135614e87816147a5565b809150509250929050565b600082601f830112614ea357600080fd5b81356020614eb36147ff83614782565b8083825260208201915060208460051b870101935086841115614ed557600080fd5b602086015b84811015614cdc5780358352918301918301614eda565b600080600060608486031215614f0657600080fd5b8335614f11816147a5565b925060208401356001600160401b0380821115614f2d57600080fd5b614f3987838801614e92565b93506040860135915080821115614f4f57600080fd5b50614e4f86828701614c5d565b60008060408385031215614f6f57600080fd5b823591506020830135614e87816147a5565b600060208083016020845280855180835260408601915060408160051b87010192506020870160005b8281101561295557603f19888603018452614fc685835161491a565b94509285019290850190600101614faa565b60008060408385031215614feb57600080fd5b8235614ff6816147a5565b915060208301356001600160401b0381111561501157600080fd5b614de485828601614e92565b6020815260006119106020830184614afb565b6020815260006119106020830184614b55565b6001600160a01b0392909216825261ffff16602082015260400190565b60006020828403121561507257600080fd5b815161191081614bd7565b6020808252600a908201526920a1aa24a7a72fa42aa160b11b604082015260600190565b6000602082840312156150b357600080fd5b815161191081614bc2565b6020808252601690820152752a3930b4ba1d102737ba1030baba3437b934bd32b21760511b604082015260600190565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b600061ffff80831681810361513157615131615104565b6001019392505050565b600181811c9082168061514f57607f821691505b60208210810361144057634e487b7160e01b600052602260045260246000fd5b61ffff81811683821602808216919082811461204057612040615104565b80820180821115610e5957610e59615104565b601f821115610955576000816000526020600020601f850160051c810160208610156151c95750805b601f850160051c820191505b81811015612e0f578281556001016151d5565b81516001600160401b038111156152015761520161473c565b6152158161520f845461513b565b846151a0565b602080601f83116001811461524a57600084156152325750858301515b600019600386901b1c1916600185901b178555612e0f565b600085815260208120601f198616915b828110156152795788860151825594840194600190910190840161525a565b50858210156152975787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b600060ff821660ff81036152bd576152bd615104565b60010192915050565b60208082526031908201527f54726169743a2064697373616c6f776564212043616e6e6f7420736574206f776040820152706e65725f73746f7265642076616c75652160781b606082015260800190565b805160208083015191908110156114405760001960209190910360031b1b16919050565b60006020828403121561534d57600080fd5b8151611910816147a5565b600063ffffffff80831681810361513157615131615104565b81810381811115610e5957610e59615104565b61ffff81811683821601908082111561210b5761210b615104565b805160208201516001600160f01b031980821692919060028310156153ce5780818460020360031b1b83161693505b505050919050565b634e487b7160e01b600052601260045260246000fd5b600061ffff80841680615401576154016153d6565b92169190910492915050565b6000615419825461513b565b82601f82111561542f5783600052602060002090505b54915060208110156114405760001960209190910360031b1b16919050565b600063ffffffff80841680615401576154016153d6565b63ffffffff81811683821602808216919082811461204057612040615104565b63ffffffff82811682821603908082111561210b5761210b615104565b600082601f8301126154b357600080fd5b81516154c16147ff82614be5565b8181528460208386010111156154d657600080fd5b6154e78260208301602087016148f6565b949350505050565b60006020828403121561550157600080fd5b81516001600160401b0381111561551757600080fd5b6154e7848285016154a2565b600082516155358184602087016148f6565b9190910192915050565b6000602080838503121561555257600080fd5b82516001600160401b038082111561556957600080fd5b818501915085601f83011261557d57600080fd5b815161558b6147ff82614782565b81815260059190911b830184019084810190888311156155aa57600080fd5b8585015b838110156155e2578051858111156155c65760008081fd5b6155d48b89838a01016154a2565b8452509186019186016155ae565b5098975050505050505050565b805160ff811681146110e457600080fd5b6000602080838503121561561357600080fd5b82516001600160401b0381111561562957600080fd5b8301601f8101851361563a57600080fd5b80516156486147ff82614782565b81815260059190911b8201830190838101908783111561566757600080fd5b928401925b8284101561484a5761567d846155ef565b8252928401929084019061566c565b600181815b808511156156c75781600019048211156156ad576156ad615104565b808516156156ba57918102915b93841c9390800290615691565b509250929050565b6000826156de57506001610e59565b816156eb57506000610e59565b8160018114615701576002811461570b57615727565b6001915050610e59565b60ff84111561571c5761571c615104565b50506001821b610e59565b5060208310610133831016604e8410600b841016171561574a575081810a610e59565b615754838361568c565b806000190482111561576857615768615104565b029392505050565b600061191060ff8416836156cf565b8082028115828204841417610e5957610e59615104565b6000602082840312156157a857600080fd5b611910826155ef565b8181036157bc575050565b6157c6825461513b565b6001600160401b038111156157dd576157dd61473c565b6157eb8161520f845461513b565b6000601f82116001811461581f57600083156158075750848201545b600019600385901b1c1916600184901b178455610f59565b600085815260209020601f19841690600086815260209020845b838110156158595782860154825560019586019590910190602001615839565b50858310156152975793015460001960f8600387901b161c19169092555050600190811b01905550565b6000806040838503121561589657600080fd5b50508051602090910151909290915056fe00de82671dd733bef7e0b3d4c4929c757de4d6e09dd1facc73a334311aeeeb77a264697066735822122018031f58b9d02726e0f453a34a307f6c4efb9b4dff5a1fb165f9ea543e0800db64736f6c63430008190033000000000000000000000000dbd9608fbca959828c1615d29aeb3dc872d40ae2