0 txs
1 call
constructor
constructor()
functions
balanceOf
viewfunction balanceOf(address owner) view returns (uint256)
DEFAULT_BASE_URI
viewfunction DEFAULT_BASE_URI() view returns (string)
getApproved
viewfunction getApproved(uint256 tokenId) view returns (address)
INITIAL_SIGN_STR
viewfunction INITIAL_SIGN_STR() view returns (string)
isApprovedForAll
viewfunction isApprovedForAll(address owner, address operator) view returns (bool)
name
viewfunction name() view returns (string)
ORACLE_TYPE
viewfunction ORACLE_TYPE() view returns (uint256)
ownerOf
viewfunction ownerOf(uint256 tokenId) view returns (address)
SUPPORTED_RULES
viewfunction SUPPORTED_RULES() view returns (bytes2)
supportsInterface
viewfunction supportsInterface(bytes4 interfaceId) view returns (bool)
symbol
viewfunction symbol() view returns (string)
TOKEN_ID
viewfunction TOKEN_ID() view returns (uint256)
tokenURI
viewfunction tokenURI(uint256 tokenId) view returns (string uri_)
wnftInfo
viewfunction wnftInfo(uint256 tokenId) view returns (tuple)
approve
nonpayablefunction approve(address to, uint256 tokenId)
approveHiden
nonpayablefunction approveHiden(address to, uint256 tokenId)
executeEncodedTx
nonpayablefunction executeEncodedTx(address _target, uint256 _value, bytes _data) returns (bytes r)
executeEncodedTxBatch
nonpayablefunction executeEncodedTxBatch(address[] _targetArray, uint256[] _valueArray, bytes[] _dataArray) returns (bytes[] r)
initialize
nonpayablefunction initialize(address _creator, string name_, string symbol_, string _tokenUrl, tuple _wnftData)
onERC1155BatchReceived
nonpayablefunction onERC1155BatchReceived(address, address, uint256[], uint256[], bytes) returns (bytes4)
onERC1155Received
nonpayablefunction onERC1155Received(address, address, uint256, uint256, bytes) returns (bytes4)
onERC721Received
nonpayablefunction onERC721Received(address, address, uint256, bytes) returns (bytes4)
removeCollateral
nonpayablefunction removeCollateral(tuple _collateral, address _to)
removeCollateralBatch
nonpayablefunction removeCollateralBatch(tuple[] _collateral, address _to)
safeTransferFrom
nonpayablefunction safeTransferFrom(address from, address to, uint256 tokenId, bytes data)
safeTransferFrom
nonpayablefunction safeTransferFrom(address from, address to, uint256 tokenId)
setApprovalForAll
nonpayablefunction setApprovalForAll(address operator, bool approved)
transferFrom
nonpayablefunction transferFrom(address from, address to, uint256 tokenId)
unWrap
nonpayablefunction unWrap(tuple[] _collateral)
events
Approval
event Approval(address indexed owner, address indexed approved, uint256 indexed tokenId)
ApprovalForAll
event ApprovalForAll(address indexed owner, address indexed operator, bool approved)
BatchMetadataUpdate
event BatchMetadataUpdate(uint256 _fromTokenId, uint256 _toTokenId)
EnvelopRulesChanged
event EnvelopRulesChanged(address indexed wrappedAddress, uint256 indexed wrappedId, bytes2 newRules)
EnvelopV2OracleType
event EnvelopV2OracleType(uint256 indexed oracleType, string contractName)
EtherBalanceChanged
event EtherBalanceChanged(uint256 indexed balanceBefore, uint256 indexed balanceAfter, uint256 indexed txValue, address txSender)
EtherReceived
event EtherReceived(uint256 indexed balance, uint256 indexed txValue, address indexed txSender)
Initialized
event Initialized(uint64 version)
MetadataUpdate
event MetadataUpdate(uint256 _tokenId)
Transfer
event Transfer(address indexed from, address indexed to, uint256 indexed tokenId)
UnWrappedV1
event UnWrappedV1(address indexed wrappedAddress, address indexed originalAddress, uint256 indexed wrappedId, uint256 originalTokenId, address beneficiary, uint256 nativeCollateralAmount, bytes2 rules)
WrappedV1
event WrappedV1(address indexed inAssetAddress, address indexed outAssetAddress, uint256 indexed inAssetTokenId, uint256 outTokenId, address wnftFirstOwner, uint256 nativeCollateralAmount, bytes2 rules)
errors
AddressEmptyCode
error AddressEmptyCode(address target)
AddressInsufficientBalance
error AddressInsufficientBalance(address account)
ERC721IncorrectOwner
error ERC721IncorrectOwner(address sender, uint256 tokenId, address owner)
ERC721InsufficientApproval
error ERC721InsufficientApproval(address operator, uint256 tokenId)
ERC721InvalidApprover
error ERC721InvalidApprover(address approver)
ERC721InvalidOperator
error ERC721InvalidOperator(address operator)
ERC721InvalidOwner
error ERC721InvalidOwner(address owner)
ERC721InvalidReceiver
error ERC721InvalidReceiver(address receiver)
ERC721InvalidSender
error ERC721InvalidSender(address sender)
ERC721NonexistentToken
error ERC721NonexistentToken(uint256 tokenId)
FailedInnerCall
error FailedInnerCall()
InsufficientCollateral
error InsufficientCollateral(((uint8 assetType, address contractAddress) asset, uint256 tokenId, uint256 amount) declare, uint256 fact)
InvalidInitialization
error InvalidInitialization()
NotInitializing
error NotInitializing()
RuleSetNotSupported
error RuleSetNotSupported(bytes2 unsupportedRules)
StringsInsufficientHexLength
error StringsInsufficientHexLength(uint256 value, uint256 length)
TokenTransferFailed
error TokenTransferFailed(address assetAddress)
UnSupportedAsset
error UnSupportedAsset(((uint8 assetType, address contractAddress) asset, uint256 tokenId, uint256 amount) asset)
WnftRuleViolation
error WnftRuleViolation(bytes2 rule)
creation bytecode
0x608060405234801561001057600080fd5b5061001961007d565b6107d17f6b037fe6c22796818cbe3465bd23069d00fae0e2e0cd2553ae863f419fc73cc060405180604001604052600d8152806020016c574e46544c656761637937323160981b815250604051610070919061012f565b60405180910390a261017d565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805468010000000000000000900460ff16156100cd5760405163f92ee8a960e01b815260040160405180910390fd5b80546001600160401b039081161461012c5780546001600160401b0319166001600160401b0390811782556040519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b50565b602081526000825180602084015260005b8181101561015d5760208186018101516040868401015201610140565b506000604082850101526040601f19601f83011684010191505092915050565b6147318061018c6000396000f3fe6080604052600436106101c65760003560e01c806389a89002116100f7578063c26d48ad11610095578063dc15f53011610064578063dc15f530146105ae578063e985e9c5146105ce578063ee9cfb4a146105ee578063f23a6e611461060e57600080fd5b8063c26d48ad1461050f578063c87b56dd1461052f578063d42053bc1461054f578063d5a798a31461057c57600080fd5b8063a22cb465116100d1578063a22cb46514610466578063a497325b14610486578063b88d4fde146104cf578063bc197c81146104ef57600080fd5b806389a890021461041c57806395d89b41146104315780639c24576f1461044657600080fd5b806323b872dd1161016457806342842e0e1161013e57806342842e0e1461039c57806344a7f0f9146103bc5780636352211e146103dc57806370a08231146103fc57600080fd5b806323b872dd1461033857806326a86460146103585780632c5426f31461037857600080fd5b8063081812fc116101a0578063081812fc1461026d578063095ea7b3146102a5578063150b7a02146102c7578063212edc321461030b57600080fd5b806301ffc9a71461020157806303738a601461023657806306fdde031461025857600080fd5b366101fc576040513390349047907f26399b60fa9117e91f9cf4e690f18a117d22841f62fb4ece7e7c799a97cb6a0790600090a4005b600080fd5b34801561020d57600080fd5b5061022161021c36600461320b565b61063a565b60405190151581526020015b60405180910390f35b34801561024257600080fd5b5061024b610665565b60405161022d9190613278565b34801561026457600080fd5b5061024b610681565b34801561027957600080fd5b5061028d61028836600461328b565b610725565b6040516001600160a01b03909116815260200161022d565b3480156102b157600080fd5b506102c56102c03660046132c4565b61073a565b005b3480156102d357600080fd5b506102f26102e2366004613422565b630a85bd0160e11b949350505050565b6040516001600160e01b0319909116815260200161022d565b34801561031757600080fd5b5061032b61032636600461328b565b610749565b60405161022d9190613628565b34801561034457600080fd5b506102c56103533660046136ec565b610aaa565b34801561036457600080fd5b506102c5610373366004613778565b610b08565b34801561038457600080fd5b5061038e6107d181565b60405190815260200161022d565b3480156103a857600080fd5b506102c56103b73660046136ec565b610d3d565b3480156103c857600080fd5b506102c56103d73660046132c4565b610d58565b3480156103e857600080fd5b5061028d6103f736600461328b565b610d65565b34801561040857600080fd5b5061038e6104173660046137b9565b610d70565b34801561042857600080fd5b5061038e600181565b34801561043d57600080fd5b5061024b610dcc565b34801561045257600080fd5b506102c56104613660046137d6565b610e0b565b34801561047257600080fd5b506102c561048136600461383a565b610e8f565b34801561049257600080fd5b5061024b6040518060400160405280601e81526020017f68747470733a2f2f6170692e656e76656c6f702e69732f76326d6574612f000081525081565b3480156104db57600080fd5b506102c56104ea366004613422565b610e9a565b3480156104fb57600080fd5b506102f261050a3660046138f4565b610eb1565b34801561051b57600080fd5b506102c561052a366004613d8a565b610ec3565b34801561053b57600080fd5b5061024b61054a36600461328b565b610fe5565b34801561055b57600080fd5b5061056f61056a366004613e90565b61121e565b60405161022d9190613fa8565b34801561058857600080fd5b5061059561010560f01b81565b6040516001600160f01b0319909116815260200161022d565b3480156105ba57600080fd5b5061024b6105c936600461400d565b611248565b3480156105da57600080fd5b506102216105e9366004614065565b611277565b3480156105fa57600080fd5b506102c5610609366004614093565b6112c4565b34801561061a57600080fd5b506102f26106293660046140c7565b63f23a6e6160e01b95945050505050565b60006001600160e01b03198216633cad64af60e21b148061065f575061065f8261130e565b92915050565b6040518060e0016040528060c0815260200161463c60c0913981565b6000805160206145fc83398151915280546060919081906106a190614123565b80601f01602080910402602001604051908101604052809291908181526020018280546106cd90614123565b801561071a5780601f106106ef5761010080835404028352916020019161071a565b820191906000526020600020905b8154815290600101906020018083116106fd57829003601f168201915b505050505091505090565b600061073082611333565b5061065f8261136b565b6107458282336113a5565b5050565b604080516101808101825260006101408201818152610160830182905260e083019081526101008301829052610120830182905282526060602083018190529282018190528282018390526080820183905260a082019290925260c081019190915260408051610180810190915260008051602061461c83398151915280549091908290829060e0820190839082906101408501908390829060ff1660078111156107f6576107f661348d565b60078111156108075761080761348d565b8152905461010090046001600160a01b031660209182015290825260018301548282015260029092015460409182015291835260038401805483518184028101840190945280845293820193909160009084015b828210156108f2576000848152602090206040805160a08101909152600384029091018054829060608201908390829060ff16600781111561089f5761089f61348d565b60078111156108b0576108b061348d565b8152905461010090046001600160a01b03166020918201529082526001838101548383015260029093015460409092019190915291835292909201910161085b565b5050509082525060048201546001600160a01b0316602080830191909152600583018054604080518285028101850182528281529401939260009084015b828210156109925760008481526020908190206040805160608101825260038602909201805460f81b6001600160f81b0319168352600180820154848601526002909101546001600160a01b0316918301919091529083529092019101610930565b50505050815260200160068201805480602002602001604051908101604052809291908181526020016000905b82821015610a0b5760008481526020908190206040805180820190915260028502909101805460f81b6001600160f81b03191682526001908101548284015290835290920191016109bf565b50505050815260200160078201805480602002602001604051908101604052809291908181526020016000905b82821015610a8257600084815260209081902060408051808201909152908401546001600160a01b0381168252600160a01b900461ffff1681830152825260019092019101610a38565b505050908252506008919091015460f01b6001600160f01b0319166020909101529392505050565b600060008051602061461c833981519152600881015490915060f01b600160f21b90811603610af757604051636836b99960e11b8152600160f21b60048201526024015b60405180910390fd5b610b028484846113b2565b50505050565b610b10611437565b610b193361157d565b47600060008051602061461c833981519152600881015490915060f01b600160f01b90811603610b6257604051636836b99960e11b8152600160f01b6004820152602401610aee565b6000815460ff166007811115610b7a57610b7a61348d565b14610c04576040805160a081019091528154610bfa91908390829060608201908390829060ff166007811115610bb257610bb261348d565b6007811115610bc357610bc361348d565b8152905461010090046001600160a01b03166020918201529082526001830154908201526002909101546040909101523033611617565b50805460ff191681555b8215610c525760005b83811015610c5057610c47858583818110610c2a57610c2a614157565b905060800201803603810190610c40919061416d565b3033611617565b50600101610c0d565b505b80546001600160a81b0319168155600060018201819055600282018190558190610c7f60038301826130d6565b6004820180546001600160a01b0319169055610c9f6005830160006130f7565b610cad600683016000613118565b610cbb600783016000613139565b506008908101805461ffff1916905581546001838101549284015460405191936101009093046001600160a01b03169230927fabb50c1815800da62a4637d3272d1584df1ee8cbd963d90fb44eb55b63acfcb592610d259291339160009160f09190911b90614189565b60405180910390a450610d38814761167a565b505050565b610d3883838360405180602001604052806000815250610e9a565b61074582823360006116be565b600061065f82611333565b60006000805160206145fc8339815191526001600160a01b038316610dab576040516322718ad960e21b815260006004820152602401610aee565b6001600160a01b039092166000908152600390920160205250604090205490565b7f80bb2b638cc20bc4d0a60d66940f3ab4a00c1d7b313497ca82fb0b4ab007930180546060916000805160206145fc833981519152916106a190614123565b610e13611437565b610e1c3361157d565b4760005b83811015610e8457610e5a858583818110610e3d57610e3d614157565b905060800201803603810190610e53919061416d565b30856117d4565b50610e7c858583818110610e7057610e70614157565b90506080020133611836565b600101610e20565b50610b02814761167a565b61074533838361183e565b610ea5848484610aaa565b610b02848484846118ef565b63bc197c8160e01b5b95945050505050565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a008054600160401b810460ff1615906001600160401b0316600081158015610f085750825b90506000826001600160401b03166001148015610f245750303b155b905081158015610f32575080155b15610f505760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff191660011785558315610f7a57845460ff60401b1916600160401b1785555b47610f888a8a8d8b8b611a18565b610f92814761167a565b508315610fd957845460ff60401b19168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b50505050505050505050565b606060008051602061461c833981519152610fff83611a36565b600882015490925060f01b600160f81b9081160361101d5750919050565b6003815460ff1660078111156110355761103561348d565b03611143576040805160a08101909152815430916110b4918490829060608201908390829060ff16600781111561106e5761106e61348d565b600781111561107f5761107f61348d565b8152905461010090046001600160a01b0316602091820152908252600183015490820152600290910154604090910152611a9d565b6001600160a01b03160361113e576040805160a08101909152815461113b91908390829060608201908390829060ff1660078111156110f5576110f561348d565b60078111156111065761110661348d565b8152905461010090046001600160a01b0316602091820152908252600183015490820152600290910154604090910152611bc2565b91505b611218565b6004815460ff16600781111561115b5761115b61348d565b03611218576040805160a0810190915281546000916111dc918490829060608201908390829060ff1660078111156111955761119561348d565b60078111156111a6576111a661348d565b8152905461010090046001600160a01b031660209182015290825260018301549082015260029091015460409091015230611d20565b1115611218576040805160a08101909152815461121591908390829060608201908390829060ff1660078111156110f5576110f561348d565b91505b50919050565b6060611228611437565b6112313361157d565b61123e8686868686611ec6565b9050610eba612069565b6060611252611437565b61125b3361157d565b611266848484612112565b9050611270612069565b9392505050565b6001600160a01b0391821660009081527f80bb2b638cc20bc4d0a60d66940f3ab4a00c1d7b313497ca82fb0b4ab00793056020908152604080832093909416825291909152205460ff1690565b6112cc611437565b6112d53361157d565b476112e08333611836565b6112f96112f23685900385018561416d565b30846117d4565b506113048333611836565b610d38814761167a565b60006001600160e01b03198216630271189760e51b148061065f575061065f8261217a565b60008061133f836121ca565b90506001600160a01b03811661065f57604051637e27328960e01b815260048101849052602401610aee565b60009081527f80bb2b638cc20bc4d0a60d66940f3ab4a00c1d7b313497ca82fb0b4ab007930460205260409020546001600160a01b031690565b610d3883838360016116be565b6001600160a01b0382166113dc57604051633250574960e11b815260006004820152602401610aee565b60006113e9838333612204565b9050836001600160a01b0316816001600160a01b031614610b02576040516364283d7b60e01b81526001600160a01b0380861660048301526024820184905282166044820152606401610aee565b7fb25b7d902932741f4867febf64c52dbc3980210eefc4a36bf4280ce48f34a10680546040805160208084028201810190925282815260008051602061461c833981519152936000939192909190849084015b828210156114d65760008481526020908190206040805180820190915260028502909101805460f81b6001600160f81b031916825260019081015482840152908352909201910161148a565b50505050905060005b8151811015610d38578181815181106114fa576114fa614157565b6020908102919091010151516001600160f81b031916600003611575574282828151811061152a5761152a614157565b60200260200101516020015111156115755760405162461bcd60e51b815260206004820152600e60248201526d2a34b6b2a637b1b59032b93937b960911b6044820152606401610aee565b6001016114df565b60006115896001610d65565b9050816001600160a01b0316816001600160a01b031614806115b057506115b08183611277565b806115d55750816001600160a01b03166115ca6001610725565b6001600160a01b0316145b6107455760405162461bcd60e51b815260206004820152601360248201527227b7363c903337b9103ba7232a1037bbb732b960691b6044820152606401610aee565b606080600185515160078111156116305761163061348d565b036116485761164383866040015161230e565b611672565b6116538585856123a5565b85516020015190915061166f906001600160a01b03168261257d565b91505b509392505050565b808214610745576040513381523490829084907fc4784f333fb4f086174aa7cc56e2eb0850c39bbda8f955f72ee77d54b13a3dd99060200160405180910390a45050565b6000805160206145fc83398151915281806116e157506001600160a01b03831615155b156117a35760006116f185611333565b90506001600160a01b0384161580159061171d5750836001600160a01b0316816001600160a01b031614155b8015611730575061172e8185611277565b155b156117595760405163a9fbf51f60e01b81526001600160a01b0385166004820152602401610aee565b82156117a15784866001600160a01b0316826001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45b505b600093845260040160205250506040902080546001600160a01b0319166001600160a01b0392909216919091179055565b60606117e1848484611617565b9050805160001415801561180657508080602001905181019061180491906141b7565b155b1561127057835160200151604051632b596cb760e01b81526001600160a01b039091166004820152602401610aee565b610745612069565b6000805160206145fc8339815191526001600160a01b03831661187f57604051630b61174360e31b81526001600160a01b0384166004820152602401610aee565b6001600160a01b038481166000818152600584016020908152604080832094881680845294825291829020805460ff191687151590811790915591519182527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a350505050565b6001600160a01b0383163b15610b0257604051630a85bd0160e11b81526001600160a01b0384169063150b7a02906119319033908890879087906004016141d4565b6020604051808303816000875af192505050801561196c575060408051601f3d908101601f1916820190925261196991810190614207565b60015b6119d5573d80801561199a576040519150601f19603f3d011682016040523d82523d6000602084013e61199f565b606091505b5080516000036119cd57604051633250574960e11b81526001600160a01b0385166004820152602401610aee565b805181602001fd5b6001600160e01b03198116630a85bd0160e11b14611a1157604051633250574960e11b81526001600160a01b0385166004820152602401610aee565b5050505050565b611a2061258b565b611a2c858585856125d6565b611a1181846125f2565b6060611a4182611333565b506000611a4c61283c565b90506000815111611a6c5760405180602001604052806000815250611215565b80611a768461290f565b604051602001611a87929190614240565b6040516020818303038152906040529392505050565b600060018251516007811115611ab557611ab561348d565b03611ac257506000919050565b60028251516007811115611ad857611ad861348d565b03611ae557506000919050565b60038251516007811115611afb57611afb61348d565b03611b7f5760008260200151604051602401611b1991815260200190565b60408051601f19818403018152919052602080820180516001600160e01b03166331a9108f60e11b17905284510151909150600090611b61906001600160a01b0316836129a1565b905080806020019051810190611b77919061426f565b949350505050565b60048251516007811115611b9557611b9561348d565b03611ba257506000919050565b8160405163391102fb60e01b8152600401610aee919061428c565b919050565b606060018251516007811115611bda57611bda61348d565b1480611bf9575060028251516007811115611bf757611bf761348d565b145b15611c1257505060408051602081019091526000815290565b60038251516007811115611c2857611c2861348d565b03611ca45760008260200151604051602401611c4691815260200190565b60408051601f19818403018152919052602080820180516001600160e01b031663c87b56dd60e01b17905284510151909150600090611c8e906001600160a01b0316836129a1565b905080806020019051810190611b77919061429a565b60048251516007811115611cba57611cba61348d565b03611ba25760008260200151604051602401611cd891815260200190565b60408051601f19818403018152919052602080820180516001600160e01b03166303a24d0760e21b17905284510151909150600090611c8e906001600160a01b0316836129a1565b600060608060018551516007811115611d3b57611d3b61348d565b03611d5257836001600160a01b0316319250611e71565b60028551516007811115611d6857611d6861348d565b03611db4576040516001600160a01b03851660248201526044015b60408051601f198184030181529190526020810180516001600160e01b03166370a0823160e01b1790529150611e71565b60038551516007811115611dca57611dca61348d565b03611de9576040516001600160a01b0385166024820152604401611d83565b60048551516007811115611dff57611dff61348d565b03611e565760208501516040516001600160a01b0386166024820152604481019190915260640160408051601f198184030181529190526020810180516001600160e01b0316627eeac760e11b1790529150611e71565b8460405163391102fb60e01b8152600401610aee919061428c565b60018551516007811115611e8757611e8761348d565b14611ebe57845160200151611ea5906001600160a01b0316836129a1565b905080806020019051810190611ebb9190614307565b92505b505092915050565b805160609047906001600160401b03811115611ee457611ee46132f0565b604051908082528060200260200182016040528015611f1757816020015b6060815260200190600190039081611f025790505b50915060005b83518110156120545760408051602081019091526000905283517fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a47090859083908110611f6b57611f6b614157565b60200260200101518051906020012003611fcc57611fc7888883818110611f9457611f94614157565b9050602002016020810190611fa991906137b9565b878784818110611fbb57611fbb614157565b9050602002013561230e565b61204c565b61202e888883818110611fe157611fe1614157565b9050602002016020810190611ff691906137b9565b85838151811061200857612008614157565b602002602001015188888581811061202257612022614157565b90506020020135612a0e565b83828151811061204057612040614157565b60200260200101819052505b600101611f1d565b5061205f814761167a565b5095945050505050565b6040805160a0810190915260008051602061461c833981519152805490916000918390829060608201908390829060ff1660078111156120ab576120ab61348d565b60078111156120bc576120bc61348d565b8152905461010090046001600160a01b03166020918201529082526001830154908201526002909101546040909101529050600081515160078111156121045761210461348d565b146107455761074581612aab565b6040805160208082019092526000905281519082012060609047907f3a2db9fe7908dcc36d81824d2338fc3f1aff49ac357dd8c4840527fba27a5b90016121625761215d858561230e565b612170565b61216d858486612a0e565b91505b611672814761167a565b60006001600160e01b031982166380ac58cd60e01b14806121ab57506001600160e01b03198216635b5e139f60e01b145b8061065f57506301ffc9a760e01b6001600160e01b031983161461065f565b60009081527f80bb2b638cc20bc4d0a60d66940f3ab4a00c1d7b313497ca82fb0b4ab007930260205260409020546001600160a01b031690565b60006000805160206145fc8339815191528161221f856121ca565b90506001600160a01b0384161561223b5761223b818587612b51565b6001600160a01b0381161561227b576122586000866000806116be565b6001600160a01b0381166000908152600383016020526040902080546000190190555b6001600160a01b038616156122ac576001600160a01b03861660009081526003830160205260409020805460010190555b600085815260028301602052604080822080546001600160a01b0319166001600160a01b038a811691821790925591518893918516917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91a495945050505050565b804710156123315760405163cd78605960e01b8152306004820152602401610aee565b6000826001600160a01b03168260405160006040518083038185875af1925050503d806000811461237e576040519150601f19603f3d011682016040523d82523d6000602084013e612383565b606091505b5050905080610d3857604051630a12f52160e11b815260040160405180910390fd5b6060600184515160078111156123bd576123bd61348d565b1461127057600284515160078111156123d8576123d861348d565b0361249c57306001600160a01b038416036124405760408085015190516001600160a01b0384166024820152604481019190915260640160408051601f198184030181529190526020810180516001600160e01b031663a9059cbb60e01b1790529050611270565b60408085015190516001600160a01b0380861660248301528416604482015260648101919091526084015b60408051601f198184030181529190526020810180516001600160e01b03166323b872dd60e01b1790529050611270565b600384515160078111156124b2576124b261348d565b036124e65760208401516040516001600160a01b03808616602483015284166044820152606481019190915260840161246b565b600484515160078111156124fc576124fc61348d565b036125625782828560200151866040015160405180602001604052806000815250604051602401612531959493929190614320565b60408051601f198184030181529190526020810180516001600160e01b0316637921219560e11b1790529050611270565b8360405163391102fb60e01b8152600401610aee919061428c565b606061127083836000612a0e565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a0054600160401b900460ff166125d457604051631afcd79f60e31b815260040160405180910390fd5b565b6125de61258b565b6125e88484612bb5565b610b028282612be6565b6125fa61258b565b600060008051602061461c8339815191528351805180518354939450919284928391829060ff191660018360078111156126365761263661348d565b02179055506020918201518154610100600160a81b0319166101006001600160a01b039283160217909155908301516001830155604092830151600290920191909155908401516004830180546001600160a01b0319169190921617905560c08301516001600160f01b031916156126d3576126b58360c00151612c67565b5060c083015160088201805461ffff191660f09290921c9190911790555b6080830151511561276b5760005b836080015151811015612769576127078460800151828151811061074557610745614157565b816000016006018460800151828151811061272457612724614157565b6020908102919091018101518254600180820185556000948552938390208251600290920201805460ff191660f89290921c91909117815591015190820155016126e1565b505b602083015151156127b65760005b8360200151518110156127b4576127ac8460200151828151811061279f5761279f614157565b6020026020010151612aab565b600101612779565b505b60008351515160078111156127cd576127cd61348d565b146127dd5782516127dd90612aab565b82516020808201519151015160c085015160405130926001600160a01b0316917fa90a3b8dae41ae10a708d32fec7bf12da5c90879c98b9c4cca3c8fba91ddf4939161282f9160019189913491614189565b60405180910390a4505050565b7fbdcdd84fd67773ac64bbe05336a88ca03e25175d9b4a6f280761928862a7ed00805460609190819061286e90614123565b90506000036128e6576040518060400160405280601e81526020017f68747470733a2f2f6170692e656e76656c6f702e69732f76326d6574612f00008152506128b64661290f565b6128bf30612cb7565b6040516020016128d193929190614365565b60405160208183030381529060405291505090565b806128f04661290f565b6128f930612cb7565b6040516020016128d1939291906143c3565b5090565b6060600061291c83612cce565b60010190506000816001600160401b0381111561293b5761293b6132f0565b6040519080825280601f01601f191660200182016040528015612965576020820181803683370190505b5090508181016020015b600019016f181899199a1a9b1b9c1cb0b131b232b360811b600a86061a8153600a850494508461296f57509392505050565b6060600080846001600160a01b0316846040516129be9190614468565b600060405180830381855afa9150503d80600081146129f9576040519150601f19603f3d011682016040523d82523d6000602084013e6129fe565b606091505b5091509150611ebb858383612da6565b606081471015612a335760405163cd78605960e01b8152306004820152602401610aee565b600080856001600160a01b03168486604051612a4f9190614468565b60006040518083038185875af1925050503d8060008114612a8c576040519150601f19603f3d011682016040523d82523d6000602084013e612a91565b606091505b5091509150612aa1868383612da6565b9695505050505050565b60038151516007811115612ac157612ac161348d565b03612aff5730612ad082611a9d565b6001600160a01b031614612afc578060006040516301bb847b60e71b8152600401610aee929190614484565b50565b60018151516007811115612b1557612b1561348d565b14612afc576000612b268230611d20565b905081604001518110156107455781816040516301bb847b60e71b8152600401610aee929190614484565b612b5c838383612e02565b610d38576001600160a01b038316612b8a57604051637e27328960e01b815260048101829052602401610aee565b60405163177e802f60e01b81526001600160a01b038316600482015260248101829052604401610aee565b612bbd61258b565b6000805160206145fc83398151915280612bd784826144e6565b5060018101610b0283826144e6565b612bee61258b565b612bf9826001612e67565b805115612c2f577fbdcdd84fd67773ac64bbe05336a88ca03e25175d9b4a6f280761928862a7ed0080612c2c83826144e6565b50505b604051600181527ff8e1a15aba9398e019f0b49df1a4fde98ee17ae345cb5f6b5e2c27f5033e8ce79060200160405180910390a15050565b600061010560f01b82166001600160f01b0319831614612caf576040516345ba6d5760e01b81526001600160f01b031961010560f01b84168418166004820152602401610aee565b506001919050565b606061065f82612cc684612ecc565b600101612f36565b60008072184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b8310612d0d5772184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b830492506040015b6d04ee2d6d415b85acef81000000008310612d39576d04ee2d6d415b85acef8100000000830492506020015b662386f26fc100008310612d5757662386f26fc10000830492506010015b6305f5e1008310612d6f576305f5e100830492506008015b6127108310612d8357612710830492506004015b60648310612d95576064830492506002015b600a831061065f5760010192915050565b606082612dbb57612db6826130ad565b611270565b8151158015612dd257506001600160a01b0384163b155b15612dfb57604051639996b31560e01b81526001600160a01b0385166004820152602401610aee565b5080611270565b60006001600160a01b03831615801590611b775750826001600160a01b0316846001600160a01b03161480612e3c5750612e3c8484611277565b80611b775750826001600160a01b0316612e558361136b565b6001600160a01b031614949350505050565b6001600160a01b038216612e9157604051633250574960e11b815260006004820152602401610aee565b6000612e9f83836000612204565b90506001600160a01b03811615610d38576040516339e3563760e11b815260006004820152602401610aee565b600080608083901c15612ee45760809290921c916010015b604083901c15612ef95760409290921c916008015b602083901c15612f0e5760209290921c916004015b601083901c15612f235760109290921c916002015b600883901c1561065f5760010192915050565b6060826000612f468460026145ba565b612f519060026145d1565b6001600160401b03811115612f6857612f686132f0565b6040519080825280601f01601f191660200182016040528015612f92576020820181803683370190505b509050600360fc1b81600081518110612fad57612fad614157565b60200101906001600160f81b031916908160001a905350600f60fb1b81600181518110612fdc57612fdc614157565b60200101906001600160f81b031916908160001a90535060006130008560026145ba565b61300b9060016145d1565b90505b6001811115613083576f181899199a1a9b1b9c1cb0b131b232b360811b83600f166010811061303f5761303f614157565b1a60f81b82828151811061305557613055614157565b60200101906001600160f81b031916908160001a90535060049290921c9161307c816145e4565b905061300e565b508115611b775760405163e22e27eb60e01b81526004810186905260248101859052604401610aee565b8051156130bd5780518082602001fd5b604051630a12f52160e11b815260040160405180910390fd5b5080546000825560030290600052602060002090810190612afc9190613157565b5080546000825560030290600052602060002090810190612afc9190613184565b5080546000825560020290600052602060002090810190612afc91906131b6565b5080546000825590600052602060002090810190612afc91906131d6565b5b8082111561290b5780546001600160a81b03191681556000600182018190556002820155600301613158565b5b8082111561290b57805460ff19168155600060018201556002810180546001600160a01b0319169055600301613185565b5b8082111561290b57805460ff19168155600060018201556002016131b7565b5b8082111561290b5780546001600160b01b03191681556001016131d7565b6001600160e01b031981168114612afc57600080fd5b60006020828403121561321d57600080fd5b8135611270816131f5565b60005b8381101561324357818101518382015260200161322b565b50506000910152565b60008151808452613264816020860160208601613228565b601f01601f19169290920160200192915050565b602081526000611270602083018461324c565b60006020828403121561329d57600080fd5b5035919050565b6001600160a01b0381168114612afc57600080fd5b8035611bbd816132a4565b600080604083850312156132d757600080fd5b82356132e2816132a4565b946020939093013593505050565b634e487b7160e01b600052604160045260246000fd5b604051606081016001600160401b0381118282101715613328576133286132f0565b60405290565b604080519081016001600160401b0381118282101715613328576133286132f0565b60405160e081016001600160401b0381118282101715613328576133286132f0565b604051601f8201601f191681016001600160401b038111828210171561339a5761339a6132f0565b604052919050565b60006001600160401b038211156133bb576133bb6132f0565b50601f01601f191660200190565b600082601f8301126133da57600080fd5b81356020830160006133f36133ee846133a2565b613372565b905082815285838301111561340757600080fd5b82826020830137600092810160200192909252509392505050565b6000806000806080858703121561343857600080fd5b8435613443816132a4565b93506020850135613453816132a4565b92506040850135915060608501356001600160401b0381111561347557600080fd5b613481878288016133c9565b91505092959194509250565b634e487b7160e01b600052602160045260246000fd5b80518051600881106134c557634e487b7160e01b600052602160045260246000fd5b83526020908101516001600160a01b0316818401528101516040808401919091520151606090910152565b600081518084526020840193506020830160005b8281101561352d576135178683516134a3565b6080959095019460209190910190600101613504565b5093949350505050565b600081518084526020840193506020830160005b8281101561352d57815180516001600160f81b0319168752602080820151818901526040918201516001600160a01b0316918801919091526060909601959091019060010161354b565b600081518084526020840193506020830160005b8281101561352d57815180516001600160f81b031916875260209081015181880152604090960195909101906001016135a9565b600081518084526020840193506020830160005b8281101561352d57815180516001600160a01b0316875260209081015161ffff1681880152604090960195909101906001016135f1565b6020815261363a6020820183516134a3565b6000602083015161014060a08401526136576101608401826134f0565b9050604084015161367360c08501826001600160a01b03169052565b506060840151838203601f190160e085015261368f8282613537565b9150506080840151601f19848303016101008501526136ae8282613595565b91505060a0840151601f19848303016101208501526136cd82826135dd565b91505060c08401516116726101408501826001600160f01b0319169052565b60008060006060848603121561370157600080fd5b833561370c816132a4565b9250602084013561371c816132a4565b929592945050506040919091013590565b60008083601f84011261373f57600080fd5b5081356001600160401b0381111561375657600080fd5b6020830191508360208260071b850101111561377157600080fd5b9250929050565b6000806020838503121561378b57600080fd5b82356001600160401b038111156137a157600080fd5b6137ad8582860161372d565b90969095509350505050565b6000602082840312156137cb57600080fd5b8135611270816132a4565b6000806000604084860312156137eb57600080fd5b83356001600160401b0381111561380157600080fd5b61380d8682870161372d565b9094509250506020840135613821816132a4565b809150509250925092565b8015158114612afc57600080fd5b6000806040838503121561384d57600080fd5b8235613858816132a4565b915060208301356138688161382c565b809150509250929050565b60006001600160401b0382111561388c5761388c6132f0565b5060051b60200190565b600082601f8301126138a757600080fd5b81356138b56133ee82613873565b8082825260208201915060208360051b8601019250858311156138d757600080fd5b602085015b8381101561205f5780358352602092830192016138dc565b600080600080600060a0868803121561390c57600080fd5b8535613917816132a4565b94506020860135613927816132a4565b935060408601356001600160401b0381111561394257600080fd5b61394e88828901613896565b93505060608601356001600160401b0381111561396a57600080fd5b61397688828901613896565b92505060808601356001600160401b0381111561399257600080fd5b61399e888289016133c9565b9150509295509295909350565b600081830360808112156139be57600080fd5b6139c6613306565b915060408112156139d657600080fd5b506139df61332e565b8235600881106139ee57600080fd5b815260208301356139fe816132a4565b6020828101919091529082526040838101359183019190915260609092013591810191909152919050565b600082601f830112613a3a57600080fd5b8135613a486133ee82613873565b8082825260208201915060208360071b860101925085831115613a6a57600080fd5b602085015b8381101561205f57613a8187826139ab565b8352602090920191608001613a6f565b80356001600160f81b031981168114611bbd57600080fd5b600082601f830112613aba57600080fd5b8135613ac86133ee82613873565b80828252602082019150602060608402860101925085831115613aea57600080fd5b602085015b8381101561205f5760608188031215613b0757600080fd5b613b0f613306565b613b1882613a91565b8152602082810135908201526040820135613b32816132a4565b60408201528352602090920191606001613aef565b600082601f830112613b5857600080fd5b8135613b666133ee82613873565b8082825260208201915060208360061b860101925085831115613b8857600080fd5b602085015b8381101561205f5760408188031215613ba557600080fd5b613bad61332e565b613bb682613a91565b8152602082810135818301529084529290920191604001613b8d565b600082601f830112613be357600080fd5b8135613bf16133ee82613873565b8082825260208201915060208360061b860101925085831115613c1357600080fd5b602085015b8381101561205f5760408188031215613c3057600080fd5b613c3861332e565b8135613c43816132a4565b8152602082013561ffff81168114613c5a57600080fd5b6020828101919091529084529290920191604001613c18565b80356001600160f01b031981168114611bbd57600080fd5b60006101408284031215613c9e57600080fd5b613ca6613350565b9050613cb283836139ab565b815260808201356001600160401b03811115613ccd57600080fd5b613cd984828501613a29565b602083015250613ceb60a083016132b9565b604082015260c08201356001600160401b03811115613d0957600080fd5b613d1584828501613aa9565b60608301525060e08201356001600160401b03811115613d3457600080fd5b613d4084828501613b47565b6080830152506101008201356001600160401b03811115613d6057600080fd5b613d6c84828501613bd2565b60a083015250613d7f6101208301613c73565b60c082015292915050565b600080600080600060a08688031215613da257600080fd5b8535613dad816132a4565b945060208601356001600160401b03811115613dc857600080fd5b613dd4888289016133c9565b94505060408601356001600160401b03811115613df057600080fd5b613dfc888289016133c9565b93505060608601356001600160401b03811115613e1857600080fd5b613e24888289016133c9565b92505060808601356001600160401b03811115613e4057600080fd5b61399e88828901613c8b565b60008083601f840112613e5e57600080fd5b5081356001600160401b03811115613e7557600080fd5b6020830191508360208260051b850101111561377157600080fd5b600080600080600060608688031215613ea857600080fd5b85356001600160401b03811115613ebe57600080fd5b613eca88828901613e4c565b90965094505060208601356001600160401b03811115613ee957600080fd5b613ef588828901613e4c565b90945092505060408601356001600160401b03811115613f1457600080fd5b8601601f81018813613f2557600080fd5b8035613f336133ee82613873565b8082825260208201915060208360051b85010192508a831115613f5557600080fd5b602084015b83811015613f965780356001600160401b03811115613f7857600080fd5b613f878d6020838901016133c9565b84525060209283019201613f5a565b50809450505050509295509295909350565b6000602082016020835280845180835260408501915060408160051b86010192506020860160005b8281101561400157603f19878603018452613fec85835161324c565b94506020938401939190910190600101613fd0565b50929695505050505050565b60008060006060848603121561402257600080fd5b833561402d816132a4565b92506020840135915060408401356001600160401b0381111561404f57600080fd5b61405b868287016133c9565b9150509250925092565b6000806040838503121561407857600080fd5b8235614083816132a4565b91506020830135613868816132a4565b60008082840360a08112156140a757600080fd5b60808112156140b557600080fd5b508291506080830135613868816132a4565b600080600080600060a086880312156140df57600080fd5b85356140ea816132a4565b945060208601356140fa816132a4565b9350604086013592506060860135915060808601356001600160401b0381111561399257600080fd5b600181811c9082168061413757607f821691505b60208210810361121857634e487b7160e01b600052602260045260246000fd5b634e487b7160e01b600052603260045260246000fd5b60006080828403121561417f57600080fd5b61127083836139ab565b9384526001600160a01b0392909216602084015260408301526001600160f01b031916606082015260800190565b6000602082840312156141c957600080fd5b81516112708161382c565b6001600160a01b0385811682528416602082015260408101839052608060608201819052600090612aa19083018461324c565b60006020828403121561421957600080fd5b8151611270816131f5565b60008151614236818560208601613228565b9290920192915050565b60008351614252818460208801613228565b835190830190614266818360208801613228565b01949350505050565b60006020828403121561428157600080fd5b8151611270816132a4565b6080810161065f82846134a3565b6000602082840312156142ac57600080fd5b81516001600160401b038111156142c257600080fd5b8201601f810184136142d357600080fd5b80516142e16133ee826133a2565b8181528560208385010111156142f657600080fd5b610eba826020830160208601613228565b60006020828403121561431957600080fd5b5051919050565b6001600160a01b03868116825285166020820152604081018490526060810183905260a06080820181905260009061435a9083018461324c565b979650505050505050565b60008451614377818460208901613228565b84519083019061438b818360208901613228565b602f60f81b910190815283516143a8816001840160208801613228565b602f60f81b6001929091019182015260020195945050505050565b60008085546143d181614123565b6001821680156143e857600181146143fd5761442d565b60ff198316865281151582028601935061442d565b88600052602060002060005b8381101561442557815488820152600190910190602001614409565b505081860193505b5050508451614440818360208901613228565b602f60f81b91019081526001810161435a61445b8287614224565b602f60f81b815260010190565b6000825161447a818460208701613228565b9190910192915050565b60a0810161449282856134a3565b8260808301529392505050565b601f821115610d3857806000526020600020601f840160051c810160208510156144c65750805b601f840160051c820191505b81811015611a1157600081556001016144d2565b81516001600160401b038111156144ff576144ff6132f0565b6145138161450d8454614123565b8461449f565b6020601f821160018114614547576000831561452f5750848201515b600019600385901b1c1916600184901b178455611a11565b600084815260208120601f198516915b828110156145775787850151825560209485019460019092019101614557565b50848210156145955786840151600019600387901b60f8161c191681555b50505050600190811b01905550565b634e487b7160e01b600052601160045260246000fd5b808202811582820484141761065f5761065f6145a4565b8082018082111561065f5761065f6145a4565b6000816145f3576145f36145a4565b50600019019056fe80bb2b638cc20bc4d0a60d66940f3ab4a00c1d7b313497ca82fb0b4ab0079300b25b7d902932741f4867febf64c52dbc3980210eefc4a36bf4280ce48f34a100696e697469616c697a6528616464726573732c737472696e672c737472696e672c737472696e672c28282875696e74382c61646472657373292c75696e743235362c75696e74323536292c282875696e74382c61646472657373292c75696e743235362c75696e74323536295b5d2c616464726573732c286279746573312c75696e743235362c61646472657373295b5d2c286279746573312c75696e74323536295b5d2c28616464726573732c75696e743136295b5d2c6279746573322929a26469706673582212206be14958f4098654fc5dc0380efa18e89b76da86cd693362dbe442e7f167a10864736f6c634300081a0033