false
false

Contract Address Details

0x7740C2eE0051e275323feb42521cA1161925C2f2

Creator
0xee6d20–9b4959 at 0x0494b5–4a8d81
Balance
0 KCS ( )
Tokens
Fetching tokens...
Transactions
0 Transactions
Transfers
0 Transfers
Gas Used
Fetching gas used...
Last Balance Update
37554964

Contract Creation Code

Verify & Publish
0x6101006040526000196000553480156200001857600080fd5b5060405162006135380380620061358339810160408190526200003b9162000087565b6001600160601b0319606094851b811660805291841b821660a05291831b811660c052911b1660e052620000e3565b80516001600160a01b03811681146200008257600080fd5b919050565b600080600080608085870312156200009d578384fd5b620000a8856200006a565b9350620000b8602086016200006a565b9250620000c8604086016200006a565b9150620000d8606086016200006a565b905092959194509250565b60805160601c60a05160601c60c05160601c60e05160601c615fb162000184600039806102c15280610c8c52806113f1528061151b52806115c252806117f3528061191d52806127d8528061283852806128b95250806108815280611f905280613cdb5250806117b35280611c5e5280611fe0528061332a525080610db25280610e865280611126528061178f528061304652806132095250615fb16000f3fe6080604052600436106102a45760003560e01c8063791b98bc1161016e578063d4ef38de116100cb578063efdeed8e1161007f578063f25801a711610064578063f25801a71461066e578063f2d5d56b1461068e578063f3995c67146106a15761034f565b8063efdeed8e1461063b578063f100b2051461065b5761034f565b8063df2ab5bb116100b0578063df2ab5bb14610602578063e0e189a014610615578063e90a182f146106285761034f565b8063d4ef38de146105c2578063dee00f35146105d55761034f565b8063b3a2af1311610122578063c2e3140a11610107578063c2e3140a14610587578063c45a01551461059a578063cab372ce146105af5761034f565b8063b3a2af1314610561578063b858183f146105745761034f565b8063a4a78f0c11610153578063a4a78f0c14610528578063ab3fdd501461053b578063ac9650d81461054e5761034f565b8063791b98bc146105005780639b2c0a37146105155761034f565b80634659a4941161021c5780635023b4df116101d05780635ae401dc116101b55780635ae401dc146104c5578063639d71a9146104d857806368e0d4e1146104eb5761034f565b80635023b4df1461049f578063571ac8b0146104b25761034f565b806349404b7c1161020157806349404b7c14610457578063496169971461046a5780634aa4a4fc1461047d5761034f565b80634659a49414610431578063472b43f3146104445761034f565b806312210e8a116102735780631f0464d1116102585780631f0464d1146103eb5780633068c5541461040b57806342712a671461041e5761034f565b806312210e8a146103d05780631c58db4f146103d85761034f565b806304e45aaf14610354578063090b93dc1461037d57806309b813461461039d57806311ed56c9146103b05761034f565b3661034f573373ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000161461034d57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600960248201527f4e6f742057455448390000000000000000000000000000000000000000000000604482015290519081900360640190fd5b005b600080fd5b610367610362366004615543565b6106b4565b6040516103749190615dfd565b60405180910390f35b34801561038957600080fd5b5061034d6103983660046153b8565b61083c565b6103676103ab3660046155de565b61098c565b6103c36103be366004615638565b610a6c565b6040516103749190615b7a565b61034d610c78565b61034d6103e63660046157bb565b610c8a565b6103fe6103f93660046152a7565b610d0e565b6040516103749190615afc565b61034d6104193660046150d8565b610d98565b61036761042c366004615885565b610dab565b61034d61043f366004615121565b610f85565b610367610452366004615885565b611039565b61034d6104653660046157eb565b6113ed565b61034d6104783660046157bb565b6115b3565b34801561048957600080fd5b506104926115c0565b6040516103749190615a3c565b6103676104ad366004615616565b6115e4565b61034d6104c0366004614feb565b6116cd565b6103fe6104d33660046152a7565b611700565b61034d6104e6366004614feb565b611779565b3480156104f757600080fd5b5061049261178d565b34801561050c57600080fd5b506104926117b1565b61034d61052336600461581a565b6117d5565b61034d610536366004615121565b6119eb565b61034d610549366004614feb565b611ac0565b6103fe61055c36600461517c565b611afe565b6103c361056f3660046152f1565b611c58565b61036761058236600461549d565b611d16565b61034d610595366004615121565b611ed9565b3480156105a657600080fd5b50610492611f8e565b61034d6105bd366004614feb565b611ad4565b61034d6105d0366004615858565b611fb2565b3480156105e157600080fd5b506105f56105f036600461500e565b611fbe565b6040516103749190615b8d565b61034d610610366004615039565b61216b565b61034d61062336600461507a565b612282565b61034d61063636600461500e565b6123e8565b34801561064757600080fd5b5061034d6106563660046151bc565b6123f7565b6103c3610669366004615627565b612449565b34801561067a57600080fd5b5061034d610689366004615324565b6124e9565b61034d61069c36600461500e565b61253a565b61034d6106af366004615121565b612546565b600080600083608001511415610771575081516040517f70a0823100000000000000000000000000000000000000000000000000000000815260019173ffffffffffffffffffffffffffffffffffffffff16906370a082319061071b903090600401615a3c565b60206040518083038186803b15801561073357600080fd5b505afa158015610747573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061076b91906157d3565b60808401525b6107ed836080015184606001518560c001516040518060400160405280886000015189604001518a602001516040516020016107af939291906159aa565b6040516020818303038152906040528152602001866107ce57336107d0565b305b73ffffffffffffffffffffffffffffffffffffffff1690526125de565b91508260a00151821015610836576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161082d90615c7d565b60405180910390fd5b50919050565b600084138061084b5750600083135b61085457600080fd5b60006108628284018461564a565b90506000806000610876846000015161278f565b9250925092506108a87f00000000000000000000000000000000000000000000000000000000000000008484846127c0565b5060008060008a136108e9578473ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16108961091a565b8373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16108a5b9150915081156109395761093485876020015133846127d6565b610980565b8551610944906129b4565b15610969578551610954906129bc565b865261096381336000896129f1565b50610980565b8060008190555061098084876020015133846127d6565b50505050505050505050565b6000610a00604083018035906109a59060208601614feb565b60408051808201909152600090806109bd8880615e41565b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250505090825250336020909101526129f1565b50506000546060820135811115610a43576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161082d90615c0f565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600055919050565b604080516101608101909152606090610c70907f88316456000000000000000000000000000000000000000000000000000000009080610aaf6020870187614feb565b73ffffffffffffffffffffffffffffffffffffffff168152602001856020016020810190610add9190614feb565b73ffffffffffffffffffffffffffffffffffffffff168152602001610b0860608701604088016157a1565b62ffffff168152602001610b226080870160608801615379565b60020b8152602001610b3a60a0870160808801615379565b60020b8152602090810190610b5a90610b5590880188614feb565b612bd8565b8152602001610b75866020016020810190610b559190614feb565b815260a0860135602082015260c08601356040820152606001610b9f610100870160e08801614feb565b73ffffffffffffffffffffffffffffffffffffffff1681526020017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff815250604051602401610bee9190615cf8565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff0000000000000000000000000000000000000000000000000000000090931692909217909152611c58565b90505b919050565b4715610c8857610c883347612c7d565b565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663d0e30db0826040518263ffffffff1660e01b81526004016000604051808303818588803b158015610cf257600080fd5b505af1158015610d06573d6000803e3d6000fd5b505050505050565b60608380600143034014610d8357604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600960248201527f426c6f636b686173680000000000000000000000000000000000000000000000604482015290519081900360640190fd5b610d8d8484611afe565b91505b509392505050565b610da58484338585612282565b50505050565b6000610e0b7f000000000000000000000000000000000000000000000000000000000000000087868680806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250612dcb92505050565b600081518110610e1757fe5b6020026020010151905084811115610e5b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161082d90615c0f565b610ef484846000818110610e6b57fe5b9050602002016020810190610e809190614feb565b33610eee7f000000000000000000000000000000000000000000000000000000000000000088886000818110610eb257fe5b9050602002016020810190610ec79190614feb565b89896001818110610ed457fe5b9050602002016020810190610ee99190614feb565b612f04565b846127d6565b73ffffffffffffffffffffffffffffffffffffffff821660011415610f1b57339150610f3e565b73ffffffffffffffffffffffffffffffffffffffff821660021415610f3e573091505b610f7c848480806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250869250612fef915050565b95945050505050565b604080517f8fcbaf0c00000000000000000000000000000000000000000000000000000000815233600482015230602482015260448101879052606481018690526001608482015260ff851660a482015260c4810184905260e48101839052905173ffffffffffffffffffffffffffffffffffffffff881691638fcbaf0c9161010480830192600092919082900301818387803b15801561102557600080fd5b505af1158015610980573d6000803e3d6000fd5b600080866110ef57506001848460008161104f57fe5b90506020020160208101906110649190614feb565b73ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b815260040161109c9190615a3c565b60206040518083038186803b1580156110b457600080fd5b505afa1580156110c8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110ec91906157d3565b96505b61117a858560008181106110ff57fe5b90506020020160208101906111149190614feb565b8261111f5733611121565b305b6111747f00000000000000000000000000000000000000000000000000000000000000008989600081811061115257fe5b90506020020160208101906111679190614feb565b8a8a6001818110610ed457fe5b8a6127d6565b73ffffffffffffffffffffffffffffffffffffffff8316600114156111a1573392506111c4565b73ffffffffffffffffffffffffffffffffffffffff8316600214156111c4573092505b600085857fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81018181106111f457fe5b90506020020160208101906112099190614feb565b73ffffffffffffffffffffffffffffffffffffffff166370a08231856040518263ffffffff1660e01b81526004016112419190615a3c565b60206040518083038186803b15801561125957600080fd5b505afa15801561126d573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061129191906157d3565b90506112d1868680806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250889250612fef915050565b6113a68187877fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff810181811061130357fe5b90506020020160208101906113189190614feb565b73ffffffffffffffffffffffffffffffffffffffff166370a08231876040518263ffffffff1660e01b81526004016113509190615a3c565b60206040518083038186803b15801561136857600080fd5b505afa15801561137c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113a091906157d3565b906132f4565b9250868310156113e2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161082d90615c7d565b505095945050505050565b60007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b15801561147657600080fd5b505afa15801561148a573d6000803e3d6000fd5b505050506040513d60208110156114a057600080fd5b505190508281101561151357604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601260248201527f496e73756666696369656e742057455448390000000000000000000000000000604482015290519081900360640190fd5b80156115ae577f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16632e1a7d4d826040518263ffffffff1660e01b815260040180828152602001915050600060405180830381600087803b15801561158c57600080fd5b505af11580156115a0573d6000803e3d6000fd5b505050506115ae8282612c7d565b505050565b6115bd81336113ed565b50565b7f000000000000000000000000000000000000000000000000000000000000000081565b600061168d608083018035906115fd9060608601614feb565b61160d60e0860160c08701614feb565b604051806040016040528087602001602081019061162b9190614feb565b61163b60608a0160408b016157a1565b61164860208b018b614feb565b60405160200161165a939291906159aa565b60405160208183030381529060405281526020013373ffffffffffffffffffffffffffffffffffffffff168152506129f1565b90508160a00135811115610a43576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161082d90615c0f565b6116f7817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff613304565b6115bd57600080fd5b6060838061170c613450565b1115610d8357604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f5472616e73616374696f6e20746f6f206f6c6400000000000000000000000000604482015290519081900360640190fd5b611784816000613304565b6116cd57600080fd5b7f000000000000000000000000000000000000000000000000000000000000000081565b7f000000000000000000000000000000000000000000000000000000000000000081565b6000821180156117e6575060648211155b6117ef57600080fd5b60007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b15801561187857600080fd5b505afa15801561188c573d6000803e3d6000fd5b505050506040513d60208110156118a257600080fd5b505190508481101561191557604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601260248201527f496e73756666696369656e742057455448390000000000000000000000000000604482015290519081900360640190fd5b80156119e4577f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16632e1a7d4d826040518263ffffffff1660e01b815260040180828152602001915050600060405180830381600087803b15801561198e57600080fd5b505af11580156119a2573d6000803e3d6000fd5b5050505060006127106119be858461345490919063ffffffff16565b816119c557fe5b04905080156119d8576119d88382612c7d565b610d0685828403612c7d565b5050505050565b604080517fdd62ed3e00000000000000000000000000000000000000000000000000000000815233600482015230602482015290517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff9173ffffffffffffffffffffffffffffffffffffffff89169163dd62ed3e91604480820192602092909190829003018186803b158015611a8057600080fd5b505afa158015611a94573d6000803e3d6000fd5b505050506040513d6020811015611aaa57600080fd5b50511015610d0657610d06868686868686610f85565b611acb816000613304565b611ad457600080fd5b6116f7817ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe613304565b60608167ffffffffffffffff81118015611b1757600080fd5b50604051908082528060200260200182016040528015611b4b57816020015b6060815260200190600190039081611b365790505b50905060005b82811015611c515760008030868685818110611b6957fe5b9050602002810190611b7b9190615e41565b604051611b89929190615a10565b600060405180830381855af49150503d8060008114611bc4576040519150601f19603f3d011682016040523d82523d6000602084013e611bc9565b606091505b509150915081611c2f57604481511015611be257600080fd5b60048101905080806020019051810190611bfc9190615433565b6040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161082d9190615b7a565b80848481518110611c3c57fe5b60209081029190910101525050600101611b51565b5092915050565b606060007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1683604051611ca19190615a20565b6000604051808303816000865af19150503d8060008114611cde576040519150601f19603f3d011682016040523d82523d6000602084013e611ce3565b606091505b50925090508061083657604482511015611cfc57600080fd5b60048201915081806020019051810190611bfc9190615433565b600080600083604001511415611de757600190506000611d39846000015161278f565b50506040517f70a0823100000000000000000000000000000000000000000000000000000000815290915073ffffffffffffffffffffffffffffffffffffffff8216906370a0823190611d90903090600401615a3c565b60206040518083038186803b158015611da857600080fd5b505afa158015611dbc573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611de091906157d3565b6040850152505b600081611df45733611df6565b305b90505b6000611e0885600001516129b4565b9050611e61856040015182611e21578660200151611e23565b305b60006040518060400160405280611e3d8b60000151613478565b81526020018773ffffffffffffffffffffffffffffffffffffffff168152506125de565b60408601528015611e81578451309250611e7a906129bc565b8552611e8e565b8460400151935050611e94565b50611df9565b8360600151831015611ed2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161082d90615c7d565b5050919050565b604080517fdd62ed3e0000000000000000000000000000000000000000000000000000000081523360048201523060248201529051869173ffffffffffffffffffffffffffffffffffffffff89169163dd62ed3e91604480820192602092909190829003018186803b158015611f4e57600080fd5b505afa158015611f62573d6000803e3d6000fd5b505050506040513d6020811015611f7857600080fd5b50511015610d0657610d06868686868686612546565b7f000000000000000000000000000000000000000000000000000000000000000081565b6115ae833384846117d5565b6000818373ffffffffffffffffffffffffffffffffffffffff1663dd62ed3e307f00000000000000000000000000000000000000000000000000000000000000006040518363ffffffff1660e01b815260040161201c929190615a5d565b60206040518083038186803b15801561203457600080fd5b505afa158015612048573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061206c91906157d3565b1061207957506000612165565b6120a3837fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff613304565b156120b057506001612165565b6120da837ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe613304565b156120e757506002612165565b6120f2836000613304565b6120fb57600080fd5b612125837fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff613304565b1561213257506003612165565b61215c837ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe613304565b1561034f575060045b92915050565b60008373ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b1580156121d457600080fd5b505afa1580156121e8573d6000803e3d6000fd5b505050506040513d60208110156121fe57600080fd5b505190508281101561227157604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601260248201527f496e73756666696369656e7420746f6b656e0000000000000000000000000000604482015290519081900360640190fd5b8015610da557610da5848383613487565b600082118015612293575060648211155b61229c57600080fd5b60008573ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b15801561230557600080fd5b505afa158015612319573d6000803e3d6000fd5b505050506040513d602081101561232f57600080fd5b50519050848110156123a257604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601260248201527f496e73756666696369656e7420746f6b656e0000000000000000000000000000604482015290519081900360640190fd5b8015610d065760006127106123b78386613454565b816123be57fe5b04905080156123d2576123d2878483613487565b6123df8786838503613487565b50505050505050565b6123f382823361216b565b5050565b60008061240586868561365c565b915091508362ffffff1681830312610d06576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161082d90615c46565b6060610c7063219f5d1760e01b6040518060c0016040528085604001358152602001612481866000016020810190610b559190614feb565b815260200161249c866020016020810190610b559190614feb565b815260200185606001358152602001856080013581526020017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff815250604051602401610bee9190615cb4565b6000806124f6858461386f565b915091508362ffffff16818303126119e4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161082d90615c46565b6123f382333084613af7565b604080517fd505accf000000000000000000000000000000000000000000000000000000008152336004820152306024820152604481018790526064810186905260ff8516608482015260a4810184905260c48101839052905173ffffffffffffffffffffffffffffffffffffffff88169163d505accf9160e480830192600092919082900301818387803b15801561102557600080fd5b600073ffffffffffffffffffffffffffffffffffffffff8416600114156126075733935061262a565b73ffffffffffffffffffffffffffffffffffffffff84166002141561262a573093505b600080600061263c856000015161278f565b9194509250905073ffffffffffffffffffffffffffffffffffffffff8083169084161060008061266d868686613cd4565b73ffffffffffffffffffffffffffffffffffffffff1663128acb088b856126938f613d12565b73ffffffffffffffffffffffffffffffffffffffff8e16156126b5578d6126db565b876126d45773fffd8963efd1fc6a506488495d951d5263988d256126db565b6401000276a45b8d6040516020016126ec9190615da6565b6040516020818303038152906040526040518663ffffffff1660e01b815260040161271b959493929190615a84565b6040805180830381600087803b15801561273457600080fd5b505af1158015612748573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061276c9190615395565b915091508261277b578161277d565b805b6000039b9a5050505050505050505050565b6000808061279d8482613d44565b92506127aa846014613e44565b90506127b7846017613d44565b91509193909250565b6000610f7c856127d1868686613f34565b613fb1565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480156128315750804710155b1561297a577f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663d0e30db0826040518263ffffffff1660e01b81526004016000604051808303818588803b15801561289e57600080fd5b505af11580156128b2573d6000803e3d6000fd5b50505050507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663a9059cbb83836040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b15801561294857600080fd5b505af115801561295c573d6000803e3d6000fd5b505050506040513d602081101561297257600080fd5b50610da59050565b73ffffffffffffffffffffffffffffffffffffffff83163014156129a8576129a3848383613487565b610da5565b610da584848484613af7565b516042111590565b8051606090610c709083906017907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe901613fe1565b600073ffffffffffffffffffffffffffffffffffffffff841660011415612a1a57339350612a3d565b73ffffffffffffffffffffffffffffffffffffffff841660021415612a3d573093505b6000806000612a4f856000015161278f565b9194509250905073ffffffffffffffffffffffffffffffffffffffff80841690831610600080612a80858786613cd4565b73ffffffffffffffffffffffffffffffffffffffff1663128acb088b85612aa68f613d12565b60000373ffffffffffffffffffffffffffffffffffffffff8e1615612acb578d612af1565b87612aea5773fffd8963efd1fc6a506488495d951d5263988d25612af1565b6401000276a45b8d604051602001612b029190615da6565b6040516020818303038152906040526040518663ffffffff1660e01b8152600401612b31959493929190615a84565b6040805180830381600087803b158015612b4a57600080fd5b505af1158015612b5e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612b829190615395565b91509150600083612b97578183600003612b9d565b82826000035b909850905073ffffffffffffffffffffffffffffffffffffffff8a16612bc9578b8114612bc957600080fd5b50505050505050949350505050565b6040517f70a0823100000000000000000000000000000000000000000000000000000000815260009073ffffffffffffffffffffffffffffffffffffffff8316906370a0823190612c2d903090600401615a3c565b60206040518083038186803b158015612c4557600080fd5b505afa158015612c59573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c7091906157d3565b6040805160008082526020820190925273ffffffffffffffffffffffffffffffffffffffff84169083906040518082805190602001908083835b60208310612cf457805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe09092019160209182019101612cb7565b6001836020036101000a03801982511681845116808217855250505050505090500191505060006040518083038185875af1925050503d8060008114612d56576040519150601f19603f3d011682016040523d82523d6000602084013e612d5b565b606091505b50509050806115ae57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600360248201527f5354450000000000000000000000000000000000000000000000000000000000604482015290519081900360640190fd5b6060600282511015612ddc57600080fd5b815167ffffffffffffffff81118015612df457600080fd5b50604051908082528060200260200182016040528015612e1e578160200160208202803683370190505b5090508281600183510381518110612e3257fe5b602090810291909101015281517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff015b8015610d9057600080612e9f87866001860381518110612e7e57fe5b6020026020010151878681518110612e9257fe5b60200260200101516141c8565b91509150612ec1848481518110612eb257fe5b602002602001015183836142b0565b846001850381518110612ed057fe5b602090810291909101015250507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01612e62565b6000806000612f138585614386565b604080517fffffffffffffffffffffffffffffffffffffffff000000000000000000000000606094851b811660208084019190915293851b81166034830152825160288184030181526048830184528051908501207fff0000000000000000000000000000000000000000000000000000000000000060688401529a90941b9093166069840152607d8301989098527f96e8ac4277198ff8b6f785478aa9a39f403cb768dd02cbee326c3e7da348845f609d808401919091528851808403909101815260bd909201909752805196019590952095945050505050565b60005b60018351038110156115ae5760008084838151811061300d57fe5b602002602001015185846001018151811061302457fe5b602002602001015191509150600061303c8383614386565b509050600061306c7f00000000000000000000000000000000000000000000000000000000000000008585612f04565b90506000806000808473ffffffffffffffffffffffffffffffffffffffff16630902f1ac6040518163ffffffff1660e01b815260040160606040518083038186803b1580156130ba57600080fd5b505afa1580156130ce573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906130f291906156da565b506dffffffffffffffffffffffffffff1691506dffffffffffffffffffffffffffff1691506000808773ffffffffffffffffffffffffffffffffffffffff168a73ffffffffffffffffffffffffffffffffffffffff1614613154578284613157565b83835b91509150613198828b73ffffffffffffffffffffffffffffffffffffffff166370a082318a6040518263ffffffff1660e01b81526004016113509190615a3c565b95506131a586838361442b565b9450505050506000808573ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff16146131e9578260006131ed565b6000835b91509150600060028c51038a10613204578a613245565b6132457f0000000000000000000000000000000000000000000000000000000000000000898e8d6002018151811061323857fe5b6020026020010151612f04565b604080516000815260208101918290527f022c0d9f0000000000000000000000000000000000000000000000000000000090915290915073ffffffffffffffffffffffffffffffffffffffff87169063022c0d9f906132ad9086908690869060248101615e06565b600060405180830381600087803b1580156132c757600080fd5b505af11580156132db573d6000803e3d6000fd5b50506001909b019a50612ff29950505050505050505050565b8082038281111561216557600080fd5b60008060008473ffffffffffffffffffffffffffffffffffffffff1663095ea7b360e01b7f00000000000000000000000000000000000000000000000000000000000000008660405160240161335b929190615ad6565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff000000000000000000000000000000000000000000000000000000009094169390931790925290516133e49190615a20565b6000604051808303816000865af19150503d8060008114613421576040519150601f19603f3d011682016040523d82523d6000602084013e613426565b606091505b5091509150818015610f7c575080511580610f7c575080806020019051810190610f7c919061528d565b4290565b600082158061346f5750508181028183828161346c57fe5b04145b61216557600080fd5b6060610c70826000602b613fe1565b6040805173ffffffffffffffffffffffffffffffffffffffff8481166024830152604480830185905283518084039091018152606490920183526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fa9059cbb000000000000000000000000000000000000000000000000000000001781529251825160009485949389169392918291908083835b6020831061355c57805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0909201916020918201910161351f565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d80600081146135be576040519150601f19603f3d011682016040523d82523d6000602084013e6135c3565b606091505b50915091508180156135f15750805115806135f157508080602001905160208110156135ee57600080fd5b50515b6119e457604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600260248201527f5354000000000000000000000000000000000000000000000000000000000000604482015290519081900360640190fd5b600080835185511461366d57600080fd5b6000855167ffffffffffffffff8111801561368757600080fd5b506040519080825280602002602001820160405280156136c157816020015b6136ae614e34565b8152602001906001900390816136a65790505b5090506000865167ffffffffffffffff811180156136de57600080fd5b5060405190808252806020026020018201604052801561371857816020015b613705614e34565b8152602001906001900390816136fd5790505b50905060005b8751811015613848576000806137478a848151811061373957fe5b60200260200101518961386f565b9150915061375482614501565b85848151811061376057fe5b60200260200101516000019060020b908160020b8152505061378181614501565b84848151811061378d57fe5b60200260200101516000019060020b908160020b815250508883815181106137b157fe5b60200260200101518584815181106137c557fe5b6020026020010151602001906fffffffffffffffffffffffffffffffff1690816fffffffffffffffffffffffffffffffff168152505088838151811061380757fe5b602002602001015184848151811061381b57fe5b6020908102919091018101516fffffffffffffffffffffffffffffffff909216910152505060010161371e565b5061385282614512565b60020b935061386081614512565b60020b92505050935093915050565b60008060008061387e866145fa565b90506000805b82811015613a9c57600080600061389a8b61278f565b92509250925060006138ad848484613cd4565b905060008063ffffffff8d166138d6576138c683614625565b600291820b9350900b9050613978565b6138e0838e6148bd565b8160020b915050809250508273ffffffffffffffffffffffffffffffffffffffff16633850c7bd6040518163ffffffff1660e01b815260040160e06040518083038186803b15801561393157600080fd5b505afa158015613945573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906139699190615715565b50505060029290920b93505050505b600189038714156139b9578473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff161099506139c8565b6139c28e6129bc565b9d508597505b6000871580613a6957508673ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff1610613a39578673ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff1610613a69565b8573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff16105b90508015613a7e579b82019b9a81019a613a89565b828d039c50818c039b505b5050600190950194506138849350505050565b5082613aed577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff850294507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff840293505b5050509250929050565b6040805173ffffffffffffffffffffffffffffffffffffffff85811660248301528481166044830152606480830185905283518084039091018152608490920183526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f23b872dd00000000000000000000000000000000000000000000000000000000178152925182516000948594938a169392918291908083835b60208310613bd457805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe09092019160209182019101613b97565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d8060008114613c36576040519150601f19603f3d011682016040523d82523d6000602084013e613c3b565b606091505b5091509150818015613c69575080511580613c695750808060200190516020811015613c6657600080fd5b50515b610d0657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600360248201527f5354460000000000000000000000000000000000000000000000000000000000604482015290519081900360640190fd5b6000613d0a7f0000000000000000000000000000000000000000000000000000000000000000613d05868686613f34565b614cee565b949350505050565b60007f80000000000000000000000000000000000000000000000000000000000000008210613d4057600080fd5b5090565b600081826014011015613db857604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601260248201527f746f416464726573735f6f766572666c6f770000000000000000000000000000604482015290519081900360640190fd5b8160140183511015613e2b57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f746f416464726573735f6f75744f66426f756e64730000000000000000000000604482015290519081900360640190fd5b5001602001516c01000000000000000000000000900490565b600081826003011015613eb857604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f746f55696e7432345f6f766572666c6f77000000000000000000000000000000604482015290519081900360640190fd5b8160030183511015613f2b57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f746f55696e7432345f6f75744f66426f756e6473000000000000000000000000604482015290519081900360640190fd5b50016003015190565b613f3c614e4b565b8273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161115613f74579192915b506040805160608101825273ffffffffffffffffffffffffffffffffffffffff948516815292909316602083015262ffffff169181019190915290565b6000613fbd8383614cee565b90503373ffffffffffffffffffffffffffffffffffffffff82161461216557600080fd5b60608182601f01101561405557604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600e60248201527f736c6963655f6f766572666c6f77000000000000000000000000000000000000604482015290519081900360640190fd5b8282840110156140c657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600e60248201527f736c6963655f6f766572666c6f77000000000000000000000000000000000000604482015290519081900360640190fd5b8183018451101561413857604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f736c6963655f6f75744f66426f756e6473000000000000000000000000000000604482015290519081900360640190fd5b60608215801561415757604051915060008252602082016040526141bf565b6040519150601f8416801560200281840101858101878315602002848b0101015b81831015614190578051835260209283019201614178565b5050858452601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016604052505b50949350505050565b60008060006141d78585614386565b5090506000806141e8888888612f04565b73ffffffffffffffffffffffffffffffffffffffff16630902f1ac6040518163ffffffff1660e01b815260040160606040518083038186803b15801561422d57600080fd5b505afa158015614241573d6000803e3d6000fd5b505050506040513d606081101561425757600080fd5b5080516020909101516dffffffffffffffffffffffffffff918216935016905073ffffffffffffffffffffffffffffffffffffffff8781169084161461429e5780826142a1565b81815b90999098509650505050505050565b600080841161432057604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601a60248201527f494e53554646494349454e545f4f55545055545f414d4f554e54000000000000604482015290519081900360640190fd5b6000831180156143305750600082115b61433957600080fd5b60006143516103e861434b8688613454565b90613454565b905060006143656103e561434b86896132f4565b905061437c600182848161437557fe5b0490614e24565b9695505050505050565b6000808273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614156143c257600080fd5b8273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16106143fc5782846143ff565b83835b909250905073ffffffffffffffffffffffffffffffffffffffff821661442457600080fd5b9250929050565b600080841161449b57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601960248201527f494e53554646494349454e545f494e5055545f414d4f554e5400000000000000604482015290519081900360640190fd5b6000831180156144ab5750600082115b6144b457600080fd5b60006144c2856103e5613454565b905060006144d08285613454565b905060006144ea836144e4886103e8613454565b90614e24565b90508082816144f557fe5b04979650505050505050565b80600281900b8114610c7357600080fd5b6000806000805b84518110156145a75784818151811061452e57fe5b6020026020010151602001516fffffffffffffffffffffffffffffffff1685828151811061455857fe5b60200260200101516000015160020b028301925084818151811061457857fe5b6020026020010151602001516fffffffffffffffffffffffffffffffff16820191508080600101915050614519565b508082816145b157fe5b0592506000821280156145cc57508082816145c857fe5b0715155b15611ed25750507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01919050565b5160177fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffec9091010490565b6000806000808473ffffffffffffffffffffffffffffffffffffffff16633850c7bd6040518163ffffffff1660e01b815260040160e06040518083038186803b15801561467157600080fd5b505afa158015614685573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906146a99190615715565b50939750919550935050600161ffff84161191506146f59050576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161082d90615bd8565b6000808673ffffffffffffffffffffffffffffffffffffffff1663252c09d7856040518263ffffffff1660e01b81526004016147319190615dee565b60806040518083038186803b15801561474957600080fd5b505afa15801561475d573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061478191906158e0565b50509150915061478f613450565b63ffffffff168263ffffffff16146147a9578495506148b4565b60008361ffff1660018561ffff168761ffff160103816147c557fe5b06905060008060008a73ffffffffffffffffffffffffffffffffffffffff1663252c09d7856040518263ffffffff1660e01b81526004016148069190615dfd565b60806040518083038186803b15801561481e57600080fd5b505afa158015614832573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061485691906158e0565b9350509250925080614894576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161082d90615ba1565b82860363ffffffff811683870360060b816148ab57fe5b059a5050505050505b50505050915091565b60008063ffffffff831661493257604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600260248201527f4250000000000000000000000000000000000000000000000000000000000000604482015290519081900360640190fd5b604080516002808252606082018352600092602083019080368337019050509050838160008151811061496157fe5b602002602001019063ffffffff16908163ffffffff168152505060008160018151811061498a57fe5b63ffffffff9092166020928302919091018201526040517f883bdbfd00000000000000000000000000000000000000000000000000000000815260048101828152835160248301528351600093849373ffffffffffffffffffffffffffffffffffffffff8b169363883bdbfd9388939192839260449091019185820191028083838b5b83811015614a25578181015183820152602001614a0d565b505050509050019250505060006040518083038186803b158015614a4857600080fd5b505afa158015614a5c573d6000803e3d6000fd5b505050506040513d6000823e601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01682016040908152811015614aa357600080fd5b8101908080516040519392919084640100000000821115614ac357600080fd5b908301906020820185811115614ad857600080fd5b8251866020820283011164010000000082111715614af557600080fd5b82525081516020918201928201910280838360005b83811015614b22578181015183820152602001614b0a565b5050505090500160405260200180516040519392919084640100000000821115614b4b57600080fd5b908301906020820185811115614b6057600080fd5b8251866020820283011164010000000082111715614b7d57600080fd5b82525081516020918201928201910280838360005b83811015614baa578181015183820152602001614b92565b5050505090500160405250505091509150600082600081518110614bca57fe5b602002602001015183600181518110614bdf57fe5b6020026020010151039050600082600081518110614bf957fe5b602002602001015183600181518110614c0e57fe5b60200260200101510390508763ffffffff168260060b81614c2b57fe5b05965060008260060b128015614c5557508763ffffffff168260060b81614c4e57fe5b0760060b15155b15614c80577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff909601955b63ffffffff881673ffffffffffffffffffffffffffffffffffffffff0277ffffffffffffffffffffffffffffffffffffffff00000000602083901b1677ffffffffffffffffffffffffffffffffffffffffffffffff821681614cde57fe5b0496505050505050509250929050565b6000816020015173ffffffffffffffffffffffffffffffffffffffff16826000015173ffffffffffffffffffffffffffffffffffffffff1610614d3057600080fd5b508051602080830151604093840151845173ffffffffffffffffffffffffffffffffffffffff94851681850152939091168385015262ffffff166060808401919091528351808403820181526080840185528051908301207fff0000000000000000000000000000000000000000000000000000000000000060a085015294901b7fffffffffffffffffffffffffffffffffffffffff0000000000000000000000001660a183015260b58201939093527ff42b646464a7fc0f36704e2d2b419f73016e81e8dc1883ae2cc0bd6618708df360d5808301919091528251808303909101815260f5909101909152805191012090565b8082018281101561216557600080fd5b604080518082019091526000808252602082015290565b604080516060810182526000808252602082018190529181019190915290565b8035610c7381615f52565b60008083601f840112614e87578182fd5b50813567ffffffffffffffff811115614e9e578182fd5b602083019150836020808302850101111561442457600080fd5b600082601f830112614ec8578081fd5b81356020614edd614ed883615ec8565b615ea4565b8281528181019085830183850287018401881015614ef9578586fd5b855b85811015614f345781356fffffffffffffffffffffffffffffffff81168114614f22578788fd5b84529284019290840190600101614efb565b5090979650505050505050565b80518015158114610c7357600080fd5b600082601f830112614f61578081fd5b8135614f6f614ed882615ee6565b818152846020838601011115614f83578283fd5b816020850160208301379081016020019190915292915050565b80516dffffffffffffffffffffffffffff81168114610c7357600080fd5b805161ffff81168114610c7357600080fd5b803562ffffff81168114610c7357600080fd5b8035610c7381615f83565b600060208284031215614ffc578081fd5b813561500781615f52565b9392505050565b60008060408385031215615020578081fd5b823561502b81615f52565b946020939093013593505050565b60008060006060848603121561504d578081fd5b833561505881615f52565b925060208401359150604084013561506f81615f52565b809150509250925092565b600080600080600060a08688031215615091578283fd5b853561509c81615f52565b94506020860135935060408601356150b381615f52565b92506060860135915060808601356150ca81615f52565b809150509295509295909350565b600080600080608085870312156150ed578182fd5b84356150f881615f52565b93506020850135925060408501359150606085013561511681615f52565b939692955090935050565b60008060008060008060c08789031215615139578384fd5b863561514481615f52565b95506020870135945060408701359350606087013561516281615f95565b9598949750929560808101359460a0909101359350915050565b6000806020838503121561518e578182fd5b823567ffffffffffffffff8111156151a4578283fd5b6151b085828601614e76565b90969095509350505050565b600080600080608085870312156151d1578182fd5b843567ffffffffffffffff808211156151e8578384fd5b818701915087601f8301126151fb578384fd5b8135602061520b614ed883615ec8565b82815281810190858301885b858110156152405761522e8e8684358b0101614f51565b84529284019290840190600101615217565b50909950505088013592505080821115615258578384fd5b5061526587828801614eb8565b93505061527460408601614fcd565b915061528260608601614fe0565b905092959194509250565b60006020828403121561529e578081fd5b61500782614f41565b6000806000604084860312156152bb578081fd5b83359250602084013567ffffffffffffffff8111156152d8578182fd5b6152e486828701614e76565b9497909650939450505050565b600060208284031215615302578081fd5b813567ffffffffffffffff811115615318578182fd5b613d0a84828501614f51565b600080600060608486031215615338578081fd5b833567ffffffffffffffff81111561534e578182fd5b61535a86828701614f51565b93505061536960208501614fcd565b9150604084013561506f81615f83565b60006020828403121561538a578081fd5b813561500781615f74565b600080604083850312156153a7578182fd5b505080516020909101519092909150565b600080600080606085870312156153cd578182fd5b8435935060208501359250604085013567ffffffffffffffff808211156153f2578384fd5b818701915087601f830112615405578384fd5b813581811115615413578485fd5b886020828501011115615424578485fd5b95989497505060200194505050565b600060208284031215615444578081fd5b815167ffffffffffffffff81111561545a578182fd5b8201601f8101841361546a578182fd5b8051615478614ed882615ee6565b81815285602083850101111561548c578384fd5b610f7c826020830160208601615f26565b6000602082840312156154ae578081fd5b813567ffffffffffffffff808211156154c5578283fd5b90830190608082860312156154d8578283fd5b6040516080810181811083821117156154ed57fe5b6040528235828111156154fe578485fd5b61550a87828601614f51565b8252506020830135915061551d82615f52565b816020820152604083013560408201526060830135606082015280935050505092915050565b600060e08284031215615554578081fd5b60405160e0810181811067ffffffffffffffff8211171561557157fe5b60405261557d83614e6b565b815261558b60208401614e6b565b602082015261559c60408401614fcd565b60408201526155ad60608401614e6b565b60608201526080830135608082015260a083013560a08201526155d260c08401614e6b565b60c08201529392505050565b6000602082840312156155ef578081fd5b813567ffffffffffffffff811115615605578182fd5b820160808185031215615007578182fd5b600060e08284031215610836578081fd5b600060a08284031215610836578081fd5b60006101008284031215610836578081fd5b60006020828403121561565b578081fd5b813567ffffffffffffffff80821115615672578283fd5b9083019060408286031215615685578283fd5b60405160408101818110838211171561569a57fe5b6040528235828111156156ab578485fd5b6156b787828601614f51565b825250602083013592506156ca83615f52565b6020810192909252509392505050565b6000806000606084860312156156ee578081fd5b6156f784614f9d565b925061570560208501614f9d565b9150604084015161506f81615f83565b600080600080600080600060e0888a03121561572f578485fd5b875161573a81615f52565b602089015190975061574b81615f74565b955061575960408901614fbb565b945061576760608901614fbb565b935061577560808901614fbb565b925060a088015161578581615f95565b915061579360c08901614f41565b905092959891949750929550565b6000602082840312156157b2578081fd5b61500782614fcd565b6000602082840312156157cc578081fd5b5035919050565b6000602082840312156157e4578081fd5b5051919050565b600080604083850312156157fd578182fd5b82359150602083013561580f81615f52565b809150509250929050565b6000806000806080858703121561582f578182fd5b84359350602085013561584181615f52565b925060408501359150606085013561511681615f52565b60008060006060848603121561586c578081fd5b8335925060208401359150604084013561506f81615f52565b60008060008060006080868803121561589c578283fd5b8535945060208601359350604086013567ffffffffffffffff8111156158c0578384fd5b6158cc88828901614e76565b90945092505060608601356150ca81615f52565b600080600080608085870312156158f5578182fd5b845161590081615f83565b8094505060208501518060060b8114615917578283fd5b604086015190935061592881615f52565b915061528260608601614f41565b73ffffffffffffffffffffffffffffffffffffffff169052565b60008151808452615968816020860160208601615f26565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b60020b9052565b62ffffff169052565b606093841b7fffffffffffffffffffffffffffffffffffffffff000000000000000000000000908116825260e89390931b7fffffff0000000000000000000000000000000000000000000000000000000000166014820152921b166017820152602b0190565b6000828483379101908152919050565b60008251615a32818460208701615f26565b9190910192915050565b73ffffffffffffffffffffffffffffffffffffffff91909116815260200190565b73ffffffffffffffffffffffffffffffffffffffff92831681529116602082015260400190565b600073ffffffffffffffffffffffffffffffffffffffff8088168352861515602084015285604084015280851660608401525060a06080830152615acb60a0830184615950565b979650505050505050565b73ffffffffffffffffffffffffffffffffffffffff929092168252602082015260400190565b6000602080830181845280855180835260408601915060408482028701019250838701855b82811015615b6d577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc0888603018452615b5b858351615950565b94509285019290850190600101615b21565b5092979650505050505050565b6000602082526150076020830184615950565b6020810160058310615b9b57fe5b91905290565b60208082526003908201527f4f4e490000000000000000000000000000000000000000000000000000000000604082015260600190565b60208082526003908201527f4e454f0000000000000000000000000000000000000000000000000000000000604082015260600190565b60208082526012908201527f546f6f206d756368207265717565737465640000000000000000000000000000604082015260600190565b60208082526002908201527f5444000000000000000000000000000000000000000000000000000000000000604082015260600190565b60208082526013908201527f546f6f206c6974746c6520726563656976656400000000000000000000000000604082015260600190565b600060c082019050825182526020830151602083015260408301516040830152606083015160608301526080830151608083015260a083015160a083015292915050565b600061016082019050615d0c828451615936565b6020830151615d1e6020840182615936565b506040830151615d3160408401826159a1565b506060830151615d44606084018261599a565b506080830151615d57608084018261599a565b5060a083015160a083015260c083015160c083015260e083015160e083015261010080840151818401525061012080840151615d9582850182615936565b505061014092830151919092015290565b600060208252825160406020840152615dc26060840182615950565b905073ffffffffffffffffffffffffffffffffffffffff60208501511660408401528091505092915050565b61ffff91909116815260200190565b90815260200190565b600085825284602083015273ffffffffffffffffffffffffffffffffffffffff841660408301526080606083015261437c6080830184615950565b60008083357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe1843603018112615e75578283fd5b83018035915067ffffffffffffffff821115615e8f578283fd5b60200191503681900382131561442457600080fd5b60405181810167ffffffffffffffff81118282101715615ec057fe5b604052919050565b600067ffffffffffffffff821115615edc57fe5b5060209081020190565b600067ffffffffffffffff821115615efa57fe5b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01660200190565b60005b83811015615f41578181015183820152602001615f29565b83811115610da55750506000910152565b73ffffffffffffffffffffffffffffffffffffffff811681146115bd57600080fd5b8060020b81146115bd57600080fd5b63ffffffff811681146115bd57600080fd5b60ff811681146115bd57600080fdfea164736f6c6343000706000a0000000000000000000000001f9aa39001ed0630da6854859d7b3ed255648599000000000000000000000000c05a5aa56df0dc97d6b9849a06627a079790014f0000000000000000000000009831c93f3024e06db9eee6a5add6e122d18465be0000000000000000000000004446fc4eb47f2f6586f9faab68b3498f86c07521

Deployed ByteCode

0x6080604052600436106102a45760003560e01c8063791b98bc1161016e578063d4ef38de116100cb578063efdeed8e1161007f578063f25801a711610064578063f25801a71461066e578063f2d5d56b1461068e578063f3995c67146106a15761034f565b8063efdeed8e1461063b578063f100b2051461065b5761034f565b8063df2ab5bb116100b0578063df2ab5bb14610602578063e0e189a014610615578063e90a182f146106285761034f565b8063d4ef38de146105c2578063dee00f35146105d55761034f565b8063b3a2af1311610122578063c2e3140a11610107578063c2e3140a14610587578063c45a01551461059a578063cab372ce146105af5761034f565b8063b3a2af1314610561578063b858183f146105745761034f565b8063a4a78f0c11610153578063a4a78f0c14610528578063ab3fdd501461053b578063ac9650d81461054e5761034f565b8063791b98bc146105005780639b2c0a37146105155761034f565b80634659a4941161021c5780635023b4df116101d05780635ae401dc116101b55780635ae401dc146104c5578063639d71a9146104d857806368e0d4e1146104eb5761034f565b80635023b4df1461049f578063571ac8b0146104b25761034f565b806349404b7c1161020157806349404b7c14610457578063496169971461046a5780634aa4a4fc1461047d5761034f565b80634659a49414610431578063472b43f3146104445761034f565b806312210e8a116102735780631f0464d1116102585780631f0464d1146103eb5780633068c5541461040b57806342712a671461041e5761034f565b806312210e8a146103d05780631c58db4f146103d85761034f565b806304e45aaf14610354578063090b93dc1461037d57806309b813461461039d57806311ed56c9146103b05761034f565b3661034f573373ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000004446fc4eb47f2f6586f9faab68b3498f86c07521161461034d57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600960248201527f4e6f742057455448390000000000000000000000000000000000000000000000604482015290519081900360640190fd5b005b600080fd5b610367610362366004615543565b6106b4565b6040516103749190615dfd565b60405180910390f35b34801561038957600080fd5b5061034d6103983660046153b8565b61083c565b6103676103ab3660046155de565b61098c565b6103c36103be366004615638565b610a6c565b6040516103749190615b7a565b61034d610c78565b61034d6103e63660046157bb565b610c8a565b6103fe6103f93660046152a7565b610d0e565b6040516103749190615afc565b61034d6104193660046150d8565b610d98565b61036761042c366004615885565b610dab565b61034d61043f366004615121565b610f85565b610367610452366004615885565b611039565b61034d6104653660046157eb565b6113ed565b61034d6104783660046157bb565b6115b3565b34801561048957600080fd5b506104926115c0565b6040516103749190615a3c565b6103676104ad366004615616565b6115e4565b61034d6104c0366004614feb565b6116cd565b6103fe6104d33660046152a7565b611700565b61034d6104e6366004614feb565b611779565b3480156104f757600080fd5b5061049261178d565b34801561050c57600080fd5b506104926117b1565b61034d61052336600461581a565b6117d5565b61034d610536366004615121565b6119eb565b61034d610549366004614feb565b611ac0565b6103fe61055c36600461517c565b611afe565b6103c361056f3660046152f1565b611c58565b61036761058236600461549d565b611d16565b61034d610595366004615121565b611ed9565b3480156105a657600080fd5b50610492611f8e565b61034d6105bd366004614feb565b611ad4565b61034d6105d0366004615858565b611fb2565b3480156105e157600080fd5b506105f56105f036600461500e565b611fbe565b6040516103749190615b8d565b61034d610610366004615039565b61216b565b61034d61062336600461507a565b612282565b61034d61063636600461500e565b6123e8565b34801561064757600080fd5b5061034d6106563660046151bc565b6123f7565b6103c3610669366004615627565b612449565b34801561067a57600080fd5b5061034d610689366004615324565b6124e9565b61034d61069c36600461500e565b61253a565b61034d6106af366004615121565b612546565b600080600083608001511415610771575081516040517f70a0823100000000000000000000000000000000000000000000000000000000815260019173ffffffffffffffffffffffffffffffffffffffff16906370a082319061071b903090600401615a3c565b60206040518083038186803b15801561073357600080fd5b505afa158015610747573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061076b91906157d3565b60808401525b6107ed836080015184606001518560c001516040518060400160405280886000015189604001518a602001516040516020016107af939291906159aa565b6040516020818303038152906040528152602001866107ce57336107d0565b305b73ffffffffffffffffffffffffffffffffffffffff1690526125de565b91508260a00151821015610836576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161082d90615c7d565b60405180910390fd5b50919050565b600084138061084b5750600083135b61085457600080fd5b60006108628284018461564a565b90506000806000610876846000015161278f565b9250925092506108a87f000000000000000000000000c05a5aa56df0dc97d6b9849a06627a079790014f8484846127c0565b5060008060008a136108e9578473ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16108961091a565b8373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16108a5b9150915081156109395761093485876020015133846127d6565b610980565b8551610944906129b4565b15610969578551610954906129bc565b865261096381336000896129f1565b50610980565b8060008190555061098084876020015133846127d6565b50505050505050505050565b6000610a00604083018035906109a59060208601614feb565b60408051808201909152600090806109bd8880615e41565b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250505090825250336020909101526129f1565b50506000546060820135811115610a43576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161082d90615c0f565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600055919050565b604080516101608101909152606090610c70907f88316456000000000000000000000000000000000000000000000000000000009080610aaf6020870187614feb565b73ffffffffffffffffffffffffffffffffffffffff168152602001856020016020810190610add9190614feb565b73ffffffffffffffffffffffffffffffffffffffff168152602001610b0860608701604088016157a1565b62ffffff168152602001610b226080870160608801615379565b60020b8152602001610b3a60a0870160808801615379565b60020b8152602090810190610b5a90610b5590880188614feb565b612bd8565b8152602001610b75866020016020810190610b559190614feb565b815260a0860135602082015260c08601356040820152606001610b9f610100870160e08801614feb565b73ffffffffffffffffffffffffffffffffffffffff1681526020017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff815250604051602401610bee9190615cf8565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff0000000000000000000000000000000000000000000000000000000090931692909217909152611c58565b90505b919050565b4715610c8857610c883347612c7d565b565b7f0000000000000000000000004446fc4eb47f2f6586f9faab68b3498f86c0752173ffffffffffffffffffffffffffffffffffffffff1663d0e30db0826040518263ffffffff1660e01b81526004016000604051808303818588803b158015610cf257600080fd5b505af1158015610d06573d6000803e3d6000fd5b505050505050565b60608380600143034014610d8357604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600960248201527f426c6f636b686173680000000000000000000000000000000000000000000000604482015290519081900360640190fd5b610d8d8484611afe565b91505b509392505050565b610da58484338585612282565b50505050565b6000610e0b7f0000000000000000000000001f9aa39001ed0630da6854859d7b3ed25564859987868680806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250612dcb92505050565b600081518110610e1757fe5b6020026020010151905084811115610e5b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161082d90615c0f565b610ef484846000818110610e6b57fe5b9050602002016020810190610e809190614feb565b33610eee7f0000000000000000000000001f9aa39001ed0630da6854859d7b3ed25564859988886000818110610eb257fe5b9050602002016020810190610ec79190614feb565b89896001818110610ed457fe5b9050602002016020810190610ee99190614feb565b612f04565b846127d6565b73ffffffffffffffffffffffffffffffffffffffff821660011415610f1b57339150610f3e565b73ffffffffffffffffffffffffffffffffffffffff821660021415610f3e573091505b610f7c848480806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250869250612fef915050565b95945050505050565b604080517f8fcbaf0c00000000000000000000000000000000000000000000000000000000815233600482015230602482015260448101879052606481018690526001608482015260ff851660a482015260c4810184905260e48101839052905173ffffffffffffffffffffffffffffffffffffffff881691638fcbaf0c9161010480830192600092919082900301818387803b15801561102557600080fd5b505af1158015610980573d6000803e3d6000fd5b600080866110ef57506001848460008161104f57fe5b90506020020160208101906110649190614feb565b73ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b815260040161109c9190615a3c565b60206040518083038186803b1580156110b457600080fd5b505afa1580156110c8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110ec91906157d3565b96505b61117a858560008181106110ff57fe5b90506020020160208101906111149190614feb565b8261111f5733611121565b305b6111747f0000000000000000000000001f9aa39001ed0630da6854859d7b3ed2556485998989600081811061115257fe5b90506020020160208101906111679190614feb565b8a8a6001818110610ed457fe5b8a6127d6565b73ffffffffffffffffffffffffffffffffffffffff8316600114156111a1573392506111c4565b73ffffffffffffffffffffffffffffffffffffffff8316600214156111c4573092505b600085857fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81018181106111f457fe5b90506020020160208101906112099190614feb565b73ffffffffffffffffffffffffffffffffffffffff166370a08231856040518263ffffffff1660e01b81526004016112419190615a3c565b60206040518083038186803b15801561125957600080fd5b505afa15801561126d573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061129191906157d3565b90506112d1868680806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250889250612fef915050565b6113a68187877fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff810181811061130357fe5b90506020020160208101906113189190614feb565b73ffffffffffffffffffffffffffffffffffffffff166370a08231876040518263ffffffff1660e01b81526004016113509190615a3c565b60206040518083038186803b15801561136857600080fd5b505afa15801561137c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113a091906157d3565b906132f4565b9250868310156113e2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161082d90615c7d565b505095945050505050565b60007f0000000000000000000000004446fc4eb47f2f6586f9faab68b3498f86c0752173ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b15801561147657600080fd5b505afa15801561148a573d6000803e3d6000fd5b505050506040513d60208110156114a057600080fd5b505190508281101561151357604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601260248201527f496e73756666696369656e742057455448390000000000000000000000000000604482015290519081900360640190fd5b80156115ae577f0000000000000000000000004446fc4eb47f2f6586f9faab68b3498f86c0752173ffffffffffffffffffffffffffffffffffffffff16632e1a7d4d826040518263ffffffff1660e01b815260040180828152602001915050600060405180830381600087803b15801561158c57600080fd5b505af11580156115a0573d6000803e3d6000fd5b505050506115ae8282612c7d565b505050565b6115bd81336113ed565b50565b7f0000000000000000000000004446fc4eb47f2f6586f9faab68b3498f86c0752181565b600061168d608083018035906115fd9060608601614feb565b61160d60e0860160c08701614feb565b604051806040016040528087602001602081019061162b9190614feb565b61163b60608a0160408b016157a1565b61164860208b018b614feb565b60405160200161165a939291906159aa565b60405160208183030381529060405281526020013373ffffffffffffffffffffffffffffffffffffffff168152506129f1565b90508160a00135811115610a43576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161082d90615c0f565b6116f7817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff613304565b6115bd57600080fd5b6060838061170c613450565b1115610d8357604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f5472616e73616374696f6e20746f6f206f6c6400000000000000000000000000604482015290519081900360640190fd5b611784816000613304565b6116cd57600080fd5b7f0000000000000000000000001f9aa39001ed0630da6854859d7b3ed25564859981565b7f0000000000000000000000009831c93f3024e06db9eee6a5add6e122d18465be81565b6000821180156117e6575060648211155b6117ef57600080fd5b60007f0000000000000000000000004446fc4eb47f2f6586f9faab68b3498f86c0752173ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b15801561187857600080fd5b505afa15801561188c573d6000803e3d6000fd5b505050506040513d60208110156118a257600080fd5b505190508481101561191557604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601260248201527f496e73756666696369656e742057455448390000000000000000000000000000604482015290519081900360640190fd5b80156119e4577f0000000000000000000000004446fc4eb47f2f6586f9faab68b3498f86c0752173ffffffffffffffffffffffffffffffffffffffff16632e1a7d4d826040518263ffffffff1660e01b815260040180828152602001915050600060405180830381600087803b15801561198e57600080fd5b505af11580156119a2573d6000803e3d6000fd5b5050505060006127106119be858461345490919063ffffffff16565b816119c557fe5b04905080156119d8576119d88382612c7d565b610d0685828403612c7d565b5050505050565b604080517fdd62ed3e00000000000000000000000000000000000000000000000000000000815233600482015230602482015290517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff9173ffffffffffffffffffffffffffffffffffffffff89169163dd62ed3e91604480820192602092909190829003018186803b158015611a8057600080fd5b505afa158015611a94573d6000803e3d6000fd5b505050506040513d6020811015611aaa57600080fd5b50511015610d0657610d06868686868686610f85565b611acb816000613304565b611ad457600080fd5b6116f7817ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe613304565b60608167ffffffffffffffff81118015611b1757600080fd5b50604051908082528060200260200182016040528015611b4b57816020015b6060815260200190600190039081611b365790505b50905060005b82811015611c515760008030868685818110611b6957fe5b9050602002810190611b7b9190615e41565b604051611b89929190615a10565b600060405180830381855af49150503d8060008114611bc4576040519150601f19603f3d011682016040523d82523d6000602084013e611bc9565b606091505b509150915081611c2f57604481511015611be257600080fd5b60048101905080806020019051810190611bfc9190615433565b6040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161082d9190615b7a565b80848481518110611c3c57fe5b60209081029190910101525050600101611b51565b5092915050565b606060007f0000000000000000000000009831c93f3024e06db9eee6a5add6e122d18465be73ffffffffffffffffffffffffffffffffffffffff1683604051611ca19190615a20565b6000604051808303816000865af19150503d8060008114611cde576040519150601f19603f3d011682016040523d82523d6000602084013e611ce3565b606091505b50925090508061083657604482511015611cfc57600080fd5b60048201915081806020019051810190611bfc9190615433565b600080600083604001511415611de757600190506000611d39846000015161278f565b50506040517f70a0823100000000000000000000000000000000000000000000000000000000815290915073ffffffffffffffffffffffffffffffffffffffff8216906370a0823190611d90903090600401615a3c565b60206040518083038186803b158015611da857600080fd5b505afa158015611dbc573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611de091906157d3565b6040850152505b600081611df45733611df6565b305b90505b6000611e0885600001516129b4565b9050611e61856040015182611e21578660200151611e23565b305b60006040518060400160405280611e3d8b60000151613478565b81526020018773ffffffffffffffffffffffffffffffffffffffff168152506125de565b60408601528015611e81578451309250611e7a906129bc565b8552611e8e565b8460400151935050611e94565b50611df9565b8360600151831015611ed2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161082d90615c7d565b5050919050565b604080517fdd62ed3e0000000000000000000000000000000000000000000000000000000081523360048201523060248201529051869173ffffffffffffffffffffffffffffffffffffffff89169163dd62ed3e91604480820192602092909190829003018186803b158015611f4e57600080fd5b505afa158015611f62573d6000803e3d6000fd5b505050506040513d6020811015611f7857600080fd5b50511015610d0657610d06868686868686612546565b7f000000000000000000000000c05a5aa56df0dc97d6b9849a06627a079790014f81565b6115ae833384846117d5565b6000818373ffffffffffffffffffffffffffffffffffffffff1663dd62ed3e307f0000000000000000000000009831c93f3024e06db9eee6a5add6e122d18465be6040518363ffffffff1660e01b815260040161201c929190615a5d565b60206040518083038186803b15801561203457600080fd5b505afa158015612048573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061206c91906157d3565b1061207957506000612165565b6120a3837fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff613304565b156120b057506001612165565b6120da837ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe613304565b156120e757506002612165565b6120f2836000613304565b6120fb57600080fd5b612125837fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff613304565b1561213257506003612165565b61215c837ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe613304565b1561034f575060045b92915050565b60008373ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b1580156121d457600080fd5b505afa1580156121e8573d6000803e3d6000fd5b505050506040513d60208110156121fe57600080fd5b505190508281101561227157604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601260248201527f496e73756666696369656e7420746f6b656e0000000000000000000000000000604482015290519081900360640190fd5b8015610da557610da5848383613487565b600082118015612293575060648211155b61229c57600080fd5b60008573ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b15801561230557600080fd5b505afa158015612319573d6000803e3d6000fd5b505050506040513d602081101561232f57600080fd5b50519050848110156123a257604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601260248201527f496e73756666696369656e7420746f6b656e0000000000000000000000000000604482015290519081900360640190fd5b8015610d065760006127106123b78386613454565b816123be57fe5b04905080156123d2576123d2878483613487565b6123df8786838503613487565b50505050505050565b6123f382823361216b565b5050565b60008061240586868561365c565b915091508362ffffff1681830312610d06576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161082d90615c46565b6060610c7063219f5d1760e01b6040518060c0016040528085604001358152602001612481866000016020810190610b559190614feb565b815260200161249c866020016020810190610b559190614feb565b815260200185606001358152602001856080013581526020017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff815250604051602401610bee9190615cb4565b6000806124f6858461386f565b915091508362ffffff16818303126119e4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161082d90615c46565b6123f382333084613af7565b604080517fd505accf000000000000000000000000000000000000000000000000000000008152336004820152306024820152604481018790526064810186905260ff8516608482015260a4810184905260c48101839052905173ffffffffffffffffffffffffffffffffffffffff88169163d505accf9160e480830192600092919082900301818387803b15801561102557600080fd5b600073ffffffffffffffffffffffffffffffffffffffff8416600114156126075733935061262a565b73ffffffffffffffffffffffffffffffffffffffff84166002141561262a573093505b600080600061263c856000015161278f565b9194509250905073ffffffffffffffffffffffffffffffffffffffff8083169084161060008061266d868686613cd4565b73ffffffffffffffffffffffffffffffffffffffff1663128acb088b856126938f613d12565b73ffffffffffffffffffffffffffffffffffffffff8e16156126b5578d6126db565b876126d45773fffd8963efd1fc6a506488495d951d5263988d256126db565b6401000276a45b8d6040516020016126ec9190615da6565b6040516020818303038152906040526040518663ffffffff1660e01b815260040161271b959493929190615a84565b6040805180830381600087803b15801561273457600080fd5b505af1158015612748573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061276c9190615395565b915091508261277b578161277d565b805b6000039b9a5050505050505050505050565b6000808061279d8482613d44565b92506127aa846014613e44565b90506127b7846017613d44565b91509193909250565b6000610f7c856127d1868686613f34565b613fb1565b7f0000000000000000000000004446fc4eb47f2f6586f9faab68b3498f86c0752173ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480156128315750804710155b1561297a577f0000000000000000000000004446fc4eb47f2f6586f9faab68b3498f86c0752173ffffffffffffffffffffffffffffffffffffffff1663d0e30db0826040518263ffffffff1660e01b81526004016000604051808303818588803b15801561289e57600080fd5b505af11580156128b2573d6000803e3d6000fd5b50505050507f0000000000000000000000004446fc4eb47f2f6586f9faab68b3498f86c0752173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb83836040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b15801561294857600080fd5b505af115801561295c573d6000803e3d6000fd5b505050506040513d602081101561297257600080fd5b50610da59050565b73ffffffffffffffffffffffffffffffffffffffff83163014156129a8576129a3848383613487565b610da5565b610da584848484613af7565b516042111590565b8051606090610c709083906017907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe901613fe1565b600073ffffffffffffffffffffffffffffffffffffffff841660011415612a1a57339350612a3d565b73ffffffffffffffffffffffffffffffffffffffff841660021415612a3d573093505b6000806000612a4f856000015161278f565b9194509250905073ffffffffffffffffffffffffffffffffffffffff80841690831610600080612a80858786613cd4565b73ffffffffffffffffffffffffffffffffffffffff1663128acb088b85612aa68f613d12565b60000373ffffffffffffffffffffffffffffffffffffffff8e1615612acb578d612af1565b87612aea5773fffd8963efd1fc6a506488495d951d5263988d25612af1565b6401000276a45b8d604051602001612b029190615da6565b6040516020818303038152906040526040518663ffffffff1660e01b8152600401612b31959493929190615a84565b6040805180830381600087803b158015612b4a57600080fd5b505af1158015612b5e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612b829190615395565b91509150600083612b97578183600003612b9d565b82826000035b909850905073ffffffffffffffffffffffffffffffffffffffff8a16612bc9578b8114612bc957600080fd5b50505050505050949350505050565b6040517f70a0823100000000000000000000000000000000000000000000000000000000815260009073ffffffffffffffffffffffffffffffffffffffff8316906370a0823190612c2d903090600401615a3c565b60206040518083038186803b158015612c4557600080fd5b505afa158015612c59573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c7091906157d3565b6040805160008082526020820190925273ffffffffffffffffffffffffffffffffffffffff84169083906040518082805190602001908083835b60208310612cf457805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe09092019160209182019101612cb7565b6001836020036101000a03801982511681845116808217855250505050505090500191505060006040518083038185875af1925050503d8060008114612d56576040519150601f19603f3d011682016040523d82523d6000602084013e612d5b565b606091505b50509050806115ae57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600360248201527f5354450000000000000000000000000000000000000000000000000000000000604482015290519081900360640190fd5b6060600282511015612ddc57600080fd5b815167ffffffffffffffff81118015612df457600080fd5b50604051908082528060200260200182016040528015612e1e578160200160208202803683370190505b5090508281600183510381518110612e3257fe5b602090810291909101015281517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff015b8015610d9057600080612e9f87866001860381518110612e7e57fe5b6020026020010151878681518110612e9257fe5b60200260200101516141c8565b91509150612ec1848481518110612eb257fe5b602002602001015183836142b0565b846001850381518110612ed057fe5b602090810291909101015250507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01612e62565b6000806000612f138585614386565b604080517fffffffffffffffffffffffffffffffffffffffff000000000000000000000000606094851b811660208084019190915293851b81166034830152825160288184030181526048830184528051908501207fff0000000000000000000000000000000000000000000000000000000000000060688401529a90941b9093166069840152607d8301989098527f96e8ac4277198ff8b6f785478aa9a39f403cb768dd02cbee326c3e7da348845f609d808401919091528851808403909101815260bd909201909752805196019590952095945050505050565b60005b60018351038110156115ae5760008084838151811061300d57fe5b602002602001015185846001018151811061302457fe5b602002602001015191509150600061303c8383614386565b509050600061306c7f0000000000000000000000001f9aa39001ed0630da6854859d7b3ed2556485998585612f04565b90506000806000808473ffffffffffffffffffffffffffffffffffffffff16630902f1ac6040518163ffffffff1660e01b815260040160606040518083038186803b1580156130ba57600080fd5b505afa1580156130ce573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906130f291906156da565b506dffffffffffffffffffffffffffff1691506dffffffffffffffffffffffffffff1691506000808773ffffffffffffffffffffffffffffffffffffffff168a73ffffffffffffffffffffffffffffffffffffffff1614613154578284613157565b83835b91509150613198828b73ffffffffffffffffffffffffffffffffffffffff166370a082318a6040518263ffffffff1660e01b81526004016113509190615a3c565b95506131a586838361442b565b9450505050506000808573ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff16146131e9578260006131ed565b6000835b91509150600060028c51038a10613204578a613245565b6132457f0000000000000000000000001f9aa39001ed0630da6854859d7b3ed255648599898e8d6002018151811061323857fe5b6020026020010151612f04565b604080516000815260208101918290527f022c0d9f0000000000000000000000000000000000000000000000000000000090915290915073ffffffffffffffffffffffffffffffffffffffff87169063022c0d9f906132ad9086908690869060248101615e06565b600060405180830381600087803b1580156132c757600080fd5b505af11580156132db573d6000803e3d6000fd5b50506001909b019a50612ff29950505050505050505050565b8082038281111561216557600080fd5b60008060008473ffffffffffffffffffffffffffffffffffffffff1663095ea7b360e01b7f0000000000000000000000009831c93f3024e06db9eee6a5add6e122d18465be8660405160240161335b929190615ad6565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff000000000000000000000000000000000000000000000000000000009094169390931790925290516133e49190615a20565b6000604051808303816000865af19150503d8060008114613421576040519150601f19603f3d011682016040523d82523d6000602084013e613426565b606091505b5091509150818015610f7c575080511580610f7c575080806020019051810190610f7c919061528d565b4290565b600082158061346f5750508181028183828161346c57fe5b04145b61216557600080fd5b6060610c70826000602b613fe1565b6040805173ffffffffffffffffffffffffffffffffffffffff8481166024830152604480830185905283518084039091018152606490920183526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fa9059cbb000000000000000000000000000000000000000000000000000000001781529251825160009485949389169392918291908083835b6020831061355c57805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0909201916020918201910161351f565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d80600081146135be576040519150601f19603f3d011682016040523d82523d6000602084013e6135c3565b606091505b50915091508180156135f15750805115806135f157508080602001905160208110156135ee57600080fd5b50515b6119e457604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600260248201527f5354000000000000000000000000000000000000000000000000000000000000604482015290519081900360640190fd5b600080835185511461366d57600080fd5b6000855167ffffffffffffffff8111801561368757600080fd5b506040519080825280602002602001820160405280156136c157816020015b6136ae614e34565b8152602001906001900390816136a65790505b5090506000865167ffffffffffffffff811180156136de57600080fd5b5060405190808252806020026020018201604052801561371857816020015b613705614e34565b8152602001906001900390816136fd5790505b50905060005b8751811015613848576000806137478a848151811061373957fe5b60200260200101518961386f565b9150915061375482614501565b85848151811061376057fe5b60200260200101516000019060020b908160020b8152505061378181614501565b84848151811061378d57fe5b60200260200101516000019060020b908160020b815250508883815181106137b157fe5b60200260200101518584815181106137c557fe5b6020026020010151602001906fffffffffffffffffffffffffffffffff1690816fffffffffffffffffffffffffffffffff168152505088838151811061380757fe5b602002602001015184848151811061381b57fe5b6020908102919091018101516fffffffffffffffffffffffffffffffff909216910152505060010161371e565b5061385282614512565b60020b935061386081614512565b60020b92505050935093915050565b60008060008061387e866145fa565b90506000805b82811015613a9c57600080600061389a8b61278f565b92509250925060006138ad848484613cd4565b905060008063ffffffff8d166138d6576138c683614625565b600291820b9350900b9050613978565b6138e0838e6148bd565b8160020b915050809250508273ffffffffffffffffffffffffffffffffffffffff16633850c7bd6040518163ffffffff1660e01b815260040160e06040518083038186803b15801561393157600080fd5b505afa158015613945573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906139699190615715565b50505060029290920b93505050505b600189038714156139b9578473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff161099506139c8565b6139c28e6129bc565b9d508597505b6000871580613a6957508673ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff1610613a39578673ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff1610613a69565b8573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff16105b90508015613a7e579b82019b9a81019a613a89565b828d039c50818c039b505b5050600190950194506138849350505050565b5082613aed577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff850294507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff840293505b5050509250929050565b6040805173ffffffffffffffffffffffffffffffffffffffff85811660248301528481166044830152606480830185905283518084039091018152608490920183526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f23b872dd00000000000000000000000000000000000000000000000000000000178152925182516000948594938a169392918291908083835b60208310613bd457805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe09092019160209182019101613b97565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d8060008114613c36576040519150601f19603f3d011682016040523d82523d6000602084013e613c3b565b606091505b5091509150818015613c69575080511580613c695750808060200190516020811015613c6657600080fd5b50515b610d0657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600360248201527f5354460000000000000000000000000000000000000000000000000000000000604482015290519081900360640190fd5b6000613d0a7f000000000000000000000000c05a5aa56df0dc97d6b9849a06627a079790014f613d05868686613f34565b614cee565b949350505050565b60007f80000000000000000000000000000000000000000000000000000000000000008210613d4057600080fd5b5090565b600081826014011015613db857604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601260248201527f746f416464726573735f6f766572666c6f770000000000000000000000000000604482015290519081900360640190fd5b8160140183511015613e2b57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f746f416464726573735f6f75744f66426f756e64730000000000000000000000604482015290519081900360640190fd5b5001602001516c01000000000000000000000000900490565b600081826003011015613eb857604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f746f55696e7432345f6f766572666c6f77000000000000000000000000000000604482015290519081900360640190fd5b8160030183511015613f2b57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f746f55696e7432345f6f75744f66426f756e6473000000000000000000000000604482015290519081900360640190fd5b50016003015190565b613f3c614e4b565b8273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161115613f74579192915b506040805160608101825273ffffffffffffffffffffffffffffffffffffffff948516815292909316602083015262ffffff169181019190915290565b6000613fbd8383614cee565b90503373ffffffffffffffffffffffffffffffffffffffff82161461216557600080fd5b60608182601f01101561405557604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600e60248201527f736c6963655f6f766572666c6f77000000000000000000000000000000000000604482015290519081900360640190fd5b8282840110156140c657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600e60248201527f736c6963655f6f766572666c6f77000000000000000000000000000000000000604482015290519081900360640190fd5b8183018451101561413857604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f736c6963655f6f75744f66426f756e6473000000000000000000000000000000604482015290519081900360640190fd5b60608215801561415757604051915060008252602082016040526141bf565b6040519150601f8416801560200281840101858101878315602002848b0101015b81831015614190578051835260209283019201614178565b5050858452601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016604052505b50949350505050565b60008060006141d78585614386565b5090506000806141e8888888612f04565b73ffffffffffffffffffffffffffffffffffffffff16630902f1ac6040518163ffffffff1660e01b815260040160606040518083038186803b15801561422d57600080fd5b505afa158015614241573d6000803e3d6000fd5b505050506040513d606081101561425757600080fd5b5080516020909101516dffffffffffffffffffffffffffff918216935016905073ffffffffffffffffffffffffffffffffffffffff8781169084161461429e5780826142a1565b81815b90999098509650505050505050565b600080841161432057604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601a60248201527f494e53554646494349454e545f4f55545055545f414d4f554e54000000000000604482015290519081900360640190fd5b6000831180156143305750600082115b61433957600080fd5b60006143516103e861434b8688613454565b90613454565b905060006143656103e561434b86896132f4565b905061437c600182848161437557fe5b0490614e24565b9695505050505050565b6000808273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614156143c257600080fd5b8273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16106143fc5782846143ff565b83835b909250905073ffffffffffffffffffffffffffffffffffffffff821661442457600080fd5b9250929050565b600080841161449b57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601960248201527f494e53554646494349454e545f494e5055545f414d4f554e5400000000000000604482015290519081900360640190fd5b6000831180156144ab5750600082115b6144b457600080fd5b60006144c2856103e5613454565b905060006144d08285613454565b905060006144ea836144e4886103e8613454565b90614e24565b90508082816144f557fe5b04979650505050505050565b80600281900b8114610c7357600080fd5b6000806000805b84518110156145a75784818151811061452e57fe5b6020026020010151602001516fffffffffffffffffffffffffffffffff1685828151811061455857fe5b60200260200101516000015160020b028301925084818151811061457857fe5b6020026020010151602001516fffffffffffffffffffffffffffffffff16820191508080600101915050614519565b508082816145b157fe5b0592506000821280156145cc57508082816145c857fe5b0715155b15611ed25750507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01919050565b5160177fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffec9091010490565b6000806000808473ffffffffffffffffffffffffffffffffffffffff16633850c7bd6040518163ffffffff1660e01b815260040160e06040518083038186803b15801561467157600080fd5b505afa158015614685573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906146a99190615715565b50939750919550935050600161ffff84161191506146f59050576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161082d90615bd8565b6000808673ffffffffffffffffffffffffffffffffffffffff1663252c09d7856040518263ffffffff1660e01b81526004016147319190615dee565b60806040518083038186803b15801561474957600080fd5b505afa15801561475d573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061478191906158e0565b50509150915061478f613450565b63ffffffff168263ffffffff16146147a9578495506148b4565b60008361ffff1660018561ffff168761ffff160103816147c557fe5b06905060008060008a73ffffffffffffffffffffffffffffffffffffffff1663252c09d7856040518263ffffffff1660e01b81526004016148069190615dfd565b60806040518083038186803b15801561481e57600080fd5b505afa158015614832573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061485691906158e0565b9350509250925080614894576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161082d90615ba1565b82860363ffffffff811683870360060b816148ab57fe5b059a5050505050505b50505050915091565b60008063ffffffff831661493257604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600260248201527f4250000000000000000000000000000000000000000000000000000000000000604482015290519081900360640190fd5b604080516002808252606082018352600092602083019080368337019050509050838160008151811061496157fe5b602002602001019063ffffffff16908163ffffffff168152505060008160018151811061498a57fe5b63ffffffff9092166020928302919091018201526040517f883bdbfd00000000000000000000000000000000000000000000000000000000815260048101828152835160248301528351600093849373ffffffffffffffffffffffffffffffffffffffff8b169363883bdbfd9388939192839260449091019185820191028083838b5b83811015614a25578181015183820152602001614a0d565b505050509050019250505060006040518083038186803b158015614a4857600080fd5b505afa158015614a5c573d6000803e3d6000fd5b505050506040513d6000823e601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01682016040908152811015614aa357600080fd5b8101908080516040519392919084640100000000821115614ac357600080fd5b908301906020820185811115614ad857600080fd5b8251866020820283011164010000000082111715614af557600080fd5b82525081516020918201928201910280838360005b83811015614b22578181015183820152602001614b0a565b5050505090500160405260200180516040519392919084640100000000821115614b4b57600080fd5b908301906020820185811115614b6057600080fd5b8251866020820283011164010000000082111715614b7d57600080fd5b82525081516020918201928201910280838360005b83811015614baa578181015183820152602001614b92565b5050505090500160405250505091509150600082600081518110614bca57fe5b602002602001015183600181518110614bdf57fe5b6020026020010151039050600082600081518110614bf957fe5b602002602001015183600181518110614c0e57fe5b60200260200101510390508763ffffffff168260060b81614c2b57fe5b05965060008260060b128015614c5557508763ffffffff168260060b81614c4e57fe5b0760060b15155b15614c80577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff909601955b63ffffffff881673ffffffffffffffffffffffffffffffffffffffff0277ffffffffffffffffffffffffffffffffffffffff00000000602083901b1677ffffffffffffffffffffffffffffffffffffffffffffffff821681614cde57fe5b0496505050505050509250929050565b6000816020015173ffffffffffffffffffffffffffffffffffffffff16826000015173ffffffffffffffffffffffffffffffffffffffff1610614d3057600080fd5b508051602080830151604093840151845173ffffffffffffffffffffffffffffffffffffffff94851681850152939091168385015262ffffff166060808401919091528351808403820181526080840185528051908301207fff0000000000000000000000000000000000000000000000000000000000000060a085015294901b7fffffffffffffffffffffffffffffffffffffffff0000000000000000000000001660a183015260b58201939093527ff42b646464a7fc0f36704e2d2b419f73016e81e8dc1883ae2cc0bd6618708df360d5808301919091528251808303909101815260f5909101909152805191012090565b8082018281101561216557600080fd5b604080518082019091526000808252602082015290565b604080516060810182526000808252602082018190529181019190915290565b8035610c7381615f52565b60008083601f840112614e87578182fd5b50813567ffffffffffffffff811115614e9e578182fd5b602083019150836020808302850101111561442457600080fd5b600082601f830112614ec8578081fd5b81356020614edd614ed883615ec8565b615ea4565b8281528181019085830183850287018401881015614ef9578586fd5b855b85811015614f345781356fffffffffffffffffffffffffffffffff81168114614f22578788fd5b84529284019290840190600101614efb565b5090979650505050505050565b80518015158114610c7357600080fd5b600082601f830112614f61578081fd5b8135614f6f614ed882615ee6565b818152846020838601011115614f83578283fd5b816020850160208301379081016020019190915292915050565b80516dffffffffffffffffffffffffffff81168114610c7357600080fd5b805161ffff81168114610c7357600080fd5b803562ffffff81168114610c7357600080fd5b8035610c7381615f83565b600060208284031215614ffc578081fd5b813561500781615f52565b9392505050565b60008060408385031215615020578081fd5b823561502b81615f52565b946020939093013593505050565b60008060006060848603121561504d578081fd5b833561505881615f52565b925060208401359150604084013561506f81615f52565b809150509250925092565b600080600080600060a08688031215615091578283fd5b853561509c81615f52565b94506020860135935060408601356150b381615f52565b92506060860135915060808601356150ca81615f52565b809150509295509295909350565b600080600080608085870312156150ed578182fd5b84356150f881615f52565b93506020850135925060408501359150606085013561511681615f52565b939692955090935050565b60008060008060008060c08789031215615139578384fd5b863561514481615f52565b95506020870135945060408701359350606087013561516281615f95565b9598949750929560808101359460a0909101359350915050565b6000806020838503121561518e578182fd5b823567ffffffffffffffff8111156151a4578283fd5b6151b085828601614e76565b90969095509350505050565b600080600080608085870312156151d1578182fd5b843567ffffffffffffffff808211156151e8578384fd5b818701915087601f8301126151fb578384fd5b8135602061520b614ed883615ec8565b82815281810190858301885b858110156152405761522e8e8684358b0101614f51565b84529284019290840190600101615217565b50909950505088013592505080821115615258578384fd5b5061526587828801614eb8565b93505061527460408601614fcd565b915061528260608601614fe0565b905092959194509250565b60006020828403121561529e578081fd5b61500782614f41565b6000806000604084860312156152bb578081fd5b83359250602084013567ffffffffffffffff8111156152d8578182fd5b6152e486828701614e76565b9497909650939450505050565b600060208284031215615302578081fd5b813567ffffffffffffffff811115615318578182fd5b613d0a84828501614f51565b600080600060608486031215615338578081fd5b833567ffffffffffffffff81111561534e578182fd5b61535a86828701614f51565b93505061536960208501614fcd565b9150604084013561506f81615f83565b60006020828403121561538a578081fd5b813561500781615f74565b600080604083850312156153a7578182fd5b505080516020909101519092909150565b600080600080606085870312156153cd578182fd5b8435935060208501359250604085013567ffffffffffffffff808211156153f2578384fd5b818701915087601f830112615405578384fd5b813581811115615413578485fd5b886020828501011115615424578485fd5b95989497505060200194505050565b600060208284031215615444578081fd5b815167ffffffffffffffff81111561545a578182fd5b8201601f8101841361546a578182fd5b8051615478614ed882615ee6565b81815285602083850101111561548c578384fd5b610f7c826020830160208601615f26565b6000602082840312156154ae578081fd5b813567ffffffffffffffff808211156154c5578283fd5b90830190608082860312156154d8578283fd5b6040516080810181811083821117156154ed57fe5b6040528235828111156154fe578485fd5b61550a87828601614f51565b8252506020830135915061551d82615f52565b816020820152604083013560408201526060830135606082015280935050505092915050565b600060e08284031215615554578081fd5b60405160e0810181811067ffffffffffffffff8211171561557157fe5b60405261557d83614e6b565b815261558b60208401614e6b565b602082015261559c60408401614fcd565b60408201526155ad60608401614e6b565b60608201526080830135608082015260a083013560a08201526155d260c08401614e6b565b60c08201529392505050565b6000602082840312156155ef578081fd5b813567ffffffffffffffff811115615605578182fd5b820160808185031215615007578182fd5b600060e08284031215610836578081fd5b600060a08284031215610836578081fd5b60006101008284031215610836578081fd5b60006020828403121561565b578081fd5b813567ffffffffffffffff80821115615672578283fd5b9083019060408286031215615685578283fd5b60405160408101818110838211171561569a57fe5b6040528235828111156156ab578485fd5b6156b787828601614f51565b825250602083013592506156ca83615f52565b6020810192909252509392505050565b6000806000606084860312156156ee578081fd5b6156f784614f9d565b925061570560208501614f9d565b9150604084015161506f81615f83565b600080600080600080600060e0888a03121561572f578485fd5b875161573a81615f52565b602089015190975061574b81615f74565b955061575960408901614fbb565b945061576760608901614fbb565b935061577560808901614fbb565b925060a088015161578581615f95565b915061579360c08901614f41565b905092959891949750929550565b6000602082840312156157b2578081fd5b61500782614fcd565b6000602082840312156157cc578081fd5b5035919050565b6000602082840312156157e4578081fd5b5051919050565b600080604083850312156157fd578182fd5b82359150602083013561580f81615f52565b809150509250929050565b6000806000806080858703121561582f578182fd5b84359350602085013561584181615f52565b925060408501359150606085013561511681615f52565b60008060006060848603121561586c578081fd5b8335925060208401359150604084013561506f81615f52565b60008060008060006080868803121561589c578283fd5b8535945060208601359350604086013567ffffffffffffffff8111156158c0578384fd5b6158cc88828901614e76565b90945092505060608601356150ca81615f52565b600080600080608085870312156158f5578182fd5b845161590081615f83565b8094505060208501518060060b8114615917578283fd5b604086015190935061592881615f52565b915061528260608601614f41565b73ffffffffffffffffffffffffffffffffffffffff169052565b60008151808452615968816020860160208601615f26565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b60020b9052565b62ffffff169052565b606093841b7fffffffffffffffffffffffffffffffffffffffff000000000000000000000000908116825260e89390931b7fffffff0000000000000000000000000000000000000000000000000000000000166014820152921b166017820152602b0190565b6000828483379101908152919050565b60008251615a32818460208701615f26565b9190910192915050565b73ffffffffffffffffffffffffffffffffffffffff91909116815260200190565b73ffffffffffffffffffffffffffffffffffffffff92831681529116602082015260400190565b600073ffffffffffffffffffffffffffffffffffffffff8088168352861515602084015285604084015280851660608401525060a06080830152615acb60a0830184615950565b979650505050505050565b73ffffffffffffffffffffffffffffffffffffffff929092168252602082015260400190565b6000602080830181845280855180835260408601915060408482028701019250838701855b82811015615b6d577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc0888603018452615b5b858351615950565b94509285019290850190600101615b21565b5092979650505050505050565b6000602082526150076020830184615950565b6020810160058310615b9b57fe5b91905290565b60208082526003908201527f4f4e490000000000000000000000000000000000000000000000000000000000604082015260600190565b60208082526003908201527f4e454f0000000000000000000000000000000000000000000000000000000000604082015260600190565b60208082526012908201527f546f6f206d756368207265717565737465640000000000000000000000000000604082015260600190565b60208082526002908201527f5444000000000000000000000000000000000000000000000000000000000000604082015260600190565b60208082526013908201527f546f6f206c6974746c6520726563656976656400000000000000000000000000604082015260600190565b600060c082019050825182526020830151602083015260408301516040830152606083015160608301526080830151608083015260a083015160a083015292915050565b600061016082019050615d0c828451615936565b6020830151615d1e6020840182615936565b506040830151615d3160408401826159a1565b506060830151615d44606084018261599a565b506080830151615d57608084018261599a565b5060a083015160a083015260c083015160c083015260e083015160e083015261010080840151818401525061012080840151615d9582850182615936565b505061014092830151919092015290565b600060208252825160406020840152615dc26060840182615950565b905073ffffffffffffffffffffffffffffffffffffffff60208501511660408401528091505092915050565b61ffff91909116815260200190565b90815260200190565b600085825284602083015273ffffffffffffffffffffffffffffffffffffffff841660408301526080606083015261437c6080830184615950565b60008083357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe1843603018112615e75578283fd5b83018035915067ffffffffffffffff821115615e8f578283fd5b60200191503681900382131561442457600080fd5b60405181810167ffffffffffffffff81118282101715615ec057fe5b604052919050565b600067ffffffffffffffff821115615edc57fe5b5060209081020190565b600067ffffffffffffffff821115615efa57fe5b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01660200190565b60005b83811015615f41578181015183820152602001615f29565b83811115610da55750506000910152565b73ffffffffffffffffffffffffffffffffffffffff811681146115bd57600080fd5b8060020b81146115bd57600080fd5b63ffffffff811681146115bd57600080fd5b60ff811681146115bd57600080fdfea164736f6c6343000706000a