608060405234801561001057600080fd5b50615f6d80620000216000396000f3fe6080604052600436106103035760003560e01c8063842a2b6711610190578063c65a4915116100dc578063ddca3f4311610095578063ecb828241161006f578063ecb828241461080c578063f2fde38b1461082c578063f9a8c50b1461084c578063ff65226c146108615761030a565b8063ddca3f43146107c2578063de53fcd5146107d7578063e6f08c63146107ec5761030a565b8063c65a491514610709578063c879b51314610729578063c94103d71461073e578063ccddcdf21461076d578063d8dfeb451461078d578063dd62ed3e146107a25761030a565b8063a457c2d711610149578063b28798a211610123578063b28798a21461069c578063bbe024a9146106b1578063be040fb0146106c6578063c54e4862146106e95761030a565b8063a457c2d714610647578063a8c62e7614610667578063a9059cbb1461067c5761030a565b8063842a2b67146105de57806386f94aea146105f35780638da5cb5b146106085780638dceef0a1461061d57806394f2dd7b1461063257806395d89b411461030f5761030a565b80633f54c7541161024f5780636717f563116102085780636f307dc3116101e25780636f307dc31461057f57806370a0823114610594578063735de9f7146105b4578063827b268e146105c95761030a565b80636717f563146105425780636d636478146105575780636e553f651461056c5761030a565b80633f54c754146104a35780633fb0a024146104c35780634ec4f153146104e3578063544736e6146104f85780636311d06a1461050d5780636714f1eb146105225761030a565b806318c2473e116102bc57806325bee3e91161029657806325bee3e91461042c578063313ce5671461044157806333a100ca1461046357806339509351146104835761030a565b806318c2473e146103e25780631a65781c146103f757806323b872dd1461040c5761030a565b806306fdde031461030f578063095ea7b31461033a5780630c051135146103675780630e30adb41461038957806317d69bc8146103ab57806318160ddd146103c05761030a565b3661030a57005b600080fd5b34801561031b57600080fd5b50610324610876565b6040516103319190614fae565b60405180910390f35b34801561034657600080fd5b5061035a6103553660046149d4565b610886565b6040516103319190614fa3565b34801561037357600080fd5b5061037c61089d565b6040516103319190614eee565b34801561039557600080fd5b506103a96103a43660046148c7565b6108ac565b005b3480156103b757600080fd5b5061037c610c82565b3480156103cc57600080fd5b506103d5610c91565b6040516103319190615dd6565b3480156103ee57600080fd5b506103d5610c97565b34801561040357600080fd5b506103d5610c9d565b34801561041857600080fd5b5061035a610427366004614994565b610ca3565b34801561043857600080fd5b506103d5610cf7565b34801561044d57600080fd5b50610456610cfd565b6040516103319190615e8f565b34801561046f57600080fd5b506103a961047e3660046148c7565b610d02565b34801561048f57600080fd5b5061035a61049e3660046149d4565b610d43565b3480156104af57600080fd5b506103d56104be366004614aee565b610d84565b3480156104cf57600080fd5b506103d56104de366004614aee565b610dd2565b3480156104ef57600080fd5b506103d5610edd565b34801561050457600080fd5b5061035a610ee3565b34801561051957600080fd5b506103d5610eec565b34801561052e57600080fd5b506103a961053d366004614c1c565b610ef2565b34801561054e57600080fd5b506103a9610f30565b34801561056357600080fd5b5061035a611100565b6103d561057a366004614c4c565b611109565b34801561058b57600080fd5b5061037c611217565b3480156105a057600080fd5b506103d56105af3660046148c7565b611226565b3480156105c057600080fd5b5061037c611245565b3480156105d557600080fd5b506103d5611254565b3480156105ea57600080fd5b5061037c61125a565b3480156105ff57600080fd5b506103d5611269565b34801561061457600080fd5b5061037c61126f565b34801561062957600080fd5b5061035a61127e565b34801561063e57600080fd5b506103d5611286565b34801561065357600080fd5b5061035a6106623660046149d4565b61128c565b34801561067357600080fd5b5061037c6112c8565b34801561068857600080fd5b5061035a6106973660046149d4565b6112dd565b3480156106a857600080fd5b506103a96112ea565b3480156106bd57600080fd5b506103d56113a2565b3480156106d257600080fd5b506106db6113a8565b604051610331929190615e14565b3480156106f557600080fd5b506106db6107043660046148c7565b6113bc565b34801561071557600080fd5b5061037c610724366004614c1c565b6113d1565b34801561073557600080fd5b5061037c6113f8565b34801561074a57600080fd5b5061075e610759366004614acf565b611407565b60405161033193929190615e5e565b34801561077957600080fd5b5061075e6107883660046148c7565b611462565b34801561079957600080fd5b5061037c611483565b3480156107ae57600080fd5b506103d56107bd3660046148ff565b6114b5565b3480156107ce57600080fd5b506103d56114e0565b3480156107e357600080fd5b5061037c6114e6565b3480156107f857600080fd5b506103a9610807366004614c04565b6114f5565b34801561081857600080fd5b506103a96108273660046148c7565b611a8e565b34801561083857600080fd5b506103a96108473660046148c7565b611aa6565b34801561085857600080fd5b506103d5611b5c565b34801561086d57600080fd5b5061035a611b62565b6060610880611b70565b90505b90565b6000610893338484611cea565b5060015b92915050565b6009546001600160a01b031681565b6000806108b883611cfa565b9150915060006108c784611e33565b9050600081116108f25760405162461bcd60e51b81526004016108e990615920565b60405180910390fd5b600c54600b546011546001600160a01b03928316929091169060ff1660008082156109215750849050826109a3565b5060405163bdc7c12b60e01b815284906001600160a01b038a169063bdc7c12b90610950908990600401615dd6565b60206040518083038186803b15801561096857600080fd5b505afa15801561097c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109a09190614c34565b91505b60006109ae82611ef4565b90506000601760008c6001600160a01b03166001600160a01b031681526020019081526020016000209050600080601160029054906101000a90046001600160a01b03166001600160a01b0316638366de1a6040518061012001604052808b6001600160a01b031681526020018c6001600160a01b031681526020018a151581526020018f81526020018e81526020018981526020018781526020018660010154815260200186600001548152506040518263ffffffff1660e01b8152600401610a789190615c9b565b604080518083038186803b158015610a8f57600080fd5b505afa158015610aa3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ac79190614b54565b9150915081610ae85760405162461bcd60e51b81526004016108e99061556d565b898d6001600160a01b031663dd62ed3e30600660009054906101000a90046001600160a01b03166040518363ffffffff1660e01b8152600401610b2c929190614f02565b60206040518083038186803b158015610b4457600080fd5b505afa158015610b58573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b7c9190614c34565b1015610b9957600654610b99908e906001600160a01b0316611f00565b600660009054906101000a90046001600160a01b03166001600160a01b0316634b721f378e8c84426040518563ffffffff1660e01b8152600401610be09493929190614f7d565b600060405180830381600087803b158015610bfa57600080fd5b505af1158015610c0e573d6000803e3d6000fd5b505050506000610c2d85610c2188611ef4565b9063ffffffff611f0d16565b90508d6001600160a01b03167fdfebec39dd4f2421b3a4e2e6410de967947051ce26aee9cf8c77e614ae3b90878c83604051610c6a929190615e14565b60405180910390a25050505050505050505050505050565b600c546001600160a01b031681565b60015490565b600e5481565b60165490565b6001600160a01b0383166000908152600360209081526040808320338085529252822054610ce2918691610cdd908663ffffffff611f0d16565b611f56565b610ced84848461200a565b5060019392505050565b60105481565b601290565b610d0a612015565b6000546001600160a01b03908116911614610d375760405162461bcd60e51b81526004016108e9906157f9565b610d4081612019565b50565b3360008181526003602090815260408083206001600160a01b03871684529091528120549091610893918590610d7f908663ffffffff6120b116565b611cea565b6000610d8e610ee3565b8015610d9d5750610d9d61127e565b610db95760405162461bcd60e51b81526004016108e9906153f6565b610dc78787878787876120d6565b979650505050505050565b6000610ddc610ee3565b8015610deb5750610deb61127e565b610e075760405162461bcd60e51b81526004016108e9906153f6565b60005a9050610e1a8888888888886120d6565b91506000601036025a836152080103019050600960009054906101000a90046001600160a01b03166001600160a01b031663079d229f3361a3db8461374a0181610e6057fe5b046040518363ffffffff1660e01b8152600401610e7e929190614f1c565b602060405180830381600087803b158015610e9857600080fd5b505af1158015610eac573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ed09190614c34565b5050509695505050505050565b60145481565b60045442101590565b60135481565b610efa612015565b6000546001600160a01b03908116911614610f275760405162461bcd60e51b81526004016108e9906157f9565b610d4081612221565b600c54600b546011546001600160a01b03928316929091169060ff166000610f5783611ef4565b90506000610f6485611ef4565b905060008060008515610f7e575082915085905086610f87565b50839150869050855b60008311610fa75760405162461bcd60e51b81526004016108e990615059565b60115460405163855378b160e01b81526000916201000090046001600160a01b03169063855378b190610fe2908b908d908690600401614f35565b60206040518083038186803b158015610ffa57600080fd5b505afa15801561100e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110329190614c34565b90506000871561106857611061826110556018548861227590919063ffffffff16565b9063ffffffff6122af16565b9050611082565b60185461107f90611055878563ffffffff61227516565b90505b61108e838583886122f1565b600088156110aa576110a388610c218c611ef4565b90506110ba565b6110b787610c218d611ef4565b90505b7f89c28f2814c3b5c029895975e6da754b1bfc82368bec347d2b2d14c5353dac9986826040516110eb929190615e14565b60405180910390a15050505050505050505050565b60115460ff1681565b6000611113610ee3565b156111305760405162461bcd60e51b81526004016108e990615be9565b600083116111505760405162461bcd60e51b81526004016108e99061542d565b6001600160a01b0382161580159061117157506001600160a01b0382163014155b61118d5760405162461bcd60e51b81526004016108e9906150be565b600080611199856126b1565b915091506111ae6111a8611483565b82612791565b6013546111c1908263ffffffff6120b116565b6013556111ce84836127ed565b336001600160a01b03167fd7243f6f8212d5188fd054141cf6ea89cfc0d91facb8c3afe2f88a1358480142826040516112079190615dd6565b60405180910390a2509392505050565b600b546001600160a01b031681565b6001600160a01b0381166000908152600260205260409020545b919050565b6008546001600160a01b031681565b60155481565b6007546001600160a01b031681565b60045481565b6000546001600160a01b031690565b601054421090565b600d5481565b3360008181526003602090815260408083206001600160a01b03871684529091528120549091610893918590610d7f908663ffffffff611f0d16565b6011546201000090046001600160a01b031681565b600061089333848461200a565b6016545b8015610d405760006016600183038154811061130657fe5b600091825260208083209091015460408051634cde057560e11b815290516001600160a01b03909216945084926399bc0aea92600480840193829003018186803b15801561135357600080fd5b505afa158015611367573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061138b9190614c34565b905061139782826128ad565b5050600019016112ee565b60125481565b6000806113b433612b09565b915091509091565b6000806113c883612b09565b91509150915091565b601681815481106113de57fe5b6000918252602090912001546001600160a01b0316905081565b6006546001600160a01b031681565b6000806000611414610ee3565b8015611423575061142361127e565b61143f5760405162461bcd60e51b81526004016108e9906153f6565b600080600061144f898989612c5c565b50919b909a509098509650505050505050565b60176020526000908152604090208054600182015460029092015490919083565b60115460009060ff16156114a35750600b546001600160a01b0316610883565b50600c546001600160a01b0316610883565b6001600160a01b03918216600090815260036020908152604080832093909416825291909152205490565b60055481565b600a546001600160a01b031681565b600b546001600160a01b03161580156115175750600c546001600160a01b0316155b80156115235750600f54155b61153f5760405162461bcd60e51b81526004016108e9906159ed565b61156061155260608301604084016148c7565b6001600160a01b0316612db1565b61157c5760405162461bcd60e51b81526004016108e9906152d7565b61158f61155260408301602084016148c7565b6115ab5760405162461bcd60e51b81526004016108e9906159a9565b6115be61155260808301606084016148c7565b6115da5760405162461bcd60e51b81526004016108e990615123565b6130d4816080013511156116005760405162461bcd60e51b81526004016108e990615b33565b428135116116205760405162461bcd60e51b81526004016108e990615345565b42816101400135116116445760405162461bcd60e51b81526004016108e990615bb2565b806101200135816101000135111561166e5760405162461bcd60e51b81526004016108e990615aef565b6000816101000135116116935760405162461bcd60e51b81526004016108e990615470565b80610160013581610140013511156116bd5760405162461bcd60e51b81526004016108e99061515a565b6116ce610100820160e083016148c7565b6001600160a01b03166116e760e0830160c084016148c7565b6001600160a01b0316141561170e5760405162461bcd60e51b81526004016108e99061575c565b61172661172160e0830160c084016148c7565b612ded565b8061173f575061173f61155260e0830160c084016148c7565b61175b5760405162461bcd60e51b81526004016108e99061530e565b61176f611721610100830160e084016148c7565b806117895750611789611552610100830160e084016148c7565b6117a55760405162461bcd60e51b81526004016108e99061582e565b6117ad612dfa565b80356004556117c260408201602083016148c7565b600680546001600160a01b0319166001600160a01b03929092169190911790556117f260608201604083016148c7565b600780546001600160a01b0319166001600160a01b039290921691909117905561182260808201606083016148c7565b600980546001600160a01b0319166001600160a01b0392909216919091179055608081013560055561185a60c0820160a083016148c7565b600a80546001600160a01b0319166001600160a01b039290921691909117905561188a60e0820160c083016148c7565b600b80546001600160a01b0319166001600160a01b03929092169190911790556118bb610100820160e083016148c7565b600c80546001600160a01b0319166001600160a01b0392909216919091179055610100810135600d55610120810135600e55610140810135600f556101608101356010556119116101a082016101808301614a97565b6011805460ff19169115159190911790556119346101c082016101a08301614a97565b601180549115156101000261ff0019909216919091179055600061195e60408301602084016148c7565b6001600160a01b031663735de9f76040518163ffffffff1660e01b815260040160206040518083038186803b15801561199657600080fd5b505afa1580156119aa573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119ce91906148e3565b600880546001600160a01b0319166001600160a01b0383161790559050611a05611a006101e084016101c085016148c7565b612019565b611a13826101e00135612221565b611a3c611a2660e0840160c085016148c7565b611a37610100850160e086016148c7565b612e79565b611a8a611a516101a084016101808501614a97565b611a636101c085016101a08601614a97565b83611a7460e0870160c088016148c7565b611a85610100880160e089016148c7565b612ea1565b5050565b6000611a9982611cfa565b915050611a8a82826128ad565b611aae612015565b6000546001600160a01b03908116911614611adb5760405162461bcd60e51b81526004016108e9906157f9565b6001600160a01b038116611b015760405162461bcd60e51b81526004016108e99061519c565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b600f5481565b601154610100900460ff1681565b600c54606090600090611b8b906001600160a01b0316612efc565b90506060600e54600d5414611bd957611ba6600d5483612fce565b611bb2600e5484612fce565b604051602001611bc3929190614dbd565b6040516020818303038152906040529050611be8565b611be5600d5483612fce565b90505b6060601054600f5414611c3257611c00600f54613176565b611c0b601054613176565b604051602001611c1c929190614dbd565b6040516020818303038152906040529050611c40565b611c3d600f54613176565b90505b600b54611c55906001600160a01b03166131f0565b600c54611c6a906001600160a01b03166131f0565b601154611c799060ff166132da565b601154610100900460ff16611cab57604051806040016040528060058152602001640b54d1531360da1b815250611cbc565b604051806020016040528060008152505b8585604051602001611cd396959493929190614e23565b604051602081830303815290604052935050505090565b611cf5838383611f56565b505050565b60075460405163073086d760e31b81526000918291829182918291829182916001600160a01b03169063398436b890611d37908b90600401614eee565b60a06040518083038186803b158015611d4f57600080fd5b505afa158015611d63573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d879190614937565b600b54949950929750909550935091506001600160a01b038087169116148015611dbe5750600c546001600160a01b038581169116145b8015611dd2575060115460ff161515831515145b8015611de05750600d548210155b8015611dee5750600e548211155b8015611dfc5750600f548110155b8015611e0a57506010548111155b611e265760405162461bcd60e51b81526004016108e990615865565b9095509350505050915091565b600080611e3f83611ef4565b90508015611eeb576040516345f79d1b60e01b81526000906001600160a01b038516906345f79d1b90611e76903090600401614eee565b60206040518083038186803b158015611e8e57600080fd5b505afa158015611ea2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ec69190614c34565b905080821115611ee957611ee0828263ffffffff611f0d16565b92505050611240565b505b50600092915050565b6000610897823061331e565b611a8a828260001961341b565b6000611f4f83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250613502565b9392505050565b6001600160a01b038316611f7c5760405162461bcd60e51b81526004016108e990615c57565b6001600160a01b038216611fa25760405162461bcd60e51b81526004016108e990615963565b6001600160a01b0380841660008181526003602090815260408083209487168084529490915290819020849055517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92590611ffd908590615dd6565b60405180910390a3505050565b611cf583838361352e565b3390565b61202b816001600160a01b0316612db1565b6120475760405162461bcd60e51b81526004016108e990615087565b6011546040516001600160a01b038084169262010000900416907f439ae0d36946bc1b7917756b5772ae0c0292339ebc08be0f7bd1daa4a105537290600090a3601180546001600160a01b03909216620100000262010000600160b01b0319909216919091179055565b600082820183811015611f4f5760405162461bcd60e51b81526004016108e990615228565b6000814211156120f85760405162461bcd60e51b81526004016108e990615725565b6001600160a01b038316158015906121225750856001600160a01b0316836001600160a01b031614155b801561213757506001600160a01b0383163014155b6121535760405162461bcd60e51b81526004016108e9906157c2565b6000806000806121648b8b8b612c5c565b935093509350935060008b1561218a57612183888c848d8d8a8a61362a565b905061219b565b612198888c8c8c898961392a565b90505b83156121be57600c54600a546121be916001600160a01b03908116911686613a54565b8a6001600160a01b0316336001600160a01b03168d15157f2a832bb0f00081512bcfce296a158f7140a0d2884ee6bf3cb57e9562f09f97c08d89898960405161220a9493929190615e74565b60405180910390a49b9a5050505050505050505050565b600081116122415760405162461bcd60e51b81526004016108e99061589c565b6012546040518291907f530df85870a027fbdcb9a0732734b6471c5ecd497a0474aa81cb4300f820274090600090a3601255565b60008261228457506000610897565b8282028284828161229157fe5b0414611f4f5760405162461bcd60e51b81526004016108e9906156e4565b6000611f4f83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250613b00565b604080516002808252606080830184529260208301908036833701905050905061231a85612ded565b1561248157600660009054906101000a90046001600160a01b03166001600160a01b0316633fc8cef36040518163ffffffff1660e01b815260040160206040518083038186803b15801561236d57600080fd5b505afa158015612381573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906123a591906148e3565b816000815181106123b257fe5b60200260200101906001600160a01b031690816001600160a01b03168152505083816001815181106123e057fe5b6001600160a01b039283166020918202929092010152600854604051637ff36ab560e01b8152911690637ff36ab5908490612425908790869030904290600401615ddf565b6000604051808303818588803b15801561243e57600080fd5b505af1158015612452573d6000803e3d6000fd5b50505050506040513d6000823e601f3d908101601f1916820160405261247b91908101906149ff565b506126aa565b61248a84612ded565b156125d157848160008151811061249d57fe5b6001600160a01b0392831660209182029290920181019190915260065460408051633fc8cef360e01b815290519190931692633fc8cef3926004808301939192829003018186803b1580156124f157600080fd5b505afa158015612505573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061252991906148e3565b8160018151811061253657fe5b6001600160a01b0392831660209182029290920101526008546040516318cbafe560e01b81529116906318cbafe59061257b9085908790869030904290600401615e22565b600060405180830381600087803b15801561259557600080fd5b505af11580156125a9573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261247b91908101906149ff565b84816000815181106125df57fe5b60200260200101906001600160a01b031690816001600160a01b031681525050838160018151811061260d57fe5b6001600160a01b0392831660209182029290920101526008546040516338ed173960e01b81529116906338ed1739906126529085908790869030904290600401615e22565b600060405180830381600087803b15801561266c57600080fd5b505af1158015612680573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526126a891908101906149ff565b505b5050505050565b6011546000908190819060ff166126ca576019546126ce565b6018545b90506000670de0b6b3a76400008211156127285760006126fc83670de0b6b3a764000063ffffffff6122af16565b905061270e868263ffffffff6122af16565b9150612720828263ffffffff61227516565b95505061276a565b670de0b6b3a764000082101561276757612760612753670de0b6b3a76400008463ffffffff6122af16565b869063ffffffff61227516565b905061276a565b50835b6000811161278a5760405162461bcd60e51b81526004016108e99061542d565b9492505050565b61279a82612ded565b156127c3578034146127be5760405162461bcd60e51b81526004016108e990615a66565b611a8a565b34156127e15760405162461bcd60e51b81526004016108e9906151e2565b611a8a82333084613b37565b6001600160a01b0382166128135760405162461bcd60e51b81526004016108e9906158dd565b600154612826908263ffffffff6120b116565b6001556001600160a01b038216600090815260026020526040902054612852908263ffffffff6120b116565b6001600160a01b0383166000818152600260205260408082209390935591519091907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906128a1908590615dd6565b60405180910390a35050565b428111611a8a576040516345f79d1b60e01b815260009081906001600160a01b038516906345f79d1b906128e5903090600401614eee565b60206040518083038186803b1580156128fd57600080fd5b505afa158015612911573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906129359190614c34565b11156129b157826001600160a01b031663be040fb06040518163ffffffff1660e01b8152600401602060405180830381600087803b15801561297657600080fd5b505af115801561298a573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906129ae9190614c34565b90505b6001600160a01b03831660009081526017602052604090206016546002820154600019909101908114612a62576000601682815481106129ed57fe5b60009182526020808320909101546002808701546001600160a01b039092168085526017909352604090932090920182905560168054919350839290918110612a3257fe5b9060005260206000200160006101000a8154816001600160a01b0302191690836001600160a01b03160217905550505b846001600160a01b03167f33e1adfc662275b6dd743c8c4aaf326f171ed89fc35dd4bd21dd608bb23b4d238484600001548560010154604051612aa793929190615e5e565b60405180910390a26016805480612aba57fe5b60008281526020808220830160001990810180546001600160a01b03191690559092019092556001600160a01b0387168252601790526040812081815560018101829055600201555050505050565b6000806000612b1784611226565b905060008111612b395760405162461bcd60e51b81526004016108e9906150ec565b612b4161127e565b15612b5e5760405162461bcd60e51b81526004016108e99061537c565b612b666112ea565b6000612b70610c91565b600b54909150600090612b9590839061105590612753906001600160a01b0316611ef4565b600c54909150600090612bc790849061105590612bba906001600160a01b0316611ef4565b879063ffffffff61227516565b9050612bd38785613c20565b8115612bf057600b54612bf0906001600160a01b03163384613a54565b8015612c0d57600c54612c0d906001600160a01b03163383613a54565b336001600160a01b03167fe5b754fb1abb7f01b499791d0b820ae3b6af3424ac1c59768edb53f4ec31a9298383604051612c48929190615e14565b60405180910390a290945092505050915091565b6000806000808680612c755750601154610100900460ff165b612c915760405162461bcd60e51b81526004016108e9906154a7565b60008511612cb15760405162461bcd60e51b81526004016108e9906155f1565b600080612cbd88611cfa565b91509150428111612ce05760405162461bcd60e51b81526004016108e99061578b565b600080612cee8b8b8b613c45565b91509150600080612d038c8e88888888613d63565b506018549193509150612d2090611055848e63ffffffff61227516565b60055490925060009015612d7c57612d4a620186a06110556005548661227590919063ffffffff16565b90508d15612d6957612d62838263ffffffff6120b116565b9250612d7c565b612d79838263ffffffff611f0d16565b92505b60008311612d9c5760405162461bcd60e51b81526004016108e990615628565b919d919c509a50919850909650505050505050565b6000813f7fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470818114801590612de557508115155b949350505050565b6001600160a01b03161590565b6000546001600160a01b031615612e235760405162461bcd60e51b81526004016108e990615a2f565b6000612e2d612015565b600080546001600160a01b0319166001600160a01b0383169081178255604051929350917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350565b612e8282612efc565b60ff16600a0a601855612e9481612efc565b60ff16600a0a6019555050565b8415612ee557612eb081612ded565b612ebe57612ebe8184611f00565b838015612ed15750612ecf82612ded565b155b15612ee057612ee08284611f00565b6126aa565b612eee82612ded565b6126aa576126aa8284611f00565b6000612f0782612ded565b15612f1457506012611240565b60408051600481526024810182526020810180516001600160e01b031663313ce56760e01b17905290516000916060916001600160a01b03861691612f5891614d14565b600060405180830381855afa9150503d8060008114612f93576040519150601f19603f3d011682016040523d82523d6000602084013e612f98565b606091505b509150915081612fba5760405162461bcd60e51b81526004016108e990614fe1565b80806020019051810190611ee09190614c9d565b6060600080808086805b81156130335783158015612ffa5750600a8206151580612ffa57508760ff1685145b15613006575060019250805b8315613022578760ff1685141561301b578592505b6001909501945b600a82600190960195049150612fd8565b8760ff16851161305557848860ff168760020101039550600286039250613062565b8215613062576001909501945b60608667ffffffffffffffff8111801561307b57600080fd5b506040519080825280601f01601f1916602001820160405280156130a6576020820181803683370190505b5091925082919050600019870160005b88811015613166576000811180156130cd57508581145b1561310657601760f91b838380600190039450815181106130ea57fe5b60200101906001600160f81b031916908160001a90535061315e565b8361312357600360fc1b838380600190039450815181106130ea57fe5b600a840660300160f81b8383806001900394508151811061314057fe5b60200101906001600160f81b031916908160001a905350600a840493505b6001016130b6565b50909a9950505050505050505050565b6060600080600080600061318987613e97565b509450945094509450945061319d83613ed7565b6131a685613f1d565b6131af8761412f565b6131b885613ed7565b6131c185613ed7565b6040516020016131d5959493929190614d30565b60405160208183030381529060405295505050505050919050565b60606131fb82612ded565b15613220575060408051808201909152600381526208aa8960eb1b6020820152611240565b60408051600481526024810182526020810180516001600160e01b03166395d89b4160e01b17905290516000916060916001600160a01b0386169161326491614d14565b600060405180830381855afa9150503d806000811461329f576040519150601f19603f3d011682016040523d82523d6000602084013e6132a4565b606091505b5091509150816132c65760405162461bcd60e51b81526004016108e990615c20565b80806020019051810190611ee09190614b81565b6060811561330057506040805180820190915260018152604360f81b6020820152611240565b506040805180820190915260018152600560fc1b6020820152611240565b600061332983612ded565b1561333f57506001600160a01b03811631610897565b60006060846001600160a01b03166370a08231856040516024016133639190614eee565b6040516020818303038152906040529060e01b6020820180516001600160e01b03838183161783525050505060405161339c9190614d14565b600060405180830381855afa9150503d80600081146133d7576040519150601f19603f3d011682016040523d82523d6000602084013e6133dc565b606091505b5091509150816133fe5760405162461bcd60e51b81526004016108e9906155af565b808060200190518101906134129190614c34565b92505050610897565b60006060846001600160a01b031663095ea7b38585604051602401613441929190614f1c565b6040516020818303038152906040529060e01b6020820180516001600160e01b03838183161783525050505060405161347a9190614d14565b6000604051808303816000865af19150503d80600081146134b7576040519150601f19603f3d011682016040523d82523d6000602084013e6134bc565b606091505b50915091508180156134e65750805115806134e65750808060200190518101906134e69190614ab3565b6126aa5760405162461bcd60e51b81526004016108e99061525f565b600081848411156135265760405162461bcd60e51b81526004016108e99190614fae565b505050900390565b6001600160a01b0383166135545760405162461bcd60e51b81526004016108e990615aa9565b6001600160a01b03821661357a5760405162461bcd60e51b81526004016108e990615524565b6001600160a01b0383166000908152600260205260409020546135a3908263ffffffff611f0d16565b6001600160a01b0380851660009081526002602052604080822093909355908416815220546135d8908263ffffffff6120b116565b6001600160a01b0380841660008181526002602052604090819020939093559151908516907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90611ffd908590615dd6565b60008383111561364c5760405162461bcd60e51b81526004016108e990615022565b600c54613664906001600160a01b0316333086613b37565b600061366f88611ef4565b6001600160a01b03891660009081526017602052604090208054919250908015801561369d57506001820154155b156136f55760168054600284018190556001810182556000919091527fd833147d7dc355ba459fc788f669e58cfaf9dc25ddcd0702e87d69c7b51242890180546001600160a01b0319166001600160a01b038c161790555b828811156138d8578297506000831115613797576001600160a01b038a1663bdc7c12b6137288a8663ffffffff611f0d16565b6040518263ffffffff1660e01b81526004016137449190615dd6565b60206040518083038186803b15801561375c57600080fd5b505afa158015613770573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906137949190614c34565b98505b88156138d85760006137a7611483565b90506137b281612ded565b156138425761383b8b6001600160a01b031663732a950d8c6040518263ffffffff1660e01b81526004016020604051808303818588803b1580156137f557600080fd5b505af1158015613809573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061382e9190614c34565b8a9063ffffffff6120b116565b98506138d6565b8161385157613851818c611f00565b60405163140e25ad60e31b81526138d3906001600160a01b038d169063a0712d6890613881908e90600401615dd6565b602060405180830381600087803b15801561389b57600080fd5b505af11580156138af573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061382e9190614c34565b98505b505b6138e8888263ffffffff6120b116565b825560155461390d90613901888863ffffffff611f0d16565b9063ffffffff6120b116565b60155561391b8a8c8a6141bf565b50959998505050505050505050565b60008383101561394c5760405162461bcd60e51b81526004016108e990615022565b600061395e848463ffffffff6120b116565b60115490915060ff161561397557613975816142a6565b61398187333089613b37565b6001600160a01b03871660009081526017602052604090206001810154801580156139ab57508154155b15613a035760168054600284018190556001810182556000919091527fd833147d7dc355ba459fc788f669e58cfaf9dc25ddcd0702e87d69c7b51242890180546001600160a01b0319166001600160a01b038b161790555b613a13888263ffffffff6120b116565b6001830155601454613a2c90849063ffffffff6120b116565b601455600c54613a46906001600160a01b03168b88613a54565b509398975050505050505050565b613a5d83612ded565b15613af557604080516000808252602082019092526001600160a01b038416908390604051613a8c9190614d14565b60006040518083038185875af1925050503d8060008114613ac9576040519150601f19603f3d011682016040523d82523d6000602084013e613ace565b606091505b5050905080613aef5760405162461bcd60e51b81526004016108e9906152a0565b50611cf5565b611cf58383836141bf565b60008183613b215760405162461bcd60e51b81526004016108e99190614fae565b506000838581613b2d57fe5b0495945050505050565b60006060856001600160a01b03166323b872dd868686604051602401613b5f93929190614f59565b6040516020818303038152906040529060e01b6020820180516001600160e01b038381831617835250505050604051613b989190614d14565b6000604051808303816000865af19150503d8060008114613bd5576040519150601f19603f3d011682016040523d82523d6000602084013e613bda565b606091505b5091509150818015613c04575080511580613c04575080806020019051810190613c049190614ab3565b6126a85760405162461bcd60e51b81526004016108e9906154de565b6001600160a01b038216331415613c3b576127be82826143a6565b611a8a8282614462565b60115460009081908190819060ff1615613c7857600b54613c6e906001600160a01b0316611ef4565b9050849150613d2e565b600c54613c8d906001600160a01b0316611ef4565b60405163bdc7c12b60e01b81529091506001600160a01b0387169063bdc7c12b90613cbc908890600401615dd6565b60206040518083038186803b158015613cd457600080fd5b505afa158015613ce8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613d0c9190614c34565b915060008211613d2e5760405162461bcd60e51b81526004016108e9906156a1565b861580613d3b5750808211155b613d575760405162461bcd60e51b81526004016108e990615b7d565b90969095509350505050565b6001600160a01b03808716600090815260176020908152604080832060115482516101c0810184528b15158152600b54871694810194909452600c5486168484015260ff811615156060850152608084018a905260a0840189905260125460c085015260e084018890526101008401879052601354610120850152601554610140850152601454610160850152600182015461018085015281546101a08501529151633eac860d60e01b8152939485948594929362010000900490911691633eac860d91613e349190600401615d18565b60606040518083038186803b158015613e4c57600080fd5b505afa158015613e60573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613e849190614c70565b9350935093505096509650969350505050565b60008080808080613eac6201518088046144a7565b91999098919750610e10620151809092068281049750603c9290068281049650919091069350915050565b606080613ee38361453d565b9050600a831015613f165780604051602001613eff9190614dfa565b604051602081830303815290604052915050611240565b9050611240565b60608160011415613f4857506040805180820190915260038152622520a760e91b6020820152611240565b8160021415613f7157506040805180820190915260038152622322a160e91b6020820152611240565b8160031415613f9a575060408051808201909152600381526226a0a960e91b6020820152611240565b8160041415613fc3575060408051808201909152600381526220a82960e91b6020820152611240565b8160051415613fec57506040805180820190915260038152624d415960e81b6020820152611240565b81600614156140155750604080518082019091526003815262252aa760e91b6020820152611240565b816007141561403e575060408051808201909152600381526212955360ea1b6020820152611240565b8160081415614067575060408051808201909152600381526241554760e81b6020820152611240565b8160091415614090575060408051808201909152600381526205345560ec1b6020820152611240565b81600a14156140b9575060408051808201909152600381526213d0d560ea1b6020820152611240565b81600b14156140e257506040805180820190915260038152622727ab60e91b6020820152611240565b81600c141561410b575060408051808201909152600381526244454360e81b6020820152611240565b506040805180820190915260078152661253959053125160ca1b6020820152611240565b60608061413b8361453d565b60408051600280825281830190925291925060609190602082018180368337505083519192505060011901805b83518110156141b55783818151811061417d57fe5b602001015160f81c60f81b838383038151811061419657fe5b60200101906001600160f81b031916908160001a905350600101614168565b5090949350505050565b60006060846001600160a01b031663a9059cbb85856040516024016141e5929190614f1c565b6040516020818303038152906040529060e01b6020820180516001600160e01b03838183161783525050505060405161421e9190614d14565b6000604051808303816000865af19150503d806000811461425b576040519150601f19603f3d011682016040523d82523d6000602084013e614260565b606091505b509150915081801561428a57508051158061428a57508080602001905181019061428a9190614ab3565b6126aa5760405162461bcd60e51b81526004016108e99061565f565b600c546001600160a01b031660006142bd82611ef4565b905082811015611cf55760006142d9848363ffffffff611f0d16565b600b5460115460405163855378b160e01b81529293506001600160a01b0391821692600092620100009092049091169063855378b1906143229085908990600190600401614f35565b60206040518083038186803b15801561433a57600080fd5b505afa15801561434e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906143729190614c34565b9050600061438f826110556018548761227590919063ffffffff16565b905061439d83878684614618565b50505050505050565b6001600160a01b0382166143cc5760405162461bcd60e51b81526004016108e9906153b3565b6001600160a01b0382166000908152600260205260409020546143f5908263ffffffff611f0d16565b6001600160a01b038316600090815260026020526040902055600154614421908263ffffffff611f0d16565b6001556040516000906001600160a01b038416907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906128a1908590615dd6565b6001600160a01b03821660009081526003602090815260408083203380855292529091205461449d918491610cdd908563ffffffff611f0d16565b611a8a82826143a6565b60008080836226496581018262023ab1600483020590506004600362023ab18302010590910390600062164b09610fa0600185010205905060046105b58202058303601f019250600061098f84605002816144fe57fe5b0590506000605061098f83020585039050600b820560301994909401606402929092018301996002600c90940290910392909201975095509350505050565b60608161456257506040805180820190915260018152600360fc1b6020820152611240565b8160005b811561457a57600101600a82049150614566565b60608167ffffffffffffffff8111801561459357600080fd5b506040519080825280601f01601f1916602001820160405280156145be576020820181803683370190505b50859350905060001982015b831561460f57600a840660300160f81b828280600190039350815181106145ed57fe5b60200101906001600160f81b031916908160001a905350600a840493506145ca565b50949350505050565b604080516002808252606080830184529260208301908036833701905050905061464185612ded565b1561474c57600660009054906101000a90046001600160a01b03166001600160a01b0316633fc8cef36040518163ffffffff1660e01b815260040160206040518083038186803b15801561469457600080fd5b505afa1580156146a8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906146cc91906148e3565b816000815181106146d957fe5b60200260200101906001600160a01b031690816001600160a01b031681525050838160018151811061470757fe5b6001600160a01b03928316602091820292909201015260085460405163fb3bdb4160e01b815291169063fb3bdb41908490612425908790869030904290600401615ddf565b61475584612ded565b1561484657848160008151811061476857fe5b6001600160a01b0392831660209182029290920181019190915260065460408051633fc8cef360e01b815290519190931692633fc8cef3926004808301939192829003018186803b1580156147bc57600080fd5b505afa1580156147d0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906147f491906148e3565b8160018151811061480157fe5b6001600160a01b039283166020918202929092010152600854604051632512eca560e11b8152911690634a25d94a9061257b9086908690869030904290600401615e22565b848160008151811061485457fe5b60200260200101906001600160a01b031690816001600160a01b031681525050838160018151811061488257fe5b6001600160a01b039283166020918202929092010152600854604051634401edf760e11b8152911690638803dbee906126529086908690869030904290600401615e22565b6000602082840312156148d8578081fd5b8135611f4f81615f14565b6000602082840312156148f4578081fd5b8151611f4f81615f14565b60008060408385031215614911578081fd5b823561491c81615f14565b9150602083013561492c81615f14565b809150509250929050565b600080600080600060a0868803121561494e578081fd5b855161495981615f14565b602087015190955061496a81615f14565b604087015190945061497b81615f29565b6060870151608090970151959894975095949392505050565b6000806000606084860312156149a8578283fd5b83356149b381615f14565b925060208401356149c381615f14565b929592945050506040919091013590565b600080604083850312156149e6578182fd5b82356149f181615f14565b946020939093013593505050565b60006020808385031215614a11578182fd5b825167ffffffffffffffff811115614a27578283fd5b80840185601f820112614a38578384fd5b80519150614a4d614a4883615ec4565b615e9d565b8281528381019082850185850284018601891015614a69578687fd5b8693505b84841015614a8b578051835260019390930192918501918501614a6d565b50979650505050505050565b600060208284031215614aa8578081fd5b8135611f4f81615f29565b600060208284031215614ac4578081fd5b8151611f4f81615f29565b600080600060608486031215614ae3578283fd5b83356149b381615f29565b60008060008060008060c08789031215614b06578081fd5b8635614b1181615f29565b95506020870135614b2181615f14565b945060408701359350606087013592506080870135614b3f81615f14565b8092505060a087013590509295509295509295565b60008060408385031215614b66578182fd5b8251614b7181615f29565b6020939093015192949293505050565b600060208284031215614b92578081fd5b815167ffffffffffffffff80821115614ba9578283fd5b81840185601f820112614bba578384fd5b8051925081831115614bca578384fd5b614bdd601f8401601f1916602001615e9d565b9150828252856020848301011115614bf3578384fd5b61460f836020840160208401615ee4565b60006102008284031215614c16578081fd5b50919050565b600060208284031215614c2d578081fd5b5035919050565b600060208284031215614c45578081fd5b5051919050565b60008060408385031215614c5e578182fd5b82359150602083013561492c81615f14565b600080600060608486031215614c84578081fd5b8351925060208401519150604084015190509250925092565b600060208284031215614cae578081fd5b815160ff81168114611f4f578182fd5b6001600160a01b03169052565b6000815180845260208085019450808401835b83811015614d035781516001600160a01b031687529582019590820190600101614cde565b509495945050505050565b15159052565b60008251614d26818460208701615ee4565b9190910192915050565b60008651614d42818460208b01615ee4565b8651908301614d55828260208b01615ee4565b8651918101614d68838260208b01615ee4565b602d60f81b920191825250845190614d87826001830160208901615ee4565b8451918101614d9d836001830160208901615ee4565b6255544360e81b9201600181019290925250600401979650505050505050565b60008351614dcf818460208801615ee4565b808301602d60f81b815284519150614dee826001830160208801615ee4565b01600101949350505050565b6000600360fc1b82528251614e16816001850160208701615ee4565b9190910160010192915050565b600068020a1a7902827a7a6160bd1b825287516020614e488260098601838d01615ee4565b818401602d60f81b92508260098201528951614e6a81600a8401858e01615ee4565b80820184600a8201528a519250614e8783600b8301868e01615ee4565b895192019050614e9d82600b8301858c01615ee4565b81810184600b82015288519250614eba83600c8301868c01615ee4565b82810191505083600c82015286519350614eda84600d8301858a01615ee4565b909201600d019a9950505050505050505050565b6001600160a01b0391909116815260200190565b6001600160a01b0392831681529116602082015260400190565b6001600160a01b03929092168252602082015260400190565b6001600160a01b039384168152919092166020820152901515604082015260600190565b6001600160a01b039384168152919092166020820152604081019190915260600190565b6001600160a01b0394909416845260208401929092526040830152606082015260800190565b901515815260200190565b6000602082528251806020840152614fcd816040850160208701615ee4565b601f01601f19169190910160400192915050565b60208082526021908201527f41434f417373657448656c7065723a3a5f6765744173736574446563696d616c6040820152607360f81b606082015260800190565b6020808252601a908201527f41434f506f6f6c3a3a2053776170207265737472696374696f6e000000000000604082015260600190565b60208082526014908201527341434f506f6f6c3a3a204e6f2062616c616e636560601b604082015260600190565b6020808252601a908201527f41434f506f6f6c3a3a20496e76616c6964207374726174656779000000000000604082015260600190565b60208082526014908201527341434f506f6f6c3a3a20496e76616c696420746f60601b604082015260600190565b6020808252601f908201527f41434f506f6f6c3a3a204163636f756e742077697468206e6f20736861726500604082015260600190565b6020808252601b908201527f41434f506f6f6c3a3a20496e76616c69642043686920546f6b656e0000000000604082015260600190565b60208082526022908201527f41434f506f6f6c3a3a20496e76616c69642065787069726174696f6e2072616e604082015261676560f01b606082015260800190565b60208082526026908201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160408201526564647265737360d01b606082015260800190565b60208082526026908201527f41434f417373657448656c7065723a3a204574686572206973206e6f742065786040820152651c1958dd195960d21b606082015260800190565b6020808252601b908201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604082015260600190565b60208082526021908201527f41434f417373657448656c7065723a3a5f63616c6c417070726f7665455243326040820152600360fc1b606082015260800190565b6020808252601e908201527f41434f417373657448656c7065723a3a5f7472616e7366657241737365740000604082015260600190565b6020808252601d908201527f41434f506f6f6c3a3a20496e76616c69642041434f20466163746f7279000000604082015260600190565b6020808252601c908201527f41434f506f6f6c3a3a20496e76616c696420756e6465726c79696e6700000000604082015260600190565b6020808252601c908201527f41434f506f6f6c3a3a20496e76616c696420706f6f6c20737461727400000000604082015260600190565b6020808252601e908201527f41434f506f6f6c3a3a20506f6f6c206973206e6f742066696e69736865640000604082015260600190565b60208082526023908201527f45524332303a3a5f6275726e416374696f6e3a20496e76616c6964206163636f6040820152621d5b9d60ea1b606082015260800190565b6020808252601a908201527f41434f506f6f6c3a3a20506f6f6c206973206e6f74206f70656e000000000000604082015260600190565b60208082526023908201527f41434f506f6f6c3a3a20496e76616c696420636f6c6c61746572616c20616d6f6040820152621d5b9d60ea1b606082015260800190565b6020808252601e908201527f41434f506f6f6c3a3a20496e76616c696420737472696b652070726963650000604082015260600190565b6020808252601c908201527f41434f506f6f6c3a3a2054686520706f6f6c206f6e6c792073656c6c00000000604082015260600190565b60208082526026908201527f41434f417373657448656c7065723a3a5f63616c6c5472616e7366657246726f60408201526506d45524332360d41b606082015260800190565b60208082526029908201527f45524332303a3a5f7472616e73666572416374696f6e3a20496e76616c6964206040820152681c9958da5c1a595b9d60ba1b606082015260800190565b60208082526022908201527f41434f506f6f6c3a3a204578657263697365206973206e6f7420706f737369626040820152616c6560f01b606082015260800190565b60208082526022908201527f41434f417373657448656c7065723a3a5f676574417373657442616c616e636560408201526127b360f11b606082015260800190565b6020808252601e908201527f41434f506f6f6c3a3a20496e76616c696420746f6b656e20616d6f756e740000604082015260600190565b60208082526017908201527f41434f506f6f6c3a3a20496e76616c69642071756f7465000000000000000000604082015260600190565b60208082526022908201527f41434f417373657448656c7065723a3a5f63616c6c5472616e73666572455243604082015261032360f41b606082015260800190565b60208082526023908201527f41434f506f6f6c3a3a20546f6b656e20616d6f756e7420697320746f6f20736d604082015262185b1b60ea1b606082015260800190565b60208082526021908201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6040820152607760f81b606082015260800190565b60208082526017908201527f41434f506f6f6c3a3a205377617020646561646c696e65000000000000000000604082015260600190565b60208082526015908201527441434f506f6f6c3a3a2053616d652061737365747360581b604082015260600190565b6020808252601b908201527f41434f506f6f6c3a3a2041434f20746f6b656e20657870697265640000000000604082015260600190565b6020808252601d908201527f41434f506f6f6c3a3a20496e76616c69642064657374696e6174696f6e000000604082015260600190565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b6020808252601e908201527f41434f506f6f6c3a3a20496e76616c696420737472696b652061737365740000604082015260600190565b6020808252601b908201527f41434f506f6f6c3a3a20496e76616c69642041434f20546f6b656e0000000000604082015260600190565b60208082526021908201527f41434f506f6f6c3a3a20496e76616c6964206261736520766f6c6174696c69746040820152607960f81b606082015260800190565b60208082526023908201527f45524332303a3a5f6d696e74416374696f6e3a20496e76616c6964206163636f6040820152621d5b9d60ea1b606082015260800190565b60208082526023908201527f41434f506f6f6c3a3a204578657263697365206973206e6f7420617661696c61604082015262626c6560e81b606082015260800190565b60208082526026908201527f45524332303a3a5f617070726f7665416374696f6e3a20496e76616c696420736040820152653832b73232b960d11b606082015260800190565b60208082526024908201527f41434f506f6f6c3a3a20496e76616c69642041434f20666c61736820657865726040820152636369736560e01b606082015260800190565b60208082526022908201527f41434f506f6f6c3a3a696e69743a20416c726561647920696e697469616c697a604082015261195960f21b606082015260800190565b6020808252601d908201527f4f776e61626c653a20436f6e747261637420696e697469616c697a6564000000604082015260600190565b60208082526023908201527f41434f417373657448656c7065723a3a20496e76616c69642045544820616d6f6040820152621d5b9d60ea1b606082015260800190565b60208082526026908201527f45524332303a3a5f7472616e73666572416374696f6e3a20496e76616c69642060408201526539b2b73232b960d11b606082015260800190565b60208082526024908201527f41434f506f6f6c3a3a20496e76616c696420737472696b652070726963652072604082015263616e676560e01b606082015260800190565b6020808252602a908201527f41434f506f6f6c3a3a20546865206d6178696d756d2066656520616c6c6f7765604082015269642069732031322e352560b01b606082015260800190565b6020808252818101527f41434f506f6f6c3a3a20496e73756666696369656e74206c6971756964697479604082015260600190565b6020808252601c908201527f41434f506f6f6c3a3a20496e76616c69642065787069726174696f6e00000000604082015260600190565b6020808252601e908201527f41434f506f6f6c3a3a20506f6f6c20616c726561647920737461727465640000604082015260600190565b6020808252601f908201527f41434f417373657448656c7065723a3a5f676574417373657453796d626f6c00604082015260600190565b60208082526024908201527f45524332303a3a5f617070726f7665416374696f6e3a20496e76616c6964206f6040820152633bb732b960e11b606082015260800190565b81516001600160a01b03168152602080830151610120830191615cc090840182614cbe565b506040830151615cd36040840182614d0e565b50606083015160608301526080830151608083015260a083015160a083015260c083015160c083015260e083015160e083015261010080840151818401525092915050565b60006101c082019050615d2c828451614d0e565b6020830151615d3e6020840182614cbe565b506040830151615d516040840182614cbe565b506060830151615d646060840182614d0e565b506080838101519083015260a0808401519083015260c0808401519083015260e08084015190830152610100808401519083015261012080840151908301526101408084015190830152610160808401519083015261018080840151908301526101a092830151929091019190915290565b90815260200190565b600085825260806020830152615df86080830186614ccb565b6001600160a01b03949094166040830152506060015292915050565b918252602082015260400190565b600086825285602083015260a06040830152615e4160a0830186614ccb565b6001600160a01b0394909416606083015250608001529392505050565b9283526020830191909152604082015260600190565b93845260208401929092526040830152606082015260800190565b60ff91909116815260200190565b60405181810167ffffffffffffffff81118282101715615ebc57600080fd5b604052919050565b600067ffffffffffffffff821115615eda578081fd5b5060209081020190565b60005b83811015615eff578181015183820152602001615ee7565b83811115615f0e576000848401525b50505050565b6001600160a01b0381168114610d4057600080fd5b8015158114610d4057600080fdfea26469706673582212206965588fbf1cbbcd5e1819e3670fb69580070338e6ef53e6512dcdc0407453cb64736f6c63430006060033