0 txs
0 calls
constructor
constructor()
functions
checkSessionCounterExpired
viewfunction checkSessionCounterExpired(uint128 _counter) view returns (bool)
eip712Domain
viewfunction eip712Domain() view returns (bytes1 fields, string name, string version, uint256 chainId, address verifyingContract, bytes32 salt, uint256[] extensions)
getDomainSeparator
viewfunction getDomainSeparator() view returns (bytes32)
hashApproveThenExecute
viewfunction hashApproveThenExecute(uint128 _nonce, uint32 _deadline, address _erc20Contract, address _spender, uint256 _approveAmount, address _to, uint256 _value, bytes _data) view returns (bytes32)
hashArbitrarySessionExecution
viewfunction hashArbitrarySessionExecution(uint128 _counter, uint32 _deadline, address _sender) view returns (bytes32)
hashBatchExecution
viewfunction hashBatchExecution(uint128 _nonce, uint32 _deadline, tuple[] _calls) view returns (bytes32)
hashBurnNonce
viewfunction hashBurnNonce(uint128 _nonce) view returns (bytes32)
hashBurnSessionCounter
viewfunction hashBurnSessionCounter(uint128 _counter) view returns (bytes32)
hashCallArray
purefunction hashCallArray(tuple[] _calls) pure returns (bytes32)
hashExecution
viewfunction hashExecution(uint128 _nonce, uint32 _deadline, address _to, uint256 _value, bytes _data) view returns (bytes32)
hashSessionExecution
viewfunction hashSessionExecution(uint128 _counter, uint32 _deadline, address _sender, address _to) view returns (bytes32)
isValidSignature
viewfunction isValidSignature(bytes32 _hash, bytes _signature) view returns (bytes4)
MAX_BATCH_SIZE
viewfunction MAX_BATCH_SIZE() view returns (uint8)
nonce
viewfunction nonce() view returns (uint128)
onERC1155BatchReceived
purefunction onERC1155BatchReceived(address, address, uint256[], uint256[], bytes) pure returns (bytes4)
onERC1155Received
purefunction onERC1155Received(address, address, uint256, uint256, bytes) pure returns (bytes4)
onERC721Received
purefunction onERC721Received(address, address, uint256, bytes) pure returns (bytes4)
supportsInterface
purefunction supportsInterface(bytes4 _interfaceId) pure returns (bool)
validateSignature
viewfunction validateSignature(bytes32 _hash, bytes _signature) view returns (bool)
approveThenExecute
nonpayablefunction approveThenExecute(address _to, uint256 _value, address _erc20, address _spender, uint256 _approveAmount, bytes _data)
approveThenExecute
nonpayablefunction approveThenExecute(bytes data)
approveThenExecuteReturns
nonpayablefunction approveThenExecuteReturns(address _to, uint256 _value, address _erc20, address _spender, uint256 _approveAmount, bytes _data) returns (bytes)
approveThenExecuteReturns
nonpayablefunction approveThenExecuteReturns(bytes _data) returns (bytes)
burnNonce
nonpayablefunction burnNonce()
burnNonce
nonpayablefunction burnNonce(bytes _signature, uint128 _nonce)
burnSessionCounter
nonpayablefunction burnSessionCounter(bytes _signature, uint128 _counter)
burnSessionCounter
nonpayablefunction burnSessionCounter(uint128 _counter)
execute
nonpayablefunction execute(address _to, uint256 _value, bytes _data)
execute
nonpayablefunction execute(bytes data)
executeBatch
nonpayablefunction executeBatch(tuple[] _calls, bytes _data)
executeBatch
nonpayablefunction executeBatch(bytes data)
executeBatchReturns
nonpayablefunction executeBatchReturns(tuple[] _calls, bytes _data) returns (bytes[])
executeBatchReturns
nonpayablefunction executeBatchReturns(bytes data) returns (bytes[])
executeBatchSession
nonpayablefunction executeBatchSession(tuple[] _calls, bytes _data)
executeBatchSession
nonpayablefunction executeBatchSession(bytes _data)
executeBatchSessionArbitrary
nonpayablefunction executeBatchSessionArbitrary(tuple[] _calls, bytes _data)
executeBatchSessionArbitrary
nonpayablefunction executeBatchSessionArbitrary(bytes _data)
executeBatchSessionArbitraryReturns
nonpayablefunction executeBatchSessionArbitraryReturns(tuple[] _calls, bytes _data) returns (bytes[])
executeBatchSessionArbitraryReturns
nonpayablefunction executeBatchSessionArbitraryReturns(bytes _data) returns (bytes[])
executeBatchSessionReturns
nonpayablefunction executeBatchSessionReturns(tuple[] _calls, bytes _data) returns (bytes[])
executeBatchSessionReturns
nonpayablefunction executeBatchSessionReturns(bytes _data) returns (bytes[])
executeNoValueNoReturn
nonpayablefunction executeNoValueNoReturn(bytes data)
executeReturns
nonpayablefunction executeReturns(address _to, uint256 _value, bytes _data) returns (bytes)
executeReturns
nonpayablefunction executeReturns(bytes data) returns (bytes)
executeSession
nonpayablefunction executeSession(address _to, uint256 _value, bytes _data)
executeSession
nonpayablefunction executeSession(bytes data)
executeSessionArbitrary
nonpayablefunction executeSessionArbitrary(address _to, uint256 _value, bytes _data)
executeSessionArbitrary
nonpayablefunction executeSessionArbitrary(bytes data)
executeSessionArbitraryReturns
nonpayablefunction executeSessionArbitraryReturns(address _to, uint256 _value, bytes _data) returns (bytes)
executeSessionArbitraryReturns
nonpayablefunction executeSessionArbitraryReturns(bytes data) returns (bytes)
executeSessionReturns
nonpayablefunction executeSessionReturns(address _to, uint256 _value, bytes _data) returns (bytes)
executeSessionReturns
nonpayablefunction executeSessionReturns(bytes data) returns (bytes)
events
No events.
errors
ApprovalFailed
error ApprovalFailed()
ApprovalReturnFalse
error ApprovalReturnFalse()
ApprovalTo0Failed
error ApprovalTo0Failed()
BatchSizeInvalid
error BatchSizeInvalid()
DeadlineExceeded
error DeadlineExceeded()
Debug
error Debug(bytes32 a, bytes32 b)
ExecutionFailed
error ExecutionFailed()
InvalidCounter
error InvalidCounter()
InvalidNonce
error InvalidNonce()
InvalidOffset
error InvalidOffset()
InvalidToContract
error InvalidToContract()
NotSelf
error NotSelf()
UnsupportedExecutionMode
error UnsupportedExecutionMode()
creation bytecode
0x6101206040523461014057306080524660a052604080519081016001600160401b0381118282101761012c576040908152600d82526c544b47617344656c656761746560981b60208301908152815191820192906001600160401b0384118385101761012c5760a093604052600183526020830191603160f81b8352519020915190208160c0528060e052604051917f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f835260208301526040820152466060820152306080820152206101005260405161518d9081610145823960805181818161273701526139e8015260a05181818161271401526139c5015260c0518181816127990152613a5a015260e0518181816127bf0152613a800152610100518181816126f201526139a30152f35b634e487b7160e01b5f52604160045260245ffd5b5f80fdfe6080604052600436101561002f575b361561002d573461002957610021612bec565b602081519101f35b5f80fd5b005b5f3560e01c806301a328a91461036e57806301ffc9a714610369578063078b80581461036457806309c5eabe1461035f5780630ab96bb11461035a5780630cb98067146103555780631448926e1461035057806314a905fb1461034b578063150b7a02146103465780631626ba7e1461034157806317546b281461033c5780631931d96d14610337578063195e307b146103325780631d9401671461032d578063213f0c1a1461032857806322a940eb146103235780632397a1311461031e5780632a1af0a2146103195780632c4d6dcf14610314578063333daf921461030f578063474d6dea1461030a5780634fb44481146103055780635885bbcf1461030057806375925cb7146102fb578063774f473c146102f657806381ffa7dd146102f157806384b0196e146102ec57806385c98f55146102e75780638cee7725146102e25780638d0598d2146102dd578063922cf8a9146102d85780639d868c74146102d3578063a137d282146102ce578063aa3b2084146102c9578063affed0e0146102c4578063b2db94de146102bf578063b61d27f6146102ba578063bb2e8fc8146102b5578063bc197c81146102b0578063cc83c72e146102ab578063cfa51011146102a6578063cfdbf254146102a1578063d7e2f92f1461029c578063d81ea0bc14610297578063d945270014610292578063d958da311461028d578063ddb72afd14610288578063e0303aa914610283578063e7735a631461027e578063ed24911d14610279578063f23a6e61146102745763f244a1620361000e5761288b565b6127fa565b6126c2565b612670565b612603565b612502565b6124ae565b61245a565b6123c5565b612362565b612329565b6122e1565b612276565b6121a0565b612151565b6120ce565b612010565b611fa4565b611eb4565b611db6565b611d62565b611cec565b611c81565b611c1a565b611a4f565b611977565b61190f565b611791565b61172e565b611637565b6115e0565b611515565b6114da565b611432565b61135a565b6112dc565b61113e565b61104a565b610efb565b610ddd565b610d0b565b610c37565b610bf4565b610b15565b610a9b565b610a17565b610950565b61079f565b610709565b6106be565b6104b4565b610445565b9181601f840112156100295782359167ffffffffffffffff8311610029576020838186019501011161002957565b60207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc820112610029576004359067ffffffffffffffff8211610029576103ea91600401610373565b9091565b907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f602080948051918291828752018686015e5f8582860101520116010190565b9060206104429281815201906103ee565b90565b3461002957610453366103a1565b8060411161002957806051116100295780605511610029578161047d8261049c936104b0956128fe565b91606981013590605581013560601c90605181019060418101906131ef565b6040519182916020835260208301906103ee565b0390f35b346100295760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610029576004357fffffffff00000000000000000000000000000000000000000000000000000000811680910361002957807f01ffc9a7000000000000000000000000000000000000000000000000000000006020921490811561057a575b8115610550575b506040519015158152f35b7f4e2312e0000000000000000000000000000000000000000000000000000000009150145f610545565b7f150b7a02000000000000000000000000000000000000000000000000000000008114915061053e565b9181601f840112156100295782359167ffffffffffffffff8311610029576020808501948460051b01011161002957565b60407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc8201126100295760043567ffffffffffffffff8111610029578161061e916004016105a4565b929092916024359067ffffffffffffffff8211610029576103ea91600401610373565b602081016020825282518091526040820191602060408360051b8301019401925f915b83831061067357505050505090565b90919293946020806106af837fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc0866001960301875289516103ee565b97019301930191939290610664565b34610029576106cc366105d5565b80604193929311610029578060511161002957605511610029576104b0928260516106fd940190604181019061345e565b60405191829182610641565b3461002957610717366103a1565b605582013560601c9160698101358061076857509061002d928261073e836107609561294a565b94909361074b8184612958565b929091806107598187612939565b50956128fe565b969095613892565b8260411161002957826051116100295761002d936107926107898585612939565b509480856128fe565b94909360418101906136ce565b34610029576107ad366105d5565b806041949394116100295780605111610029576041820190605511610029576107d68484615123565b91605181013560e01c928342116108f45761083e9361083991604051917f14007e8c5dd696e52899952d0c28098ab95c056d082adc0d757f91c1306c7f558352853560801c602084015260408301526060820152608080822091016040526139a1565b614fb1565b61084782613349565b915f5b81811061085f57604051806104b08682610641565b5f8061086c8385876133af565b610875816133ef565b9061088960208201359160408101906133f9565b919061089a604051809481936131b3565b03925af1906108a76131c0565b91156108cc576001916108ba828761344a565b526108c5818661344a565b500161084a565b7facfdb444000000000000000000000000000000000000000000000000000000005f5260045ffd5b60046040517f559895a3000000000000000000000000000000000000000000000000000000008152fd5b600435906fffffffffffffffffffffffffffffffff8216820361002957565b6024359063ffffffff8216820361002957565b346100295760607ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126100295761098761091e565b61098f61093d565b906044359067ffffffffffffffff8211610029576104b0926109c16109bb610a079436906004016105a4565b90613911565b90604051927f14007e8c5dd696e52899952d0c28098ab95c056d082adc0d757f91c1306c7f558452602084015260408301526060820152608080822091016040526139a1565b6040519081529081906020820190565b3461002957610a25366103a1565b6020606983013503610a71578060411161002957806051116100295781610a526106fd926104b094612939565b5060898201359160a9810191605582013560601c916041810190613ab9565b60046040517f01da1572000000000000000000000000000000000000000000000000000000008152fd5b3461002957610aa9366103a1565b6020606983013503610a715780604111610029578060511161002957610acf8183612939565b509060691161002957816014605561002d940160898301359360a98401936041810190613e00565b73ffffffffffffffffffffffffffffffffffffffff81160361002957565b346100295760807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261002957610b4f600435610af7565b610b5a602435610af7565b60643567ffffffffffffffff811161002957610b7a903690600401610373565b505060206040517f150b7a02000000000000000000000000000000000000000000000000000000008152f35b9060407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc83011261002957600435916024359067ffffffffffffffff8211610029576103ea91600401610373565b34610029576020610c0d610c0736610ba6565b91612a5b565b7fffffffff0000000000000000000000000000000000000000000000000000000060405191168152f35b3461002957610c45366103a1565b90605581013560601c90606981013580610c7857508261049c928261073e6104b096610c709561294a565b9690956141e0565b9290816041116100295781605111610029576104b093610cac93610c9f6107898585612939565b949093604181019061405c565b61049c565b60607ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc82011261002957600435610ce781610af7565b91602435916044359067ffffffffffffffff8211610029576103ea91600401610373565b3461002957610d1936610cb1565b9192908260411161002957826051116100295782605511610029576104b0937fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffab61049c94019260558301926051810190604181019061425d565b60407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc820112610029576004359067ffffffffffffffff821161002957610dbc91600401610373565b90916024356fffffffffffffffffffffffffffffffff811681036100295790565b3461002957610e33610dee36610d73565b9291610e2e6040517f1abb8920e48045adda3ed0ce4be4357be95d4aa21af287280f532fc031584bda8152856020820152604080822091016040526139a1565b614338565b6fffffffffffffffffffffffffffffffff7f34d5be385818fa5c8c4e7f9d5a028251d28ebab8aaf203a072d1dde2d49a110054918183169182911603610ed3576fffffffffffffffffffffffffffffffff60017fffffffffffffffffffffffffffffffff000000000000000000000000000000009201169116177f34d5be385818fa5c8c4e7f9d5a028251d28ebab8aaf203a072d1dde2d49a1100555f80f35b7f756688fe000000000000000000000000000000000000000000000000000000005f5260045ffd5b3461002957610f09366105d5565b80604111610029578060511161002957604182019060551161002957601483118015611042575b61101a57605182013560e01c91824211610ff257610f96610f9b93604051907f37c1343675452b4c8f9477fbedff7bcc1e7fa8b3bc97a1e58d4e371c86bd64bb8252843560801c60208301526040820152336060820152608080822091016040526139a1565b614e67565b5f5b818110610fa657005b610fb18183856133af565b9060208201355f80610fd0610fc5866133ef565b9560408101906133f9565b95908694859260405198899384375af115610029576001920160405201610f9d565b7f559895a3000000000000000000000000000000000000000000000000000000005f5260045ffd5b7fde21ae18000000000000000000000000000000000000000000000000000000005f5260045ffd5b508215610f30565b346100295760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126100295761108161091e565b303314801590611134575b61110c5760801b7fffffffffffffffffffffffffffffffff00000000000000000000000000000000165f9081527f34d5be385818fa5c8c4e7f9d5a028251d28ebab8aaf203a072d1dde2d49a11016020526040902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00166001179055005b7f29c3b7ee000000000000000000000000000000000000000000000000000000005f5260045ffd5b503233141561108c565b346100295761114c36610d73565b907fffffffffffffffffffffffffffffffff000000000000000000000000000000006111ac6040517f601e2106a9a69d50c3489343bfc805c6ad1b051e27f87c20ed3735e4fdbb08268152846020820152604080822091016040526139a1565b9260801b169260ff611207857fffffffffffffffffffffffffffffffff00000000000000000000000000000000165f527f34d5be385818fa5c8c4e7f9d5a028251d28ebab8aaf203a072d1dde2d49a110160205260405f2090565b54166112b457611216926144f7565b73ffffffffffffffffffffffffffffffffffffffff3091160361110c5761128961002d917fffffffffffffffffffffffffffffffff00000000000000000000000000000000165f527f34d5be385818fa5c8c4e7f9d5a028251d28ebab8aaf203a072d1dde2d49a110160205260405f2090565b60017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00825416179055565b7f63e0897a000000000000000000000000000000000000000000000000000000005f5260045ffd5b346100295760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261002957602061135261131861091e565b604051907f601e2106a9a69d50c3489343bfc805c6ad1b051e27f87c20ed3735e4fdbb0826825283820152604080822091016040526139a1565b604051908152f35b346100295760a07ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126100295761139161091e565b61139961093d565b604435916113a683610af7565b6084359160643567ffffffffffffffff8411610029576104b0946113db6113d4610a07963690600401610373565b3691612b77565b6020815191012092604051947f06bb52ccb5d61c4f9c5baafc0affaba32c4d02864c91221ad411291324aeea2e8652602086015260408501526060840152608083015260a082015260c080822091016040526139a1565b346100295760807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610029576104b0610a0761146f61091e565b61147761093d565b60443561148381610af7565b6064359161149083610af7565b604051937ffe77dfae033808a0d3fd8ba43e104e84622b2d23bd43e92d96df863e280843e68552602085015260408401526060830152608082015260a080822091016040526139a1565b346100295760206114f36114ed36610ba6565b916144f7565b60405173ffffffffffffffffffffffffffffffffffffffff9190911630148152f35b34610029575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610029573033148015906115d6575b61110c577f34d5be385818fa5c8c4e7f9d5a028251d28ebab8aaf203a072d1dde2d49a1100547fffffffffffffffffffffffffffffffff000000000000000000000000000000006fffffffffffffffffffffffffffffffff600181841601169116177f34d5be385818fa5c8c4e7f9d5a028251d28ebab8aaf203a072d1dde2d49a1100555f80f35b503233141561154e565b34610029576115ee366103a1565b806041116100295780605111610029578060551161002957816116188261049c936104b0956128fe565b91606981013590605581013560601c906051810190604181019061425d565b3461002957611645366105d5565b8060411161002957806051116100295760418201906055116100295761166b8385615123565b91605181013560e01c928342116108f4576116ce9361083991604051917f14007e8c5dd696e52899952d0c28098ab95c056d082adc0d757f91c1306c7f558352853560801c602084015260408301526060820152608080822091016040526139a1565b5f5b8181106116d957005b5f806116e68385876133af565b6116ef816133ef565b9061170360208201359160408101906133f9565b9190611714604051809481936131b3565b03925af16117206131c0565b50156108cc576001016116d0565b346100295761173c36610cb1565b92918360411161002957836051116100295783605511610029577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffab61002d940192605583019260518101906041810190614592565b346100295761179f366103a1565b806041116100295780605111610029576041820190605511610029576020605583013503610a715760958201916075810135916117dc8385615123565b90605183013560e01c8042116108f45761184893611843604192601095604051917f14007e8c5dd696e52899952d0c28098ab95c056d082adc0d757f91c1306c7f558352863560801c602084015260408301526060820152608080822091016040526139a1565b615079565b61185181613349565b905f5b81811061186957604051806104b08582610641565b5f806118768385886133af565b602081013590611885816133ef565b91801584146118de575061189e816040859301906133f9565b91906118af604051809481936131b3565b03925af16118bb6131c0565b6118c5838661344a565b526118d0828561344a565b50156108cc57600101611854565b908060406118ed9201906133f9565b91906118fe604051809481936131b3565b03925af161190a6131c0565b6118bb565b346100295761191d36610cb1565b9192908260411161002957826051116100295782605511610029576104b0937fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffab61049c9401926055830192605181019060418101906131ef565b34610029575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610029576119f06119fe6119b3614745565b6040929192519384937f0f00000000000000000000000000000000000000000000000000000000000000855260e0602086015260e08501906103ee565b9083820360408501526103ee565b4660608301523060808301525f60a083015281810360c083015260206060519182815201906080905f5b818110611a36575050500390f35b8251845285945060209384019390920191600101611a28565b3461002957611a5d366105d5565b929190605581013560601c9380604111610029578060511161002957604182019060551161002957601483118015611b99575b61101a57605182013560e01c918242116108f457610f96611afc93604051907ffe77dfae033808a0d3fd8ba43e104e84622b2d23bd43e92d96df863e280843e68252843560801c6020830152604082015233606082015287608082015260a080822091016040526139a1565b5f5b818110611b0757005b611b128183856133af565b90602082013591611b30611b25826133ef565b9160408101906133f9565b938773ffffffffffffffffffffffffffffffffffffffff841603611b7157845f928392829560405198899384375af115610029576001920160405201611afe565b7f03bbfc9c000000000000000000000000000000000000000000000000000000005f5260045ffd5b508215611a90565b9060c07ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc83011261002957600435611bd881610af7565b9160243591604435611be981610af7565b91606435611bf681610af7565b916084359160a4359067ffffffffffffffff8211610029576103ea91600401610373565b3461002957611c2836611ba1565b9591909394928660411161002957866051116100295786605511610029577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffab61002d9701956055860195605181019060418101906147b8565b3461002957611c8f36611ba1565b9491856041979294971161002957856051116100295785605511610029576104b0967fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffab61049c9701956055860195605181019060418101906149e8565b346100295760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610029576020611352611d2861091e565b604051907f1abb8920e48045adda3ed0ce4be4357be95d4aa21af287280f532fc031584bda825283820152604080822091016040526139a1565b3461002957611d70366103a1565b90816041116100295781605111610029578160551161002957611d978261002d93836128fe565b91606981013590605581013560601c9060518101906041810190614592565b3461002957611dc4366103a1565b806041116100295780605111610029576041820190605511610029576020605583013503610a71576095820191607581013591611e018385615123565b90605183013560e01c8042116108f457611e6893611843604192601095604051917f14007e8c5dd696e52899952d0c28098ab95c056d082adc0d757f91c1306c7f558352863560801c602084015260408301526060820152608080822091016040526139a1565b5f5b818110611e7357005b611e7e8183856133af565b9060208201355f80611e92610fc5866133ef565b95908694859260405198899384375af115610029576001920160405201611e6a565b3461002957611ec2366103a1565b8060411161002957806051116100295780605511610029578060691161002957605182013560e01c91907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff97016069820160418301605584013560601c4286106108f457611f9460105f9793604189986118438a97604051907f06bb52ccb5d61c4f9c5baafc0affaba32c4d02864c91221ad411291324aeea2e8252853560801c6020830152604082015287606082015288608082015260a081018b8b82378b8120905260c080822091016040526139a1565b836040519384375af11561002957005b34610029575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126100295760206fffffffffffffffffffffffffffffffff7f34d5be385818fa5c8c4e7f9d5a028251d28ebab8aaf203a072d1dde2d49a11005416604051908152f35b346100295760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261002957602060ff6120c27fffffffffffffffffffffffffffffffff0000000000000000000000000000000061206f61091e565b60801b167fffffffffffffffffffffffffffffffff00000000000000000000000000000000165f527f34d5be385818fa5c8c4e7f9d5a028251d28ebab8aaf203a072d1dde2d49a110160205260405f2090565b54166040519015158152f35b34610029576120dc36610cb1565b92918061211957509161076091836120f78361002d9661294a565b9490936121048184612958565b929091806121128187612939565b5095612969565b83604111610029578360511161002957836055116100295761213f8461002d9584612969565b939092605181019060418101906136ce565b346100295761215f366103a1565b6020605583013503610a7157806041116100295780605111610029576055116100295780607561002d92013590609581019060518101906041810190614362565b346100295760a07ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610029576121da600435610af7565b6121e5602435610af7565b60443567ffffffffffffffff8111610029576122059036906004016105a4565b505060643567ffffffffffffffff8111610029576122279036906004016105a4565b505060843567ffffffffffffffff811161002957612249903690600401610373565b50506040517fbc197c81000000000000000000000000000000000000000000000000000000008152602090f35b346100295761228436610cb1565b90929091806122a4575081610c7091846120f761049c956104b09761294a565b928260411161002957826051116100295782605511610029576104b0936122cf84610cac9584612969565b9390926051810190604181019061405c565b34610029576122ef366105d5565b80604193929311610029578060511161002957605511610029576104b0928260556106fd94013560601c9060518101906041810190613ab9565b34610029575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261002957602060405160148152f35b346100295761237036610cb1565b92918360411161002957836051116100295783605511610029577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffab61002d940192605583019260518101906041810190614cf0565b346100295760607ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261002957602061135261240161091e565b61240961093d565b6044359061241682610af7565b604051927f37c1343675452b4c8f9477fbedff7bcc1e7fa8b3bc97a1e58d4e371c86bd64bb84528584015260408301526060820152608080822091016040526139a1565b3461002957612468366103a1565b9081604111610029578160511161002957816055116100295761248f8261002d93836128fe565b91606981013590605581013560601c9060518101906041810190614cf0565b346100295760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126100295760043567ffffffffffffffff8111610029576113526109bb60209236906004016105a4565b34610029576101007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126100295761253a61091e565b61254261093d565b906044359061255082610af7565b6064359261255d84610af7565b6084359260a43561256d81610af7565b60c4359060e4359567ffffffffffffffff8711610029576104b097612599610a07983690600401610373565b959096604051987f321d2e8c030c2c64001a1895d0f865dd0dc361666bd775ccb835b1a8bc2d41e38a5260208a015260408901526060880152608087015260a086015260c085015260e08401528061010084019283378120905261012080822091016040526139a1565b3461002957612611366103a1565b90816041116100295781605111610029578161263c61263361002d9484612939565b509180846129a4565b92909160b182013591609d81013560601c91607d82013591606981013560601c91605582013560601c9160418101906147b8565b346100295761267e366103a1565b6020605583013503610a715780604111610029578060511161002957605511610029576106fd8160756104b09301359060958101906051810190604181019061345e565b34610029575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610029577f0000000000000000000000000000000000000000000000000000000000000000467f000000000000000000000000000000000000000000000000000000000000000014307f0000000000000000000000000000000000000000000000000000000000000000141615612769575b602090604051908152f35b5060206127f360a06040517f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f81527f000000000000000000000000000000000000000000000000000000000000000060208201527f000000000000000000000000000000000000000000000000000000000000000060408201524660608201523060808201522090565b905061275e565b346100295760a07ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261002957612834600435610af7565b61283f602435610af7565b60843567ffffffffffffffff81116100295761285f903690600401610373565b505060206040517ff23a6e61000000000000000000000000000000000000000000000000000000008152f35b3461002957612899366103a1565b8060411161002957806051116100295781816128be6126336128f2946104b096612939565b92909160b182013591609d81013560601c91607d82013591606981013560601c91605582013560601c9160418101906149e8565b60405191829182610431565b909291928360891161002957831161002957608901917fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff770190565b906055116100295760510190600490565b906041116100295790604190565b906051116100295760410190601090565b909291928360551161002957831161002957605501917fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffab0190565b909291928360d1116100295783116100295760d101917fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff2f0190565b60431161002957600290604190565b60531161002957604390601090565b60571161002957605390600490565b91909182605711610029578211610029577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa96057920190565b9291928382116100295783116100295780920390565b90612a6692916144f7565b73ffffffffffffffffffffffffffffffffffffffff163014612aa6577fffffffff0000000000000000000000000000000000000000000000000000000090565b7f1626ba7e0000000000000000000000000000000000000000000000000000000090565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b90601f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0910116810190811067ffffffffffffffff821117612b3857604052565b612aca565b67ffffffffffffffff8111612b3857601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01660200190565b929192612b8382612b3d565b91612b916040519384612af7565b829481845281830111610029578281602093845f960137010152565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b60011015612be757600190565b612bad565b612c1e612bf836612bda565b357fff000000000000000000000000000000000000000000000000000000000000001690565b90612c28366129df565b92612c32366129ee565b90937fff00000000000000000000000000000000000000000000000000000000000000612c5e366129fd565b50931680612cbc575050367fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8b0193606b3560b01c80612ca8575061002d9560573560601c94613804565b9392919061002d9660573560601c9461376a565b909594907f10000000000000000000000000000000000000000000000000000000000000008103612d21575061002d9550612cf93660bd36612a45565b95909460b33560b01c94609f3560601c94607f3594606b3560601c9460573560601c9461495a565b7f200000000000000000000000000000000000000000000000000000000000000081969293949596145f14612d67575061002d9550612d603636612a0c565b5094614c1d565b9094939192907f30000000000000000000000000000000000000000000000000000000000000008103612dd7575061002d9550612da5606b36612a0c565b50927fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8b360195606b3560b01c95614ddb565b939492937f40000000000000000000000000000000000000000000000000000000000000008103612e1f575061002d9550612e13606b36612a0c565b949093608b3596613f43565b929493927f50000000000000000000000000000000000000000000000000000000000000008103612e8d575061002d9550612e5b606b36612a0c565b50927fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8b360195606b3560b01c95614d5d565b7f600000000000000000000000000000000000000000000000000000000000000081969294939596145f14612ecb575061002d955060773594614432565b90939192907f01000000000000000000000000000000000000000000000000000000000000008103612f475750367fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8b019360573560601c9390606b3560b01c80612f3957506104429661415e565b9493929190610442976140dc565b94927f11000000000000000000000000000000000000000000000000000000000000008603612fa9576104429550612f813660bd36612a45565b95909460b33560b01c94609f3560601c94607f3594606b3560601c9460573560601c94614b8f565b91939092947f210000000000000000000000000000000000000000000000000000000000000081145f14613032575092612ff792613006959261044295612ff03636612a0c565b5094614605565b60405192839160208301610641565b037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08101835282612af7565b9294919390927f3100000000000000000000000000000000000000000000000000000000000000810361309b5750610442947fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8b360194606b3560b01c9460573560601c946132af565b7f4100000000000000000000000000000000000000000000000000000000000000819592939495145f146130e8575091610442939161300695612ff794608b359460573560601c94613c2b565b90939291907f510000000000000000000000000000000000000000000000000000000000000081036131505750610442947fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8b360194606b3560b01c9460573560601c946142ca565b7f61000000000000000000000000000000000000000000000000000000000000001461319e577f7f181275000000000000000000000000000000000000000000000000000000005f5260045ffd5b6130069461044294612ff79460773594613599565b908092918237015f815290565b3d156131ea573d906131d182612b3d565b916131df6040519384612af7565b82523d5f602084013e565b606090565b959293919490943560e01c8042116108f45760105f97966041899861326261326795604051907ffe77dfae033808a0d3fd8ba43e104e84622b2d23bd43e92d96df863e280843e68252853560801c602083015260408201523360608201528a608082015260a080822091016040526139a1565b614eeb565b613276604051809481936131b3565b03925af16132826131c0565b90610442577facfdb444000000000000000000000000000000000000000000000000000000005f5260045ffd5b93969196959290953560e01c908142116108f4575f9788976132769661326261332395604051907ffe77dfae033808a0d3fd8ba43e104e84622b2d23bd43e92d96df863e280843e68252853560801c602083015260408201523360608201528a608082015260a080822091016040526139a1565b6040519283809260756131b3565b67ffffffffffffffff8111612b385760051b60200190565b9061335382613331565b6133606040519182612af7565b8281527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe061338e8294613331565b01905f5b82811061339e57505050565b806060602080938501015201613392565b9190811015612be75760051b810135907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa181360301821215610029570190565b3561044281610af7565b9035907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe181360301821215610029570180359067ffffffffffffffff82116100295760200191813603831361002957565b8051821015612be75760209160051b010190565b9091601485118015613591575b61101a573560e01c918242116108f45760416010926132626134d295604051907f37c1343675452b4c8f9477fbedff7bcc1e7fa8b3bc97a1e58d4e371c86bd64bb8252853560801c60208301526040820152336060820152608080822091016040526139a1565b6134db82613349565b915f5b8181106134eb5750505090565b5f806134f88385876133af565b602081013590613507816133ef565b91801584146135605750613520816040859301906133f9565b9190613531604051809481936131b3565b03925af161353d6131c0565b613547838761344a565b52613552828661344a565b50156108cc576001016134de565b9080604061356f9201906133f9565b9190613580604051809481936131b3565b03925af161358c6131c0565b61353d565b50841561346b565b936014861180156136c6575b61101a573560e01c938442116108f45761326261360795604051907f37c1343675452b4c8f9477fbedff7bcc1e7fa8b3bc97a1e58d4e371c86bd64bb8252853560801c60208301526040820152336060820152608080822091016040526139a1565b61361081613349565b905f5b81811061361f57505090565b5f8061362d838560976133af565b60208101359061363c816133ef565b91801584146136955750613655816040859301906133f9565b9190613666604051809481936131b3565b03925af16136726131c0565b61367c838661344a565b52613687828561344a565b50156108cc57600101613613565b908060406136a49201906133f9565b91906136b5604051809481936131b3565b03925af16136c16131c0565b613672565b5085156135a5565b959391949290956136e0368686612b77565b60208151910120953560e01c958642116108f4575f97604161375a936118438b9a601095604051917f06bb52ccb5d61c4f9c5baafc0affaba32c4d02864c91221ad411291324aeea2e8352863560801c6020840152604083015288606083015289608083015260a082015260c080822091016040526139a1565b836040519384375af11561002957565b9694939592909161377d36876075612b77565b60208151910120963560e01c928342116108f4575f986118436137f2958b9a604051917f06bb52ccb5d61c4f9c5baafc0affaba32c4d02864c91221ad411291324aeea2e8352863560801c6020840152604083015289606083015288608083015260a082015260c080822091016040526139a1565b6040519183607584375af11561002957565b94929095933560e01c918242116108f4575f96879661184361387f95604051907f06bb52ccb5d61c4f9c5baafc0affaba32c4d02864c91221ad411291324aeea2e8252853560801c6020830152604082015287606082015289608082015260a081018960758237898120905260c080822091016040526139a1565b826040519183607584375af11561002957565b92909593969491963560e01c908142116108f4575f978897889561184361375a95604051907f06bb52ccb5d61c4f9c5baafc0affaba32c4d02864c91221ad411291324aeea2e8252853560801c6020830152604082015287606082015288608082015260a081018b8b82378b8120905260c080822091016040526139a1565b90604051908060051b92838301806040527f9085b19ea56248c94d86174b3784cfaaa8673d1041d6441f61ff52752dac84838152602081015f6040830160608401915b86811061396657505050505050502090565b8060019160051b80880135880160206060820135808260408501358501018a378820918035895201358552855260808720908a015201613954565b7f0000000000000000000000000000000000000000000000000000000000000000467f000000000000000000000000000000000000000000000000000000000000000014307f0000000000000000000000000000000000000000000000000000000000000000141615613a2c575b6719010000000000005f52601a52603a526042601820905f603a52565b50613ab460a06040517f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f81527f000000000000000000000000000000000000000000000000000000000000000060208201527f000000000000000000000000000000000000000000000000000000000000000060408201524660608201523060808201522090565b613a0f565b9091601486118015613c23575b61101a573560e01c918242116108f4576041601092613262613b3395604051907ffe77dfae033808a0d3fd8ba43e104e84622b2d23bd43e92d96df863e280843e68252853560801c6020830152604082015233606082015287608082015260a080822091016040526139a1565b613b3c83613349565b925f5b818110613b4d575050505090565b613b588183866133af565b6020810135613b66826133ef565b73ffffffffffffffffffffffffffffffffffffffff861673ffffffffffffffffffffffffffffffffffffffff821603611b71575f92839280613bf25750613bb2816040859301906133f9565b9190613bc3604051809481936131b3565b03925af1613bcf6131c0565b613bd9838861344a565b52613be4828761344a565b50156108cc57600101613b3f565b90806040613c019201906133f9565b9190613c12604051809481936131b3565b03925af1613c1e6131c0565b613bcf565b508515613ac6565b93959495601486118015613d92575b61101a573560e01c938442116108f457613262613ca295604051907ffe77dfae033808a0d3fd8ba43e104e84622b2d23bd43e92d96df863e280843e68252853560801c6020830152604082015233606082015288608082015260a080822091016040526139a1565b613cab81613349565b915f5b828110613cbb5750505090565b613cc7818460ab6133af565b6020810135613cd5826133ef565b73ffffffffffffffffffffffffffffffffffffffff851673ffffffffffffffffffffffffffffffffffffffff821603611b71575f92839280613d615750613d21816040859301906133f9565b9190613d32604051809481936131b3565b03925af1613d3e6131c0565b613d48838761344a565b52613d53828661344a565b50156108cc57600101613cae565b90806040613d709201906133f9565b9190613d81604051809481936131b3565b03925af1613d8d6131c0565b613d3e565b508515613c3a565b919091357fffffffffffffffffffffffffffffffffffffffff00000000000000000000000081169260148110613dce575050565b7fffffffffffffffffffffffffffffffffffffffff000000000000000000000000929350829060140360031b1b161690565b9091959295601484118015613f3b575b61101a573560e01c918242116108f4576041601092613262613e8195604051907ffe77dfae033808a0d3fd8ba43e104e84622b2d23bd43e92d96df863e280843e68252853560801c602083015260408201523360608201528a3560601c608082015260a080822091016040526139a1565b5f5b818110613e91575050505050565b613e9c8183866133af565b906020820135613eab836133ef565b92613ede613eb9878a613d9a565b7fffffffffffffffffffffffffffffffffffffffff0000000000000000000000001690565b7fffffffffffffffffffffffffffffffffffffffff0000000000000000000000008560601b1603611b71575f613f19826040839401906133f9565b95908694859260405198899384375af115610029576001920160405201613e83565b508315613e10565b9396959496601487118015614054575b61101a573560e01c938442116108f457613262613fbf95604051907ffe77dfae033808a0d3fd8ba43e104e84622b2d23bd43e92d96df863e280843e68252853560801c60208301526040820152336060820152893560601c608082015260a080822091016040526139a1565b5f5b828110613fce5750505050565b613fda818460ab6133af565b906020820135613fe9836133ef565b92613ff7613eb98689613d9a565b7fffffffffffffffffffffffffffffffffffffffff0000000000000000000000008560601b1603611b71575f614032826040839401906133f9565b95908694859260405198899384375af115610029576001920160405201613fc1565b508615613f53565b959293919490943560e01c8042116108f45760105f97966041899861184361326795604051907f06bb52ccb5d61c4f9c5baafc0affaba32c4d02864c91221ad411291324aeea2e8252853560801c602083015260408201528a606082015288608082015260a081018a8982378a8120905260c080822091016040526139a1565b93969196959290953560e01c908142116108f4575f9788976132769661184361332395604051907f06bb52ccb5d61c4f9c5baafc0affaba32c4d02864c91221ad411291324aeea2e8252853560801c602083015260408201528a606082015288608082015260a081018860758237888120905260c080822091016040526139a1565b919493959092953560e01c8042116108f4575f96879661327695889561184361332395604051907f06bb52ccb5d61c4f9c5baafc0affaba32c4d02864c91221ad411291324aeea2e8252853560801c602083015260408201528a606082015288608082015260a081018860758237888120905260c080822091016040526139a1565b9290959196933560e01c908142116108f4575f978897889561184361326795604051907f06bb52ccb5d61c4f9c5baafc0affaba32c4d02864c91221ad411291324aeea2e8252853560801c602083015260408201528a606082015288608082015260a081018a8982378a8120905260c080822091016040526139a1565b959293919490943560e01c8042116108f45760105f97966041899861326261326795604051907f37c1343675452b4c8f9477fbedff7bcc1e7fa8b3bc97a1e58d4e371c86bd64bb8252853560801c60208301526040820152336060820152608080822091016040526139a1565b93969196959290953560e01c908142116108f4575f9788976132769661326261332395604051907f37c1343675452b4c8f9477fbedff7bcc1e7fa8b3bc97a1e58d4e371c86bd64bb8252853560801c60208301526040820152336060820152608080822091016040526139a1565b9061434392916144f7565b73ffffffffffffffffffffffffffffffffffffffff3091160361110c57565b90919493929460148411801561442a575b61101a573560e01c91824211610ff25760416010926132626143da95604051907f37c1343675452b4c8f9477fbedff7bcc1e7fa8b3bc97a1e58d4e371c86bd64bb8252853560801c60208301526040820152336060820152608080822091016040526139a1565b5f5b8181106143e95750509050565b6143f48183866133af565b9060208201355f80614408610fc5866133ef565b95908694859260405198899384375af1156100295760019201604052016143dc565b508315614373565b936014861180156144ef575b61101a573560e01c93844211610ff2576132626144a095604051907f37c1343675452b4c8f9477fbedff7bcc1e7fa8b3bc97a1e58d4e371c86bd64bb8252853560801c60208301526040820152336060820152608080822091016040526139a1565b5f5b8181106144ad575050565b6144b9818360976133af565b9060208201355f806144cd610fc5866133ef565b95908694859260405198899384375af1156100295760019201604052016144a2565b50851561443e565b9092919260405193806040146145525760411461452057505050505b638baa579f5f526004601cfd5b806040809201355f1a60205281375b5f526020600160805f825afa51915f6060526040523d614550575050614513565b565b508060207f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff92013590601b8260ff1c01602052356040521660605261452f565b959391949290943560e01c804211610ff25760105f97966041899861326261375a95604051907ffe77dfae033808a0d3fd8ba43e104e84622b2d23bd43e92d96df863e280843e68252853560801c6020830152604082015233606082015287608082015260a080822091016040526139a1565b94939291906020853503610a7157602060408601950135956146278787615123565b943560e01c948542116108f4576146869561184391604051917f14007e8c5dd696e52899952d0c28098ab95c056d082adc0d757f91c1306c7f558352863560801c602084015260408301526060820152608080822091016040526139a1565b61468f82613349565b915f5b81811061469f5750505090565b5f806146ac8385876133af565b6020810135906146bb816133ef565b918015841461471457506146d4816040859301906133f9565b91906146e5604051809481936131b3565b03925af16146f16131c0565b6146fb838761344a565b52614706828661344a565b50156108cc57600101614692565b908060406147239201906133f9565b9190614734604051809481936131b3565b03925af16147406131c0565b6146f1565b60409081516147548382612af7565b600d81527f544b47617344656c65676174650000000000000000000000000000000000000060208201529161478b81519182612af7565b600181527f3100000000000000000000000000000000000000000000000000000000000000602082015290565b909198969492939795983560e01c918242116108f457604160109261184361484c95604051907f321d2e8c030c2c64001a1895d0f865dd0dc361666bd775ccb835b1a8bc2d41e38252853560801c602083015260408201528860608201528c60808201528760a08201528d60c08201528960e082015261010081018c8c82378c8120905261012080822091016040526139a1565b604051957f095ea7b30000000000000000000000000000000000000000000000000000000087526004870152602486018181526040519260208460448a5f855af1156148df575b505050513d1517156148b7575f94836064879601938460405284375af11561002957565b7ff572481d000000000000000000000000000000000000000000000000000000005f5260045ffd5b5f82525f8060448a82855af11561493257875f6044926020958795525af11561490a575f8080614893565b7f8164f842000000000000000000000000000000000000000000000000000000005f5260045ffd5b7fe12092fc000000000000000000000000000000000000000000000000000000005f5260045ffd5b939a9896949599979a3560e01c938442116108f45761184361484c95604051907f321d2e8c030c2c64001a1895d0f865dd0dc361666bd775ccb835b1a8bc2d41e38252853560801c602083015260408201528860608201528c60808201528760a08201528d60c08201528960e082015261010081018c8c82378c8120905261012080822091016040526139a1565b909198959697949293983560e01c918242116108f4576041601092611843614a7c95604051907f321d2e8c030c2c64001a1895d0f865dd0dc361666bd775ccb835b1a8bc2d41e38252853560801c602083015260408201528860608201528d60808201528760a08201528b60c08201528c60e082015261010081018b8b82378b8120905261012080822091016040526139a1565b604051967f095ea7b30000000000000000000000000000000000000000000000000000000088526004880152602487018181526040519260208460448b5f855af115614b64575b505050513d1517156148b7576064850160408190525f9586959081614b22575050508390613276604051809481936131b3565b610442577facfdb444000000000000000000000000000000000000000000000000000000005f5260045ffd5b9092827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff9c9395614b51926131b3565b0301925af1614b5e6131c0565b90614af6565b5f82525f8060448b82855af11561493257885f6044926020958795525af11561490a575f8080614ac3565b939a9798999694959a3560e01c938442116108f457611843614a7c95604051907f321d2e8c030c2c64001a1895d0f865dd0dc361666bd775ccb835b1a8bc2d41e38252853560801c602083015260408201528860608201528d60808201528760a08201528b60c08201528c60e082015261010081018b8b82378b8120905261012080822091016040526139a1565b939291909594956020873503610a715760206040880197013594614c418689615123565b943560e01c948542116108f457614ca09561184391604051917f14007e8c5dd696e52899952d0c28098ab95c056d082adc0d757f91c1306c7f558352863560801c602084015260408301526060820152608080822091016040526139a1565b5f5b818110614caf5750509050565b614cba8183866133af565b9060208201355f80614cce610fc5866133ef565b95908694859260405198899384375af115610029576001920160405201614ca2565b959391949290943560e01c8042116108f45760105f97966041899861326261375a95604051907f37c1343675452b4c8f9477fbedff7bcc1e7fa8b3bc97a1e58d4e371c86bd64bb8252853560801c60208301526040820152336060820152608080822091016040526139a1565b9592909694933560e01c918242116108f4575f978897613262614dc595604051907f37c1343675452b4c8f9477fbedff7bcc1e7fa8b3bc97a1e58d4e371c86bd64bb8252853560801c60208301526040820152336060820152608080822091016040526139a1565b6040519183607584373560601c5af11561002957565b92919490933560e01c91824211610ff2575f9586958995613262614e4f95604051977ffe77dfae033808a0d3fd8ba43e104e84622b2d23bd43e92d96df863e280843e68952853560801c60208a015260408901523360608901523560601c9687608082015260a080822091016040526139a1565b60405194859183607584375af1156100295701604052565b614e73916041916144f7565b73ffffffffffffffffffffffffffffffffffffffff3091160361110c57357fffffffffffffffffffffffffffffffff00000000000000000000000000000000165f9081527f34d5be385818fa5c8c4e7f9d5a028251d28ebab8aaf203a072d1dde2d49a11016020526040902060ff905b54166112b457565b60ff9492614ee39492614efd92614338565b357fffffffffffffffffffffffffffffffff0000000000000000000000000000000081169160108110614f7c575b50507fffffffffffffffffffffffffffffffff00000000000000000000000000000000165f527f34d5be385818fa5c8c4e7f9d5a028251d28ebab8aaf203a072d1dde2d49a110160205260405f2090565b7fffffffffffffffffffffffffffffffff000000000000000000000000000000009250829060100360031b1b16165f80614f2b565b614fbd916041916144f7565b73ffffffffffffffffffffffffffffffffffffffff3091160361110c577f34d5be385818fa5c8c4e7f9d5a028251d28ebab8aaf203a072d1dde2d49a110054906fffffffffffffffffffffffffffffffff821680913560801c03610ed3576fffffffffffffffffffffffffffffffff60017fffffffffffffffffffffffffffffffff000000000000000000000000000000009201169116177f34d5be385818fa5c8c4e7f9d5a028251d28ebab8aaf203a072d1dde2d49a110055565b615084939450614338565b7f34d5be385818fa5c8c4e7f9d5a028251d28ebab8aaf203a072d1dde2d49a110054906fffffffffffffffffffffffffffffffff821680913560801c03610ed3576fffffffffffffffffffffffffffffffff60017fffffffffffffffffffffffffffffffff000000000000000000000000000000009201169116177f34d5be385818fa5c8c4e7f9d5a028251d28ebab8aaf203a072d1dde2d49a110055565b9060137fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82011161101a576104429161391156fea2646970667358221220cfe5004b3cda244a900e3a8ef8e7cc6981c0cf3f126eb27c8464a9ed189b65d364736f6c634300081e0033