UNPKG

@dolomite-exchange/dolomite-margin

Version:

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

6 lines 1.62 MB
{ "contractName": "GettersImpl", "abi": [], "metadata": "{\"compiler\":{\"version\":\"0.5.16+commit.9c3226ce\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"author\":\"Dolomite * Getter functions for data retrieval\",\"methods\":{},\"title\":\"GettersImpl\"},\"userdoc\":{\"methods\":{}}},\"settings\":{\"compilationTarget\":{\"/home/cdc218/projects/dolomite-protocol-v2/contracts/protocol/impl/GettersImpl.sol\":\"GettersImpl\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"optimizer\":{\"enabled\":true,\"runs\":10000},\"remappings\":[]},\"sources\":{\"/home/cdc218/projects/dolomite-protocol-v2/contracts/protocol/impl/GettersImpl.sol\":{\"keccak256\":\"0xd22d90a50b968bd9c5a9ead2bb7dff3563c4a932fe0863bf7077a80e878de890\",\"urls\":[\"bzz-raw://42bd9cba27af1cf6926a0ce1f3cac296a23461ecf3b5df193ff27624c2ee860a\",\"dweb:/ipfs/QmWkstrUhRqGgakt539NvgAcQ8Z9PLizcagdWpdWPAJEC5\"]},\"/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/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/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/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/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/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\"]}},\"version\":1}", "bytecode": "0x61468d610026600b82828239805160001a60731461001957fe5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600436106103565760003560e01c8063787f7727116101c7578063c61f66b411610103578063db32b3ca116100ac578063e99388d311610086578063e99388d3146107bb578063ebec2e6c146107ce578063edf9c1ec146107e1578063fef3d3cb1461080457610356565b8063db32b3ca14610782578063ddc7c6f014610795578063e647a687146107a857610356565b8063d23406b6116100dd578063d23406b61461073b578063d2c9ee001461074e578063d933f8441461076157610356565b8063c61f66b414610702578063c641ccd114610715578063d09657e11461072857610356565b806399c4c00911610170578063a2169a3a1161014a578063a2169a3a1461068c578063a335f47a146106ac578063ba25f9d6146106bf578063bbf70398146106e257610356565b806399c4c00914610653578063a16184f614610666578063a18862fc1461067957610356565b80638828244f116101a15780638828244f1461060d5780638b19f9e81461062057806392108b1e1461064057610356565b8063787f7727146105c75780638339c50f146105e757806383fe9e14146105fa57610356565b8063485df94f116102965780635ebcae4c1161023f5780636861138d116102195780636861138d1461057b5780636a0e64331461058e5780637462482a146105a157806375bcaa48146105b457610356565b80635ebcae4c1461053557806362f8e1b314610548578063634c50ce1461055b57610356565b80634af71ebc116102705780634af71ebc146104ef5780634f820bd61461050f57806358105e351461052257610356565b8063485df94f146104a95780634a451be2146104bc5780634aaee585146104cf57610356565b8063136a1dc7116103035780632bdf1cf2116102dd5780632bdf1cf21461045d5780632e19a6ea1461047057806335b5d1f6146104835780633808f2171461049657610356565b8063136a1dc71461041757806322ef21611461042a578063288afc621461043d57610356565b80630b48557f116103345780630b48557f146103b757806310b9711c146103d757806310f1b88c146103f757610356565b8063041f22941461035b578063055369d714610384578063063bf373146103a4575b600080fd5b61036e610369366004613c64565b610817565b60405161037b91906143d1565b60405180910390f35b610397610392366004613c64565b610855565b60405161037b919061447a565b61036e6103b2366004613c64565b61087e565b6103ca6103c5366004613c64565b6108ba565b60405161037b9190614416565b6103ea6103e5366004613af5565b610a6f565b60405161037b9190614496565b61040a610405366004613af5565b610a7a565b60405161037b9190614384565b61036e610425366004613af5565b610a97565b61036e610438366004613af5565b610ab7565b61045061044b366004613b13565b610ad7565b60405161037b9190614376565b61036e61046b366004613c64565b610ae9565b61040a61047e366004613b13565b610b1d565b61040a610491366004613c64565b610b4d565b6104506104a4366004613b13565b610b89565b6103976104b7366004613c64565b610b9b565b6103ea6104ca366004613af5565b610c4e565b6104e26104dd366004613c64565b610c55565b60405161037b91906143fa565b6105026104fd366004613b90565b610c77565b60405161037b9190614392565b61036e61051d366004613af5565b610c89565b61036e610530366004613b90565b610ca9565b61040a610543366004613af5565b610cc9565b61036e610556366004613b90565b610ce6565b61056e610569366004613bc0565b610d06565b60405161037b9190614488565b610450610589366004613af5565b610d53565b6103ea61059c366004613b90565b610df8565b61056e6105af366004613c64565b610e0a565b6104506105c2366004613b43565b610e52565b6105da6105d5366004613bc0565b610e65565b60405161037b919061445e565b61036e6105f5366004613af5565b610e88565b610450610608366004613af5565b610ea8565b61036e61061b366004613c64565b610f15565b61063361062e366004613af5565b610f49565b60405161037b919061446c565b6103ea61064e366004613b13565b611008565b6103ea610661366004613bc0565b611041565b61036e610674366004613c64565b611054565b61040a610687366004613c64565b61116f565b61069f61069a366004613c64565b6111ab565b60405161037b91906142e2565b61036e6106ba366004613c64565b6111c7565b6106d26106cd366004613c64565b611203565b60405161037b9493929190614425565b6106f56106f0366004613b90565b611265565b60405161037b9190614318565b61036e610710366004613b90565b611277565b61056e610723366004613c64565b6112bb565b610450610736366004613c64565b611303565b6104e2610749366004613c64565b611341565b61056e61075c366004613c64565b611375565b61077461076f366004613b90565b611397565b60405161037b9291906143df565b61036e610790366004613c64565b6113c2565b6107746107a3366004613b90565b6113ee565b6103ea6107b6366004613b90565b611416565b6103ea6107c9366004613af5565b611428565b6107746107dc366004613b90565b61142c565b6107f46107ef366004613b90565b611448565b60405161037b9493929190614329565b61036e610812366004613c03565b611605565b61081f613873565b610829838361163c565b5060008181526001830160209081526040918290208251918201909252600b9091015481525b92915050565b61085d613886565b610867838361163c565b610877838363ffffffff6116c016565b9392505050565b610886613873565b610890838361163c565b50600090815260019190910160209081526040918290208251918201909252600690910154815290565b6108c261389d565b6108cc838361163c565b50600090815260019182016020908152604091829020825161016081018452815473ffffffffffffffffffffffffffffffffffffffff80821683527401000000000000000000000000000000000000000090910460ff90811615158386015285518087018752968401546fffffffffffffffffffffffffffffffff808216895270010000000000000000000000000000000090910416878601528286019690965284516060808201875260028501546dffffffffffffffffffffffffffff80821684526e010000000000000000000000000000820416838801527c0100000000000000000000000000000000000000000000000000000000900463ffffffff168288015283015260038301548116608083015260048301541660a0820152835180840185526005830154815260c0820152835180840185526006830154815260e082015283518085018552600783015486161515815260088301548185015261010082015283518085018552600983015490951615158552600a820154858401526101208101949094528251918201909252600b90910154815261014082015290565b600d8101545b919050565b600c015473ffffffffffffffffffffffffffffffffffffffff1690565b610a9f613873565b506040805160208101909152600a8201548152919050565b610abf613873565b50604080516020810190915260098201548152919050565b6000610877838363ffffffff61172016565b610af1613873565b610afb838361163c565b61087782610b0f858263ffffffff61174f16565b85919063ffffffff6117db16565b73ffffffffffffffffffffffffffffffffffffffff8082166000908152600f840160205260409020541692915050565b6000610b59838361163c565b506000908152600191909101602052604090206004015473ffffffffffffffffffffffffffffffffffffffff1690565b6000610877838363ffffffff61193116565b610ba3613886565b610bad838361163c565b610bb5613886565b610bbf8484610855565b9050610bc961391e565b610bd38585611341565b9050610bdd613886565b610be5613886565b610bef8484611960565b915091506040518060400160405280610c0b8360200151611a08565b6fffffffffffffffffffffffffffffffff168152602001610c2f8460200151611a08565b6fffffffffffffffffffffffffffffffff169052979650505050505050565b600b015490565b610c5d61391e565b610c67838361163c565b610877838363ffffffff61174f16565b6000610877838363ffffffff611a6b16565b610c91613873565b50604080516020810190915260078201548152919050565b610cb1613873565b610cc1838363ffffffff611aaa16565b509392505050565b600e015473ffffffffffffffffffffffffffffffffffffffff1690565b610cee613873565b610cfe838363ffffffff611aaa16565b949350505050565b610d0e613886565b610d18848361163c565b610cfe610d2c85858563ffffffff611c3216565b610d4e84610d40888263ffffffff61174f16565b88919063ffffffff611cb216565b611d40565b600c810154604080517f49aa2e81000000000000000000000000000000000000000000000000000000008152905160009273ffffffffffffffffffffffffffffffffffffffff16916349aa2e81916004808301926020929190829003018186803b158015610dc057600080fd5b505afa158015610dd4573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061084f9190810190613a7f565b6000610877838363ffffffff611df516565b610e12613886565b610e1c838361163c565b50600090815260019190910160209081526040918290208251808401909352600981015460ff1615158352600a01549082015290565b6000610cfe84848463ffffffff611e3c16565b610e6d613886565b610e77848361163c565b610cfe84848463ffffffff611c3216565b610e90613873565b50604080516020810190915260088201548152919050565b600c810154604080517f7a5d20ea000000000000000000000000000000000000000000000000000000008152905160009273ffffffffffffffffffffffffffffffffffffffff1691637a5d20ea916004808301926020929190829003018186803b158015610dc057600080fd5b610f1d613873565b610f27838361163c565b61087782610f3b858263ffffffff611e7916565b85919063ffffffff611ea516565b610f5161393e565b506040805160e081018252601083015467ffffffffffffffff80821683526801000000000000000080830482166020850152700100000000000000000000000000000000830482169484019490945278010000000000000000000000000000000000000000000000009091048116606083015260118401549081166080830152919091046bffffffffffffffffffffffff1660a08201526012909101546fffffffffffffffffffffffffffffffff1660c082015290565b60006110148383611fd4565b5073ffffffffffffffffffffffffffffffffffffffff166000908152600291909101602052604090205490565b6000610cfe84848463ffffffff61205916565b61105c613873565b611064613886565b61106e8484610b9b565b905080602001516fffffffffffffffffffffffffffffffff16600014156110a557505060408051602081019091526000815261084f565b6110ad613873565b6110b785856113c2565b90506110c1613873565b6110cb8686610817565b80519091506110e0576110dd86610ab7565b90505b60006110f08360000151836120a2565b905083602001516fffffffffffffffffffffffffffffffff1684600001516fffffffffffffffffffffffffffffffff16101561115757835160208501516111549183916fffffffffffffffffffffffffffffffff918216911663ffffffff6120b716565b90505b60408051602081019091529081529695505050505050565b600061117b838361163c565b506000908152600191909101602052604090206003015473ffffffffffffffffffffffffffffffffffffffff1690565b60006111b7838361163c565b610877838363ffffffff611e7916565b6111cf613873565b6111d9838361163c565b50600090815260019190910160209081526040918290208251918201909252600590910154815290565b61120b61389d565b61121361391e565b61121b613873565b611223613873565b61122d868661163c565b61123786866108ba565b6112418787611341565b61124b8888610f15565b6112558989610ae9565b9299919850965090945092505050565b6060610877838363ffffffff6120d916565b61127f613873565b611287613873565b611297848463ffffffff611aaa16565b50805190915061087757506040805160208101909152600784015481529392505050565b6112c3613886565b6112cd838361163c565b50600090815260019190910160209081526040918290208251808401909352600781015460ff1615158352600801549082015290565b600061130f838361163c565b506000908152600191909101602052604090205474010000000000000000000000000000000000000000900460ff1690565b61134961391e565b611353838361163c565b61087782611367858263ffffffff61174f16565b85919063ffffffff611cb216565b61137d613886565b611387838361163c565b610877838363ffffffff61211e16565b61139f613873565b6113a7613873565b6113b7848463ffffffff611aaa16565b909590945092505050565b6113ca613873565b6113d2613873565b6113dc8484610ae9565b80516301e13380028152949350505050565b6113f6613873565b6113fe613873565b61140a84846000612279565b915091505b9250929050565b6000610877838363ffffffff61233e16565b5490565b611434613873565b61143c613873565b61140a84846001612279565b60608080808061145e878763ffffffff6120d916565b90506060815160405190808252806020026020018201604052801561148d578160200160208202803883390190505b509050606082516040519080825280602002602001820160405280156114cd57816020015b6114ba613886565b8152602001906001900390816114b25790505b5090506060835160405190808252806020026020018201604052801561150d57816020015b6114fa613886565b8152602001906001900390816114f25790505b50845190915060005b818110156115f35761153b8c87838151811061152e57fe5b60200260200101516111ab565b85828151811061154757fe5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061159f8c8c88848151811061159257fe5b6020026020010151610e65565b8482815181106115ab57fe5b60200260200101819052506115d48c8c8884815181106115c757fe5b6020026020010151610d06565b8382815181106115e057fe5b6020908102919091010152600101611516565b50939a92995090975095509350505050565b61160d613873565b611617858461163c565b611621858361163c565b6116338585858563ffffffff61238016565b95945050505050565b81546116bc90821080156116755750600082815260018401602052604090205473ffffffffffffffffffffffffffffffffffffffff1615155b7f47657474657273496d706c0000000000000000000000000000000000000000007f496e76616c6964206d61726b657400000000000000000000000000000000000061243e565b5050565b6116c8613886565b506000818152600180840160209081526040928390208351808501909452909101546fffffffffffffffffffffffffffffffff8082168452700100000000000000000000000000000000909104169082015292915050565b73ffffffffffffffffffffffffffffffffffffffff166000908152600591909101602052604090205460011490565b61175761391e565b506000908152600191909101602090815260409182902082516060810184526002909101546dffffffffffffffffffffffffffff80821683526e010000000000000000000000000000820416928201929092527c010000000000000000000000000000000000000000000000000000000090910463ffffffff169181019190915290565b6117e3613873565b6117eb613886565b6117fb858563ffffffff6116c016565b9050611805613886565b61180d613886565b6118178386611960565b91509150611823613873565b600087815260018901602052604090206004015473ffffffffffffffffffffffffffffffffffffffff1663e8177dcf6118628a8a63ffffffff611e7916565b846020015186602001516040518463ffffffff1660e01b815260040161188a939291906142f0565b60206040518083038186803b1580156118a257600080fd5b505afa1580156118b6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506118da9190810190613ad7565b601189015481519192506801000000000000000090046bffffffffffffffffffffffff1610156119265760118801546801000000000000000090046bffffffffffffffffffffffff1681525b979650505050505050565b73ffffffffffffffffffffffffffffffffffffffff166000908152600691909101602052604090205460011490565b611968613886565b611970613886565b611978613886565b5060408051808201909152600181526020858101516fffffffffffffffffffffffffffffffff16908201526119ab613886565b50604080518082019091526000815285516fffffffffffffffffffffffffffffffff1660208201526119db613886565b6119e58387611d40565b90506119ef613886565b6119f98388611d40565b91989197509095505050505050565b60008161084f6fffffffffffffffffffffffffffffffff821682147f4d617468000000000000000000000000000000000000000000000000000000007f556e73616665206361737420746f2075696e7431323800000000000000000000846124f4565b805173ffffffffffffffffffffffffffffffffffffffff1660009081526003929092016020908152604080842092820151845291905290205460ff1690565b611ab2613873565b611aba613873565b825173ffffffffffffffffffffffffffffffffffffffff9081166000908152600f86016020526040902054168015611ba3576040517fca23542000000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff82169063ca23542090611b3e908790600401614408565b604080518083038186803b158015611b5557600080fd5b505afa158015611b69573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250611b8d9190810190613a9d565b9093509150611b9d858484612592565b5061140f565b50600e84015473ffffffffffffffffffffffffffffffffffffffff168015611c17576040517fca23542000000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff82169063ca23542090611b3e908790600401614408565b611c1f61271d565b9250611c2961271d565b915061140f9050565b611c3a613886565b50815173ffffffffffffffffffffffffffffffffffffffff1660009081526003938401602090815260408083209482015183529381528382209282529190930181529181902081518083019092525460ff81161515825261010090046fffffffffffffffffffffffffffffffff169181019190915290565b611cba61391e565b611cc2613873565b611cd385858563ffffffff6117db16565b9050611cdd613873565b5060008481526001860160209081526040918290208251918201909252600b90910154808252611d1b57506040805160208101909152600986015481525b611d368483611d30898963ffffffff6116c016565b84612738565b9695505050505050565b611d48613886565b602083015183516fffffffffffffffffffffffffffffffff9091169015611db657604080518082019091526001815260208481015190820190611dab9084906dffffffffffffffffffffffffffff16670de0b6b3a764000063ffffffff6128a816565b81525091505061084f565b604080518082019091526000815283516020820190611dab9084906dffffffffffffffffffffffffffff16670de0b6b3a764000063ffffffff6128a816565b805173ffffffffffffffffffffffffffffffffffffffff16600090815260039290920160209081526040808420928201518452919052902054610100900463ffffffff1690565b73ffffffffffffffffffffffffffffffffffffffff9182166000908152600493909301602090815260408085209290931684525290205460011490565b6000908152600191909101602052604090205473ffffffffffffffffffffffffffffffffffffffff1690565b611ead613873565b600083815260018501602052604090206003015473ffffffffffffffffffffffffffffffffffffffff16611edf613873565b6040517f41976e0900000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8316906341976e0990611f319087906004016142e2565b60206040518083038186803b158015611f4957600080fd5b505afa158015611f5d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250611f819190810190613ad7565b80519091506116339015157f53746f72616765000000000000000000000000000000000000000000000000007f50726963652063616e6e6f74206265207a65726f000000000000000000000000886124f4565b73ffffffffffffffffffffffffffffffffffffffff80821660008181526002850160209081526040808320548352600187019091529020546116bc9216147f47657474657273496d706c0000000000000000000000000000000000000000007f496e76616c696420746f6b656e0000000000000000000000000000000000000061243e565b815173ffffffffffffffffffffffffffffffffffffffff16600090815260038401602090815260408083208286015184529091528120610cfe906001018363ffffffff61293016565b6000610877838360000151670de0b6b3a76400005b6000610cfe826120cd868663ffffffff61295416565b9063ffffffff6129a816565b805173ffffffffffffffffffffffffffffffffffffffff16600090815260038301602090815260408083208285015184529091529020606090610877906001016129ea565b612126613886565b61212e61391e565b61213e848463ffffffff61174f16565b9050612148613886565b612158858563ffffffff6116c016565b9050600061216c868663ffffffff611e7916565b9050612176613886565b6040805180820182526001815290517f70a08231000000000000000000000000000000000000000000000000000000008152602082019073ffffffffffffffffffffffffffffffffffffffff8516906370a08231906121d99030906004016142e2565b60206040518083038186803b1580156121f157600080fd5b505afa158015612205573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506122299190810190613c94565b90529050612235613886565b61223d613886565b6122478587611960565b909250905061226c82612260858463ffffffff612a4616565b9063ffffffff612a4616565b9998505050505050505050565b612281613873565b612289613873565b606061229b868663ffffffff6120d916565b90506122a561397a565b6122af8251612a60565b825190915060005b818110156122ed576122e58482815181106122ce57fe5b602002602001015184612ac690919063ffffffff16565b6001016122b7565b506123008883600163ffffffff612b3016565b612308613873565b612318898963ffffffff611aaa16565b50905061232e8989858a8563ffffffff612d3916565b9550955050505050935093915050565b805173ffffffffffffffffffffffffffffffffffffffff1660009081526003830160209081526040808320828501518452909152812061087790600101611428565b612388613873565b612390613873565b61239a8686611aaa565b80519092501590506123ad579050610cfe565b60088601546000858152600188016020908152604091829020825191820190925260069091015481526123ea9082906123e590612ec1565b6120a2565b9050612425816123e5896001016000888152602001908152602001600020600601604051806020016040529081600082015481525050612ec1565b6040805160208101909152908152979650505050505050565b826124ef5761244c82612ef8565b7f3a2000000000000000000000000000000000000000000000000000000000000061247683612ef8565b604051602001612488939291906141e0565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0818403018152908290527f08c379a00000000000000000000000000000000000000000000000000000000082526124e6916004016143a0565b60405180910390fd5b505050565b8361258c5761250283612ef8565b7f3a2000000000000000000000000000000000000000000000000000000000000061252c84612ef8565b7f203c00000000000000000000000000000000000000000000000000000000000061255685612fcc565b6040516124889594939291907f3e0000000000000000000000000000000000000000000000000000000000000090602001614208565b50505050565b601083015482516125f09167ffffffffffffffff1610157f53746f72616765000000000000000000000000000000000000000000000000007f526174696f20746f6f206869676800000000000000000000000000000000000061243e565b6010830154815161265a9168010000000000000000900467ffffffffffffffff1610157f53746f72616765000000000000000000000000000000000000000000000000007f53707265616420746f6f2068696768000000000000000000000000000000000061243e565b81511580159061266a5750805115155b156126c457815181516126bf91117f53746f72616765000000000000000000000000000000000000000000000000007f5370726561642063616e6e6f74206265203e3d20726174696f0000000000000061243e565b6124ef565b80516124ef901580156126d657508251155b7f53746f72616765000000000000000000000000000000000000000000000000007f53707265616420616e6420726174696f206d75737420626f746820626520300061243e565b612725613873565b5060408051602081019091526000815290565b61274061391e565b612748613886565b612750613886565b61275a8588611960565b9150915060006127686130db565b905060006127a06127928a6040015163ffffffff168463ffffffff166130eb90919063ffffffff16565b89519063ffffffff61295416565b905060006127ad8561312d565b156127ba575060006127ec565b6127c482886120a2565b90508460200151846020015110156127ec576127e981856020015187602001516120b7565b90505b818111156127f657fe5b60408051606081019091528a5181906128419061283c906dffffffffffffffffffffffffffff166128308188670de0b6b3a76400006120b7565b9063ffffffff61313516565b613174565b6dffffffffffffffffffffffffffff908116825260208d81015192019161287a9161283c91166128308187670de0b6b3a76400006120b7565b6dffffffffffffffffffffffffffff1681526020018463ffffffff1681525095505050505050949350505050565b60008315806128b5575082155b156128cc576128c56000836129a8565b9050610877565b60006128de858563ffffffff61295416565b90506116336128fd600161283060026120cd888463ffffffff6130eb16565b61290d838663ffffffff6131d516565b101561291a57600061291d565b60015b60ff16612830838663ffffffff6129a816565b600082600001828154811061294157fe5b9060005260206000200154905092915050565b6000826129635750600061084f565b8282028284828161297057fe5b0414610877576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124e6906143c1565b600061087783836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250613217565b606081600001805480602002602001604051908101604052809291908181526020018280548015612a3a57602002820191906000526020600020905b815481526020019060010190808311612a26575b50505050509050919050565b612a4e613886565b61087783612a5b84613268565b61328f565b612a6861397a565b6040805160006080820181815260a0830190935290918291612aa0565b612a8d6139a2565b815260200190600190039081612a855790505b50815260200160008152602001612ab684613321565b8152600060209091015292915050565b815151612b1590157f43616368650000000000000000000000000000000000000000000000000000007f616c726561647920696e697469616c697a65640000000000000000000000000061243e565b612b2382604001518261335b565b5060600180516001019052565b8160600151604051908082528060200260200182016040528015612b6e57816020015b612b5b6139a2565b815260200190600190039081612b535790505b50825260408201515160005b81811015612d2757600084604001518281518110612b9457fe5b602002602001015190505b8015612d08576000612bb082613391565b90506000612bbe8483613568565b90506000612bd2898363ffffffff611e7916565b9050612bdc613886565b612bec8a8463ffffffff6116c016565b9050612bf661391e565b612c068b8563ffffffff61174f16565b90506040518060e001604052808581526020018473ffffffffffffffffffffffffffffffffffffffff1681526020018c600101600087815260200190815260200160002060000160149054906101000a900460ff161515815260200183600001516fffffffffffffffffffffffffffffffff16815260200183602001516fffffffffffffffffffffffffffffffff1681526020018a612ca55782612cb6565b612cb68d878563ffffffff611cb216565b8152602001612ccc8d878763ffffffff611ea516565b90528a5160208c0180516001810190915281518110612ce757fe5b6020026020010181905250612cfc8686613573565b95505050505050612b9f565b846060015185602001511415612d1e5750612d27565b50600101612b7a565b50826020015183606001511461258c57fe5b612d41613873565b612d49613873565b612d51613873565b612d59613873565b858015612d6557508451155b95506000612d728861357c565b905060005b81811015612eb157612d87613886565b612dbf8b612d9b8c8563ffffffff61358116565b51612dac8d8663ffffffff61358116565b60a001518f92919063ffffffff6135fd16565b9050612dca8161312d565b15612dd55750612ea9565b612ddd613873565b612de5613648565b90508915612e3057612e2d60018e016000612e068e8763ffffffff61358116565b51815260208082019290925260409081016000208151928301909152600501548152612ec1565b90505b6000612e5b612e458d8663ffffffff61358116565b60c001515160208501519063ffffffff61295416565b835190915015612e8757612e80612e72828461366a565b88519063ffffffff61313516565b8752612ea5565b612ea2612e9482846120a2565b87519063ffffffff61313516565b86525b5050505b600101612d77565b5091999098509650505050505050565b612ec9613873565b604080516020810190915282518190612ef090670de0b6b3a764000063ffffffff61313516565b905292915050565b60608082604051602001612f0c91906141cb565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0818403018152919052905060205b8015612fb55781517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff90910190829082908110612f7857fe5b01602001517fff000000000000000000000000000000000000000000000000000000000000001615612fb05760010181529050610a75565b612f3f565b505060408051600081526020810190915292915050565b60608161300d575060408051808201909152600181527f30000000000000000000000000000000000000000000000000000000000000006020820152610a75565b8160005b811561302557600101600a82049150613011565b6060816040519080825280601f01601f191660200182016040528015613052576020820181803883390190505b508593509050815b80156130d2577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01600a840660300160f81b82828151811061309857fe5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350600a8404935061305a565b50949350505050565b60006130e642613683565b905090565b600061087783836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506136da565b602001511590565b600082820183811015610877576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124e6906143b1565b60008161084f6dffffffffffffffffffffffffffff821682147f4d617468000000000000000000000000000000000000000000000000000000007f556e73616665206361737420746f2075696e7431313200000000000000000000846124f4565b600061087783836040518060400160405280601881526020017f536166654d6174683a206d6f64756c6f206279207a65726f0000000000000000815250613720565b60008183613252576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124e691906143a0565b50600083858161325e57fe5b0495945050505050565b613270613886565b5060408051808201909152815115815260208083015190820152919050565b613297613886565b61329f613886565b82518451151590151514156132d257835115158152602080850151908401516132c89190613135565b6020820152610877565b82602001518460200151106132fb57835115158152602080850151908401516132c891906130eb565b8251151581526020808401519085015161331591906130eb565b60208201529392505050565b60606001610100830401604051908082528060200260200182016040528015613354578160200160208202803883390190505b5092915050565b815161010082049060ff8316906001821b9085908490811061337957fe5b60200260200101818151179150818152505050505050565b600060ff6fffffffffffffffffffffffffffffffff8316156133d4577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff80016133dc565b608083901c92505b67ffffffffffffffff831615613413577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc00161341b565b604083901c92505b63ffffffff83161561344e577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe001613456565b602083901c92505b61ffff831615613487577ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00161348f565b601083901c92505b60ff8316156134bf577ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8016134c7565b600883901c92505b600f8316156134f7577ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc016134ff565b600483901c92505b600383161561352f577ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01613537565b600283901c92505b600183161561084f577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0192915050565b610100919091020190565b6001901b191690565b515190565b6135896139a2565b8251516135df90808410907f4361636865000000000000000000000000000000000000000000000000000000907f696e76616c696420696e6465780000000000000000000000000000000000000090869061376e565b82518051839081106135ed57fe5b6020026020010151905092915050565b613605613886565b61360d613886565b61361e86868663ffffffff611c3216565b905061362981613839565b1561363e57613636613853565b915050610cfe565b611d368184611d40565b613650613873565b506040805160208101909152670de0b6b3a7640000815290565b600061087783670de0b6b3a764000084600001516120b7565b60008161084f63ffffffff821682147f4d617468000000000000000000000000000000000000000000000000000000007f556e73616665206361737420746f2075696e7433320000000000000000000000846124f4565b60008184841115613718576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124e691906143a0565b505050900390565b6000818361375b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124e691906143a0565b5082848161376557fe5b06949350505050565b846138325761377c84612ef8565b7f3a200000000000000000000000000000000000000000000000000000000000006137a685612ef8565b7f203c0000000000000000000000000000000000000000000000000000000000006137d086612fcc565b7f2c200000000000000000000000000000000000000000000000000000000000006137fa87612fcc565b60405161248897969594939291907f3e0000000000000000000000000000000000000000000000000000000000000090602001614266565b5050505050565b602001516fffffffffffffffffffffffffffffffff161590565b61385b613886565b50604080518082019091526000808252602082015290565b6040518060200160405280600081525090565b604080518082019091526000808252602082015290565b6040805161016081018252600080825260208201529081016138bd613886565b81526020016138ca61391e565b815260006020820181905260408201526060016138e5613873565b81526020016138f2613873565b81526020016138ff613886565b815260200161390c613886565b8152602001613919613873565b905290565b604080516060810182526000808252602082018190529181019190915290565b6040805160e081018252600080825260208201819052918101829052606081018290526080810182905260a0810182905260c081019190915290565b6040518060800160405280606081526020016000815260200160608152602001600081525090565b6040805160e08101825260008082526020820181905291810182905260608101829052608081019190915260a0810161390c61391e565b803561084f81614624565b805161084f81614638565b600060208284031215613a0157600080fd5b613a0b60206144a4565b90506000613a198484613a74565b82525092915050565b600060408284031215613a3457600080fd5b613a3e60406144a4565b90506000613a4c84846139d9565b8252506020613a5d84848301613a69565b60208301525092915050565b803561084f81614641565b805161084f81614641565b600060208284031215613a9157600080fd5b6000610cfe84846139e4565b60008060408385031215613ab057600080fd5b6000613abc85856139ef565b9250506020613acd858286016139ef565b9150509250929050565b600060208284031215613ae957600080fd5b6000610cfe84846139ef565b600060208284031215613b0757600080fd5b6000610cfe8484613a69565b60008060408385031215613b2657600080fd5b6000613b328585613a69565b9250506020613acd858286016139d9565b600080600060608486031215613b5857600080fd5b6000613b648686613a69565b9350506020613b75868287016139d9565b9250506040613b86868287016139d9565b9150509250925092565b60008060608385031215613ba357600080fd5b6000613baf8585613a69565b9250506020613acd85828601613a22565b600080600060808486031215613bd557600080fd5b6000613be18686613a69565b9350506020613bf286828701613a22565b9250506060613b8686828701613a69565b60008060008060a08587031215613c1957600080fd5b6000613c258787613a69565b9450506020613c3687828801613a22565b9350506060613c4787828801613a69565b9250506080613c5887828801613a69565b91505092959194509250565b60008060408385031215613c7757600080fd5b6000613c838585613a69565b9250506020613acd85828601613a69565b600060208284031215613ca657600080fd5b6000610cfe8484613a74565b6000613cbe8383613cf2565b505060200190565b6000613cd283836140cc565b505060400190565b6000613cd28383614184565b6000613cbe83836141a7565b613cfb816144de565b82525050565b6000613d0c826144d1565b613d1681856144d5565b9350613d21836144cb565b8060005b83811015613d4f578151613d398882613cb2565b9750613d44836144cb565b925050600101613d25565b509495945050505050565b6000613d65826144d1565b613d6f81856144d5565b9350613d7a836144cb565b8060005b83811015613d4f578151613d928882613cc6565b9750613d9d836144cb565b925050600101613d7e565b6000613db3826144d1565b613dbd81856144d5565b9350613dc8836144cb565b8060005b83811015613d4f578151613de08882613cda565b9750613deb836144cb565b925050600101613dcc565b6000613e01826144d1565b613e0b81856144d5565b9350613e16836144cb565b8060005b83811015613d4f578151613e2e8882613ce6565b9750613e39836144cb565b925050600101613e1a565b613cfb816144e9565b613cfb613e59826144ee565b614538565b613cfb613e5982614513565b613cfb613e5982614538565b6000613e81826144d1565b613e8b8185610a75565b9350613e9b8185602086016145c3565b9290920192915050565b613cfb816145ad565b613cfb816145b8565b6000613ec2826144d1565b613ecc81856144d5565b9350613edc8185602086016145c3565b613ee5816145ef565b9093019392505050565b6000613efc601b836144d5565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000815260200192915050565b6000613f356021836144d5565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f81527f7700000000000000000000000000000000000000000000000000000000000000602082015260400192915050565b8051602083019061258c84826141a7565b80516060830190613fa98482614195565b506020820151613fbc6020850182614195565b50604082015161258c60408501826141b0565b80516040830190613fe08482613cf2565b50602082015161258c60208501826141a7565b80516102008301906140058482613cf2565b5060208201516140186020850182613e44565b50604082015161402b6040850182614173565b50606082015161403e6080850182613f98565b50608082015161405160e0850182613ea5565b5060a0820151614065610100850182613ea5565b5060c0820151614079610120850182613f87565b5060e082015161408d610140850182613f87565b506101008201516140a2610160850182614184565b506101208201516140b76101a0850182614184565b5061014082015161258c6101e0850182613f87565b805160408301906140dd8482613e44565b50602082015161258c602085018261419e565b805160e083019061410184826141b9565b50602082015161411460208501826141b9565b50604082015161412760408501826141b9565b50606082015161413a60608501826141b9565b50608082015161414d60808501826141b9565b5060a082015161416060a08501826141c2565b5060c082015161258c60c085018261419e565b805160408301906140dd848261419e565b80516040830190613fe08482613e44565b613cfb81614545565b613cfb81614558565b613cfb81614538565b613cfb81614586565b613cfb8161458f565b613cfb8161459c565b60006141d78284613e6a565b50602001919050565b60006141ec8286613e76565b91506141f88285613e5e565b6002820191506116338284613e76565b60006142148289613e76565b91506142208288613e5e565b6002820191506142308287613e76565b915061423c8286613e5e565b60028201915061424c8285613e76565b91506142588284613e4d565b506001019695505050505050565b6000614272828b613e76565b915061427e828a613e5e565b60028201915061428e8289613e76565b915061429a8288613e5e565b6002820191506142aa8287613e76565b91506142b68286613e5e565b6002820191506142c68285613e76565b91506142d28284613e4d565b5060010198975050505050505050565b6020810161084f8284613cf2565b606081016142fe8286613cf2565b61430b60208301856141a7565b610cfe60408301846141a7565b602080825281016108778184613df6565b6080808252810161433a8187613df6565b9050818103602083015261434e8186613d01565b905081810360408301526143628185613d5a565b90508181036060830152611d368184613da8565b6020810161084f8284613e44565b6020810161084f8284613ea5565b6020810161084f8284613eae565b602080825281016108778184613eb7565b6020808252810161084f81613eef565b6020808252810161084f81613f28565b6020810161084f8284613f87565b604081016143ed8285613f87565b6108776020830184613f87565b6060810161084f8284613f98565b6040810161084f8284613fcf565b610200810161084f8284613ff3565b6102a081016144348287613ff3565b614442610200830186613f98565b614450610260830185613f87565b611633610280830184613f87565b6040810161084f82846140cc565b60e0810161084f82846140f0565b6040810161084f8284614173565b6040810161084f8284614184565b6020810161084f82846141a7565b60405181810167ffffffffffffffff811182821017156144c357600080fd5b604052919050565b60200190565b5190565b90815260200190565b600061084f8261456d565b151590565b7fff000000000000000000000000000000000000000000000000000000000000001690565b7fffff0000000000000000000000000000000000000000000000000000000000001690565b90565b80610a7581614617565b6dffffffffffffffffffffffffffff1690565b6fffffffffffffffffffffffffffffffff1690565b73ffffffffffffffffffffffffffffffffffffffff1690565b63ffffffff1690565b67ffffffffffffffff1690565b6bffffffffffffffffffffffff1690565b600061084f826144de565b600061084f8261453b565b60005b838110156145de5781810151838201526020016145c6565b8381111561258c5750506000910152565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01690565b6003811061462157fe5b50565b61462d816144de565b811461462157600080fd5b61462d816144e9565b61462d8161453856fea365627a7a72315820b73f556cafc2aed909d9a61e440f9764ff6e6ef48e48d18af30bfa67424d6b956c6578706572696d656e74616cf564736f6c63430005100040", "deployedBytecode": "0x73000000000000000000000000000000000000000030146080604052600436106103565760003560e01c8063787f7727116101c7578063c61f66b411610103578063db32b3ca116100ac578063e99388d311610086578063e99388d3146107bb578063ebec2e6c146107ce578063edf9c1ec146107e1578063fef3d3cb1461080457610356565b8063db32b3ca14610782578063ddc7c6f014610795578063e647a687146107a857610356565b8063d23406b6116100dd578063d23406b61461073b578063d2c9ee001461074e578063d933f8441461076157610356565b8063c61f66b414610702578063c641ccd114610715578063d09657e11461072857610356565b806399c4c00911610170578063a2169a3a1161014a578063a2169a3a1461068c578063a335f47a146106ac578063ba25f9d6146106bf578063bbf70398146106e257610356565b806399c4c00914610653578063a16184f614610666578063a18862fc1461067957610356565b80638828244f116101a15780638828244f1461060d5780638b19f9e81461062057806392108b1e1461064057610356565b8063787f7727146105c75780638339c50f146105e757806383fe9e14146105fa57610356565b8063485df94f116102965780635ebcae4c1161023f5780636861138d116102195780636861138d1461057b5780636a0e64331461058e5780637462482a146105a157806375bcaa48146105b457610356565b80635ebcae4c1461053557806362f8e1b314610548578063634c50ce1461055b57610356565b80634af71ebc116102705780634af71ebc146104ef5780634f820bd61461050f57806358105e351461052257610356565b8063485df94f146104a95780634a451be2146104bc5780634aaee585146104cf57610356565b8063136a1dc7116103035780632bdf1cf2116102dd5780632bdf1cf21461045d5780632e19a6ea1461047057806335b5d1f6146104835780633808f2171461049657610356565b8063136a1dc71461041757806322ef21611461042a578063288afc621461043d57610356565b80630b48557f116103345780630b48557f146103b757806310b9711c146103d757806310f1b88c146103f757610356565b8063041f22941461035b578063055369d714610384578063063bf373146103a4575b600080fd5b61036e610369366004613c64565b610817565b60405161037b91906143d1565b60405180910390f35b610397610392366004613c64565b610855565b60405161037b919061447a565b61036e6103b2366004613c64565b61087e565b6103ca6103c5366004613c64565b6108ba565b60405161037b9190614416565b6103ea6103e5366004613af5565b610a6f565b60405161037b9190614496565b61040a610405366004613af5565b610a7a565b60405161037b9190614384565b61036e610425366004613af5565b610a97565b61036e610438366004613af5565b610ab7565b61045061044b366004613b13565b610ad7565b60405161037b9190614376565b61036e61046b366004613c64565b610ae9565b61040a61047e366004613b13565b610b1d565b61040a610491366004613c64565b610b4d565b6104506104a4366004613b13565b610b89565b6103976104b7366004613c64565b610b9b565b6103ea6104ca366004613af5565b610c4e565b6104e26104dd366004613c64565b610c55565b60405161037b91906143fa565b6105026104fd366004613b90565b610c77565b60405161037b9190614392565b61036e61051d366004613af5565b610c89565b61036e610530366004613b90565b610ca9565b61040a610543366004613af5565b610cc9565b61036e610556366004613b90565b610ce6565b61056e610569366004613bc0565b610d06565b60405161037b9190614488565b610450610589366004613af5565b610d53565b6103ea61059c366004613b90565b610df8565b61056e6105af366004613c64565b610e0a565b6104506105c2366004613b43565b610e52565b6105da6105d5366004613bc0565b610e65565b60405161037b919061445e565b61036e6105f5366004613af5565b610e88565b610450610608366004613af5565b610ea8565b61036e61061b366004613c64565b610f15565b61063361062e366004613af5565b610f49565b60405161037b919061446c565b6103ea61064e366004613b13565b611008565b6103ea610661366004613bc0565b611041565b61036e610674366004613c64565b611054565b61040a610687366004613c64565b61116f565b61069f61069a366004613c64565b6111ab565b60405161037b91906142e2565b61036e6106ba366004613c64565b6111c7565b6106d26106cd366004613c64565b611203565b60405161037b9493929190614425565b6106f56106f0366004613b90565b611265565b60405161037b9190614318565b61036e610710366004613b90565b611277565b61056e610723366004613c64565b6112bb565b610450610736366004613c64565b611303565b6104e2610749366004613c64565b611341565b61056e61075c366004613c64565b611375565b61077461076f366004613b90565b611397565b60405161037b9291906143df565b61036e610790366004613c64565b6113c2565b6107746107a3366004613b90565b6113ee565b6103ea6107b6366004613b90565b611416565b6103ea6107c9366004613af5565b611428565b6107746107dc366004613b90565b61142c565b6107f46107ef366004613b90565b611448565b60405161037b9493929190614329565b61036e610812366004613c03565b611605565b61081f613873565b610829838361163c565b5060008181526001830160209081526040918290208251918201909252600b9091015481525b92915050565b61085d613886565b610867838361163c565b610877838363ffffffff6116c016565b9392505050565b610886613873565b610890838361163c565b50600090815260019190910160209081526040918290208251918201909252600690910154815290565b6108c261389d565b6108cc838361163c565b50600090815260019182016020908152604091829020825161016081018452815473ffffffffffffffffffffffffffffffffffffffff80821683527401000000000000000000000000000000000000000090910460ff90811615158386015285518087018752968401546fffffffffffffffffffffffffffffffff808216895270010000000000000000000000000000000090910416878601528286019690965284516060808201875260028501546dffffffffffffffffffffffffffff80821684526e010000000000000000000000000000820416838801527c0100000000000000000000000000000000000000000000000000000000900463ffffffff168288015283015260038301548116608083015260048301541660a0820152835180840185526005830154815260c0820152835180840185526006830154815260e082015283518085018552600783015486161515815260088301548185015261010082015283518085018552600983015490951615158552600a820154858401526101208101949094528251918201909252600b90910154815261014082015290565b600d8101545b919050565b600c015473ffffffffffffffffffffffffffffffffffffffff1690565b610a9f613873565b506040805160208101909152600a8201548152919050565b610abf613873565b50604080516020810190915260098201548152919050565b6000610877838363ffffffff61172016565b610af1613873565b610afb838361163c565b61087782610b0f858263ffffffff61174f16565b85919063ffffffff6117db16565b73ffffffffffffffffffffffffffffffffffffffff8082166000908152600f840160205260409020541692915050565b6000610b59838361163c565b506000908152600191909101602052604090206004015473ffffffffffffffffffffffffffffffffffffffff1690565b6000610877838363ffffffff61193116565b610ba3613886565b610bad838361163c565b610bb5613886565b610bbf8484610855565b9050610bc961391e565b610bd38585611341565b9050610bdd613886565b610be5613886565b610bef8484611960565b915091506040518060400160405280610c0b8360200151611a08565b6fffffffffffffffffffffffffffffffff168152602001610c2f8460200151611a08565b6fffffffffffffffffffffffffffffffff169052979650505050505050565b600b015490565b610c5d61391e565b610c67838361163c565b610877838363ffffffff61174f16565b60006108