UNPKG

@dolomite-exchange/dolomite-margin

Version:

Ethereum Smart Contracts and TypeScript library used for the DolomiteMargin trading protocol

8 lines 238 kB
{ "contractName": "TransferImpl", "abi": [], "metadata": "{\"compiler\":{\"version\":\"0.5.16+commit.9c3226ce\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"methods\":{}},\"userdoc\":{\"methods\":{}}},\"settings\":{\"compilationTarget\":{\"/home/cdc218/projects/dolomite-protocol-v2/contracts/protocol/impl/TransferImpl.sol\":\"TransferImpl\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"optimizer\":{\"enabled\":true,\"runs\":10000},\"remappings\":[]},\"sources\":{\"/home/cdc218/projects/dolomite-protocol-v2/contracts/protocol/impl/TransferImpl.sol\":{\"keccak256\":\"0x21ca9d8697802f9e023ecabbce9e9c544c3dd1d6040f5eefb3466e672563b280\",\"urls\":[\"bzz-raw://3b773cb3b8334005070518d6044b555cec9ce79eb99fcc2cfb9d577ce6bf6def\",\"dweb:/ipfs/QmSnMbrerGz8h25Ms2K6pDNpaj8iVUCAGSjLhh6SqHU6zC\"]},\"/home/cdc218/projects/dolomite-protocol-v2/contracts/protocol/interfaces/IAccountRiskOverrideSetter.sol\":{\"keccak256\":\"0x5b9fde139ddfdaae7b650b3c3f6699e0e44605f0d9d3daadc1622eb06ad4c3f8\",\"urls\":[\"bzz-raw://2dfd5af24b6de63f94519c99fd8777a264d7cd11266fa2d525c7d72d96a9c7cf\",\"dweb:/ipfs/QmPg9fjhbnmBayZMh6yTG79xsK1PWSoAHA5pfwSXfnKKjF\"]},\"/home/cdc218/projects/dolomite-protocol-v2/contracts/protocol/interfaces/IERC20Detailed.sol\":{\"keccak256\":\"0x22a62e2a8155e70300773721902f4b9118e17aa0bb5d9d1b046050a014cfb223\",\"urls\":[\"bzz-raw://03af737a33c552fbe58f6f1fbd5496854fdc28dd57be4365d56663725c083a18\",\"dweb:/ipfs/QmbgLqGAQEd6tXsZB8QaPNCAMiU6nNzP75wNbKdS65BuUF\"]},\"/home/cdc218/projects/dolomite-protocol-v2/contracts/protocol/interfaces/IExternalCallback.sol\":{\"keccak256\":\"0xd8134eac006b0a59b71cbcca82dfce7ce092a57c13a8383ebf0e8bc90c0df3e7\",\"urls\":[\"bzz-raw://ccead8bdcc71402ae7b1d8fb9bc1527081a5eb14f98a5157f5c6f27f21f8ad31\",\"dweb:/ipfs/QmdnDvTiX3EDm93ahjnZabNNgoyQzGtKpfbQUNtJe7t8Ts\"]},\"/home/cdc218/projects/dolomite-protocol-v2/contracts/protocol/interfaces/IInterestSetter.sol\":{\"keccak256\":\"0x546825f65490a30e29d0f6446acec49c1e895ce6b33d48ca5c05092725a63a57\",\"urls\":[\"bzz-raw://6ad3013aed985bdf6e6234ae0f7f37e6bba76c3470c33bfa24678cf19b3b412c\",\"dweb:/ipfs/QmfYaSBzxGpgiHoR7ontMJY66S5L26XwkLYoEuzsEjpbQH\"]},\"/home/cdc218/projects/dolomite-protocol-v2/contracts/protocol/interfaces/IOracleSentinel.sol\":{\"keccak256\":\"0xa94499fda55ef112640daed2cb1d06062e72c51c7b925c323b4e0ffa9b456ce5\",\"urls\":[\"bzz-raw://18b4a16acac577590a57f34f7ec6583e3cb35f575c948abb928b308d29cac1ab\",\"dweb:/ipfs/QmR1jLkzj6w7SjrdZ7GVW4V2vofSdMJwzjTqKpeUKABvxu\"]},\"/home/cdc218/projects/dolomite-protocol-v2/contracts/protocol/interfaces/IPriceOracle.sol\":{\"keccak256\":\"0x3f7c3d1397390ea44c6d5e5730d49476431c3df3b28334fe38218de5edc31138\",\"urls\":[\"bzz-raw://63ebf926fca9ce33aaabaf93805686acc25daded1648d6dab59c8c4d05116918\",\"dweb:/ipfs/QmeGkDp7ycYstpfqCYBiqoCYwy876gabx8r42o5koj3H5A\"]},\"/home/cdc218/projects/dolomite-protocol-v2/contracts/protocol/lib/Account.sol\":{\"keccak256\":\"0x2059276ea5e478bd5ac7f2712e7b1b6c85d291c647a54b264909044844828e67\",\"urls\":[\"bzz-raw://f153777051d12131b13a57e5c3af10a2670927cfc7d22c9519ab20c9b4b9bc89\",\"dweb:/ipfs/QmQMP3qS5xDAVGYKDfNkbkSqBKozQGQsGqX4e8VyjRtxPS\"]},\"/home/cdc218/projects/dolomite-protocol-v2/contracts/protocol/lib/Actions.sol\":{\"keccak256\":\"0x7b2fcf441c034952dd042b6c8b20b148359db771e7c9ac07d06369560a9f0301\",\"urls\":[\"bzz-raw://84665ee4a780360fe6160d197ba98f0bf0ab0d7c6ad87bfed6226bf2f88d8d30\",\"dweb:/ipfs/QmRDfRdAd8hSXeu4SAeeYKkKoXBhStu7n4uReYBce2JD5Z\"]},\"/home/cdc218/projects/dolomite-protocol-v2/contracts/protocol/lib/Bits.sol\":{\"keccak256\":\"0x6d9a641163b2dd25e648c65f5d9e4949a57938e29ddc4c9dddefd74a9964aeef\",\"urls\":[\"bzz-raw://67e5a04ed4055faafbc100d6ccca9c54448ed378a1a8c71171562edda7bcbf7c\",\"dweb:/ipfs/QmYRikK3Xbgiq3UBJkgoo2zNUSSrShVabpRHmQj6iQHhrc\"]},\"/home/cdc218/projects/dolomite-protocol-v2/contracts/protocol/lib/Cache.sol\":{\"keccak256\":\"0xe57c80a7621a77fcb2acb9f883fb5248e71a6dce03bc2db56df0db3fee332950\",\"urls\":[\"bzz-raw://28e221c04629674490b9a0041d4f9a5f15e669dc0cc192a5df6e2c701c36369f\",\"dweb:/ipfs/QmaL3oh8c7v9cx91pB175pyCEuzxnhNTab4UxmBMsDYfUx\"]},\"/home/cdc218/projects/dolomite-protocol-v2/contracts/protocol/lib/Decimal.sol\":{\"keccak256\":\"0xd9a348c2b1eec076609ba12bbec6b9c2e4ea135790a7ef4f5411feb050af2144\",\"urls\":[\"bzz-raw://d5bcff29e47d5cd02d7a9966e9f44c46ccbb4f0e4adfc4b0b86646880677db39\",\"dweb:/ipfs/QmRKfJD4FFM1AvTynSFNx1NcDg94o9SAcjz7dvMaJCfecp\"]},\"/home/cdc218/projects/dolomite-protocol-v2/contracts/protocol/lib/DolomiteMarginMath.sol\":{\"keccak256\":\"0x53f205f6a779d579be29faa9412c806a892b3e605fff092dfd9d14d936fa019f\",\"urls\":[\"bzz-raw://0ff936f89602a63b8e6a4eb4ce8f87673c0f45b7ce29694920905a3f0b5a6a69\",\"dweb:/ipfs/QmbYME9BeEvPC1ndV8EaUDX5fDMghLc3rocNUxFtgHmg8m\"]},\"/home/cdc218/projects/dolomite-protocol-v2/contracts/protocol/lib/EnumerableSet.sol\":{\"keccak256\":\"0x41a3460e34b7b8635d936e35e6568ceb5354b638f53b884530e0d4875fa0f151\",\"urls\":[\"bzz-raw://d1a5ba866ee95d455afe5075dadd91fc71c2806371f2c1b358a1f67c632bb0df\",\"dweb:/ipfs/QmW4qCjmsG8J3UJv97GwDLDM7wt1K4yLDKAwzWMY7TFYi5\"]},\"/home/cdc218/projects/dolomite-protocol-v2/contracts/protocol/lib/Events.sol\":{\"keccak256\":\"0x2345dcc1ebf53a3d5449dab083b1fb90b5362dae692f8ff3ad00078862894e9b\",\"urls\":[\"bzz-raw://ebd34c557c06caf0696774844f0ca9746412ecc452bdd978b3bca0fd71aefbde\",\"dweb:/ipfs/QmcwXXKgv77DqfhxABRg85WR6RBPTLmge5vJGp99o9kFf8\"]},\"/home/cdc218/projects/dolomite-protocol-v2/contracts/protocol/lib/ExcessivelySafeCall.sol\":{\"keccak256\":\"0x9369468538c371057c907f84d438cec6b47673711fe289cc3779f8671314e06b\",\"urls\":[\"bzz-raw://0f59a670f4bc5cf1bd3dd58bdf6c31723d9d84d9da7d9283d6860cdf5f33b7c5\",\"dweb:/ipfs/QmTGuvD5WQD2z56GH35HoPJivKPeeEpbXidJVcbXZyT23C\"]},\"/home/cdc218/projects/dolomite-protocol-v2/contracts/protocol/lib/Interest.sol\":{\"keccak256\":\"0x141a0ecb4a746f0e5767df4b99dbe33c6362df507ae9d5c02da1c1c17bc26df3\",\"urls\":[\"bzz-raw://9ff03e64a8ce5231acde07788624bf8c7a8ff55d90b157fa32f62fa887a0eff0\",\"dweb:/ipfs/QmUVxxWeE954RDXbmHJAYnHsXcit6rSXGqZUigu8t9oH2z\"]},\"/home/cdc218/projects/dolomite-protocol-v2/contracts/protocol/lib/Monetary.sol\":{\"keccak256\":\"0x5257274f2d4d3605f3e97ec45fb902111fe9a22506f0b4cf308ea933bc81bfe2\",\"urls\":[\"bzz-raw://85b8023b78805063a2ec8d376f1f5983994eabd96efd8ceadb0224dbb71c5678\",\"dweb:/ipfs/QmaDhzCzRqsuHuJfhToEC4pATQHwhh7yWWsjwfuRzFT1kG\"]},\"/home/cdc218/projects/dolomite-protocol-v2/contracts/protocol/lib/Require.sol\":{\"keccak256\":\"0x05a2a90b41b6a5f42f0a72da63d015fb0b406a9ba2172823352e522e8bf3a606\",\"urls\":[\"bzz-raw://19883f0c6d33266f756ec5c3d17539524aa24b993c46c33f8400801d09373a6c\",\"dweb:/ipfs/QmYX2fwK3vQQDSZLMrc5wMfeb8RWrcC9CGX8XECLty8QDk\"]},\"/home/cdc218/projects/dolomite-protocol-v2/contracts/protocol/lib/SafeExternalCallback.sol\":{\"keccak256\":\"0xd308a1ab320de20780f7041ea5efd9568f8692e1ed6cf512b967ab63c791a8ff\",\"urls\":[\"bzz-raw://4a904b056f094be598396a90a5ba5297213934cfc2816848a494469ce249edd4\",\"dweb:/ipfs/QmcmeezMFPntDLNS1EY4j5THgRJUeyscgLv55WwxbFoiaY\"]},\"/home/cdc218/projects/dolomite-protocol-v2/contracts/protocol/lib/Storage.sol\":{\"keccak256\":\"0x9c27f3cd52af28c9b6bca18097b1793f114d08284d78417467d0d05f67e9e2a9\",\"urls\":[\"bzz-raw://d1ed0e7a7f76d59f30572996d4e164ab8fb5b2ec4bfca127983f9e936b904813\",\"dweb:/ipfs/QmePVYbgrY8Yw3Vf76pmEvE9pX916Jaa9we4kjM8tGM4J1\"]},\"/home/cdc218/projects/dolomite-protocol-v2/contracts/protocol/lib/Time.sol\":{\"keccak256\":\"0x87ee8d3c1d6e315a116426d8c8fc6f083e220fd14dda27fad4e8d7cab3dc7305\",\"urls\":[\"bzz-raw://7c20f2c52da682c3b5917fb6a19e81f43699b1d13c62b569ed723f34da72e766\",\"dweb:/ipfs/QmbXWYXi67nHBVNDKYUpo2E9ZaEVcHLvmXQkpYLMm1d5Vm\"]},\"/home/cdc218/projects/dolomite-protocol-v2/contracts/protocol/lib/Token.sol\":{\"keccak256\":\"0x095b5f8eb3665f6e246200311efc8a654fa3e90f9a1a522e27a4d089e8ab3917\",\"urls\":[\"bzz-raw://5db812b752a03d601d424e6e21be38153477082af0acf51b5c98eefa5553ed18\",\"dweb:/ipfs/QmbE549QUXYTurpx8hSMLBJvuBpfYqyNE6FBCgHJDY8PLf\"]},\"/home/cdc218/projects/dolomite-protocol-v2/contracts/protocol/lib/Types.sol\":{\"keccak256\":\"0xe1bab8c8799d83e86c7a49aaf815d8e3bc8d09562d46d44d921500db5e98de0e\",\"urls\":[\"bzz-raw://8ea3d0cc4fdab6dd9bba545a792170f939b342d8d1a7051c1c6365009af72658\",\"dweb:/ipfs/QmaLJgbavu88eEit6JPqfWnw6NmGBDZfveMXxumgWywBFG\"]},\"@openzeppelin/contracts/math/Math.sol\":{\"keccak256\":\"0x4b5aa451e4e8801478708f94b118a7821c0500d676255eaf89fc78c14856ce4e\",\"urls\":[\"bzz-raw://bed15b3f35ed05505efc8fb5cb01d06c52230fbcaadf4ed24a85b1ac2f15f33c\",\"dweb:/ipfs/QmS6tW81u8E4tvzVfVuqEuMCkdwAozQ6pKJPRBR4JEVmQp\"]},\"@openzeppelin/contracts/math/SafeMath.sol\":{\"keccak256\":\"0x640b6dee7a4b830bdfd52b5031a07fc2b12209f5b2e29e5d364a7d37f69d8076\",\"urls\":[\"bzz-raw://31113152e1ddb78fe7a4197f247591ca894e93f916867beb708d8e747b6cc74f\",\"dweb:/ipfs/QmbZaJyXdpsYGykVhHH9qpVGQg9DGCxE2QufbCUy3daTgq\"]},\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xe5bb0f57cff3e299f360052ba50f1ea0fff046df2be070b6943e0e3c3fdad8a9\",\"urls\":[\"bzz-raw://59fd025151435da35faa8093a5c7a17de02de9d08ad27275c5cdf05050820d91\",\"dweb:/ipfs/QmQMvwEcPhoRXzbXyrdoeRtvLoifUW9Qh7Luho7bmUPRkc\"]},\"@openzeppelin/contracts/utils/Address.sol\":{\"keccak256\":\"0x1a8e5072509c5ea7365eb1d48030b9be865140c8fb779968da0a459a0e174a11\",\"urls\":[\"bzz-raw://03335b7b07c7c8c8d613cfdd8ec39a0b5ec133ee510bf2fe6cc5a496767bef4b\",\"dweb:/ipfs/Qmebp4nzPja645c9yXSdJkGq96oU3am3LUnG2K3R7XxyKf\"]}},\"version\":1}", "bytecode": "0x6124b0610026600b82828239805160001a60731461001957fe5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600436106100355760003560e01c80631183877e1461003a575b600080fd5b81801561004657600080fd5b5061005a610055366004611f18565b61005c565b005b60208201516100739084903363ffffffff61016816565b604082015161008a9084903363ffffffff61016816565b610092611c9b565b61009a611c9b565b6020840151606085015185516100bb9288929091879063ffffffff61022116565b915091506100de8460200151856060015184886103bd909392919063ffffffff16565b61010584604001518560600151856100f58561089b565b899392919063ffffffff6108c316565b600d85015460208501516040860151606087015161013092919085600061012a61093d565b8761095d565b61015585604001518660200151876060015161014b8661089b565b600061012a61093d565b610160868684610bc8565b505050505050565b6000826000015173ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614806101b357506101b3848363ffffffff610c6c16565b806101cd575082516101cd9085908463ffffffff610c9e16565b905061021b817f53746f72616765000000000000000000000000000000000000000000000000007f556e7065726d697373696f6e6564206f70657261746f7200000000000000000085610cde565b50505050565b610229611c9b565b610231611c9b565b610239611c9b565b61024a88888863ffffffff610ddd16565b90508360600151600014801561026f575060008460400151600181111561026d57fe5b145b15610287578061027d61093d565b92509250506103b3565b61028f611c9b565b6102998287610e5d565b90506102a3611c9b565b6102ab611c9b565b6000876020015160018111156102bd57fe5b1415610329575060408051808201909152865115158152606087015160208201526001876040015160018111156102f057fe5b141561030957610306818463ffffffff610f1216565b90505b61032261031c848363ffffffff610f2716565b89610fb9565b91506103ab565b604051806040016040528088600001511515815260200161034d8960600151611080565b6fffffffffffffffffffffffffffffffff169052915060008760400151600181111561037557fe5b141561038e5761038b848363ffffffff6110e316565b91505b6103a88361039c848b610e5d565b9063ffffffff610f1216565b90505b909450925050505b9550959350505050565b6103c5611c9b565b6103d685858563ffffffff610ddd16565b90506103e28183611208565b156103ed575061021b565b6103f5611c9b565b610405868563ffffffff61127a16565b8251909150156104725761045661045183602001516fffffffffffffffffffffffffffffffff1683602001516fffffffffffffffffffffffffffffffff166112da90919063ffffffff16565b611080565b6fffffffffffffffffffffffffffffffff1660208201526104b7565b602082015181516104a291610451916fffffffffffffffffffffffffffffffff908116911663ffffffff6112da16565b6fffffffffffffffffffffffffffffffff1681525b82511561051c5761050061045184602001516fffffffffffffffffffffffffffffffff1683602001516fffffffffffffffffffffffffffffffff1661131c90919063ffffffff16565b6fffffffffffffffffffffffffffffffff166020820152610561565b6020830151815161054c91610451916fffffffffffffffffffffffffffffffff908116911663ffffffff61131c16565b6fffffffffffffffffffffffffffffffff1681525b61056a8261135b565b801561057a575061057a83611385565b1561061757845173ffffffffffffffffffffffffffffffffffffffff1660009081526003870160209081526040808320828901518452909152902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff63ffffffff61010080840482169290920116027fffffffffffffffffffffffffffffffffffffffffffffffffffffff00000000ff9091161790556106a9565b61062082611385565b801561063057506106308361135b565b156106a957845173ffffffffffffffffffffffffffffffffffffffff16600090815260038701602090815260408083208289015184529091529020805463ffffffff6101008083048216600101909116027fffffffffffffffffffffffffffffffffffffffffffffffffffffff00000000ff9091161790555b6106b28361139b565b80156106c457506106c28261139b565b155b1561071857845173ffffffffffffffffffffffffffffffffffffffff16600090815260038701602090815260408083208289015184529091529020610712906001018563ffffffff6113b516565b50610782565b6107218361139b565b15801561073257506107328261139b565b1561078257845173ffffffffffffffffffffffffffffffffffffffff16600090815260038701602090815260408083208289015184529091529020610780906001018563ffffffff61149b16565b505b6000848152600180880160209081526040808420855193018054958301516fffffffffffffffffffffffffffffffff908116700100000000000000000000000000000000029481167fffffffffffffffffffffffffffffffff0000000000000000000000000000000090971696909617861693909317909255875173ffffffffffffffffffffffffffffffffffffffff1683526003808a018252828420898301518552825282842088855201815291208451815492860151909316610100027fffffffffffffffffffffffffffffff00000000000000000000000000000000ff9315157fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0090931692909217929092161790555050505050565b6108a3611c9b565b50604080518082019091528151158152602080830151908201525b919050565b6108cc816114e5565b156108d657610936565b6108de611c9b565b6108f08686868663ffffffff6114ed16565b90506108fa611c9b565b61090a828463ffffffff610f2716565b9050610914611c9b565b61091e8286610fb9565b90506109328888888463ffffffff6103bd16565b5050505b5050505050565b610945611c9b565b50604080518082019091526000808252602082015290565b8015801590610988575086516109889073ffffffffffffffffffffffffffffffffffffffff16611544565b15610bbf5761010060006060610a876109a15a8661157d565b60208c015160405186917fdcd3f52e00000000000000000000000000000000000000000000000000000000916109e491908f908f908f908f908f90602401612208565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff00000000000000000000000000000000000000000000000000000000909316929092179091528d5173ffffffffffffffffffffffffffffffffffffffff1692919063ffffffff61159316565b915091508115610aec57896000015173ffffffffffffffffffffffffffffffffffffffff167fdf30e54991e6c9ca0d354a3eec6c41160a3957d6a6a1e045b61cb4fa78a881588b60200151604051610adf91906121da565b60405180910390a2610bbb565b604481511015610b0b5750604080516020810190915260008152610b62565b60448101516004909101907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffbc8401811115610b4a576044840360408301525b81806020019051610b5e9190810190611ee3565b9150505b896000015173ffffffffffffffffffffffffffffffffffffffff167f80286932449c34f135af231b834d24382a883e1ae7e17796d9f842ffec060bc28b6020015183604051610bb29291906121e8565b60405180910390a25b5050505b50505050505050565b604082015180516020808501518051818301519290940151606087015173ffffffffffffffffffffffffffffffffffffffff94851695909416937f21281f8d59117d0399dc467dbdd321538ceffe3225e80e2bd4de6f1b3355cbc79392610c32908a90838a611606565b610c4e8a8a604001518b60600151610c498c61089b565b611606565b604051610c5f959493929190612263565b60405180910390a3505050565b73ffffffffffffffffffffffffffffffffffffffff811660009081526005830160205260409020546001145b92915050565b73ffffffffffffffffffffffffffffffffffffffff80831660009081526004850160209081526040808320938516835292905220546001145b9392505050565b8361021b57610cec8361163b565b7f3a20000000000000000000000000000000000000000000000000000000000000610d168461163b565b7f203c000000000000000000000000000000000000000000000000000000000000610d4085611713565b604051610d769594939291907f3e000000000000000000000000000000000000000000000000000000000000009060200161214b565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0818403018152908290527f08c379a0000000000000000000000000000000000000000000000000000000008252610dd4916004016121a9565b60405180910390fd5b610de5611c9b565b50815173ffffffffffffffffffffffffffffffffffffffff1660009081526003938401602090815260408083209482015183529381528382209282529190930181529181902081518083019092525460ff81161515825261010090046fffffffffffffffffffffffffffffffff169181019190915290565b610e65611c9b565b602083015183516fffffffffffffffffffffffffffffffff9091169015610ed357604080518082019091526001815260208481015190820190610ec89084906dffffffffffffffffffffffffffff16670de0b6b3a764000063ffffffff61188a16565b815250915050610c98565b604080518082019091526000815283516020820190610ec89084906dffffffffffffffffffffffffffff16670de0b6b3a764000063ffffffff61188a16565b610f1a611c9b565b610cd783610f278461089b565b610f2f611c9b565b610f37611c9b565b8251845115159015151415610f6a5783511515815260208085015190840151610f60919061131c565b6020820152610cd7565b8260200151846020015110610f935783511515815260208085015190840151610f6091906112da565b82511515815260208084015190850151610fad91906112da565b60208201529392505050565b610fc1611c9b565b82511561103957604051806040016040528060011515815260200161101e610451670de0b6b3a764000067ffffffffffffffff1686602001516dffffffffffffffffffffffffffff16886020015161188a9092919063ffffffff16565b6fffffffffffffffffffffffffffffffff1690529050610c98565b604080518082019091526000815282516020858101519083019161101e9161045191670de0b6b3a7640000906dffffffffffffffffffffffffffff1663ffffffff61188a16565b600081610c986fffffffffffffffffffffffffffffffff821682147f4d617468000000000000000000000000000000000000000000000000000000007f556e73616665206361737420746f2075696e743132380000000000000000000084611933565b6110eb611c9b565b6110f3611c9b565b8251845115159015151415611151578351151581526020808501519084015161113591610451916fffffffffffffffffffffffffffffffff918216911661131c565b6fffffffffffffffffffffffffffffffff166020820152610cd7565b82602001516fffffffffffffffffffffffffffffffff1684602001516fffffffffffffffffffffffffffffffff16106111b7578351151581526020808501519084015161113591610451916fffffffffffffffffffffffffffffffff91821691166112da565b825115158152602080840151908501516111ea91610451916fffffffffffffffffffffffffffffffff91821691166112da565b6fffffffffffffffffffffffffffffffff1660208201529392505050565b600081602001516fffffffffffffffffffffffffffffffff1683602001516fffffffffffffffffffffffffffffffff1614156112715760208301516fffffffffffffffffffffffffffffffff1661126157506001610c98565b5080518251151590151514610c98565b50600092915050565b611282611c9b565b506000818152600180840160209081526040928390208351808501909452909101546fffffffffffffffffffffffffffffffff8082168452700100000000000000000000000000000000909104169082015292915050565b6000610cd783836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611995565b600082820183811015610cd7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dd4906121ba565b600081602001516fffffffffffffffffffffffffffffffff16600014158015610c98575050511590565b60006113908261139b565b80610c985750505190565b602001516fffffffffffffffffffffffffffffffff161590565b600081815260018301602052604081205480156114915783547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff808301910180821461144b57600086600001828154811061140c57fe5b906000526020600020015490508087600001848154811061142957fe5b6000918252602080832090910192909255918252600188019052604090208390555b855486908061145657fe5b600190038181906000526020600020016000905590558560010160008681526020019081526020016000206000905560019350505050610c98565b6000915050610c98565b60006114a783836119db565b6114dd57508154600181810184556000848152602080822090930184905584548482528286019093526040902091909155610c98565b506000610c98565b602001511590565b6114f5611c9b565b6114fd611c9b565b61150e86868663ffffffff610ddd16565b90506115198161139b565b1561152e5761152661093d565b91505061153c565b6115388184610e5d565b9150505b949350505050565b6000813f7fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a47081811480159061153c575050151592915050565b600081831061158c5781610cd7565b5090919050565b6000606060008060608661ffff166040519080825280601f01601f1916602001820160405280156115cb576020820181803883390190505b50905060008087516020890160008d8df191503d9250868311156115ed578692505b828152826000602083013e909890975095505050505050565b61160e611cb2565b604080518082019091528281526020810161163087878763ffffffff610ddd16565b905295945050505050565b6060808260405160200161164f9190612136565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0818403018152919052905060205b80156116f85781517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff909101908290829081106116bb57fe5b01602001517fff0000000000000000000000000000000000000000000000000000000000000016156116f357600101815290506108be565b611682565b5060408051600080825260208201909252905b509392505050565b60408051602a808252606082810190935273ffffffffffffffffffffffffffffffffffffffff8416918391602082018180388339019050509050603060f81b8160008151811061175f57fe5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350607860f81b816001815181106117a057fe5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a90535060005b601481101561170b57600281026117eb600f85166119f3565b8382602903815181106117fa57fe5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350600484901c935061183c600f85166119f3565b83826028038151811061184b57fe5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053505060049290921c916001016117d2565b6000831580611897575082155b156118ae576118a7600083611a15565b9050610cd7565b60006118c0858563ffffffff611a5716565b905061192a6118f760016118eb60026118df888463ffffffff6112da16565b9063ffffffff611a1516565b9063ffffffff61131c16565b611907838663ffffffff611aab16565b1015611914576000611917565b60015b60ff166118eb838663ffffffff611a1516565b95945050505050565b8361021b576119418361163b565b7f3a2000000000000000000000000000000000000000000000000000000000000061196b8461163b565b7f203c000000000000000000000000000000000000000000000000000000000000610d4085611aed565b600081848411156119d3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dd491906121a9565b505050900390565b60009081526001919091016020526040902054151590565b6000600a821015611a0b57506030810160f81b6108be565b5060570160f81b90565b6000610cd783836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611bfc565b600082611a6657506000610c98565b82820282848281611a7357fe5b0414610cd7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dd4906121ca565b6000610cd783836040518060400160405280601881526020017f536166654d6174683a206d6f64756c6f206279207a65726f0000000000000000815250611c4d565b606081611b2e575060408051808201909152600181527f300000000000000000000000000000000000000000000000000000000000000060208201526108be565b8160005b8115611b4657600101600a82049150611b32565b6060816040519080825280601f01601f191660200182016040528015611b73576020820181803883390190505b508593509050815b8015611bf3577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01600a840660300160f81b828281518110611bb957fe5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350600a84049350611b7b565b50949350505050565b60008183611c37576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dd491906121a9565b506000838581611c4357fe5b0495945050505050565b60008183611c88576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dd491906121a9565b50828481611c9257fe5b06949350505050565b604080518082019091526000808252602082015290565b6040518060400160405280611cc5611c9b565b8152602001611cd2611c9b565b905290565b8035610c9881612425565b8035610c988161243c565b8035610c9881612445565b600082601f830112611d0957600080fd5b8151611d1c611d17826122d7565b6122b0565b91508082526020830160208301858383011115611d3857600080fd5b611d438382846123d1565b50505092915050565b600060808284031215611d5e57600080fd5b611d6860806122b0565b90506000611d768484611ce2565b8252506020611d8784848301611ced565b6020830152506040611d9b84828501611ced565b6040830152506060611daf84828501611e5d565b60608301525092915050565b600060608284031215611dcd57600080fd5b611dd760606122b0565b90506000611de58484611ecd565b8252506020611df684848301611ecd565b6020830152506040611e0a84828501611ed8565b60408301525092915050565b600060408284031215611e2857600080fd5b611e3260406122b0565b90506000611e408484611cd7565b8252506020611e5184848301611e5d565b60208301525092915050565b8035610c9881612452565b60006101208284031215611e7b57600080fd5b611e8560806122b0565b90506000611e938484611d4c565b8252506080611ea484848301611e16565b60208301525060c0611eb884828501611e16565b604083015250610100611daf84828501611e5d565b8035610c988161245b565b8035610c9881612464565b600060208284031215611ef557600080fd5b815167ffffffffffffffff811115611f0c57600080fd5b61153c84828501611cf8565b60008060006101a08486031215611f2e57600080fd5b6000611f3a8686611e5d565b9350506020611f4b86828701611e68565b925050610140611f5d86828701611dbb565b9150509250925092565b611f708161232a565b82525050565b611f7081612335565b611f70611f8b8261233a565b612384565b611f70611f8b8261235f565b611f70611f8b82612384565b6000611fb38261231d565b611fbd81856108be565b9350611fcd8185602086016123d1565b9290920192915050565b6000611fe28261231d565b611fec8185612321565b9350611ffc8185602086016123d1565b612005816123fd565b9093019392505050565b600061201c601b83612321565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000815260200192915050565b6000612055602183612321565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f81527f7700000000000000000000000000000000000000000000000000000000000000602082015260400192915050565b805160808301906120b88482612113565b50602082015161021b60408501826120ef565b805160408301906120dc8482611f67565b50602082015161021b602085018261212d565b805160408301906121008482611f76565b50602082015161021b6020850182612124565b805160408301906120dc8482611f76565b611f708161239a565b611f7081612384565b60006121428284611f9c565b50602001919050565b60006121578289611fa8565b91506121638288611f90565b6002820191506121738287611fa8565b915061217f8286611f90565b60028201915061218f8285611fa8565b915061219b8284611f7f565b506001019695505050505050565b60208082528101610cd78184611fd7565b60208082528101610c988161200f565b60208082528101610c9881612048565b60208101610c98828461212d565b604081016121f6828561212d565b818103602083015261153c8184611fd7565b6101208101612217828961212d565b61222460208301886120cb565b612231606083018761212d565b61223e6080830186612113565b61224b60c083018561212d565b61225860e0830184612113565b979650505050505050565b6101608101612272828861212d565b61227f602083018761212d565b61228c604083018661212d565b61229960608301856120a7565b6122a660e08301846120a7565b9695505050505050565b60405181810167ffffffffffffffff811182821017156122cf57600080fd5b604052919050565b600067ffffffffffffffff8211156122ee57600080fd5b506020601f919091017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0160190565b5190565b90815260200190565b6000610c98826123af565b151590565b7fff000000000000000000000000000000000000000000000000000000000000001690565b7fffff0000000000000000000000000000000000000000000000000000000000001690565b90565b6dffffffffffffffffffffffffffff1690565b6fffffffffffffffffffffffffffffffff1690565b73ffffffffffffffffffffffffffffffffffffffff1690565b63ffffffff1690565b60005b838110156123ec5781810151838201526020016123d4565b8381111561021b5750506000910152565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01690565b61242e8161232a565b811461243957600080fd5b50565b61242e81612335565b6002811061243957600080fd5b61242e81612384565b61242e81612387565b61242e816123c856fea365627a7a72315820bf47bb273ba1de5b12f68908c2fdeb7f3fae573d73b8c212b8d81529d86331df6c6578706572696d656e74616cf564736f6c63430005100040", "deployedBytecode": "0x73000000000000000000000000000000000000000030146080604052600436106100355760003560e01c80631183877e1461003a575b600080fd5b81801561004657600080fd5b5061005a610055366004611f18565b61005c565b005b60208201516100739084903363ffffffff61016816565b604082015161008a9084903363ffffffff61016816565b610092611c9b565b61009a611c9b565b6020840151606085015185516100bb9288929091879063ffffffff61022116565b915091506100de8460200151856060015184886103bd909392919063ffffffff16565b61010584604001518560600151856100f58561089b565b899392919063ffffffff6108c316565b600d85015460208501516040860151606087015161013092919085600061012a61093d565b8761095d565b61015585604001518660200151876060015161014b8661089b565b600061012a61093d565b610160868684610bc8565b505050505050565b6000826000015173ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614806101b357506101b3848363ffffffff610c6c16565b806101cd575082516101cd9085908463ffffffff610c9e16565b905061021b817f53746f72616765000000000000000000000000000000000000000000000000007f556e7065726d697373696f6e6564206f70657261746f7200000000000000000085610cde565b50505050565b610229611c9b565b610231611c9b565b610239611c9b565b61024a88888863ffffffff610ddd16565b90508360600151600014801561026f575060008460400151600181111561026d57fe5b145b15610287578061027d61093d565b92509250506103b3565b61028f611c9b565b6102998287610e5d565b90506102a3611c9b565b6102ab611c9b565b6000876020015160018111156102bd57fe5b1415610329575060408051808201909152865115158152606087015160208201526001876040015160018111156102f057fe5b141561030957610306818463ffffffff610f1216565b90505b61032261031c848363ffffffff610f2716565b89610fb9565b91506103ab565b604051806040016040528088600001511515815260200161034d8960600151611080565b6fffffffffffffffffffffffffffffffff169052915060008760400151600181111561037557fe5b141561038e5761038b848363ffffffff6110e316565b91505b6103a88361039c848b610e5d565b9063ffffffff610f1216565b90505b909450925050505b9550959350505050565b6103c5611c9b565b6103d685858563ffffffff610ddd16565b90506103e28183611208565b156103ed575061021b565b6103f5611c9b565b610405868563ffffffff61127a16565b8251909150156104725761045661045183602001516fffffffffffffffffffffffffffffffff1683602001516fffffffffffffffffffffffffffffffff166112da90919063ffffffff16565b611080565b6fffffffffffffffffffffffffffffffff1660208201526104b7565b602082015181516104a291610451916fffffffffffffffffffffffffffffffff908116911663ffffffff6112da16565b6fffffffffffffffffffffffffffffffff1681525b82511561051c5761050061045184602001516fffffffffffffffffffffffffffffffff1683602001516fffffffffffffffffffffffffffffffff1661131c90919063ffffffff16565b6fffffffffffffffffffffffffffffffff166020820152610561565b6020830151815161054c91610451916fffffffffffffffffffffffffffffffff908116911663ffffffff61131c16565b6fffffffffffffffffffffffffffffffff1681525b61056a8261135b565b801561057a575061057a83611385565b1561061757845173ffffffffffffffffffffffffffffffffffffffff1660009081526003870160209081526040808320828901518452909152902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff63ffffffff61010080840482169290920116027fffffffffffffffffffffffffffffffffffffffffffffffffffffff00000000ff9091161790556106a9565b61062082611385565b801561063057506106308361135b565b156106a957845173ffffffffffffffffffffffffffffffffffffffff16600090815260038701602090815260408083208289015184529091529020805463ffffffff6101008083048216600101909116027fffffffffffffffffffffffffffffffffffffffffffffffffffffff00000000ff9091161790555b6106b28361139b565b80156106c457506106c28261139b565b155b1561071857845173ffffffffffffffffffffffffffffffffffffffff16600090815260038701602090815260408083208289015184529091529020610712906001018563ffffffff6113b516565b50610782565b6107218361139b565b15801561073257506107328261139b565b1561078257845173ffffffffffffffffffffffffffffffffffffffff16600090815260038701602090815260408083208289015184529091529020610780906001018563ffffffff61149b16565b505b6000848152600180880160209081526040808420855193018054958301516fffffffffffffffffffffffffffffffff908116700100000000000000000000000000000000029481167fffffffffffffffffffffffffffffffff0000000000000000000000000000000090971696909617861693909317909255875173ffffffffffffffffffffffffffffffffffffffff1683526003808a018252828420898301518552825282842088855201815291208451815492860151909316610100027fffffffffffffffffffffffffffffff00000000000000000000000000000000ff9315157fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0090931692909217929092161790555050505050565b6108a3611c9b565b50604080518082019091528151158152602080830151908201525b919050565b6108cc816114e5565b156108d657610936565b6108de611c9b565b6108f08686868663ffffffff6114ed16565b90506108fa611c9b565b61090a828463ffffffff610f2716565b9050610914611c9b565b61091e8286610fb9565b90506109328888888463ffffffff6103bd16565b5050505b5050505050565b610945611c9b565b50604080518082019091526000808252602082015290565b8015801590610988575086516109889073ffffffffffffffffffffffffffffffffffffffff16611544565b15610bbf5761010060006060610a876109a15a8661157d565b60208c015160405186917fdcd3f52e00000000000000000000000000000000000000000000000000000000916109e491908f908f908f908f908f90602401612208565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff00000000000000000000000000000000000000000000000000000000909316929092179091528d5173ffffffffffffffffffffffffffffffffffffffff1692919063ffffffff61159316565b915091508115610aec57896000015173ffffffffffffffffffffffffffffffffffffffff167fdf30e54991e6c9ca0d354a3eec6c41160a3957d6a6a1e045b61cb4fa78a881588b60200151604051610adf91906121da565b60405180910390a2610bbb565b604481511015610b0b5750604080516020810190915260008152610b62565b60448101516004909101907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffbc8401811115610b4a576044840360408301525b81806020019051610b5e9190810190611ee3565b9150505b896000015173ffffffffffffffffffffffffffffffffffffffff167f80286932449c34f135af231b834d24382a883e1ae7e17796d9f842ffec060bc28b6020015183604051610bb29291906121e8565b60405180910390a25b5050505b50505050505050565b604082015180516020808501518051818301519290940151606087015173ffffffffffffffffffffffffffffffffffffffff94851695909416937f21281f8d59117d0399dc467dbdd321538ceffe3225e80e2bd4de6f1b3355cbc79392610c32908a90838a611606565b610c4e8a8a604001518b60600151610c498c61089b565b611606565b604051610c5f959493929190612263565b60405180910390a3505050565b73ffffffffffffffffffffffffffffffffffffffff811660009081526005830160205260409020546001145b92915050565b73ffffffffffffffffffffffffffffffffffffffff80831660009081526004850160209081526040808320938516835292905220546001145b9392505050565b8361021b57610cec8361163b565b7f3a20000000000000000000000000000000000000000000000000000000000000610d168461163b565b7f203c000000000000000000000000000000000000000000000000000000000000610d4085611713565b604051610d769594939291907f3e000000000000000000000000000000000000000000000000000000000000009060200161214b565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0818403018152908290527f08c379a0000000000000000000000000000000000000000000000000000000008252610dd4916004016121a9565b60405180910390fd5b610de5611c9b565b50815173ffffffffffffffffffffffffffffffffffffffff1660009081526003938401602090815260408083209482015183529381528382209282529190930181529181902081518083019092525460ff81161515825261010090046fffffffffffffffffffffffffffffffff169181019190915290565b610e65611c9b565b602083015183516fffffffffffffffffffffffffffffffff9091169015610ed357604080518082019091526001815260208481015190820190610ec89084906dffffffffffffffffffffffffffff16670de0b6b3a764000063ffffffff61188a16565b815250915050610c98565b604080518082019091526000815283516020820190610ec89084906dffffffffffffffffffffffffffff16670de0b6b3a764000063ffffffff61188a16565b610f1a611c9b565b610cd783610f278461089b565b610f2f611c9b565b610f37611c9b565b8251845115159015151415610f6a5783511515815260208085015190840151610f60919061131c565b6020820152610cd7565b8260200151846020015110610f935783511515815260208085015190840151610f6091906112da565b82511515815260208084015190850151610fad91906112da565b60208201529392505050565b610fc1611c9b565b82511561103957604051806040016040528060011515815260200161101e610451670de0b6b3a764000067ffffffffffffffff1686602001516dffffffffffffffffffffffffffff16886020015161188a9092919063ffffffff16565b6fffffffffffffffffffffffffffffffff1690529050610c98565b604080518082019091526000815282516020858101519083019161101e9161045191670de0b6b3a7640000906dffffffffffffffffffffffffffff1663ffffffff61188a16565b600081610c986fffffffffffffffffffffffffffffffff821682147f4d617468000000000000000000000000000000000000000000000000000000007f556e73616665206361737420746f2075696e743132380000000000000000000084611933565b6110eb611c9b565b6110f3611c9b565b8251845115159015151415611151578351151581526020808501519084015161113591610451916fffffffffffffffffffffffffffffffff918216911661131c565b6fffffffffffffffffffffffffffffffff166020820152610cd7565b82602001516fffffffffffffffffffffffffffffffff1684602001516fffffffffffffffffffffffffffffffff16106111b7578351151581526020808501519084015161113591610451916fffffffffffffffffffffffffffffffff91821691166112da565b825115158152602080840151908501516111ea91610451916fffffffffffffffffffffffffffffffff91821691166112da565b6fffffffffffffffffffffffffffffffff1660208201529392505050565b600081602001516fffffffffffffffffffffffffffffffff1683602001516fffffffffffffffffffffffffffffffff1614156112715760208301516fffffffffffffffffffffffffffffffff1661126157506001610c98565b5080518251151590151514610c98565b50600092915050565b611282611c9b565b506000818152600180840160209081526040928390208351808501909452909101546fffffffffffffffffffffffffffffffff8082168452700100000000000000000000000000000000909104169082015292915050565b6000610cd783836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611995565b600082820183811015610cd7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dd4906121ba565b600081602001516fffffffffffffffffffffffffffffffff16600014158015610c98575050511590565b60006113908261139b565b80610c985750505190565b602001516fffffffffffffffffffffffffffffffff161590565b600081815260018301602052604081205480156114915783547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff808301910180821461144b57600086600001828154811061140c57fe5b906000526020600020015490508087600001848154811061142957fe5b6000918252602080832090910192909255918252600188019052604090208390555b855486908061145657fe5b600190038181906000526020600020016000905590558560010160008681526020019081526020016000206000905560019350505050610c98565b6000915050610c98565b60006114a783836119db565b6114dd57508154600181810184556000848152602080822090930184905584548482528286019093526040902091909155610c98565b506000610c98565b602001511590565b6114f5611c9b565b6114fd611c9b565b61150e86868663ffffffff610ddd16565b90506115198161139b565b1561152e5761152661093d565b91505061153c565b6115388184610e5d565b9150505b949350505050565b6000813f7fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a47081811480159061153c575050151592915050565b600081831061158c5781610cd7565b5090919050565b6000606060008060608661ffff166040519080825280601f01601f1916602001820160405280156115cb576020820181803883390190505b50905060008087516020890160008d8df191503d9250868311156115ed578692505b828152826000602083013e909890975095505050505050565b61160e611cb2565b604080518082019091528281526020810161163087878763ffffffff610ddd16565b905295945050505050565b6060808260405160200161164f9190612136565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0818403018152919052905060205b80156116f85781517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff909101908290829081106116bb57fe5b01602001517fff0000000000000000000000000000000000000000000000000000000000000016156116f357600101815290506108be565b611682565b5060408051600080825260208201909252905b509392505050565b60408051602a808252606082810190935273ffffffffffffffffffffffffffffffffffffffff8416918391602082018180388339019050509050603060f81b8160008151811061175f57fe5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350607860f81b816001815181106117a057fe5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a90535060005b601481101561170b57600281026117eb600f85166119f3565b8382602903815181106117fa57fe5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350600484901c935061183c600f85166119f3565b83826028038151811061184b57fe5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053505060049290921c916001016117d2565b6000831580611897575082155b156118ae576118a7600083611a15565b9050610cd7565b60006118c0858563ffffffff611a5716565b905061192a6118f760016118eb60026118df888463ffffffff6112da16565b9063ffffffff611a1516565b9063ffffffff61131c16565b611907838663ffffffff611aab16565b1015611914576000611917565b60015b60ff166118eb838663ffffffff611a1516565b95945050505050565b8361021b576119418361163b565b7f3a2000000000000000000000000000000000000000000000000000000000000061196b8461163b565b7f203c000000000000000000000000000000000000000000000000000000000000610d4085611aed565b600081848411156119d3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dd491906121a9565b505050900390565b60009081526001919091016020526040902054151590565b6000600a821015611a0b57506030810160f81b6108be565b5060570160f81b90565b6000610cd783836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611bfc565b600082611a6657506000610c98565b82820282848281611a7357fe5b0414610cd7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dd4906121ca565b6000610cd783836040518060400160405280601881526020017f536166654d6174683a206d6f64756c6f206279207a65726f0000000000000000815250611c4d565b606081611b2e575060408051808201909152600181527f300000000000000000000000000000000000000000000000000000000000000060208201526108be565b8160005b8115611b4657600101600a82049150611b32565b6060816040519080825280601f01601f191660200182016040528015611b73576020820181803883390190505b508593509050815b8015611bf3577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01600a840660300160f81b828281518110611bb957fe5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350600a84049350611b7b565b50949350505050565b60008183611c37576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dd491906121a9565b506000838581611c4357fe5b0495945050505050565b60008183611c88576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dd491906121a9565b50828481611c9257fe5b06949350505050565b604080518082019091526000808252602082015290565b6040518060400160405280611cc5611c9b565b8152602001611cd2611c9b565b905290565b8035610c9881612425565b8035610c988161243c565b8035610c9881612445565b600082601f830112611d0957600080fd5b8151611d1c611d17826122d7565b6122b0565b91508082526020830160208301858383011115611d3857600080fd5b611d438382846123d1565b50505092915050565b600060808284031215611d5e57600080fd5b611d6860806122b0565b90506000611d768484611ce2565b8252506020611d8784848301611ced565b6020830152506040611d9b84828501611ced565b6040830152506060611daf84828501611e5d565b60608301525092915050565b600060608284031215611dcd57600080fd5b611dd760606122b0565b90506000611de58484611ecd565b8252506020611df684848301611ecd565b6020830152506040611e0a84828501611ed8565b60408301525092915050565b600060408284031215611e2857600080fd5b611e3260406122b0565b90506000611e408484611cd7565b8252506020611e5184848301611e5d565b60208301525092915050565b8035610c9881612452565b60006101208284031215611e7b57600080fd5b611e8560806122b0565b90506000611e938484611d4c565b8252506080611ea484848301611e16565b60208301525060c0611eb884828501611e16565b604083015250610100611daf84828501611e5d565b8035610c988161245b565b8035610c9881612464565b600060208284031215611ef557600080fd5b815167ffffffffffffffff811115611f0c57600080fd5b61153c84828501611cf8565b60008060006101a08486031215611f2e57600080fd5b6000611f3a8686611e5d565b9350506020611f4b86828701611e68565b925050610140611f5d86828701611dbb565b9150509250925092565b611f708161232a565b82525050565b611f7081612335565b611f70611f8b8261233a565b612384565b611f70611f8b8261235f565b611f70611f8b82612384565b6000611fb38261231d565b611fbd81856108be565b9350611fcd8185602086016123d1565b9290920192915050565b6000611fe28261231d565b611fec8185612321565b9350611ffc8185602086016123d1565b612005816123fd565b9093019392505050565b600061201c601b83612321565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000815260200192915050565b6000612055602183612321565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f81527f7700000000000000000000000000000000000000000000000000000000000000602082015260400192915050565b805160808301906120b88482612113565b50602082015161021b60408501826120ef565b805160408301906120dc8482611f67565b50602082015161021b602085018261212d565b805160408301906121008482611f76565b50602082015161021b6020850182612124565b805160408301906120dc8482611f76565b611f708161239a565b611f7081612384565b60006121428284611f9c565b50602001919050565b60006121578289611fa8565b91506121638288611f90565b6002820191506121738287611fa8565b915061217f8286611f90565b60028201915061218f8285611fa8565b915061219b8284611f7f565b506001019695505050505050565b60208082528101610cd78184611fd7565b60208082528101610c988161200f565b60208082528101610c9881612048565b60208101610c98828461212d565b604081016121f6828561212d565b818103602083015261153c8184611fd7565b6101208101612217828961212d565b61222460208301886120cb565b612231606083018761212d565b61223e6080830186612113565b61224b60c083018561212d565b61225860e0830184612113565b979650505050505050565b6101608101612272828861212d565b61227f602083018761212d565b61228c604083018661212d565b61229960608301856120a7565b6122a660e08301846120a7565b9695505050505050565b60405181810167ffffffffffffffff811182821017156122cf57600080fd5b604052919050565b600067ffffffffffffffff8211156122ee57600080fd5b506020601f919091017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0160190565b5190565b90815260200190565b6000610c98826123af565b151590565b7fff000000000000000000000000000000000000000000000000000000000000001690565b7fffff0000000000000000000000000000000000000000000000000000000000001690565b90565b6dffffffffffffffffffffffffffff1690565b6fffffffffffffffffffffffffffffffff1690565b73ffffffffffffffffffffffffffffffffffffffff1690565b63ffffffff1690565b60005b838110156123ec5781810151838201526020016123d4565b8381111561021b5750506000910152565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01690565b61242e8161232a565b811461243957600080fd5b50565b61242e81612335565b6002811061243957600080fd5b61242e81612384565b61242e81612387565b61242e816123c856fea365627a7a72315820bf47bb273ba1de5b12f68908c2fdeb7f3fae573d73b8c212b8d81529d86331df6c6578706572696d656e74616cf564736f6c63430005100040", "sourceMap": "953:1823:75:-;;132:2:-1;166:7;155:9;146:7;137:37;255:7;249:14;246:1;241:23;235:4;232:33;222:2;;269:9;222:2;293:9;290:1;283:20;323:4;314:7;306:22;347:7;338;331:24", "deployedSourceMap": "953:1823:75:-;;;;;;;;;;;;;;;;;;;;;;;;1196:1578;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;1196:1578:75;;;;;;;;:::i;:::-;;;1385:15;;;;1361:52;;:5;;1402:10;1361:52;:23;:52;:::i;:::-;1447:15;;;;1423:52;;:5;;1464:10;1423:52;:23;:52;:::i;:::-;1500:23;;:::i;:::-;1537:25;;:::i;:::-;1615:15;;;;1644:11;;;;1688;;1575:134;;:5;;1615:15;;1669:5;;1575:134;:26;:134;:::i;:::-;1486:223;;;;1720:96;1746:4;:15;;;1775:4;:11;;;1800:6;1720:5;:12;;:96;;;;;;:::i;:::-;1827:140;1865:4;:15;;;1894:4;:11;;;1919:5;1938:19;:8;:17;:19::i;:::-;1827:5;;:140;;;;:24;:140;:::i;:::-;2005:33;;;;2119:15;;;;2148;;;;2177:11;;;;2048:300;;2119:15;2148;2202:8;1978:24;2293:15;:13;:15::i;:::-;2322:16;2048:57;:300::i;:::-;2358:311;2429:4;:15;;;2458:4;:15;;;2487:4;:11;;;2512:19;:8;:17;:19::i;:::-;2572:1;2614:15;:13;:15::i;2358:311::-;2680:87;2712:5;2731:4;2749:8;2680:18;:87::i;:::-;1196:1578;;;;;;:::o;20846:495:101:-;21023:20;21070:7;:13;;;21058:25;;:8;:25;;;:73;;;-1:-1:-1;21099:32:101;:5;21122:8;21099:32;:22;:32;:::i;:::-;21058:135;;;-1:-1:-1;21169:13:101;;21147:46;;:5;;21184:8;21147:46;:21;:46;:::i;:::-;21023:170;;21204:130;21230:15;21259:4;21204:130;21316:8;21204:12;:130::i;:::-;20846:495;;;;:::o;22851:1432::-;23112:16;;:::i;:::-;23130;;:::i;:::-;23162:23;;:::i;:::-;23188:31;:5;23201:7;23210:8;23188:31;:12;:31;:::i;:::-;23162:57;;23234:6;:12;;;23250:1;23234:17;:61;;;;-1:-1:-1;23269:26:101;23255:6;:10;;;:40;;;;;;;;;23234:61;23230:124;;;23319:6;23327:15;:13;:15::i;:::-;23311:32;;;;;;;23230:124;23364:23;;:::i;:::-;23390:32;23408:6;23416:5;23390:17;:32::i;:::-;23364:58;;23432:23;;:::i;:::-;23465:25;;:::i;:::-;23528:27;23505:6;:19;;;:50;;;;;;;;;23501:740;;;-1:-1:-1;23582:97:101;;;;;;;;;23616:11;;23582:97;;;;23652:12;;;;23582:97;;;;23711:27;23697:6;:10;;;:41;;;;;;;;;23693:111;;;23769:20;:8;23782:6;23769:20;:12;:20;:::i;:::-;23758:31;;23693:111;23826:46;23844:20;:6;23855:8;23844:20;:10;:20;:::i;:::-;23866:5;23826:17;:46::i;:::-;23817:55;;23501:740;;;23937:105;;;;;;;;23971:6;:11;;;23937:105;;;;;;24007:20;:6;:12;;;:18;:20::i;:::-;23937:105;;;;23928:114;-1:-1:-1;24074:26:101;24060:6;:10;;;:40;;;;;;;;;24056:106;;;24129:18;:6;24140;24129:18;:10;:18;:::i;:::-;24120:27;;24056:106;24186:44;24223:6;24186:32;24204:6;24212:5;24186:17;:32::i;:::-;:36;:44;:36;:44;:::i;:::-;24175:55;;23501:740;24259:6;;-1:-1:-1;24267:8:101;-1:-1:-1;;;22851:1432:101;;;;;;;;;:::o;28148:2057::-;28334:23;;:::i;:::-;28360:31;:5;28373:7;28382:8;28360:31;:12;:31;:::i;:::-;28334:57;;28406:28;28419:6;28427;28406:12;:28::i;:::-;28402:96;;;28481:7;;;28402:96;28534:30;;:::i;:::-;28567:27;:5;28585:8;28567:27;:17;:27;:::i;:::-;28637:11;;28534:60;;-1:-1:-1;28633:209:1