//
0x608060405260048054600160a01b60ff02191690556009600d553480156200002657600080fd5b5060405160a08062003a88833981018060405260a08110156200004857600080fd5b5080516020808301516040808501516060860151608090960151600180546001600160a01b03191633179081905583516001600160a01b03919091168152925195969395919490927f47faea4248095943034a5272688739ee6f2c28c2ead4e3584b59a918ae530dac929081900390910190a1836001600160a01b031663d246699d6040518163ffffffff1660e01b8152600401602060405180830381600087803b158015620000f757600080fd5b505af11580156200010c573d6000803e3d6000fd5b505050506040513d60208110156200012357600080fd5b505115156200019357604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f416c69616e614d696e74696e673a206973416c69616e612066616c7365000000604482015290519081900360640190fd5b808210620001ed576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602e81526020018062003a39602e913960400191505060405180910390fd5b600680546001600160a01b03199081166001600160a01b038881169190911790925560078054909116918616919091179055600e839055600f8290556010819055436009556107d062000280620002746143806200026084670de0b6b3a76400006200028c602090811b6200232217901c565b6200031160201b6200238b1790919060201c565b6200035b60201b60201c565b50505050505062000840565b60008215156200029f575060006200030b565b828202828482811515620002af57fe5b041462000308576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602181526020018062003a676021913960400191505060405180910390fd5b90505b92915050565b60006200030883836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250620003ea60201b60201c565b6001546001600160a01b03163314620003d557604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600760248201527f6e6f742063656f00000000000000000000000000000000000000000000000000604482015290519081900360640190fd5b620003e5620004af60201b60201c565b600a55565b60008183151562000496576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b838110156200045a57818101518382015260200162000440565b50505050905090810190601f168015620004885780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5060008385811515620004a557fe5b0495945050505050565b600954600f54811015620004c25750600f545b6010544390811115620004d457506010545b8181111580620004e45750600a54155b15620004f2575050620005ce565b600b54600062000508620005d0602090811b901c565b905081158062000516575080155b156200052b5750504360095550620005ce9050565b6200054781600c546200070960201b620026ab1790919060201c565b600c55604080518281526001602082015281517f46296264cd106b25aaa6bd852f4cf76bbd7d70550bbe6352bc3a47e35c6f1b2f929181900390910190a143600955620005c6620005af83620002608464e8d4a510006200028c602090811b6200232217901c565b6008546200070960201b620026ab1790919060201c565b600855505050505b565b600954600f5460009190811015620005e75750600f545b6010544390811115620005f957506010545b60006200061583836200077e60201b620023cd1790919060201c565b9050600062000635600a54836200028c60201b620023221790919060201c565b600c54600654604080517f70a082310000000000000000000000000000000000000000000000000000000081523060048201529051939450600093620006e793926001600160a01b0316916370a08231916024808301926020929190829003018186803b158015620006a657600080fd5b505afa158015620006bb573d6000803e3d6000fd5b505050506040513d6020811015620006d257600080fd5b5051906200077e602090811b620023cd17901c565b905081811015620006ff579450620007069350505050565b5093505050505b90565b6000828201838110156200030857604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b60006200030883836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250620007c860201b60201c565b6000818484111562000838576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382528381815181526020019150805190602001908083836000838110156200045a57818101518382015260200162000440565b505050900390565b6131e980620008506000396000f3fe608060405234801561001057600080fd5b50600436106102a05760003560e01c80637edbceb111610167578063bb872b4a116100ce578063df8de3e711610087578063df8de3e714610963578063e2ec6ec314610989578063e4b300f3146109f7578063f40f0f52146109ff578063f752298a14610a25578063ff924edf14610a2d576102a0565b8063bb872b4a14610807578063c0dfd25c14610824578063c326bf4f1461082c578063ce6e23b2146108a2578063d7e050e4146108aa578063db2e21bc1461095b576102a0565b80639b19251a116101205780639b19251a14610786578063a17fe032146107ac578063a9f8d181146107d2578063aac7e987146107da578063b047fb50146107e2578063b6b55f25146107ea576102a0565b80637edbceb1146106025780638456cb591461060a5780638ae39cac146106125780638d949d4b1461061a5780638f4ffcb1146106225780639409745b146106e5576102a0565b80634e0a33791161020b5780636af04a57116101c45780636af04a57146105665780636fbfd9551461056e5780637108cd76146105915780637158798814610599578063731883e4146105bf5780637b9417c8146105dc576102a0565b80634e0a3379146104b75780635c975abb146104dd5780635ceb590b146104e55780635e35359e14610502578063609e70c11461053857806368b4825414610540576102a0565b8063286dd3f51161025d578063286dd3f5146104245780632ba73c151461044a5780632e1a7d4d14610470578063382244f31461048d5780633f4ba83a146104955780634497fe571461049d576102a0565b80630519ce79146102a5578063073af057146102c95780630776c6fb1461036c5780630a0f8168146103925780631589a4fd1461039a57806324953eaa146103a2575b600080fd5b6102ad610a35565b604080516001600160a01b039092168252519081900360200190f35b61036a600480360360208110156102df57600080fd5b810190602081018135600160201b8111156102f957600080fd5b82018360208201111561030b57600080fd5b803590602001918460208302840111600160201b8311171561032c57600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250929550610a44945050505050565b005b61036a6004803603602081101561038257600080fd5b50356001600160a01b0316610a7c565b6102ad610b7a565b6102ad610b89565b610410600480360360208110156103b857600080fd5b810190602081018135600160201b8111156103d257600080fd5b8201836020820111156103e457600080fd5b803590602001918460208302840111600160201b8311171561040557600080fd5b509092509050610b98565b604080519115158252519081900360200190f35b6104106004803603602081101561043a57600080fd5b50356001600160a01b0316610c32565b61036a6004803603602081101561046057600080fd5b50356001600160a01b0316610c95565b61036a6004803603602081101561048657600080fd5b5035610d93565b61036a610da0565b61036a610e5b565b6104a5610f42565b60408051918252519081900360200190f35b61036a600480360360208110156104cd57600080fd5b50356001600160a01b0316610f48565b610410611046565b61036a600480360360208110156104fb57600080fd5b5035611056565b61036a6004803603606081101561051857600080fd5b506001600160a01b038135811691602081013590911690604001356110aa565b6104a56111d7565b6104a56004803603602081101561055657600080fd5b50356001600160a01b03166111dd565b6102ad61125e565b61036a6004803603604081101561058457600080fd5b508035906020013561126d565b6102ad611310565b61036a600480360360208110156105af57600080fd5b50356001600160a01b031661131f565b61036a600480360360208110156105d557600080fd5b5035611415565b610410600480360360208110156105f257600080fd5b50356001600160a01b0316611469565b61036a6114c4565b61036a61158f565b6104a5611677565b61036a61167d565b61036a6004803603608081101561063857600080fd5b6001600160a01b038235811692602081013592604082013590921691810190608081016060820135600160201b81111561067157600080fd5b82018360208201111561068357600080fd5b803590602001918460018302840111600160201b831117156106a457600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550611772945050505050565b61036a600480360360208110156106fb57600080fd5b810190602081018135600160201b81111561071557600080fd5b82018360208201111561072757600080fd5b803590602001918460208302840111600160201b8311171561074857600080fd5b91908080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525092955061183f945050505050565b6104106004803603602081101561079c57600080fd5b50356001600160a01b03166118c1565b61036a600480360360208110156107c257600080fd5b50356001600160a01b03166118d6565b6104a561192e565b6104a5611934565b6102ad61193a565b61036a6004803603602081101561080057600080fd5b5035611949565b61036a6004803603602081101561081d57600080fd5b50356119a1565b6104a56119fd565b6108526004803603602081101561084257600080fd5b50356001600160a01b0316611a03565b60408051602080825283518183015283519192839290830191858101910280838360005b8381101561088e578181015183820152602001610876565b505050509050019250505060405180910390f35b6104a5611b39565b61036a600480360360408110156108c057600080fd5b6001600160a01b038235169190810190604081016020820135600160201b8111156108ea57600080fd5b8201836020820111156108fc57600080fd5b803590602001918460208302840111600160201b8311171561091d57600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250929550611b3f945050505050565b61036a611bc8565b61036a6004803603602081101561097957600080fd5b50356001600160a01b0316611bd1565b6104106004803603602081101561099f57600080fd5b810190602081018135600160201b8111156109b957600080fd5b8201836020820111156109cb57600080fd5b803590602001918460208302840111600160201b831117156109ec57600080fd5b509092509050611da4565b6102ad611e37565b6104a560048036036020811015610a1557600080fd5b50356001600160a01b0316611e46565b6104a5611efb565b6104a5611f01565b6003546001600160a01b031681565b60005b8151811015610a7857610a708282815181101515610a6157fe5b90602001906020020151610d93565b600101610a47565b5050565b6001546001600160a01b03163314610acb5760408051600160e51b62461bcd0281526020600482015260076024820152600160c81b666e6f742063656f02604482015290519081900360640190fd5b6001600160a01b0381161515610b205760408051600160e51b62461bcd02815260206004820152600f60248201526001608c1b6e0616464722063616e277420626520302604482015290519081900360640190fd5b600280546001600160a01b0319166001600160a01b03838116919091179182905560408051929091168252517f55b80fb4511e0b943ccc1f4339e36bb5c0bd9d8907412a7e15b2902740d34192916020908290030190a150565b6001546001600160a01b031681565b6007546001600160a01b031681565b6001546000906001600160a01b03163314610bea5760408051600160e51b62461bcd0281526020600482015260076024820152600160c81b666e6f742063656f02604482015290519081900360640190fd5b60005b82811015610c2b57610c19848483818110610c0457fe5b905060200201356001600160a01b0316611f07565b15610c2357600191505b600101610bed565b5092915050565b6001546000906001600160a01b03163314610c845760408051600160e51b62461bcd0281526020600482015260076024820152600160c81b666e6f742063656f02604482015290519081900360640190fd5b610c8d82611f07565b90505b919050565b6001546001600160a01b03163314610ce45760408051600160e51b62461bcd0281526020600482015260076024820152600160c81b666e6f742063656f02604482015290519081900360640190fd5b6001600160a01b0381161515610d395760408051600160e51b62461bcd02815260206004820152600f60248201526001608c1b6e0616464722063616e277420626520302604482015290519081900360640190fd5b600480546001600160a01b0319166001600160a01b03838116919091179182905560408051929091168252517faabebeb2ff97ad067c61c8502e6a2abb9994358e1df40b67dcb61981d5432181916020908290030190a150565b610d9d3382611fd5565b50565b6002546001600160a01b03163314610e025760408051600160e51b62461bcd02815260206004820152601960248201527f796f7520617265206e6f74207468652063616e64696461746500000000000000604482015290519081900360640190fd5b600254600180546001600160a01b0319166001600160a01b0392831617908190556040805191909216815290517f47faea4248095943034a5272688739ee6f2c28c2ead4e3584b59a918ae530dac9181900360200190a1565b6001546001600160a01b03163314610eaa5760408051600160e51b62461bcd0281526020600482015260076024820152600160c81b666e6f742063656f02604482015290519081900360640190fd5b600454600160a01b900460ff161515610efd5760408051600160e51b62461bcd02815260206004820152600a6024820152600160b21b691b9bdd081c185d5cd95902604482015290519081900360640190fd5b60048054600160a01b60ff02191690556040805133815290517faeb196d352664784d1900b0e7414a8face7d29f4dae8c4b0cf68ed477423bbf49181900360200190a1565b600f5481565b6001546001600160a01b03163314610f975760408051600160e51b62461bcd0281526020600482015260076024820152600160c81b666e6f742063656f02604482015290519081900360640190fd5b6001600160a01b0381161515610fec5760408051600160e51b62461bcd02815260206004820152600f60248201526001608c1b6e0616464722063616e277420626520302604482015290519081900360640190fd5b600380546001600160a01b0319166001600160a01b03838116919091179182905560408051929091168252517f84b74c5bbb392e2b5031680a6778f6e49e0eed616d7f59d1b7cbe0dc06c814be916020908290030190a150565b600454600160a01b900460ff1681565b6001546001600160a01b031633146110a55760408051600160e51b62461bcd0281526020600482015260076024820152600160c81b666e6f742063656f02604482015290519081900360640190fd5b600d55565b6001546001600160a01b031633146110f95760408051600160e51b62461bcd0281526020600482015260076024820152600160c81b666e6f742063656f02604482015290519081900360640190fd5b826001600160a01b031663a9059cbb83836040518363ffffffff1660e01b815260040180836001600160a01b03166001600160a01b0316815260200182815260200192505050602060405180830381600087803b15801561115957600080fd5b505af115801561116d573d6000803e3d6000fd5b505050506040513d602081101561118357600080fd5b5051151561118d57fe5b6040805182815290516001600160a01b03808516923392918716917fc9e8848e763791df46dee01dfdd8f0eb58cd33dd15e0773146866af844e8f09b9181900360200190a4505050565b60105481565b60006001600160a01b038216151561123f5760408051600160e51b62461bcd02815260206004820152601b60248201527f416c69616e614d696e74696e673a207a65726f20616464726573730000000000604482015290519081900360640190fd5b506001600160a01b031660009081526011602052604090206005015490565b6005546001600160a01b031681565b6001546001600160a01b031633146112bc5760408051600160e51b62461bcd0281526020600482015260076024820152600160c81b666e6f742063656f02604482015290519081900360640190fd5b8082106112fd57604051600160e51b62461bcd02815260040180806020018281038252602e81526020018061301e602e913960400191505060405180910390fd5b61130561167d565b600f91909155601055565b6002546001600160a01b031681565b6001546001600160a01b0316331461136e5760408051600160e51b62461bcd0281526020600482015260076024820152600160c81b666e6f742063656f02604482015290519081900360640190fd5b600454600160a01b900460ff1615156113c15760408051600160e51b62461bcd02815260206004820152600a6024820152600160b21b691b9bdd081c185d5cd95902604482015290519081900360640190fd5b600580546001600160a01b0383166001600160a01b0319909116811790915560408051918252517f450db8da6efbe9c22f2347f7c2021231df1fc58d3ae9a2fa75d39fa4461993059181900360200190a150565b6001546001600160a01b031633146114645760408051600160e51b62461bcd0281526020600482015260076024820152600160c81b666e6f742063656f02604482015290519081900360640190fd5b600e55565b6001546000906001600160a01b031633146114bb5760408051600160e51b62461bcd0281526020600482015260076024820152600160c81b666e6f742063656f02604482015290519081900360640190fd5b610c8d82612250565b3360009081526011602052604090206114db61167d565b600061151f826004015461151364e8d4a51000611507600854876000015461232290919063ffffffff16565b9063ffffffff61238b16565b9063ffffffff6123cd16565b9050801561153157611531338261240f565b60085482546115509164e8d4a51000916115079163ffffffff61232216565b600483015560408051828152905133917f9a92c3472ba0d2d183e38c3801bae5d41d693c2803377eae8b0f94683862253e919081900360200190a25050565b6001546001600160a01b031633146115de5760408051600160e51b62461bcd0281526020600482015260076024820152600160c81b666e6f742063656f02604482015290519081900360640190fd5b600454600160a01b900460ff161561162c5760408051600160e51b62461bcd0281526020600482015260066024820152600160d21b651c185d5cd95902604482015290519081900360640190fd5b60048054600160a01b60ff021916600160a01b1790556040805133815290517f5ee71a369c8672edded508e624ffc9257fa1ae6886ef32905c18e60196bca3999181900360200190a1565b600a5481565b600954600f5481101561168f5750600f545b60105443908111156116a057506010545b81811115806116af5750600a54155b156116bb575050611770565b600b5460006116c86125a8565b90508115806116d5575080155b156116e857505043600955506117709050565b600c546116fb908263ffffffff6126ab16565b600c55604080518281526001602082015281517f46296264cd106b25aaa6bd852f4cf76bbd7d70550bbe6352bc3a47e35c6f1b2f929181900390910190a143600955611768611759836115078464e8d4a5100063ffffffff61232216565b6008549063ffffffff6126ab16565b600855505050505b565b6020810151600181146117cf5760408051600160e51b62461bcd02815260206004820152601c60248201527f416c69616e614d696e74696e673a20756e6b6e6f7720616374696f6e00000000604482015290519081900360640190fd5b8060011415611838576007546001600160a01b0384811691161461182757604051600160e51b62461bcd02815260040180806020018281038252604d8152602001806130b1604d913960600191505060405180910390fd5b60408201516118368682612708565b505b5050505050565b600454600160a01b900460ff161561188d5760408051600160e51b62461bcd0281526020600482015260066024820152600160d21b651c185d5cd95902604482015290519081900360640190fd5b60005b8151811015610a78576118b982828151811015156118aa57fe5b90602001906020020151611949565b600101611890565b60006020819052908152604090205460ff1681565b6001546001600160a01b031633146119255760408051600160e51b62461bcd0281526020600482015260076024820152600160c81b666e6f742063656f02604482015290519081900360640190fd5b610d9d81612b2c565b60095481565b60085481565b6004546001600160a01b031681565b600454600160a01b900460ff16156119975760408051600160e51b62461bcd0281526020600482015260066024820152600160d21b651c185d5cd95902604482015290519081900360640190fd5b610d9d3382612708565b6001546001600160a01b031633146119f05760408051600160e51b62461bcd0281526020600482015260076024820152600160c81b666e6f742063656f02604482015290519081900360640190fd5b6119f861167d565b600a55565b600c5481565b60606001600160a01b0382161515611a655760408051600160e51b62461bcd02815260206004820152601b60248201527f416c69616e614d696e74696e673a207a65726f20616464726573730000000000604482015290519081900360640190fd5b600060116000846001600160a01b03166001600160a01b03168152602001908152602001600020905060608160050154604051908082528060200260200182016040528015611abe578160200160208202803883390190505b509050600080611ad060018501612ca2565b90505b611ae08460010182612cb0565b15611b2f57600080611af56001870184612cbb565b865191935091508290869086908110611b0a57fe5b602090810290910101525050600191820191611b2890850182612cf8565b9050611ad3565b5090949350505050565b600e5481565b6001546001600160a01b03163314611b8e5760408051600160e51b62461bcd0281526020600482015260076024820152600160c81b666e6f742063656f02604482015290519081900360640190fd5b60005b8151811015611bc357611bbb838383815181101515611bac57fe5b90602001906020020151611fd5565b600101611b91565b505050565b61177033612b2c565b6001546001600160a01b03163314611c205760408051600160e51b62461bcd0281526020600482015260076024820152600160c81b666e6f742063656f02604482015290519081900360640190fd5b6001600160a01b0381161515611c63576040513390303180156108fc02916000818181858888f19350505050158015611c5d573d6000803e3d6000fd5b50610d9d565b60408051600160e01b6370a08231028152306004820152905182916000916001600160a01b038416916370a08231916024808301926020929190829003018186803b158015611cb157600080fd5b505afa158015611cc5573d6000803e3d6000fd5b505050506040513d6020811015611cdb57600080fd5b505160408051600160e01b63a9059cbb0281523360048201526024810183905290519192506001600160a01b0384169163a9059cbb916044808201926020929091908290030181600087803b158015611d3357600080fd5b505af1158015611d47573d6000803e3d6000fd5b505050506040513d6020811015611d5d57600080fd5b505060408051828152905133916001600160a01b038616917ff931edb47c50b4b4104c187b5814a9aef5f709e17e2ecf9617e860cacade929c9181900360200190a3505050565b6001546000906001600160a01b03163314611df65760408051600160e51b62461bcd0281526020600482015260076024820152600160c81b666e6f742063656f02604482015290519081900360640190fd5b60005b82811015610c2b57611e25848483818110611e1057fe5b905060200201356001600160a01b0316612250565b15611e2f57600191505b600101611df9565b6006546001600160a01b031681565b6001600160a01b0381166000908152601160205260408120600a541515611e71576000915050610c90565b600854600a5415611ecb57600b5460095443118015611e905750600081115b15611ec957611ec6611eb98261150764e8d4a51000611ead6125a8565b9063ffffffff61232216565b839063ffffffff6126ab16565b91505b505b611ef3826004015461151364e8d4a5100061150785876000015461232290919063ffffffff16565b949350505050565b600d5481565b600b5481565b6001546000906001600160a01b03163314611f595760408051600160e51b62461bcd0281526020600482015260076024820152600160c81b666e6f742063656f02604482015290519081900360640190fd5b6001600160a01b03821660009081526020819052604090205460ff1615610c90576001600160a01b03821660008181526020818152604091829020805460ff19169055815192835290517ff1abf01a1043b7c244d128e8595cf0c1d10743b022b03a02dffd8ca3bf729f5a9281900390910190a1506001919050565b6001600160a01b038216600090815260116020908152604080832084845260018082019093529220015480151561204057604051600160e51b62461bcd028152600401808060200182810382526023815260200180612fd86023913960400191505060405180910390fd5b815481111561208357604051600160e51b62461bcd0281526004018080602001828103825260238152602001806131226023913960400191505060405180910390fd5b61208b61167d565b60006120b7836004015461151364e8d4a51000611507600854886000015461232290919063ffffffff16565b905080156120c9576120c9858261240f565b6120d68360010185612d4a565b151561211657604051600160e51b62461bcd02815260040180806020018281038252603a81526020018061304c603a913960400191505060405180910390fd5b600583015461212c90600163ffffffff6123cd16565b60058401558254612143908363ffffffff6123cd16565b835560075460408051600160e11b635c46a7ef0281523060048201526001600160a01b0388811660248301526044820188905260806064830152600060848301819052925193169263b88d4fde9260c48084019391929182900301818387803b1580156121af57600080fd5b505af11580156121c3573d6000803e3d6000fd5b505060085485546121e6935064e8d4a5100092506115079163ffffffff61232216565b6004840155600b546121fe908363ffffffff6123cd16565b600b556040805183815260208101839052815186926001600160a01b038916927f02f25270a4d87bea75db541cdfe559334a275b4a233520ed6c0a2429667cca94929081900390910190a35050505050565b6001546000906001600160a01b031633146122a25760408051600160e51b62461bcd0281526020600482015260076024820152600160c81b666e6f742063656f02604482015290519081900360640190fd5b6001600160a01b03821660009081526020819052604090205460ff161515610c90576001600160a01b03821660008181526020818152604091829020805460ff19166001179055815192835290517fd1bba68c128cc3f427e5831b3c6f99f480b6efa6b9e80c757768f6124158cc3f9281900390910190a1506001919050565b600082151561233357506000612385565b82820282848281151561234257fe5b041461238257604051600160e51b62461bcd0281526004018080602001828103825260218152602001806131456021913960400191505060405180910390fd5b90505b92915050565b600061238283836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612dd0565b600061238283836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250612e7b565b60065460408051600160e01b6370a0823102815230600482015290516000926001600160a01b0316916370a08231916024808301926020929190829003018186803b15801561245d57600080fd5b505afa158015612471573d6000803e3d6000fd5b505050506040513d602081101561248757600080fd5b50519050818110156124cd57604051600160e51b62461bcd028152600401808060200182810382526023815260200180612ffb6023913960400191505060405180910390fd5b600c546124e0908363ffffffff6123cd16565b600c5560065460408051600160e01b63a9059cbb0281526001600160a01b038681166004830152602482018690529151919092169163a9059cbb9160448083019260209291908290030181600087803b15801561253c57600080fd5b505af1158015612550573d6000803e3d6000fd5b505050506040513d602081101561256657600080fd5b50511515611bc357604051600160e51b62461bcd02815260040180806020018281038252602b815260200180613086602b913960400191505060405180910390fd5b600954600f54600091908110156125be5750600f545b60105443908111156125cf57506010545b60006125e1828463ffffffff6123cd16565b905060006125fa600a548361232290919063ffffffff16565b600c5460065460408051600160e01b6370a08231028152306004820152905193945060009361268b93926001600160a01b0316916370a08231916024808301926020929190829003018186803b15801561265357600080fd5b505afa158015612667573d6000803e3d6000fd5b505050506040513d602081101561267d57600080fd5b50519063ffffffff6123cd16565b9050818110156126a15794506126a89350505050565b5093505050505b90565b6000828201838110156123825760408051600160e51b62461bcd02815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b600454600160a01b900460ff16156127565760408051600160e51b62461bcd0281526020600482015260066024820152600160d21b651c185d5cd95902604482015290519081900360640190fd5b600e5481101561279a57604051600160e51b62461bcd0281526004018080602001828103825260298152602001806131956029913960400191505060405180910390fd5b60075460408051600160e11b6331a9108f0281526004810184905290516001600160a01b03808616931691636352211e916024808301926020929190829003018186803b1580156127ea57600080fd5b505afa1580156127fe573d6000803e3d6000fd5b505050506040513d602081101561281457600080fd5b50516001600160a01b0316146128745760408051600160e51b62461bcd02815260206004820181905260248201527f416c69616e614d696e74696e673a206d75737420626520746865206f776e6572604482015290519081900360640190fd5b6001600160a01b0382166000908152601160205260409020600d54156128db57600d546003820154106128db57604051600160e51b62461bcd02815260040180806020018281038252602f815260200180613166602f913960400191505060405180910390fd5b60075460408051600160e01b636363bccd0281526004810185905290516000926001600160a01b031691636363bccd9160248083019260a0929190829003018186803b15801561292a57600080fd5b505afa15801561293e573d6000803e3d6000fd5b505050506040513d60a081101561295457600080fd5b5060800151905080151561299c57604051600160e51b62461bcd0281526004018080602001828103825260248152602001806130fe6024913960400191505060405180910390fd5b6129a461167d565b8154600090156129ef5760006129da846004015461151364e8d4a51000611507600854896000015461232290919063ffffffff16565b905080156129ec576129ec868261240f565b90505b60075460408051600160e01b6323b872dd0281526001600160a01b03888116600483015230602483015260448201889052915191909216916323b872dd91606480830192600092919082900301818387803b158015612a4d57600080fd5b505af1158015612a61573d6000803e3d6000fd5b50505050612a73836001018584612ed9565b506005830154612a8a90600163ffffffff6126ab16565b60058401558254612aa1908363ffffffff6126ab16565b8355600b54612ab6908363ffffffff6126ab16565b600b556008548354612ad89164e8d4a51000916115079163ffffffff61232216565b60048401556040805183815260208101839052815186926001600160a01b038916927f36af321ec8d3c75236829c5317affd40ddb308863a1236d2d277a4025cccee1e929081900390910190a35050505050565b6001600160a01b038116600090815260116020526040812080549091612b5460018401612ca2565b90505b612b648360010182612cb0565b15612c1857600080612b796001860184612cbb565b60075460408051600160e11b635c46a7ef0281523060048201526001600160a01b038b8116602483015260448201869052608060648301526000608483018190529251959750939550929091169263b88d4fde9260c480820193929182900301818387803b158015612bea57600080fd5b505af1158015612bfe573d6000803e3d6000fd5b505050505050612c118360010182612cf8565b9050612b57565b506000808355600483018190556001830190612c376002850182612f64565b5060006002919091018190556005830155600b54612c5b908263ffffffff6123cd16565b600b556040805182815290516001600160a01b038516917f5fafa99d0643513820be26656b45130b01e1c03062e1266bf36f88cbd3bd9695919081900360200190a2505050565b6000610c8d82600019612cf8565b600191909101541190565b6000808360010183815481101515612ccf57fe5b600091825260208083206002909202909101548083529590526040902060010154939492505050565b60010160005b600183015482108015612d34575060018301805483908110612d1c57fe5b600091825260209091206001600290920201015460ff165b15612d4457600190910190612cfe565b50919050565b600081815260208390526040812054801515612d6a576000915050612385565b600083815260208590526040812081815560019081019190915580850180546000198401908110612d9757fe5b600091825260209091206002918202016001908101805460ff191693151593909317909255949094018054600019019055509192915050565b600081831515612e6157604051600160e51b62461bcd0281526004018080602001828103825283818151815260200191508051906020019080838360005b83811015612e26578181015183820152602001612e0e565b50505050905090810190601f168015612e535780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5060008385811515612e6f57fe5b049150505b9392505050565b60008184841115612ed157604051600160e51b62461bcd02815260040180806020018281038252838181518152602001915080519060200190808383600083811015612e26578181015183820152602001612e0e565b505050900390565b6000828152602084905260408120805460019091018390558015612f01576001915050612e74565b6001808601805491612f1591908301612f85565b6000858152602087905260409020600180830190915586018054919250859183908110612f3e57fe5b60009182526020822060029182020192909255908601805460010190559150612e749050565b5080546000825560020290600052602060002090810190610d9d9190612fad565b815481835581811115611bc357600202816002028360005260206000209182019101611bc391905b6126a891905b80821115612fd3576000815560018101805460ff19169055600201612fb3565b509056fe416c69616e614d696e74696e673a2077697468647261773a206e6f7420676f6f642031416c69616e614d696e74696e673a20696e73756666696369656e742062616c616e6365416c69616e614d696e74696e673a20626567696e4174426c6f636b206d757374203c2073746f704174426c6f636b416c69616e614d696e74696e673a2077697468647261773a206e6f7420676f6f642c2072656d6f76652066726f6d20616d6f756e74546f6b656e416c69616e614d696e74696e673a206661696c656420746f207472616e736665722067616520746f6b656e416c69616e614d696e74696e673a20617070726f76616c20616e642077616e74206d696e742075736520616c69616e612c20627574207573656420746f6b656e2069736e277420416c69616e61416c69616e614d696e74696e673a2067656e65205f616d6f756e74206d757374203e2030416c69616e614d696e74696e673a2077697468647261773a206e6f7420676f6f642032536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77416c69616e614d696e74696e673a20746f6f206d756368206d696e696e67206174207468652073616d652074696d65416c69616e614d696e74696e673a20746f6b656e4964206d757374203e3d206d696e546f6b656e4964a165627a7a723058204f90a27d86dbc7bae7243486c551a50496cf6a1c6fffb4db41bb04df21ccee230029416c69616e614d696e74696e673a20626567696e4174426c6f636b206d757374203c2073746f704174426c6f636b536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f7700000000000000000000000017df9fbfc1cdab0f90eddc318c4f6fcada730cf2000000000000000000000000ec0cd5c1d61943a195bca7b381dc60f9f545a54000000000000000000000000000000000000000000000000000000000005524e00000000000000000000000000000000000000000000000000000000001b0193b0000000000000000000000000000000000000000000000000000000001b19fdb