2 txs
3 calls
constructor
constructor(address _galaxisRegistry)
functions
adminType
viewfunction adminType() view returns (uint256)
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)
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[], tuple[])
getTraitConfig
viewfunction getTraitConfig(bytes32 key) view returns (uint8, bytes)
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)
static_modifier_lock
viewfunction static_modifier_lock() view returns (bool)
static_movement_permission
viewfunction static_movement_permission() view returns (uint8)
status
viewfunction status(uint32 _tokenId) view returns (uint8)
tellEverything
viewfunction tellEverything() view returns (tuple)
thisTraitConfig
viewfunction thisTraitConfig(uint256) view returns (bytes)
thisTraitConfigCount
viewfunction thisTraitConfigCount() view returns (uint256)
TRAIT_TYPE
purefunction TRAIT_TYPE() pure returns (uint16)
traitId
viewfunction traitId() view returns (uint16)
traitIsSetup
viewfunction traitIsSetup() view returns (bool)
version
purefunction version() pure returns (uint256)
_setup
nonpayablefunction _setup()
addTrait
nonpayablefunction addTrait(uint32[] _tokenIds)
addTraitWithAdminDetails
nonpayablefunction addTraitWithAdminDetails(uint32[] _tokenIds, uint256 value)
decrementCounter
nonpayablefunction decrementCounter(uint32 _tokenId)
incrementCounter
nonpayablefunction incrementCounter(uint32 _tokenId)
init
nonpayablefunction init()
removeTrait
nonpayablefunction removeTrait(uint32[] _tokenIds) returns (bool)
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, bytes[] _traitConfig, bytes[] _defaultPropValues)
events
tokenTraitChangeEvent
event tokenTraitChangeEvent(uint32 indexed _tokenId)
errors
No errors.
creation bytecode
0x60a06040526000805461ffff60b01b191681556002556006805460ff19169055348015602a57600080fd5b506040516153393803806153398339810160408190526047916057565b6001600160a01b03166080526085565b600060208284031215606857600080fd5b81516001600160a01b0381168114607e57600080fd5b9392505050565b60805161525a6100df600039600081816103fc015281816106580152818161080e015281816110790152818161120101528181611684015281816117fe01528181611a9d01528181612021015261405f015261525a6000f3fe608060405234801561001057600080fd5b50600436106102485760003560e01c80637b3ee7fc1161013b578063b2ae54b8116100b8578063e1c7392a1161007c578063e1c7392a14610568578063e4cf0e2914610570578063e90cd93614610578578063f22cac85146105a9578063ff89d2e0146105bc57600080fd5b8063b2ae54b8146104f8578063b7a11b0114610502578063c45af26c14610515578063c6402b5f14610527578063c9170a001461053a57600080fd5b806388afafec116100ff57806388afafec1461049b57806396b039ed146104ae57806396ec6fec146104ce5780639e81c315146104dc5780639f3342b6146104ef57600080fd5b80637b3ee7fc146102605780637d4898ef1461044f5780638174263b14610462578063848098db146104755780638657810a1461048857600080fd5b8063346ab9d0116101c957806363f7f7921161018d57806363f7f792146103995780636b122fe0146103ce578063759cd04c146103e45780637671114d146103f757806377c6614a1461043657600080fd5b8063346ab9d01461033e57806353bdfa2e1461035157806354fd4d5014610364578063559d86b5146103785780635bf63c881461038b57600080fd5b80632a65a22d116102105780632a65a22d146102bf5780632ca9fc21146102d55780632eed4066146102f65780632f151b7614610316578063309f1f501461032b57600080fd5b80630162e0c41461024d5780630a60854c14610262578063158ef93e14610275578063241d2b3d1461029e5780632978b132146102ab575b600080fd5b61026061025b36600461435e565b6105c5565b005b6102606102703660046143a2565b61077b565b60005461028990600160b01b900460ff1681565b60405190151581526020015b60405180910390f35b6010546102899060ff1681565b60005461028990600160b81b900460ff1681565b600b5b60405161ffff9091168152602001610295565b6102e86102e33660046143de565b6108bd565b604051610295929190614471565b610309610304366004614491565b6108f7565b60405161029591906144ac565b61031e610ce0565b60405161029591906145ea565b6102606103393660046147b0565b610da5565b61028961034c366004614491565b610fd2565b61028961035f3660046143a2565b610fe5565b6378a57eb95b604051908152602001610295565b61026061038636600461483f565b61116e565b6000546102c29061ffff1681565b6103bc6103a7366004614491565b600e6020526000908152604090205460ff1681565b60405160ff9091168152602001610295565b6103d66112bb565b60405161029592919061488c565b6102606103f23660046148ba565b6115f1565b61041e7f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b039091168152602001610295565b60005461041e906201000090046001600160a01b031681565b61026061045d366004614491565b61176b565b6103bc610470366004614491565b6118aa565b61026061048336600461496f565b611a0a565b6103096104963660046143de565b611be7565b6103096104a93660046149d8565b611c93565b6104c16104bc3660046143a2565b611d9f565b6040516102959190614a04565b6430b236b4b760d91b61036a565b6104c16104ea366004614a5b565b611e69565b61036a60115481565b6378a495e961036a565b610289610510366004614491565b611f35565b6010546103bc90610100900460ff1681565b610260610535366004614491565b611f8e565b61054d610548366004614491565b6120cd565b6040805161ffff938416815292909116602083015201610295565b610260612395565b6103096123fe565b61058b610586366004614491565b612613565b6040805163ffffffff909316835260ff909116602083015201610295565b61041e6105b7366004614491565b61263f565b61036a60025481565b600054604051630403639960e31b81526001600160a01b03620100008304169163201b1cc89161060091339161ffff90911690600401614a9e565b602060405180830381865afa15801561061d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106419190614abb565b806106df5750604051631d2e660b60e21b815233907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906374b9982c9061069390600401614add565b602060405180830381865afa1580156106b0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106d49190614b01565b6001600160a01b0316145b6107045760405162461bcd60e51b81526004016106fb90614b1e565b60405180910390fd5b61070d8261077b565b60005b82518110156107765761076e6c61646d696e5f64657461696c7360981b84838151811061073f5761073f614b4e565b60200260200101518460405160200161075a91815260200190565b6040516020818303038152906040526115f1565b600101610710565b505050565b600054604051630403639960e31b81526001600160a01b03620100008304169163201b1cc8916107b691339161ffff90911690600401614a9e565b602060405180830381865afa1580156107d3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107f79190614abb565b806108955750604051631d2e660b60e21b815233907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906374b9982c9061084990600401614add565b602060405180830381865afa158015610866573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061088a9190614b01565b6001600160a01b0316145b6108b15760405162461bcd60e51b81526004016106fb90614b1e565b6108ba8161280d565b50565b600090815260036020908152604091829020805460029091015483518084019190915283518082039093018352830190925260ff90911691565b6060600080610905846120cd565b9092509050600061ffff83166001600160401b038111156109285761092861426b565b6040519080825280601f01601f191660200182016040528015610952576020820181803683370190505b5063ffffffff86166000908152600a602052604081208054929350909161097890614b64565b80601f01602080910402602001604051908101604052809291908181526020018280546109a490614b64565b80156109f15780601f106109c6576101008083540402835291602001916109f1565b820191906000526020600020905b8154815290600101906020018083116109d457829003601f168201915b50505050509050610a0186610fd2565b610a9357600c8054610a1290614b64565b80601f0160208091040260200160405190810160405280929190818152602001828054610a3e90614b64565b8015610a8b5780601f10610a6057610100808354040283529160200191610a8b565b820191906000526020600020905b815481529060010190602001808311610a6e57829003601f168201915b505050505090505b8051600003610af657600654610aad9060ff166020614bb4565b61ffff166001600160401b03811115610ac857610ac861426b565b6040519080825280601f01601f191660200182016040528015610af2576020820181803683370190505b5090505b602082810190848401016000805b60065460ff9081169082161015610cd257610b20602083614bd2565b60ff808316600090815260056020526040902060010154919350166009816013811115610b4f57610b4f6143f7565b1480610b6c5750600a816013811115610b6a57610b6a6143f7565b145b15610c7f5760ff8216600090815260096020908152604080832063ffffffff8f16845290915281208054610b9f90614b64565b80601f0160208091040260200160405190810160405280929190818152602001828054610bcb90614b64565b8015610c185780601f10610bed57610100808354040283529160200191610c18565b820191906000526020600020905b815481529060010190602001808311610bfb57829003601f168201915b5050505050905088865260208901985080516020810481602082021015610c3d576001015b9086526020909501946000905b80821015610c6f57602060018301028301518752602087019650600182019150610c4a565b602081028b019a50505050610cc2565b610c888161294b565b15610cbb5760ff8216600090815260056020526040902060010154610cb690610100900460e01b8c87612a5d565b610cc2565b8286015185525b5060209390930192600101610b04565b509398975050505050505050565b604080516101208101825260008082526020820181905291810182905260608082018390526080820183905260a0820181905260c0820183905260e082018390526101008201529080610d316112bb565b604080516101208101825260005461ffff81168252600b60208301526201000090046001600160a01b0316918101919091526378a495e960608201526378a57eb9608082015260a081019290925260065460ff1660c08301526430b236b4b760d91b60e08301526101008201529392505050565b600054600160b01b900460ff1615610dff5760405162461bcd60e51b815260206004820152601b60248201527f54726169743a20616c726561647920696e697469616c697a656421000000000060448201526064016106fb565b600054600160b81b900460ff1615610e515760405162461bcd60e51b815260206004820152601560248201527454726169743a20616c72656164792073657475702160581b60448201526064016106fb565b600080546001600160b01b031916620100006001600160a01b0387160261ffff19161761ffff85161790558151610e8f9060019060208501906141a9565b5060005b81518160ff161015610ef457818160ff1681518110610eb457610eb4614b4e565b6020026020010151600d60008360ff1660ff1681526020019081526020016000209081610ee19190614c35565b5080610eec81614cf4565b915050610e93565b50815160025560005b82518160ff161015610fb8576000838260ff1681518110610f2057610f20614b4e565b6020026020010151806020019051810190610f3b9190614d13565b6020808201516000908152600390915260409020815181549293508392829060ff19166001836009811115610f7257610f726143f7565b021790555060208281015160018301556040928301516002909201919091559182015160ff84166000908152600490935291205580610fb081614cf4565b915050610efd565b5050506000805460ff60b81b1916600160b81b1790555050565b6000610fdf826002612b5f565b92915050565b60008054604051630403639960e31b81526001600160a01b03620100008304169163201b1cc89161102191339161ffff90911690600401614a9e565b602060405180830381865afa15801561103e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110629190614abb565b806111005750604051631d2e660b60e21b815233907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906374b9982c906110b490600401614add565b602060405180830381865afa1580156110d1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110f59190614b01565b6001600160a01b0316145b61111c5760405162461bcd60e51b81526004016106fb90614b1e565b60005b82518160ff16101561116357611150838260ff168151811061114357611143614b4e565b6020026020010151612c25565b508061115b81614cf4565b91505061111f565b50600190505b919050565b600054604051630403639960e31b81526001600160a01b03620100008304169163201b1cc8916111a991339161ffff90911690600401614a9e565b602060405180830381865afa1580156111c6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111ea9190614abb565b806112885750604051631d2e660b60e21b815233907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906374b9982c9061123c90600401614add565b602060405180830381865afa158015611259573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061127d9190614b01565b6001600160a01b0316145b6112a45760405162461bcd60e51b81526004016106fb90614b1e565b6112ae8282612d7b565b6112b78261301a565b5050565b600654606090819060009060ff166001600160401b038111156112e0576112e061426b565b60405190808252806020026020018201604052801561134e57816020015b6040805161010081018252600080825260208083018290529282018190526060808301526080820181905260a0820181905260c0820181905260e082015282526000199092019101816112fe5790505b50905060005b60065460ff90811690821610156114cb5760ff8082166000908152600560209081526040918290208251610100810190935280548352600181015492939092918401911660138111156113a9576113a96143f7565b60138111156113ba576113ba6143f7565b81526001820154610100900460e01b6001600160e01b03191660208201526002820180546040909201916113ed90614b64565b80601f016020809104026020016040519081016040528092919081815260200182805461141990614b64565b80156114665780601f1061143b57610100808354040283529160200191611466565b820191906000526020600020905b81548152906001019060200180831161144957829003601f168201915b5050509183525050600382015460ff908116151560208301526004830154604083015260058301546060830152600690920154821615156080909101528351849184169081106114b8576114b8614b4e565b6020908102919091010152600101611354565b5060006002546001600160401b038111156114e8576114e861426b565b60405190808252806020026020018201604052801561153357816020015b60408051606081018252600080825260208083018290529282015282526000199092019101816115065790505b50905060005b6002548160ff1610156115e75760ff8082166000908152600460209081526040808320548352600390915290819020815160608101909252805491929091839116600981111561158b5761158b6143f7565b600981111561159c5761159c6143f7565b815260200160018201548152602001600282015481525050828260ff16815181106115c9576115c9614b4e565b602002602001018190525080806115df90614cf4565b915050611539565b5090939092509050565b600054604051630403639960e31b81526001600160a01b03620100008304169163201b1cc89161162c91339161ffff90911690600401614a9e565b602060405180830381865afa158015611649573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061166d9190614abb565b8061170b5750604051631d2e660b60e21b815233907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906374b9982c906116bf90600401614add565b602060405180830381865afa1580156116dc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117009190614b01565b6001600160a01b0316145b6117275760405162461bcd60e51b81526004016106fb90614b1e565b6b1bdddb995c97dcdd1bdc995960a21b83036117555760405162461bcd60e51b81526004016106fb90614d78565b61175e8261301a565b6107768383836130cd565b565b600054604051630403639960e31b81526001600160a01b03620100008304169163201b1cc8916117a691339161ffff90911690600401614a9e565b602060405180830381865afa1580156117c3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117e79190614abb565b806118855750604051631d2e660b60e21b815233907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906374b9982c9061183990600401614add565b602060405180830381865afa158015611856573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061187a9190614b01565b6001600160a01b0316145b6118a15760405162461bcd60e51b81526004016106fb90614b1e565b6108ba816133e9565b6000806118b683611f35565b156119f15760006118d46930b1ba34bb30ba34b7b760b11b85611c93565b6118dd90614dc9565b905060006118f86932bc3834b930ba34b7b760b11b86611c93565b61190190614dc9565b905060006119196631b7bab73a32b960c91b87611c93565b61192290614dc9565b9050600082900361193c5761193942610e10614bd2565b91505b80156119e8574283111580156119525750814211155b156119df5760105460021961010090910460ff16016119d65760006119866b1bdddb995c97dcdd1bdc995960a21b88611c93565b8060200190518101906119999190614b01565b905060006119a68861263f565b9050806001600160a01b0316826001600160a01b0316036119ca57600195506119cf565b600295505b50506119ed565b600193506119ed565b600293506119ed565b600393505b5050505b806003811115611a0357611a036143f7565b9392505050565b600054604051630403639960e31b81526001600160a01b03620100008304169163201b1cc891611a4591339161ffff90911690600401614a9e565b602060405180830381865afa158015611a62573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a869190614abb565b80611b245750604051631d2e660b60e21b815233907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906374b9982c90611ad890600401614add565b602060405180830381865afa158015611af5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b199190614b01565b6001600160a01b0316145b611b405760405162461bcd60e51b81526004016106fb90614b1e565b611b498361301a565b60005b82518160ff161015611be1576000838260ff1681518110611b6f57611b6f614b4e565b602002602001015190506b1bdddb995c97dcdd1bdc995960a21b8103611ba75760405162461bcd60e51b81526004016106fb90614d78565b611bce8186858560ff1681518110611bc157611bc1614b4e565b60200260200101516130cd565b5080611bd981614cf4565b915050611b4c565b50505050565b60018181548110611bf757600080fd5b906000526020600020016000915090508054611c1290614b64565b80601f0160208091040260200160405190810160405280929190818152602001828054611c3e90614b64565b8015611c8b5780601f10611c6057610100808354040283529160200191611c8b565b820191906000526020600020905b815481529060010190602001808311611c6e57829003601f168201915b505050505081565b60008281526007602090815260408083205460ff908116808552600590935292206001015460609216611cc584610fd2565b158015611cd85750611cd68161294b565b155b15611d845760ff821660009081526005602052604090206002018054611cfd90614b64565b80601f0160208091040260200160405190810160405280929190818152602001828054611d2990614b64565b8015611d765780601f10611d4b57610100808354040283529160200191611d76565b820191906000526020600020905b815481529060010190602001808311611d5957829003601f168201915b505050505092505050610fdf565b611d8e8285613498565b92505050610fdf565b505092915050565b6060600082516001600160401b03811115611dbc57611dbc61426b565b604051908082528060200260200182016040528015611def57816020015b6060815260200190600190039081611dda5790505b50905060005b83518163ffffffff161015611e6257611e2c848263ffffffff1681518110611e1f57611e1f614b4e565b60200260200101516108f7565b828263ffffffff1681518110611e4457611e44614b4e565b60200260200101819052508080611e5a90614ded565b915050611df5565b5092915050565b6060600082516001600160401b03811115611e8657611e8661426b565b604051908082528060200260200182016040528015611eb957816020015b6060815260200190600190039081611ea45790505b50905060005b83518163ffffffff161015611f2d57611ef7848263ffffffff1681518110611ee957611ee9614b4e565b602002602001015186611c93565b828263ffffffff1681518110611f0f57611f0f614b4e565b60200260200101819052508080611f2590614ded565b915050611ebf565b509392505050565b600080611f43836001612b5f565b90506000611f5b671a5b9d995c9d195960c21b6108bd565b915050600081806020019051810190611f749190614abb565b90508015611f855750501592915050565b50909392505050565b600054604051630403639960e31b81526001600160a01b03620100008304169163201b1cc891611fc991339161ffff90911690600401614a9e565b602060405180830381865afa158015611fe6573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061200a9190614abb565b806120a85750604051631d2e660b60e21b815233907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906374b9982c9061205c90600401614add565b602060405180830381865afa158015612079573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061209d9190614b01565b6001600160a01b0316145b6120c45760405162461bcd60e51b81526004016106fb90614b1e565b6108ba816136d5565b600654600090819060ff16816120e4826020614bb4565b63ffffffff86166000908152600a602052604081208054929350839261210990614b64565b80601f016020809104026020016040519081016040528092919081815260200182805461213590614b64565b80156121825780601f1061215757610100808354040283529160200191612182565b820191906000526020600020905b81548152906001019060200180831161216557829003601f168201915b5050505050905060005b60065460ff90811690821610156123885760ff8082166000908152600560205260409020600101541660098160138111156121c9576121c96143f7565b14806121e65750600a8160138111156121e4576121e46143f7565b145b1561237f5760006121fb60ff84166020614bb4565b60408051600280825281830190925291925060009190602082018180368337505086519192505015612310578461223383601e614e10565b61ffff168151811061224757612247614b4e565b602001015160f81c60f81b8160008151811061226557612265614b4e565b60200101906001600160f81b031916908160001a9053508461228883601f614e10565b61ffff168151811061229c5761229c614b4e565b602001015160f81c60f81b816001815181106122ba576122ba614b4e565b60200101906001600160f81b031916908160001a90535060206122dc82614e2b565b60f01c6122e99190614e78565b6122f4906020614bb4565b6122ff906040614e10565b6123099088614e10565b965061237c565b600060f81b8160008151811061232857612328614b4e565b60200101906001600160f81b031916908160001a905350600060f81b8160018151811061235757612357614b4e565b60200101906001600160f81b031916908160001a905350612379602088614e10565b96505b50505b5060010161218c565b5091969095509350505050565b61239d6137c5565b6123b56961646d696e5f7479706560b01b6007613a47565b6123d06c61646d696e5f64657461696c7360981b6007613a47565b6123d8613a53565b6123f06961646d696e5f7479706560b01b6000611c93565b6123f990614dc9565b601155565b60606000808061240d836120cd565b9150915060008261ffff166001600160401b0381111561242f5761242f61426b565b6040519080825280601f01601f191660200182016040528015612459576020820181803683370190505b509050602080820190838301016000805b60065460ff908116908216101561260657612486602083614bd2565b60ff8083166000908152600560205260409020600101549193501660098160138111156124b5576124b56143f7565b14806124d25750600a8160138111156124d0576124d06143f7565b145b156125d45760ff82166000908152600b6020526040812080546124f490614b64565b80601f016020809104026020016040519081016040528092919081815260200182805461252090614b64565b801561256d5780601f106125425761010080835404028352916020019161256d565b820191906000526020600020905b81548152906001019060200180831161255057829003601f168201915b5050505050905087865260208801975080516020810481602082021015612592576001015b9086526020909501946000905b808210156125c45760206001830102830151875260208701965060018201915061259f565b602081028a0199505050506125f6565b60ff821660009081526005602052604081206125f290600201614e99565b8652505b506020939093019260010161246a565b5092979650505050505050565b600080612621600884614eda565b915061262e826008614ef1565b6126389084614f11565b9050915091565b60008060029054906101000a90046001600160a01b03166001600160a01b0316639d759d5f6040518163ffffffff1660e01b8152600401602060405180830381865afa158015612693573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906126b79190614b01565b6001600160a01b03166374b9982c600060029054906101000a90046001600160a01b03166001600160a01b031663b7ace66a6040518163ffffffff1660e01b8152600401600060405180830381865afa158015612718573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526127409190810190614f2e565b6040518263ffffffff1660e01b815260040161275c91906144ac565b602060405180830381865afa158015612779573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061279d9190614b01565b6040516331a9108f60e11b815263ffffffff841660048201526001600160a01b039190911690636352211e90602401602060405180830381865afa1580156127e9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fdf9190614b01565b60005b81518161ffff1610156112b757612843828261ffff168151811061283657612836614b4e565b6020026020010151611f35565b6128f15760105460021961010090910460ff160161288657612881828261ffff168151811061287457612874614b4e565b602002602001015161301a565b612939565b6128ae828261ffff168151811061289f5761289f614b4e565b60200260200101516001613da9565b818161ffff16815181106128c4576128c4614b4e565b602002602001015163ffffffff1660008051602061520583398151915260405160405180910390a2612939565b60405162461bcd60e51b815260206004820152601f60248201527f54726169743a20546f6b656e20616c726561647920686173207472616974210060448201526064016106fb565b8061294381614f9b565b915050612810565b6000600c826013811115612961576129616143f7565b0361296e57506001919050565b600d826013811115612982576129826143f7565b0361298f57506001919050565b600e8260138111156129a3576129a36143f7565b036129b057506001919050565b600f8260138111156129c4576129c46143f7565b036129d157506001919050565b60108260138111156129e5576129e56143f7565b036129f257506001919050565b6011826013811115612a0657612a066143f7565b03612a1357506001919050565b6012826013811115612a2757612a276143f7565b03612a3457506001919050565b6013826013811115612a4857612a486143f7565b03612a5557506001919050565b506000919050565b60405163ffffffff8316602482015260009081903090869060440160408051601f198184030181529181526020820180516001600160e01b03166001600160e01b0319909416939093179092529051612ab69190614fb2565b600060405180830381855afa9150503d8060008114612af1576040519150601f19603f3d011682016040523d82523d6000602084013e612af6565b606091505b509150915081612b535760405162461bcd60e51b815260206004820152602260248201527f54726169743a20696e7465726e616c206d6574686f642063616c6c206661696c604482015261195960f21b60648201526084016106fb565b60200151909152505050565b600080826002811115612b7457612b746143f7565b9050600080612b8286612613565b915091508260ff16600103612bd157612b9c8160026150b2565b612ba79060016150c1565b63ffffffff9092166000908152600e60205260409020549190911660ff1615159250610fdf915050565b8260ff16600203612c1c57612be78160026150b2565b612bf29060016150c1565b63ffffffff9092166000908152600f60205260409020549190911660ff1615159250610fdf915050565b50505092915050565b6000612c3082611f35565b612c865760405162461bcd60e51b815260206004820152602160248201527f54726169743a20546f6b656e20646f6573206e6f7420686176652074726169746044820152602160f81b60648201526084016106fb565b63ffffffff82166000908152600a60205260408120612ca4916141ff565b60005b60065460ff9081169082161015612d3b5760ff808216600090815260056020526040902060010154166009816013811115612ce457612ce46143f7565b1480612d015750600a816013811115612cff57612cff6143f7565b145b15612d325760ff8216600090815260096020908152604080832063ffffffff881684529091528120612d32916141ff565b50600101612ca7565b50612d47826000613da9565b612d548260026000613dec565b60405163ffffffff83169060008051602061520583398151915290600090a2506001919050565b612d8482611f35565b612d9357612d93826001613da9565b612d9c82610fd2565b612dad57612dad8260026001613dec565b600654600090612dc19060ff166020614bb4565b90508061ffff1682511015612e185760405162461bcd60e51b815260206004820152601e60248201527f54726169743a204d657373616765206e6f74206c6f6e6720656e6f756768000060448201526064016106fb565b60008161ffff166001600160401b03811115612e3657612e3661426b565b6040519080825280601f01601f191660200182016040528015612e60576020820181803683370190505b509050602080820190840160005b60065460ff9081169082161015612fd25760ff80821660009081526005602052604090206001015483519116906009826013811115612eaf57612eaf6143f7565b1480612ecc5750600a826013811115612eca57612eca6143f7565b145b15612fac578781016020018051808752906000826001600160401b03811115612ef757612ef761426b565b6040519080825280601f01601f191660200182016040528015612f21576020820181803683370190505b509050602081016020840484602082021015612f3b576001015b60005b81811015612f5d57602094850180518452949290920191600101612f3e565b50505080600960008860ff1660ff16815260200190815260200160002060008e63ffffffff1663ffffffff1681526020019081526020016000209081612fa39190614c35565b50505050612fbd565b612fb58261294b565b612fbd578085525b50506020928301929190910190600101612e6e565b5063ffffffff86166000908152600a60205260409020612ff28482614c35565b5060405163ffffffff87169060008051602061520583398151915290600090a2505050505050565b60105460021961010090910460ff16016130b05760006130496b1bdddb995c97dcdd1bdc995960a21b83611c93565b80602001905181019061305c9190614b01565b6001600160a01b0316036108ba576108ba6b1bdddb995c97dcdd1bdc995960a21b826130878461263f565b604080516001600160a01b039092166020830152016040516020818303038152906040526130cd565b6108ba6b1bdddb995c97dcdd1bdc995960a21b826130878461263f565b6130d682611f35565b6130e5576130e5826001613da9565b6130ee82610fd2565b613193576130ff8260026001613dec565b61319382600c805461311090614b64565b80601f016020809104026020016040519081016040528092919081815260200182805461313c90614b64565b80156131895780601f1061315e57610100808354040283529160200191613189565b820191906000526020600020905b81548152906001019060200180831161316c57829003601f168201915b5050505050612d7b565b60008381526007602090815260408083205460ff90811680855260059093529220600101549091166131c48161294b565b156132115760405162461bcd60e51b815260206004820152601e60248201527f54726169743a2043616e6e6f7420736574206c6f6769632076616c756521000060448201526064016106fb565b6006546000906132259060ff166020614bb4565b63ffffffff86166000908152600a602052604081208054929350909161324a90614b64565b80601f016020809104026020016040519081016040528092919081815260200182805461327690614b64565b80156132c35780601f10613298576101008083540402835291602001916132c3565b820191906000526020600020905b8154815290600101906020018083116132a657829003601f168201915b50505050509050805160000361331d578161ffff166001600160401b038111156132ef576132ef61426b565b6040519080825280601f01601f191660200182016040528015613319576020820181803683370190505b5090505b60006009846013811115613333576133336143f7565b14806133505750600a84601381111561334e5761334e6143f7565b145b1561338b575060ff8416600090815260096020908152604080832063ffffffff8a168452909152902085906133858282614c35565b50613391565b50602085015b80516020868102840181019190915263ffffffff88166000908152600a909152604090206133bf8382614c35565b5050505060405163ffffffff85169060008051602061520583398151915290600090a25050505050565b60006133ff6631b7bab73a32b960c91b83611c93565b61340890614dc9565b613413906001614bd2565b905061010081106134765760405162461bcd60e51b815260206004820152602760248201527f47656e6572696354726169743a20636f756e7465722065786365656473206d616044820152667820283235352960c81b60648201526084016106fb565b6112b76631b7bab73a32b960c91b838360405160200161075a91815260200190565b60ff82811660009081526005602090815260408083206001015481518381528083019092526060941692916020820181803683370190505090506020810160098360138111156134ea576134ea6143f7565b14806135075750600a836013811115613505576135056143f7565b145b156135bf5760ff8616600090815260096020908152604080832063ffffffff891684529091529020805461353a90614b64565b80601f016020809104026020016040519081016040528092919081815260200182805461356690614b64565b80156135b35780601f10613588576101008083540402835291602001916135b3565b820191906000526020600020905b81548152906001019060200180831161359657829003601f168201915b505050505091506136cc565b6135c88361294b565b156135fb5760ff86166000908152600560205260409020600101546135f690610100900460e01b8683612a5d565b6136cc565b63ffffffff85166000908152600a60205260408120805461361b90614b64565b80601f016020809104026020016040519081016040528092919081815260200182805461364790614b64565b80156136945780601f1061366957610100808354040283529160200191613694565b820191906000526020600020905b81548152906001019060200180831161367757829003601f168201915b5050505050905060008760ff1660206136ad9190614bb4565b6136b8906020614e10565b61ffff169190910151602084019081529150505b50949350505050565b60006136eb6631b7bab73a32b960c91b83611c93565b6136f490614dc9565b90508061375b5760405162461bcd60e51b815260206004820152602f60248201527f47656e6572696354726169743a20617474656d707420746f2064656372656d6560448201526e373a103d32b9379031b7bab73a32b960891b60648201526084016106fb565b60006137726731b7b7b63237bbb760c11b84611c93565b61377b90614dc9565b90506137a96631b7bab73a32b960c91b846137976001866150d8565b60405160200161075a91815260200190565b6107766930b1ba34bb30ba34b7b760b11b846137978442614bd2565b600054600160b01b900460ff16156138295760405162461bcd60e51b815260206004820152602160248201527f54726169743a20696e69743a20616c726561647920696e697469616c697a65646044820152602160f81b60648201526084016106fb565b600054600160b81b900460ff166138825760405162461bcd60e51b815260206004820152601b60248201527f54726169743a20696e69743a20616c726561647920736574757021000000000060448201526064016106fb565b6138b76565786973747360d01b600c7fb7a11b0101698da6b700a2cbeb884e47cc482bbfbdc8adfa78bfbf389bfab352613f2c565b6138f16a1a5b9a5d1a585b1a5e995960aa1b600c7f346ab9d0d784b641d01667f58ba89f4b4e1d5c676f04880e7744af0824d02ce7613f2c565b61390b6b1bdddb995c97dcdd1bdc995960a21b600b613a47565b6139476c1bdddb995c97d8dd5c9c995b9d609a1b60137ff22cac85b6325a870a6880df699bc73f929a1cdbe07090a5c8558e02116389a2613f2c565b6139626c6d6f6469666965725f6c6f636b60981b6001613a47565b6139837236b7bb32b6b2b73a2fb832b936b4b9b9b4b7b760691b6002613a47565b61399b6930b1ba34bb30ba34b7b760b11b6007613a47565b6139b16731b7b7b63237bbb760c11b6007613a47565b6139c96932bc3834b930ba34b7b760b11b6007613a47565b6139de6631b7bab73a32b960c91b6002613a47565b6139f6691c9bde585b1d1e57da5960b21b6007613a47565b613a126d1c9bde585b1d1e57d85b5bdd5b9d60921b6007613a47565b6117696573746174757360d01b600d7f8174263b3ef0075354f0562e27c2370f5b2dcd95d8ce34c99c62b222deecc0d8613f2c565b6112b782826000613f33565b600080613a5e61401c565b9150915060005b60065460ff9081169082161015613cf55760ff808216600090815260056020908152604080832081516101008101909252805482526001810154939491939092840191166013811115613aba57613aba6143f7565b6013811115613acb57613acb6143f7565b81526001820154610100900460e01b6001600160e01b0319166020820152600282018054604090920191613afe90614b64565b80601f0160208091040260200160405190810160405280929190818152602001828054613b2a90614b64565b8015613b775780601f10613b4c57610100808354040283529160200191613b77565b820191906000526020600020905b815481529060010190602001808311613b5a57829003601f168201915b5050509183525050600382015460ff90811615156020830152600483015460408301526005830154606083015260069092015490911615156080909101528051909150691c9bde585b1d1e57da5960b21b1480613be5575080516d1c9bde585b1d1e57d85b5bdd5b9d60921b145b15613c9a57805160609069236421a7a4e2e1a825a760b21b01613c24576040805160208101879052016040516020818303038152906040529050613c5b565b81516d236421a7a4e2e1a827a4a422a46360921b01613c5b5760408051602081018690520160405160208183030381529060405290505b60ff83166000908152600d60205260409020613c778282614c35565b5060ff83166000908152600560205260409020600201613c978282614c35565b50505b80516b24222466a3682322e42366a760a21b01613cec5760408051600060208201520160408051601f1981840301815291815260ff8416600090815260056020522060020190613cea9082614c35565b505b50600101613a65565b506000613d136c6d6f6469666965725f6c6f636b60981b6000611c93565b613d1c90614dc9565b6010805460ff191692909111919091179055613d4f7236b7bb32b6b2b73a2fb832b936b4b9b9b4b7b760691b6000611c93565b806020019051810190613d6291906150eb565b601060016101000a81548160ff021916908360ff160217905550613d846123fe565b600c90613d919082614c35565b50506000805460ff60b01b1916600160b01b17905550565b6000613dbf671a5b9d995c9d195960c21b6108bd565b915050600081806020019051810190613dd89190614abb565b90508015613de4579115915b611be1846001855b600080613df885612613565b90925090506001846002811115613e1157613e116143f7565b03613e93578215613e5b57613e278160026150b2565b63ffffffff83166000908152600e60205260409020805460ff9283169281169290921760ff19909216919091179055613f25565b613e668160026150b2565b63ffffffff83166000908152600e60205260409020805460ff19811692191660ff16919091179055613f25565b6002846002811115613ea757613ea76143f7565b03613f25578215613ef157613ebd8160026150b2565b63ffffffff83166000908152600f60205260409020805460ff9283169281169290921760ff19909216919091179055613f25565b613efc8160026150b2565b63ffffffff83166000908152600f60205260409020805460ff19811692191660ff169190911790555b5050505050565b6107768383835b60065460008481526007602052604090205460ff918216911615613f5657600080fd5b6000848152600760209081526040808320805460ff861660ff199182168117909255908452600590925290912085815560018181018054929387939192911690836013811115613fa857613fa86143f7565b021790555060018101805464ffffffff00191661010060e086901c0217905560ff82166000908152600d602052604090206002820190613fe8908261510e565b506006805460ff16906000613ffc83614cf4565b91906101000a81548160ff021916908360ff160217905550505050505050565b604051631d2e660b60e21b815260206004820152600e60248201526d0a082b29a8a9ca8be9a82a8a492b60931b6044820152600090819081906001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016906374b9982c90606401602060405180830381865afa1580156140a6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906140ca9190614b01565b90506001600160a01b0381166141345760405162461bcd60e51b815260206004820152602960248201527f54726169743a205041594d454e545f4d4154524958206164647265737320636160448201526806e6e6f7420626520360bc1b60648201526084016106fb565b60408051633583a33f60e21b8152600b600482015281516001600160a01b0384169263d60e8cfc92602480820193918290030181865afa15801561417c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906141a091906151e0565b92509250509091565b8280548282559060005260206000209081019282156141ef579160200282015b828111156141ef57825182906141df9082614c35565b50916020019190600101906141c9565b506141fb929150614239565b5090565b50805461420b90614b64565b6000825580601f1061421b575050565b601f0160209004906000526020600020908101906108ba9190614256565b808211156141fb57600061424d82826141ff565b50600101614239565b5b808211156141fb5760008155600101614257565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f191681016001600160401b03811182821017156142a9576142a961426b565b604052919050565b60006001600160401b038211156142ca576142ca61426b565b5060051b60200190565b803563ffffffff8116811461116957600080fd5b600082601f8301126142f957600080fd5b8135602061430e614309836142b1565b614281565b8083825260208201915060208460051b87010193508684111561433057600080fd5b602086015b8481101561435357614346816142d4565b8352918301918301614335565b509695505050505050565b6000806040838503121561437157600080fd5b82356001600160401b0381111561438757600080fd5b614393858286016142e8565b95602094909401359450505050565b6000602082840312156143b457600080fd5b81356001600160401b038111156143ca57600080fd5b6143d6848285016142e8565b949350505050565b6000602082840312156143f057600080fd5b5035919050565b634e487b7160e01b600052602160045260246000fd5b600a811061441d5761441d6143f7565b9052565b60005b8381101561443c578181015183820152602001614424565b50506000910152565b6000815180845261445d816020860160208601614421565b601f01601f19169290920160200192915050565b61447b818461440d565b6040602082015260006143d66040830184614445565b6000602082840312156144a357600080fd5b611a03826142d4565b602081526000611a036020830184614445565b600082825180855260208086019550808260051b84010181860160005b8481101561458457601f19868403018952815161010081518552858201516014811061450a5761450a6143f7565b858701526040828101516001600160e01b0319169086015260608083015181870183905261453a83880182614445565b925050506080808301516145518288018215159052565b505060a0828101519086015260c0808301519086015260e0918201511515919094015297830197908301906001016144dc565b5090979650505050505050565b60008151808452602080850194506020840160005b838110156145df5781516145bb88825161440d565b808401518885015260409081015190880152606090960195908201906001016145a6565b509495945050505050565b602081526145ff60208201835161ffff169052565b60006020830151614616604084018261ffff169052565b5060408301516001600160a01b03811660608401525060608301516080830152608083015160a083015260a08301516101208060c085015261465c6101408501836144bf565b915060c085015161467260e086018260ff169052565b5060e085015161010085810191909152850151848303601f19018286015261469a8382614591565b9695505050505050565b6001600160a01b03811681146108ba57600080fd5b60006001600160401b038211156146d2576146d261426b565b50601f01601f191660200190565b600082601f8301126146f157600080fd5b81356146ff614309826146b9565b81815284602083860101111561471457600080fd5b816020850160208301376000918101602001919091529392505050565b600082601f83011261474257600080fd5b81356020614752614309836142b1565b82815260059290921b8401810191818101908684111561477157600080fd5b8286015b848110156143535780356001600160401b038111156147945760008081fd5b6147a28986838b01016146e0565b845250918301918301614775565b600080600080608085870312156147c657600080fd5b84356147d1816146a4565b9350602085013561ffff811681146147e857600080fd5b925060408501356001600160401b038082111561480457600080fd5b61481088838901614731565b9350606087013591508082111561482657600080fd5b5061483387828801614731565b91505092959194509250565b6000806040838503121561485257600080fd5b61485b836142d4565b915060208301356001600160401b0381111561487657600080fd5b614882858286016146e0565b9150509250929050565b60408152600061489f60408301856144bf565b82810360208401526148b18185614591565b95945050505050565b6000806000606084860312156148cf57600080fd5b833592506148df602085016142d4565b915060408401356001600160401b038111156148fa57600080fd5b614906868287016146e0565b9150509250925092565b600082601f83011261492157600080fd5b81356020614931614309836142b1565b8083825260208201915060208460051b87010193508684111561495357600080fd5b602086015b848110156143535780358352918301918301614958565b60008060006060848603121561498457600080fd5b61498d846142d4565b925060208401356001600160401b03808211156149a957600080fd5b6149b587838801614910565b935060408601359150808211156149cb57600080fd5b5061490686828701614731565b600080604083850312156149eb57600080fd5b823591506149fb602084016142d4565b90509250929050565b600060208083016020845280855180835260408601915060408160051b87010192506020870160005b8281101561260657603f19888603018452614a49858351614445565b94509285019290850190600101614a2d565b60008060408385031215614a6e57600080fd5b614a77836142d4565b915060208301356001600160401b03811115614a9257600080fd5b61488285828601614910565b6001600160a01b0392909216825261ffff16602082015260400190565b600060208284031215614acd57600080fd5b81518015158114611a0357600080fd5b6020808252600a908201526920a1aa24a7a72fa42aa160b11b604082015260600190565b600060208284031215614b1357600080fd5b8151611a03816146a4565b6020808252601690820152752a3930b4ba1d102737ba1030baba3437b934bd32b21760511b604082015260600190565b634e487b7160e01b600052603260045260246000fd5b600181811c90821680614b7857607f821691505b602082108103614b9857634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b61ffff818116838216028082169190828114611d9757611d97614b9e565b80820180821115610fdf57610fdf614b9e565b601f821115610776576000816000526020600020601f850160051c81016020861015614c0e5750805b601f850160051c820191505b81811015614c2d57828155600101614c1a565b505050505050565b81516001600160401b03811115614c4e57614c4e61426b565b614c6281614c5c8454614b64565b84614be5565b602080601f831160018114614c975760008415614c7f5750858301515b600019600386901b1c1916600185901b178555614c2d565b600085815260208120601f198616915b82811015614cc657888601518255948401946001909101908401614ca7565b5085821015614ce45787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b600060ff821660ff8103614d0a57614d0a614b9e565b60010192915050565b600060608284031215614d2557600080fd5b604051606081018181106001600160401b0382111715614d4757614d4761426b565b6040528251600a8110614d5957600080fd5b8152602083810151908201526040928301519281019290925250919050565b60208082526031908201527f54726169743a2064697373616c6f776564212043616e6e6f7420736574206f776040820152706e65725f73746f7265642076616c75652160781b606082015260800190565b80516020808301519190811015614b985760001960209190910360031b1b16919050565b600063ffffffff808316818103614e0657614e06614b9e565b6001019392505050565b61ffff818116838216019080821115611e6257611e62614b9e565b805160208201516001600160f01b03198082169291906002831015614e5a5780818460020360031b1b83161693505b505050919050565b634e487b7160e01b600052601260045260246000fd5b600061ffff80841680614e8d57614e8d614e62565b92169190910492915050565b6000614ea58254614b64565b82601f821115614ebb5783600052602060002090505b5491506020811015614b985760001960209190910360031b1b16919050565b600063ffffffff80841680614e8d57614e8d614e62565b63ffffffff818116838216028082169190828114611d9757611d97614b9e565b63ffffffff828116828216039080821115611e6257611e62614b9e565b600060208284031215614f4057600080fd5b81516001600160401b03811115614f5657600080fd5b8201601f81018413614f6757600080fd5b8051614f75614309826146b9565b818152856020838501011115614f8a57600080fd5b6148b1826020830160208601614421565b600061ffff808316818103614e0657614e06614b9e565b60008251614fc4818460208701614421565b9190910192915050565b600181815b80851115615009578160001904821115614fef57614fef614b9e565b80851615614ffc57918102915b93841c9390800290614fd3565b509250929050565b60008261502057506001610fdf565b8161502d57506000610fdf565b8160018114615043576002811461504d57615069565b6001915050610fdf565b60ff84111561505e5761505e614b9e565b50506001821b610fdf565b5060208310610133831016604e8410600b841016171561508c575081810a610fdf565b6150968383614fce565b80600019048211156150aa576150aa614b9e565b029392505050565b6000611a0360ff841683615011565b8082028115828204841417610fdf57610fdf614b9e565b81810381811115610fdf57610fdf614b9e565b6000602082840312156150fd57600080fd5b815160ff81168114611a0357600080fd5b818103615119575050565b6151238254614b64565b6001600160401b0381111561513a5761513a61426b565b61514881614c5c8454614b64565b6000601f82116001811461517c57600083156151645750848201545b600019600385901b1c1916600184901b178455613f25565b600085815260209020601f19841690600086815260209020845b838110156151b65782860154825560019586019590910190602001615196565b5085831015614ce45793015460001960f8600387901b161c19169092555050600190811b01905550565b600080604083850312156151f357600080fd5b50508051602090910151909290915056fe00de82671dd733bef7e0b3d4c4929c757de4d6e09dd1facc73a334311aeeeb77a26469706673582212200038c7839289773fae12a14bd08c704280640c2af93b2c876e98fe144b6a00fc64736f6c63430008190033000000000000000000000000dbd9608fbca959828c1615d29aeb3dc872d40ae2