0 txs
20 calls
constructor
No constructor.
functions
assetAddresstoAssetId
viewfunction assetAddresstoAssetId(address) view returns (uint256)
assetIdToTradeIds
viewfunction assetIdToTradeIds(uint256, uint256) view returns (bytes8)
custodianUser
viewfunction custodianUser(bytes8, address) view returns (uint256 value, string transactionType, address custodianAddress)
getAssetId
viewfunction getAssetId(address assetAddress) view returns (uint256 assetId)
getCustodianUser
viewfunction getCustodianUser(bytes8 _tradeId, address _custodianAddress) view returns (tuple _custodianUser)
getTradeCount
viewfunction getTradeCount() view returns (uint256 tradeCount)
getTradeDetails
viewfunction getTradeDetails(bytes8 _tradeId) view returns (tuple trade)
getTradeIds
viewfunction getTradeIds(uint256 assetId) view returns (bytes8[] tradeIds)
getTradIdsByAssetAddress
viewfunction getTradIdsByAssetAddress(address _assetAddress) view returns (bytes8[] tradeIds)
getUserCustodian
viewfunction getUserCustodian(bytes8 _tradeId, address _user) view returns (tuple _userCustodian)
tradeCounter
viewfunction tradeCounter() view returns (uint256)
trades
viewfunction trades(bytes8) view returns (bytes8 tradeId, address maker, address taker, address assetAddress, address custodianAddress, uint8 tradeType, uint256 amount, string token, uint256 units, string note, uint256 fees, address feesAddress, uint256 timestamp)
userCustodian
viewfunction userCustodian(bytes8, address) view returns (uint256 value, string transactionType)
cancelOffer
nonpayablefunction cancelOffer(bytes8 _tradeId, address _receiver, uint256 _assetId, address _assetAddress, address _custodianAddress, uint256 _amount, string _note, string _currency, string[] _txnHash, uint256 _units, bool _isExpired)
initialize
nonpayablefunction initialize(address _nftRegistryAddress)
makeBuy
nonpayablefunction makeBuy(bytes8 _tradeId, uint256 _assetId, address _maker, address _assetAddress, string _currency, uint256 _amount, address _custodianAddress, string _note, string[] _txnHash)
makeSell
nonpayablefunction makeSell(bytes8 _tradeId, address _maker, uint256 _assetId, address _assetAddress, string _currency, uint256 _units, address _custodianAddress, string _note, string[] _txnHash)
takeBuy
nonpayablefunction takeBuy(bytes8 _tradeId, address _maker, address _taker, uint256 _assetId, address _assetAddress, string _currency, uint256 _amount, uint256 _units, address _custodianAddress, address _feesAddress, uint256 _fees, uint256 _ownerFees, uint256 _platformFees, string _note, string[] _txnHash)
takeSell
nonpayablefunction takeSell(bytes8 _tradeId, address _maker, address _taker, uint256 _assetId, address _assetAddress, string _currency, uint256 _amount, uint256 _units, address _custodianAddress, address _feesAddress, uint256 _fees, uint256 _ownerFees, uint256 _platformFees, string _note, string[] _txnHash)
events
Initialized
event Initialized(uint64 version)
TradeCreated
event TradeCreated(bytes8 indexed tradeId, address indexed maker, address indexed assetAddress, uint256 amount, string currency, uint8 tradeType, string note)
errors
InvalidInitialization
error InvalidInitialization()
NotInitializing
error NotInitializing()
creation bytecode
0x6080806040523461001657614a50908161001c8239f35b600080fdfe610200604052600436101561001357600080fd5b60003560e01c806310397aef146142e257806310714d98146139d7578063164fa5611461394b5780632c10e30a146131445780633da16c361461302b57806349ff019614612f825780634e31665f14612e365780636099ea7b14612d68578063660d15b514611b545780636903cf0114612a405780638bf0326714611b725780638ea9691814610235578063a3031b7714611b54578063acb9aeb414611ada578063b1d6b8eb14610c4d578063c1450bd5146103a2578063c4d66de81461026f578063d6abe642146102355763e7b29c9e146100ee57600080fd5b34610230576020806003193601126102305760043560005260018082526040600020916040519182828554918281520194600052826000206000925b8260038501106101eb575094849261016d9492610179975491848282106101cd575b8282106101af575b828210610191575b501061017d575b509050038261445f565b6040519182918261469c565b0390f35b6001600160c01b0319168152018038610163565b604084901b6001600160c01b0319168552909301926001018461015c565b608084901b6001600160c01b03191685529093019260010184610154565b60c084901b6001600160c01b0319168552909301926001018461014c565b929095836004918854906001600160401b0360c01b808360c01b1682526080928181851b168a840152818160401b16604084015216606082015201970191019261012a565b600080fd5b34610230576020366003190112610230576001600160a01b036102566143ca565b1660005260006020526020604060002054604051908152f35b34610230576020366003190112610230576102886143ca565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a009081549060ff8260401c1615916001600160401b0381168015908161039a575b6001149081610390575b159081610387575b506103755767ffffffffffffffff198116600117845582610356575b5060018060a01b03166001600160601b0360a01b600654161760065561031957005b68ff00000000000000001981541690557fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602060405160018152a1005b68ffffffffffffffffff191668010000000000000001178355836102f7565b60405163f92ee8a960e01b8152600490fd5b905015856102db565b303b1591506102d3565b8491506102c9565b3461023057610120366003190112610230576103bc614371565b6103c4614388565b906103cd61439e565b6084356001600160401b038111610230576103ec9036906004016143e0565b9390916103f76143b4565b9160e4356001600160401b038111610230576104179036906004016143e0565b919093610104356001600160401b0381116102305761043a9036906004016144dd565b61044b6104463361494a565b6147c5565b6104576104468461494a565b6001600160401b0360c01b8816600052600460205261048a6001600160401b0360c01b60406000205460c01b1615614821565b610496604435866149d5565b604051916104a38361440d565b6001600160c01b0319891683526001600160a01b038481166020850152600060408501819052878216606086015291166080840152600160a084015260c08301526104ef368a89614497565b60e083015260a435610100830152610508368588614497565b61012083015260006101408301526000610160830152426101808301526101a08201526001600160401b0360c01b87166000526004602052604060002090805160c01c825490600160401b600160e01b03602084015160401b169163ffffffff60e01b16171782556001820160018060a01b036040830151166001600160601b0360a01b8254161790556002820160018060a01b036060830151166001600160601b0360a01b82541617905560018060a01b0360808201511660038301549060a08301516006811015610c37576001600160a81b03199092161760a09190911b60ff60a01b1617600383015560c0810151600483015560e08101518051906001600160401b038211610935576106216005850154614570565b601f8111610c02575b50602090601f8311600114610b905761065c92916000918361086f575b50508160011b916000199060031b1c19161790565b60058301555b61010081015160068301556101208101518051906001600160401b038211610935576106916007850154614570565b601f8111610b5b575b50602090601f8311600114610ae75791806106d0926101a09594600092610adc5750508160011b916000199060031b1c19161790565b60078401555b61014081015160088401556009830160018060a01b03610160830151166001600160601b0360a01b825416179055610180810151600a8401550151805190600160401b821161093557600b83015482600b850155808310610a64575b506020600b910192016000526020600020916000905b82821061094b5750505050604435600052600160205261076c8660406000206148cf565b600160405161077a81614444565b60a435815261078a368a89614497565b92602082019384526001600160401b0360c01b89166000526002602052604060002090838060a01b03166000526020526040600020905181550190518051906001600160401b038211610935576107e18354614570565b601f81116108f8575b50602090601f831160011461087a57826000805160206149fb8339815191529796959361085c95936108329360009261086f5750508160011b916000199060031b1c19161790565b90555b60405193849360018060a01b03169833986001600160401b0360c01b169760a4358661489c565b0390a461086a60055461490b565b600555005b015190508c80610647565b90601f198316918460005260206000209260005b8181106108e057509260019285926000805160206149fb8339815191529a99989661085c9896106108c7575b505050811b019055610835565b015160001960f88460031b161c191690558b80806108ba565b9293602060018192878601518155019501930161088e565b61092590846000526020600020601f850160051c8101916020861061092b575b601f0160051c0190614864565b896107ea565b9091508190610918565b634e487b7160e01b600052604160045260246000fd5b80518051906001600160401b038211610935576109688654614570565b601f8111610a32575b50602090601f83116001146109c457926109aa836001959460209487966000926109b95750508160011b916000199060031b1c19161790565b87555b01940191019092610748565b015190503880610647565b90601f198316918760005260206000209260005b818110610a1a5750936020936001969387969383889510610a01575b505050811b0187556109ad565b015160001960f88460031b161c191690553880806109f4565b929360206001819287860151815501950193016109d8565b610a5e90876000526020600020601f850160051c8101916020861061092b57601f0160051c0190614864565b8d610971565b600b84016000526020600020908382015b8183018110610a85575050610732565b80610a9260019254614570565b80610a9f575b5001610a75565b601f81118314610ab55750600081555b8e610a98565b600090828252610ad3601f60208420920160051c8201858301614864565b81835555610aaf565b015190508d80610647565b906007850160005260206000209160005b601f1985168110610b4357509183916001936101a09695601f19811610610b2a575b505050811b0160078401556106d6565b015160001960f88460031b161c191690558c8080610b1a565b91926020600181928685015181550194019201610af8565b610b8a90600786016000526020600020601f850160051c8101916020861061092b57601f0160051c0190614864565b8b61069a565b9190600585016000526020600020906000935b601f1984168510610be7576001945083601f19811610610bce575b505050811b016005830155610662565b015160001960f88460031b161c191690558b8080610bbe565b81810151835560209485019460019093019290910190610ba3565b610c3190600586016000526020600020601f850160051c8101916020861061092b57601f0160051c0190614864565b8b61062a565b634e487b7160e01b600052602160045260246000fd5b3461023057610c5b366146e2565b9499919b9f939c929d9e969a9890979b610140526101005260a052610120526101605292989794909596939a999192610c966104463361494a565b610ca26104468461494a565b610cae6104468561494a565b6001600160401b0360c01b61016051166000526004602052610ce46001600160401b0360c01b60406000205460c01b1615614821565b610cf1610120518c6149d5565b60405190610cfe8261440d565b610160516001600160c01b03191682526001600160a01b03858116602084015284811660408401528c8116606084015289166080830152600260a0808401919091526101005160c084015251610d569036908f614497565b60e083015285610100830152610d70368c61014051614497565b6101208301528261014083015260018060a01b038816610160830152426101808301526101a08201526001600160401b0360c01b61016051166000526004602052604060002090805160c01c825490600160401b600160e01b03602084015160401b169163ffffffff60e01b161717825560018060a01b036040820151166001600160601b0360a01b6001840154161760018301556002820160018060a01b036060830151166001600160601b0360a01b82541617905560018060a01b0360808201511660038301549060a08301516006811015610c37576001600160a81b03199092161760a09190911b60ff60a01b1617600383015560c0810151600483015560e08101518051906001600160401b03821161093557610e946005850154614570565b601f8111611aa5575b50602090601f8311600114611a3357610ece9291600091836109b95750508160011b916000199060031b1c19161790565b60058301555b61010081015160068301556101208101518051906001600160401b03821161093557610f036007850154614570565b601f81116119fe575b50602090601f831160011461198a579180610f42926101a095946000926109b95750508160011b916000199060031b1c19161790565b60078401555b61014081015160088401556009830160018060a01b03610160830151166001600160601b0360a01b825416179055610180810151600a8401550151805190600160401b821161093557600b83015482600b850155808310611912575b506020600b910192016000526020600020916000905b8282106118025750505050610120516000526001602052610fe26101605160406000206148cf565b604051610fee81614444565b848152610fff368d60a05190614497565b6020828101918252610160516001600160c01b03191660009081526002825260408082206001600160a01b03881683529092522091518255518051906001600160401b038211610935576110566001840154614570565b601f81116117cd575b50602090601f831160011461175957826110a5959493600193611098936000926109b95750508160011b916000199060031b1c19161790565b9101555b6101005161493d565b90604051916110b383614429565b82526110c23660a0518d614497565b60208381019182526001600160a01b03898116604080870191909152610160516001600160c01b03191660009081526003845281812092909516855291529091208251815590518051906001600160401b038211610935576111276001840154614570565b601f8111611724575b50602090601f83116001146116b157918061116592600295946000926116a65750508160011b916000199060031b1c19161790565b60018201555b0190604060018060a01b03910151166001600160601b0360a01b8254161790556040519161119883614429565b82526111a73660a0518b614497565b60208381019182526001600160a01b03878116604080870191909152610160516001600160c01b03191660009081526003845281812092909516855291529091208251815590518051906001600160401b0382116109355761120c6001840154614570565b601f8111611671575b50602090601f83116001146115fe57918061124a9260029594600092610adc5750508160011b916000199060031b1c19161790565b60018201555b0190604060018060a01b03910151166001600160601b0360a01b8254161790556040519061127d82614429565b815261128c3660a05189614497565b60208281019182526001600160a01b03858116604080860191909152610160516001600160c01b031916600090815260038452818120928b16815291909252208251815590518051906001600160401b038211610935576112f06001840154614570565b601f81116115c9575b50602090601f831160011461155657918061132e926002959460009261086f5750508160011b916000199060031b1c19161790565b60018201555b0190604060018060a01b03910151166001600160601b0360a01b8254161790556040519261136184614429565b83526113703660a05188614497565b60208481019182526001600160a01b03938416604080870191909152610160516001600160c01b03191660009081526003835281812094909516855292905291208251815590518051906001600160401b038211610935576113d56001840154614570565b601f8111611521575b50602090601f83116001146114ae57918061141392600295946000926114a35750508160011b916000199060031b1c19161790565b60018201555b0190604060018060a01b03910151166001600160601b0360a01b8254161790556000805160206149fb83398151915261146a6040519461010051865260806020870152608086019060a0519061487b565b9260026040860152848403606086015260018060a01b0316938061085c33956001600160401b0360c01b6101605116956101405161487b565b015190508980610647565b906001840160005260206000209160005b601f1985168110611509575091839160019360029695601f198116106114f0575b505050811b016001820155611419565b015160001960f88460031b161c191690558880806114e0565b919260206001819286850151815501940192016114bf565b61155090600185016000526020600020601f850160051c8101916020861061092b57601f0160051c0190614864565b876113de565b906001840160005260206000209160005b601f19851681106115b1575091839160019360029695601f19811610611598575b505050811b016001820155611334565b015160001960f88460031b161c191690558b8080611588565b91926020600181928685015181550194019201611567565b6115f890600185016000526020600020601f850160051c8101916020861061092b57601f0160051c0190614864565b8a6112f9565b906001840160005260206000209160005b601f1985168110611659575091839160019360029695601f19811610611640575b505050811b016001820155611250565b015160001960f88460031b161c191690558c8080611630565b9192602060018192868501518155019401920161160f565b6116a090600185016000526020600020601f850160051c8101916020861061092b57601f0160051c0190614864565b8b611215565b015190508f80610647565b906001840160005260206000209160005b601f198516811061170c575091839160019360029695601f198116106116f3575b505050811b01600182015561116b565b015160001960f88460031b161c191690558e80806116e3565b919260206001819286850151815501940192016116c2565b61175390600185016000526020600020601f850160051c8101916020861061092b57601f0160051c0190614864565b8d611130565b906001840160005260206000209160005b601f19851681106117b557509260019283926110a597969583601f1981161061179c575b505050811b0191015561109c565b015160001960f88460031b161c1916905538808061178e565b9192602060018192868501518155019401920161176a565b6117fc90600185016000526020600020601f850160051c8101916020861061092b57601f0160051c0190614864565b8e61105f565b80518051906001600160401b0382116109355761181f8654614570565b601f81116118e0575b50602090601f83116001146118705792611861836001959460209487966000926109b95750508160011b916000199060031b1c19161790565b87555b01940191019092610fba565b908660005260206000209160005b601f19851681106118c8575083602093600196938796938794601f198116106118af575b505050811b018755611864565b015160001960f88460031b161c191690553880806118a2565b9192602060018192868501518155019401920161187e565b61190c90876000526020600020601f850160051c8101916020861061092b57601f0160051c0190614864565b38611828565b600b84016000526020600020908382015b8183018110611933575050610fa4565b8061194060019254614570565b8061194d575b5001611923565b601f811183146119635750600081555b38611946565b600090828252611981601f60208420920160051c8201858301614864565b8183555561195d565b906007850160005260206000209160005b601f19851681106119e657509183916001936101a09695601f198116106119cd575b505050811b016007840155610f48565b015160001960f88460031b161c191690553880806119bd565b9192602060018192868501518155019401920161199b565b611a2d90600786016000526020600020601f850160051c8101916020861061092b57601f0160051c0190614864565b8f610f0c565b9190600585016000526020600020906000935b601f1984168510611a8a576001945083601f19811610611a71575b505050811b016005830155610ed4565b015160001960f88460031b161c191690558f8080611a61565b81810151835560209485019460019093019290910190611a46565b611ad490600586016000526020600020601f850160051c8101916020861061092b57601f0160051c0190614864565b8f610e9d565b3461023057604036600319011261023057611af3614371565b611afb614388565b906001600160401b0360c01b16600052600260205260406000209060018060a01b03166000526020526040600020611b376001825492016145aa565b90610179604051928392835260406020840152604083019061464f565b34610230576000366003190112610230576020600554604051908152f35b3461023057611b80366146e2565b969c939d949a99919e9f95979b929e60e0999199526101805260c0526080526101a0526101c0526101e05291979693909594929891611bc16104463361494a565b611bd06104466101c05161494a565b611bdc6104468461494a565b6001600160401b0360c01b6101e051166000526004602052611c126001600160401b0360c01b60406000205460c01b1615614821565b611c216101a0516080516149d5565b611c2e8261018051614930565b9060405191611c3c8361440d565b6101e0516001600160c01b03191683526001600160a01b0385811660208501526101c05181166040850152608080518216606086015290891690840152600360a084015260c08381019190915251611c969036908d614497565b60e083015284610100830152611caf368b60e051614497565b6101208301528261014083015260018060a01b038816610160830152426101808301526101a08201526001600160401b0360c01b6101e051166000526004602052604060002090805160c01c825490600160401b600160e01b03602084015160401b169163ffffffff60e01b161717825560018060a01b036040820151166001600160601b0360a01b6001840154161760018301556002820160018060a01b036060830151166001600160601b0360a01b82541617905560018060a01b0360808201511660038301549060a08301516006811015610c37576001600160a81b03199092161760a09190911b60ff60a01b1617600383015560c0810151600483015560e08101518051906001600160401b03821161093557611dd36005850154614570565b601f8111612a0b575b50602090601f831160011461299957611e0d92916000918361298e5750508160011b916000199060031b1c19161790565b60058301555b61010081015160068301556101208101518051906001600160401b03821161093557611e426007850154614570565b601f8111612959575b50602090601f83116001146128e5579180611e81926101a095946000926116a65750508160011b916000199060031b1c19161790565b60078401555b61014081015160088401556009830160018060a01b03610160830151166001600160601b0360a01b825416179055610180810151600a8401550151805190600160401b821161093557600b83015482600b85015580831061286d575b506020600b910192016000526020600020916000905b82821061275d57505050506101a0516000526001602052611f216101e05160406000206148cf565b611f2e8161018051614930565b60405190611f3b82614444565b8152611f4a3660c0518c614497565b60208281019182526101e0516001600160c01b03191660009081526002825260408082206101c0516001600160a01b031683529092522091518255518051906001600160401b03821161093557611fa46001840154614570565b601f8111612728575b50602090601f83116001146126b45782611ff3959493600193611fe6936000926116a65750508160011b916000199060031b1c19161790565b9101555b6101805161493d565b906040519161200183614429565b82526120103660c0518b614497565b60208381019182526001600160a01b038781166040808701919091526101e0516001600160c01b03191660009081526003845281812092909516855291529091208251815590518051906001600160401b038211610935576120756001840154614570565b601f811161267f575b50602090601f831160011461260c5791806120b39260029594600092610adc5750508160011b916000199060031b1c19161790565b60018201555b0190604060018060a01b03910151166001600160601b0360a01b825416179055604051906120e682614429565b81526120f53660c05189614497565b60208281019182526001600160a01b038581166040808601919091526101e0516001600160c01b0319166000908152600384528181206101c051909316815291909252208251815590518051906001600160401b0382116109355761215d6001840154614570565b601f81116125d7575b50602090601f831160011461256457918061219b926002959460009261086f5750508160011b916000199060031b1c19161790565b60018201555b0190604060018060a01b03910151166001600160601b0360a01b825416179055604051906121ce82614429565b81526121dd3660c05188614497565b60208281019182526001600160a01b038481166040808601919091526101e0516001600160c01b031916600090815260038452818120608051909316815291909252208251815590518051906001600160401b038211610935576122446001840154614570565b601f811161252f575b50602090601f83116001146124bc57918061228292600295946000926124b15750508160011b916000199060031b1c19161790565b60018201555b0190604060018060a01b03910151166001600160601b0360a01b825416179055604051926122b584614429565b83526122c43660c05187614497565b602084015260018060a01b031660408301526001600160401b0360c01b6101e05116600052600360205260406000209060018060a01b031660005260205260406000208151815560208201518051906001600160401b0382116109355761232e6001840154614570565b601f811161247c575b50602090601f831160011461240957918061236c92600295946000926123fe5750508160011b916000199060031b1c19161790565b60018201555b0190604060018060a01b03910151166001600160601b0360a01b8254161790556123b46040519261018051845260806020850152608084019060c0519061487b565b906003604084015282820360608401526000805160206149fb83398151915260018060a01b0360805116938061085c33956001600160401b0360c01b6101e051169560e05161487b565b015190508880610647565b906001840160005260206000209160005b601f1985168110612464575091839160019360029695601f1981161061244b575b505050811b016001820155612372565b015160001960f88460031b161c1916905587808061243b565b9192602060018192868501518155019401920161241a565b6124ab90600185016000526020600020601f850160051c8101916020861061092b57601f0160051c0190614864565b86612337565b015190508b80610647565b906001840160005260206000209160005b601f1985168110612517575091839160019360029695601f198116106124fe575b505050811b016001820155612288565b015160001960f88460031b161c191690558a80806124ee565b919260206001819286850151815501940192016124cd565b61255e90600185016000526020600020601f850160051c8101916020861061092b57601f0160051c0190614864565b8961224d565b906001840160005260206000209160005b601f19851681106125bf575091839160019360029695601f198116106125a6575b505050811b0160018201556121a1565b015160001960f88460031b161c191690558b8080612596565b91926020600181928685015181550194019201612575565b61260690600185016000526020600020601f850160051c8101916020861061092b57601f0160051c0190614864565b8a612166565b906001840160005260206000209160005b601f1985168110612667575091839160019360029695601f1981161061264e575b505050811b0160018201556120b9565b015160001960f88460031b161c191690558c808061263e565b9192602060018192868501518155019401920161261d565b6126ae90600185016000526020600020601f850160051c8101916020861061092b57601f0160051c0190614864565b8b61207e565b906001840160005260206000209160005b601f19851681106127105750926001928392611ff397969583601f198116106126f7575b505050811b01910155611fea565b015160001960f88460031b161c191690558e80806126e9565b919260206001819286850151815501940192016126c5565b61275790600185016000526020600020601f850160051c8101916020861061092b57601f0160051c0190614864565b8c611fad565b80518051906001600160401b0382116109355761277a8654614570565b601f811161283b575b50602090601f83116001146127cb57926127bc836001959460209487966000926109b95750508160011b916000199060031b1c19161790565b87555b01940191019092611ef9565b908660005260206000209160005b601f1985168110612823575083602093600196938796938794601f1981161061280a575b505050811b0187556127bf565b015160001960f88460031b161c191690553880806127fd565b919260206001819286850151815501940192016127d9565b61286790876000526020600020601f850160051c8101916020861061092b57601f0160051c0190614864565b8f612783565b600b84016000526020600020908382015b818301811061288e575050611ee3565b8061289b60019254614570565b806128a8575b500161287e565b601f811183146128be5750600081555b386128a1565b6000908282526128dc601f60208420920160051c8201858301614864565b818355556128b8565b906007850160005260206000209160005b601f198516811061294157509183916001936101a09695601f19811610612928575b505050811b016007840155611e87565b015160001960f88460031b161c191690558e8080612918565b919260206001819286850151815501940192016128f6565b61298890600786016000526020600020601f850160051c8101916020861061092b57601f0160051c0190614864565b8d611e4b565b015190508e80610647565b9190600585016000526020600020906000935b601f19841685106129f0576001945083601f198116106129d7575b505050811b016005830155611e13565b015160001960f88460031b161c191690558d80806129c7565b818101518355602094850194600190930192909101906129ac565b612a3a90600586016000526020600020601f850160051c8101916020861061092b57601f0160051c0190614864565b8d611ddc565b3461023057602036600319011261023057612a59614371565b60606101a0604051612a6a8161440d565b60008152600060208201526000604082015260008382015260006080820152600060a0820152600060c08201528260e082015260006101008201528261012082015260006101408201526000610160820152600061018082015201526001600160401b0360c01b166000526004602052604060002060405190612aec8261440d565b80546001600160c01b031960c082901b1683526001600160a01b03604091821c81166020850152600183015481169184019190915260028201548116606084015260038201549081166080840152600660ff60a083901c161015610c375760ff9060a01c1660a0830152600481015460c0830152612b6c600582016145aa565b60e08301526006810154610100830152612b88600782016145aa565b610120830152600881015461014083015260098101546001600160a01b0316610160830152600a810154610180830152600b810154612bc681614480565b91612bd4604051938461445f565b818352600b60208401910160005260206000206000915b838310612d4b576101a0860185905260408051602080825288516001600160c01b031916818301528801516001600160a01b0390811682840152918801518216606080830191909152880151821660808083019190915288015190911660a08083019190915287015181908890612c669060c084019061468f565b60c081015160e0830152612c8c60e08201516101c06101008501526101e084019061464f565b6101008201516101208401526101a0612cb961012084015192601f1993848783030161014088015261464f565b9261014081015161016086015260018060a01b03610160820151166101808601526101808101518286015201519181848203016101c0850152825190818152602081016020808460051b8401019501936000925b848410612d1a5787870388f35b91939581939597506020612d3982600194868495030188528a5161464f565b98019401940191879695939491612d0d565b600160208192612d5a856145aa565b815201920192019190612beb565b3461023057604036600319011261023057612d81614371565b612d89614388565b60405191612d9683614429565b600083526000604060209460608682015201526001600160401b0360c01b1660005260038252604060002060018060a01b038092166000528252604060002060405191612de283614429565b81548352612e2a816002612df8600186016145aa565b94878701958652015416926040850193845260405195869581875251908601525160606040860152608085019061464f565b91511660608301520390f35b3461023057602080600319360112610230576001600160a01b03612e586143ca565b166000526000815260406000205460005260018082526040600020916040519182828554918281520194600052826000206000925b826003850110612f3d575094849261016d949261017997549184828210612f1f575b828210612f01575b828210612ee3575b5010612ecf57509050038261445f565b6001600160c01b0319168152018086610163565b604084901b6001600160c01b03191685529093019260010184612ebf565b608084901b6001600160c01b03191685529093019260010184612eb7565b60c084901b6001600160c01b03191685529093019260010184612eaf565b929095836004918854906001600160401b0360c01b808360c01b1682526080928181851b168a840152818160401b166040840152166060820152019701910192612e8d565b3461023057604036600319011261023057612f9b614371565b612fa3614388565b60405191612fb083614444565b6000835260606020809401526001600160401b0360c01b166000526002825260406000209060018060a01b031660005281526040600020610179613006600160405193612ffc85614444565b80548552016145aa565b838301908152604051938493818552519084015251604080840152606083019061464f565b34610230576020366003190112610230576001600160c01b03198061304e614371565b1660009081526004602081905260409091208054600182015460028301546003840154948401546001600160a01b039693959187169492871693613094600585016145aa565b90600685015492600786016130a8906145aa565b948a6008880154998160098a01541698600a015499604051809e819e6101a0988160c01b16835260401c16906020015260408d015260608c0152811660808b015260a08a019060a01c60ff16906130fe9161468f565b60c08901528060e089015287016131149161464f565b9061010087015285810361012087015261312d9161464f565b926101408501526101608401526101808301520390f35b34610230576101203660031901126102305761315e614371565b6044356001600160a01b03811690036102305761317961439e565b906084356001600160401b038111610230576131999036906004016143e0565b926131a26143b4565b9060e4356001600160401b038111610230576131c29036906004016143e0565b90926001600160401b036101043511610230576131e536610104356004016144dd565b6131f16104463361494a565b6131ff61044660443561494a565b6001600160401b0360c01b871660005260046020526132326001600160401b0360c01b60406000205460c01b1615614821565b61323e602435856149d5565b6040519161324b8361440d565b6001600160c01b0319881683526001600160a01b036044358116602085015260006040850181905286821660608601529116608084015260a083015260a43560c083015261329a368988614497565b60e083015260006101008301526132b2368487614497565b61012083015260006101408301526000610160830152426101808301526101a08201526001600160401b0360c01b86166000526004602052604060002090805160c01c825490600160401b600160e01b03602084015160401b169163ffffffff60e01b16171782556001820160018060a01b036040830151166001600160601b0360a01b8254161790556002820160018060a01b036060830151166001600160601b0360a01b82541617905560018060a01b0360808201511660038301549060a08301516006811015610c37576001600160a81b03199092161760a09190911b60ff60a01b1617600383015560c0810151600483015560e08101518051906001600160401b038211610935576133cb6005850154614570565b601f8111613916575b50602090601f83116001146138a4576134059291600091836124b15750508160011b916000199060031b1c19161790565b60058301555b61010081015160068301556101208101518051906001600160401b0382116109355761343a6007850154614570565b601f811161386f575b50602090601f83116001146137fb579180613479926101a0959460009261086f5750508160011b916000199060031b1c19161790565b60078401555b61014081015160088401556009830160018060a01b03610160830151166001600160601b0360a01b825416179055610180810151600a8401550151805190600160401b821161093557600b83015482600b850155808310613783575b506020600b910192016000526020600020916000905b828210613673575050505060243560005260016020526135158560406000206148cf565b60405161352181614444565b60a43581526001613533368988614497565b91602081019283526001600160401b0360c01b881660005260026020526040600020828060a01b03604435166000526020526040600020905181550190518051906001600160401b0382116109355761358c8354614570565b601f8111613641575b50602090601f83116001146135dd57826000805160206149fb8339815191529796959361085c95936108329360009261086f5750508160011b916000199060031b1c19161790565b90601f198316918460005260206000209260005b81811061362957509260019285926000805160206149fb8339815191529a99989661085c9896106108c757505050811b019055610835565b929360206001819287860151815501950193016135f1565b61366d90846000526020600020601f850160051c8101916020861061092b57601f0160051c0190614864565b89613595565b80518051906001600160401b038211610935576136908654614570565b601f8111613751575b50602090601f83116001146136e157926136d2836001959460209487966000926109b95750508160011b916000199060031b1c19161790565b87555b019401910190926134f1565b908660005260206000209160005b601f1985168110613739575083602093600196938796938794601f19811610613720575b505050811b0187556136d5565b015160001960f88460031b161c191690558f8080613713565b919260206001819286850151815501940192016136ef565b61377d90876000526020600020601f850160051c8101916020861061092b57601f0160051c0190614864565b8c613699565b600b84016000526020600020908382015b81830181106137a45750506134db565b806137b160019254614570565b806137be575b5001613794565b601f811183146137d45750600081555b8d6137b7565b6000908282526137f2601f60208420920160051c8201858301614864565b818355556137ce565b906007850160005260206000209160005b601f198516811061385757509183916001936101a09695601f1981161061383e575b505050811b01600784015561347f565b015160001960f88460031b161c191690558b808061382e565b9192602060018192868501518155019401920161380c565b61389e90600786016000526020600020601f850160051c8101916020861061092b57601f0160051c0190614864565b8a613443565b9190600585016000526020600020906000935b601f19841685106138fb576001945083601f198116106138e2575b505050811b01600583015561340b565b015160001960f88460031b161c191690558a80806138d2565b818101518355602094850194600190930192909101906138b7565b61394590600586016000526020600020601f850160051c8101916020861061092b57601f0160051c0190614864565b8a6133d4565b3461023057604036600319011261023057613964614371565b61396c614388565b906001600160401b0360c01b166000526003602052604060002060018060a01b0380921660005260205260406000209081549060026139ad600185016145aa565b930154166139cd604051938493845260606020850152606084019061464f565b9060408301520390f35b3461023057610160366003190112610230576139f1614371565b6139f9614388565b90613a0261439e565b6084356001600160a01b03811681036102305760c4356001600160401b03811161023057613a349036906004016143e0565b94909260e4356001600160401b03811161023057613a569036906004016143e0565b9290936001600160401b03610104351161023057613a7a36610104356004016144dd565b610144351515610144350361023057613a956104463361494a565b613aa16104468461494a565b6001600160401b0360c01b88166000526004602052613ad46001600160401b0360c01b60406000205460c01b1615614821565b613ae0604435856149d5565b60405190613aed8261440d565b6001600160c01b0319891682526001600160a01b03848116602084015260006040840152858116606084015283166080830152600460a083015260a43560c0830152613b3a368789614497565b60e083015261012435610100830152613b54368b8a614497565b61012083015260006101408301526000610160830152426101808301526101a08201526001600160401b0360c01b88166000526004602052604060002090805160c01c825490600160401b600160e01b03602084015160401b169163ffffffff60e01b161717825560018060a01b036040820151166001600160601b0360a01b6001840154161760018301556002820160018060a01b036060830151166001600160601b0360a01b82541617905560018060a01b0360808201511660038301549060a08301516006811015610c37576001600160a81b03199092161760a09190911b60ff60a01b1617600383015560c0810151600483015560e08101518051906001600160401b03821161093557613c6f6005850154614570565b601f81116142ad575b50602090601f831160011461423b57613ca9929160009183610adc5750508160011b916000199060031b1c19161790565b60058301555b61010081015160068301556101208101518051906001600160401b03821161093557613cde6007850154614570565b601f8111614206575b50602090601f8311600114614192579180613d1d926101a0959460009261298e5750508160011b916000199060031b1c19161790565b60078401555b61014081015160088401556009830160018060a01b03610160830151166001600160601b0360a01b825416179055610180810151600a8401550151805190600160401b821161093557600b83015482600b85015580831061411a575b506020600b910192016000526020600020916000905b82821061400a575050505060405191613dad83614429565b60a4358352613dbd368688614497565b60208481019182526001600160a01b039384166040808701919091526001600160c01b03198b1660009081526003835281812094909516855292905291208251815590518051906001600160401b03821161093557613e1f6001840154614570565b601f8111613fd5575b50602090601f8311600114613f4c5792613e7383613eee96946002946000805160206149fb8339815191529b9a999760009261298e5750508160011b916000199060031b1c19161790565b60018201555b0190604060018060a01b03910151166001600160601b0360a01b82541617905561014435613ef3575b613ec160405194859460a435865260806020870152608086019161487b565b6004604085015283810360608501526001600160a01b039091169733976001600160c01b0319169661487b565b0390a4005b8787878760405160a43581526080602082015280613f44613f18608083018b8d61487b565b6005604084015282810360608401526001600160a01b0389169733976001600160c01b0319169661487b565b0390a4613ea2565b906001840160005260206000209160005b601f1985168110613fbd5750836002936000805160206149fb8339815191529a99989693600193613eee9997601f19811610613fa4575b505050811b016001820155613e79565b015160001960f88460031b161c191690558d8080613f94565b91926020600181928685015181550194019201613f5d565b61400490600185016000526020600020601f850160051c8101916020861061092b57601f0160051c0190614864565b8a613e28565b80518051906001600160401b038211610935576140278654614570565b601f81116140e8575b50602090601f83116001146140785792614069836001959460209487966000926109b95750508160011b916000199060031b1c19161790565b87555b01940191019092613d95565b908660005260206000209160005b601f19851681106140d0575083602093600196938796938794601f198116106140b7575b505050811b01875561406c565b015160001960f88460031b161c191690553880806140aa565b91926020600181928685015181550194019201614086565b61411490876000526020600020601f850160051c8101916020861061092b57601f0160051c0190614864565b8e614030565b600b84016000526020600020908382015b818301811061413b575050613d7f565b8061414860019254614570565b80614155575b500161412b565b601f8111831461416b5750600081555b8f61414e565b600090828252614189601f60208420920160051c8201858301614864565b81835555614165565b906007850160005260206000209160005b601f19851681106141ee57509183916001936101a09695601f198116106141d5575b505050811b016007840155613d23565b015160001960f88460031b161c191690558d80806141c5565b919260206001819286850151815501940192016141a3565b61423590600786016000526020600020601f850160051c8101916020861061092b57601f0160051c0190614864565b8c613ce7565b9190600585016000526020600020906000935b601f1984168510614292576001945083601f19811610614279575b505050811b016005830155613caf565b015160001960f88460031b161c191690558c8080614269565b8181015183556020948501946001909301929091019061424e565b6142dc90600586016000526020600020601f850160051c8101916020861061092b57601f0160051c0190614864565b8c613c78565b34610230576040366003190112610230576024356004356000526001602052604060002080548210156102305760209161431b91614338565b905460405160039290921b1c60c01b6001600160c01b0319168152f35b919091805483101561435b57600052601860206000208360021c019260031b1690565b634e487b7160e01b600052603260045260246000fd5b600435906001600160c01b03198216820361023057565b602435906001600160a01b038216820361023057565b606435906001600160a01b038216820361023057565b60c435906001600160a01b038216820361023057565b600435906001600160a01b038216820361023057565b9181601f84011215610230578235916001600160401b038311610230576020838186019501011161023057565b6101c081019081106001600160401b0382111761093557604052565b606081019081106001600160401b0382111761093557604052565b604081019081106001600160401b0382111761093557604052565b90601f801991011681019081106001600160401b0382111761093557604052565b6001600160401b0381116109355760051b60200190565b9291926001600160401b03821161093557604051916144c0601f8201601f19166020018461445f565b829481845281830111610230578281602093846000960137010152565b9080601f83011215610230578135916020916144f884614480565b936040614508604051968761445f565b818652848087019260051b8501019383851161023057858101925b858410614534575050505050505090565b83356001600160401b03811161023057820185603f8201121561023057879161456587838786809601359101614497565b815201930192614523565b90600182811c921680156145a0575b602083101461458a57565b634e487b7160e01b600052602260045260246000fd5b91607f169161457f565b906040519182600082546145bd81614570565b9081845260209460019160018116908160001461462d57506001146145ee575b5050506145ec9250038361445f565b565b600090815285812095935091905b8183106146155750506145ec93508201013880806145dd565b855488840185015294850194879450918301916145fc565b925050506145ec94925060ff191682840152151560051b8201013880806145dd565b919082519283825260005b84811061467b575050826000602080949584010152601f8019910116010190565b60208183018101518483018201520161465a565b906006821015610c375752565b602090602060408183019282815285518094520193019160005b8281106146c4575050505090565b83516001600160c01b031916855293810193928101926001016146b6565b6101e0600319820112610230576004356001600160c01b03198116810361023057916001600160a01b0390602435828116810361023057926044358381168103610230579260643592608435828116810361023057926001600160401b039060a4358281116102305781614758916004016143e0565b9490949360c4359360e43593610104358481168103610230579361012435908116810361023057926101443592610164359261018435926101a43583811161023057826147a7916004016143e0565b939093926101c435918211610230576147c2916004016144dd565b90565b156147cc57565b60405162461bcd60e51b815260206004820152602760248201527f526563697069656e7420646f6573206e6f7420636f6e7461696e2076657269666044820152661a59590811125160ca1b6064820152608490fd5b1561482857565b60405162461bcd60e51b8152602060048201526014602482015273547261646520616c72656164792065786973747360601b6044820152606490fd5b81811061486f575050565b60008155600101614864565b908060209392818452848401376000828201840152601f01601f1916010190565b93916147c295936148ba92865260806020870152608086019161487b565b9260006040820152606081850391015261487b565b8054600160401b811015610935576148ec91600182018155614338565b6001600160401b03829392549160031b9260c01c831b921b1916179055565b600019811461491a5760010190565b634e487b7160e01b600052601160045260246000fd5b9190820180921161491a57565b9190820391821161491a57565b60065460405163013ab75560e01b81526001600160a01b0392831660048201529160209183916024918391165afa9081156149c95760009161498a575090565b6020813d6020116149c1575b816149a36020938361445f565b810103126149bd57519081151582036149ba575090565b80fd5b5080fd5b3d9150614996565b6040513d6000823e3d90fd5b6001600160a01b031660009081526020819052604090208054156149f7575050565b5556fe5f2a9dd8aafe80db13d9bee01660eaad59d6bd241687cf1811d7c5c5a471f4eaa2646970667358221220fa0e8fb1afd57952847a112ac2db9a79c47f4e587d3a5934bdfcdfc7995cbbda64736f6c63430008160033