60806040526122b8600b81905567169eec5d27e30000600c556032600d55600e8054600160ff1991821681179092556000600f556011805490911690556012556013553480156200004f57600080fd5b50604051620034ec380380620034ec83398101604081905262000072916200023d565b604080518082018252601481527f4d65746120426f756e74792048756e74726573730000000000000000000000006020808301918252835180850190945260068452654d424820494960d01b908401528151919291620000d59160029162000197565b508051620000eb90600390602084019062000197565b5050600160005550620000fe3362000145565b60016009819055336000908152601560205260409020805460ff19169091179055600a80546001600160a01b0319166001600160a01b0392909216919091179055620002ab565b600880546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b828054620001a5906200026f565b90600052602060002090601f016020900481019282620001c9576000855562000214565b82601f10620001e457805160ff191683800117855562000214565b8280016001018555821562000214579182015b8281111562000214578251825591602001919060010190620001f7565b506200022292915062000226565b5090565b5b8082111562000222576000815560010162000227565b6000602082840312156200025057600080fd5b81516001600160a01b03811681146200026857600080fd5b9392505050565b600181811c908216806200028457607f821691505b602082108103620002a557634e487b7160e01b600052602260045260246000fd5b50919050565b61323180620002bb6000396000f3fe6080604052600436106102ff5760003560e01c806389ece94111610190578063bedb86fb116100dc578063cfc2004c11610095578063e985e9c51161006f578063e985e9c514610906578063ecd2d5891461094f578063f232056814610985578063f2fde38b146109a557600080fd5b8063cfc2004c146108a9578063d547cfb7146108c9578063e927fc5c146108de57600080fd5b8063bedb86fb146107d8578063bf7b766d146107f8578063c23dc68f1461080d578063c395fcb31461083a578063c742709314610873578063c87b56dd1461088957600080fd5b806399a2557a11610149578063b80f55c911610123578063b80f55c91461075e578063b88d4fde1461077e578063b8ea3cb01461079e578063bc13a688146107be57600080fd5b806399a2557a146106fe5780639a19c7b01461071e578063a22cb4651461073e57600080fd5b806389ece941146106555780638d859f3e146106755780638da5cb5b1461068b5780638fa2a9f0146106a957806391b7f5ed146106c957806395d89b41146106e957600080fd5b806355f804b31161024f5780636ea5d1781161020857806376e81263116101e257806376e81263146105c75780637f4b73d2146105dd5780638462151c14610613578063853828b61461064057600080fd5b80636ea5d1781461057257806370a0823114610592578063715018a6146105b257600080fd5b806355f804b3146104b05780635bbb2177146104d0578063626be567146104fd5780636352211e146105125780636422039d146105325780636595171c1461055257600080fd5b806312c2449f116102bc57806323b872dd1161029657806323b872dd1461043a57806326a49e371461045a5780633502a7161461047a57806342842e0e1461049057600080fd5b806312c2449f146103dd57806318160ddd146103fd5780631ec858ec1461042457600080fd5b806301ffc9a71461030457806306fdde0314610339578063081812fc1461035b57806308dc9f4214610393578063095ea7b3146103a8578063103c4b53146103c8575b600080fd5b34801561031057600080fd5b5061032461031f36600461293c565b6109c5565b60405190151581526020015b60405180910390f35b34801561034557600080fd5b5061034e610a17565b60405161033091906129b1565b34801561036757600080fd5b5061037b6103763660046129c4565b610aa9565b6040516001600160a01b039091168152602001610330565b6103a66103a1366004612a9a565b610aed565b005b3480156103b457600080fd5b506103a66103c3366004612b05565b610db2565b3480156103d457600080fd5b5061034e610e52565b3480156103e957600080fd5b506103a66103f8366004612b3f565b610ee0565b34801561040957600080fd5b5060015460005403600019015b604051908152602001610330565b34801561043057600080fd5b5061041660125481565b34801561044657600080fd5b506103a6610455366004612b72565b610f29565b34801561046657600080fd5b506104166104753660046129c4565b6110b6565b34801561048657600080fd5b50610416600b5481565b34801561049c57600080fd5b506103a66104ab366004612b72565b6110c6565b3480156104bc57600080fd5b506103a66104cb366004612bae565b6110e6565b3480156104dc57600080fd5b506104f06104eb366004612bf6565b61112c565b6040516103309190612ca6565b34801561050957600080fd5b50600f54610416565b34801561051e57600080fd5b5061037b61052d3660046129c4565b6111f7565b34801561053e57600080fd5b506103a661054d366004612b05565b611202565b34801561055e57600080fd5b506103a661056d366004612ce8565b61127c565b34801561057e57600080fd5b506103a661058d366004612d91565b6112a8565b34801561059e57600080fd5b506104166105ad366004612ce8565b611408565b3480156105be57600080fd5b506103a6611456565b3480156105d357600080fd5b50610416600d5481565b3480156105e957600080fd5b506104166105f8366004612ce8565b6001600160a01b031660009081526017602052604090205490565b34801561061f57600080fd5b5061063361062e366004612ce8565b61146a565b6040516103309190612e50565b34801561064c57600080fd5b506103a6611572565b34801561066157600080fd5b506103a6610670366004612bae565b6115cd565b34801561068157600080fd5b50610416600c5481565b34801561069757600080fd5b506008546001600160a01b031661037b565b3480156106b557600080fd5b506103a66106c4366004612ce8565b61160f565b3480156106d557600080fd5b506103a66106e43660046129c4565b611639565b3480156106f557600080fd5b5061034e61167d565b34801561070a57600080fd5b50610633610719366004612e88565b61168c565b34801561072a57600080fd5b506103a6610739366004612ce8565b611813565b34801561074a57600080fd5b506103a6610759366004612ea6565b61183c565b34801561076a57600080fd5b506103a6610779366004612bf6565b6118d1565b34801561078a57600080fd5b506103a6610799366004612ed9565b611944565b3480156107aa57600080fd5b506103a66107b93660046129c4565b61198e565b3480156107ca57600080fd5b506011546103249060ff1681565b3480156107e457600080fd5b506103a66107f3366004612f40565b6119cb565b34801561080457600080fd5b50610416600181565b34801561081957600080fd5b5061082d6108283660046129c4565b611a41565b6040516103309190612f5b565b34801561084657600080fd5b50610324610855366004612ce8565b6001600160a01b031660009081526015602052604090205460ff1690565b34801561087f57600080fd5b5061041660135481565b34801561089557600080fd5b5061034e6108a43660046129c4565b611ac9565b3480156108b557600080fd5b506103a66108c43660046129c4565b611cd0565b3480156108d557600080fd5b5061034e611d04565b3480156108ea57600080fd5b5061037b73e4f3c38ae79e4c86641fb605872b86daaa1aae6581565b34801561091257600080fd5b50610324610921366004612f69565b6001600160a01b03918216600090815260076020908152604080832093909416825291909152205460ff1690565b34801561095b57600080fd5b5061041661096a366004612ce8565b6001600160a01b031660009081526016602052604090205490565b34801561099157600080fd5b5061037b6109a0366004612f93565b611d11565b3480156109b157600080fd5b506103a66109c0366004612ce8565b611d62565b60006301ffc9a760e01b6001600160e01b0319831614806109f657506380ac58cd60e01b6001600160e01b03198316145b80610a115750635b5e139f60e01b6001600160e01b03198316145b92915050565b606060028054610a2690612fdb565b80601f0160208091040260200160405190810160405280929190818152602001828054610a5290612fdb565b8015610a9f5780601f10610a7457610100808354040283529160200191610a9f565b820191906000526020600020905b815481529060010190602001808311610a8257829003601f168201915b5050505050905090565b6000610ab482611dd8565b610ad1576040516333d1c03960e21b815260040160405180910390fd5b506000908152600660205260409020546001600160a01b031690565b600b54600f541115610b395760405162461bcd60e51b815260206004820152601060248201526f4d42482049493a20536f6c646f75742160801b60448201526064015b60405180910390fd5b600e5460ff1615610b855760405162461bcd60e51b815260206004820152601660248201527526a1241024a49d1029b0b632b9903737ba1037b832b760511b6044820152606401610b30565b6000610b90600f5490565b9050600d54841115610be45760405162461bcd60e51b815260206004820152601a60248201527f4d42482049493a204d6178206c696d697420706572206d696e740000000000006044820152606401610b30565b600b54610bf1858361302b565b1115610c335760405162461bcd60e51b81526020600482015260116024820152701350920812524e8813585e081b1a5b5a5d607a1b6044820152606401610b30565b610c3c846110b6565b341015610c7f5760405162461bcd60e51b815260206004820152601160248201527056616c75652062656c6f7720707269636560781b6044820152606401610b30565b336000610c8e82878787611d11565b600a549091506001600160a01b03808316911614610cee5760405162461bcd60e51b815260206004820152601e60248201527f4d42482049493a204e6f7420617574686f72697a656420746f206d696e7400006044820152606401610b30565b6001600160a01b0382166000908152601760205260409020548511610d555760405162461bcd60e51b815260206004820152601960248201527f4d42482049493a20496e76616c69642074696d657374616d70000000000000006044820152606401610b30565b6001600160a01b0382166000908152601760209081526040808320429055601690915281208054889290610d8a90849061302b565b9091555050600f54610d9d90879061302b565b600f55610daa8287611e0d565b505050505050565b6000610dbd826111f7565b9050336001600160a01b03821614610df657610dd98133610921565b610df6576040516367d9dca160e11b815260040160405180910390fd5b60008281526006602052604080822080546001600160a01b0319166001600160a01b0387811691821790925591518593918516917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591a4505050565b60148054610e5f90612fdb565b80601f0160208091040260200160405190810160405280929190818152602001828054610e8b90612fdb565b8015610ed85780601f10610ead57610100808354040283529160200191610ed8565b820191906000526020600020905b815481529060010190602001808311610ebb57829003601f168201915b505050505081565b3360009081526015602052604090205460ff16610f0f5760405162461bcd60e51b8152600401610b3090613043565b6011805460ff191693151593909317909255601255601355565b6000610f3482611e27565b9050836001600160a01b0316816001600160a01b031614610f675760405162a1148160e81b815260040160405180910390fd5b60008281526006602052604090208054610f938187335b6001600160a01b039081169116811491141790565b610fbe57610fa18633610921565b610fbe57604051632ce44b5f60e11b815260040160405180910390fd5b6001600160a01b038516610fe557604051633a954ecd60e21b815260040160405180910390fd5b8015610ff057600082555b6001600160a01b038681166000908152600560205260408082208054600019019055918716808252919020805460010190554260a01b17600160e11b17600085815260046020526040812091909155600160e11b84169003611082576001840160008181526004602052604081205490036110805760005481146110805760008181526004602052604090208490555b505b83856001600160a01b0316876001600160a01b03166000805160206131dc83398151915260405160405180910390a4610daa565b600c54600090610a119083611e96565b6110e183838360405180602001604052806000815250611944565b505050565b3360009081526015602052604090205460ff166111155760405162461bcd60e51b8152600401610b3090613043565b805161112890601090602084019061288d565b5050565b6060816000816001600160401b03811115611149576111496129dd565b60405190808252806020026020018201604052801561119b57816020015b6040805160808101825260008082526020808301829052928201819052606082015282526000199092019101816111675790505b50905060005b8281146111ee576111c98686838181106111bd576111bd61307a565b90506020020135611a41565b8282815181106111db576111db61307a565b60209081029190910101526001016111a1565b50949350505050565b6000610a1182611ea2565b61120a611ead565b6001600160a01b0382166112605760405162461bcd60e51b815260206004820152601760248201527f4d42482049493a20556e6b6e6f776e20616464726573730000000000000000006044820152606401610b30565b6001600160a01b03909116600090815260176020526040902055565b611284611ead565b6001600160a01b03166000908152601560205260409020805460ff19166001179055565b3360009081526015602052604090205460ff166112d75760405162461bcd60e51b8152600401610b3090613043565b6000806112e3600f5490565b905060005b845181101561132a578381815181106113035761130361307a565b602002602001015183611316919061302b565b92508061132281613090565b9150506112e8565b50600b54611338838361302b565b111561137a5760405162461bcd60e51b81526020600482015260116024820152701350920812524e8813585e081b1a5b5a5d607a1b6044820152606401610b30565b60005b8451811015611401578381815181106113985761139861307a565b6020026020010151600f546113ad919061302b565b600f819055506113ef8582815181106113c8576113c861307a565b60200260200101518583815181106113e2576113e261307a565b6020026020010151611e0d565b806113f981613090565b91505061137d565b5050505050565b60006001600160a01b038216611431576040516323d3ad8160e21b815260040160405180910390fd5b506001600160a01b03166000908152600560205260409020546001600160401b031690565b61145e611ead565b6114686000611f07565b565b6060600080600061147a85611408565b90506000816001600160401b03811115611496576114966129dd565b6040519080825280602002602001820160405280156114bf578160200160208202803683370190505b5090506114ec60408051608081018252600080825260208201819052918101829052606081019190915290565b60015b838614611566576114ff81611f59565b9150816040015161155e5781516001600160a01b03161561151f57815194505b876001600160a01b0316856001600160a01b03160361155e57808387806001019850815181106115515761155161307a565b6020026020010181815250505b6001016114ef565b50909695505050505050565b3360009081526015602052604090205460ff166115a15760405162461bcd60e51b8152600401610b3090613043565b47806115ac57600080fd5b6115ca73e4f3c38ae79e4c86641fb605872b86daaa1aae6582611f95565b50565b3360009081526015602052604090205460ff166115fc5760405162461bcd60e51b8152600401610b3090613043565b805161112890601490602084019061288d565b611617611ead565b600a80546001600160a01b0319166001600160a01b0392909216919091179055565b611641611ead565b600c8190556040518181527f0e4af3870af723022c49a1ebcf7379a14fa7732c2dc92925407b8d219116a26b906020015b60405180910390a150565b606060038054610a2690612fdb565b60608183106116ae57604051631960ccad60e11b815260040160405180910390fd5b6000806116ba60005490565b905060018510156116ca57600194505b808411156116d6578093505b60006116e187611408565b90508486101561170057858503818110156116fa578091505b50611704565b5060005b6000816001600160401b0381111561171e5761171e6129dd565b604051908082528060200260200182016040528015611747578160200160208202803683370190505b5090508160000361175d57935061180c92505050565b600061176888611a41565b905060008160400151611779575080515b885b88811415801561178b5750848714155b156118005761179981611f59565b925082604001516117f85782516001600160a01b0316156117b957825191505b8a6001600160a01b0316826001600160a01b0316036117f857808488806001019950815181106117eb576117eb61307a565b6020026020010181815250505b60010161177b565b50505092835250909150505b9392505050565b61181b611ead565b6001600160a01b03166000908152601560205260409020805460ff19169055565b336001600160a01b038316036118655760405163b06307db60e01b815260040160405180910390fd5b3360008181526007602090815260408083206001600160a01b03871680855290835292819020805460ff191686151590811790915590519081529192917f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a35050565b3360009081526015602052604090205460ff166119005760405162461bcd60e51b8152600401610b3090613043565b60005b60ff81168211156110e15761193283838360ff168181106119265761192661307a565b90506020020135612038565b8061193c816130a9565b915050611903565b61194f848484610f29565b6001600160a01b0383163b156119885761196b84848484612043565b611988576040516368d2bf6b60e11b815260040160405180910390fd5b50505050565b611996611ead565b600b8190556040518181527fc83d13efd20405bd69a6e26fd71d067b31246b9fe9ad2b945536dd1770330d4890602001611672565b3360009081526015602052604090205460ff166119fa5760405162461bcd60e51b8152600401610b3090613043565b600e805460ff191682151590811790915560405160ff909116151581527f10e1c3fcaff06b68391033547e8f9bb8067d7c4a2e32659b0629153814d242d390602001611672565b6040805160808101825260008082526020820181905291810182905260608101919091526040805160808101825260008082526020820181905291810182905260608101919091526001831080611a9a57506000548310155b15611aa55792915050565b611aae83611f59565b9050806040015115611ac05792915050565b61180c8361212b565b6060611ad482611dd8565b611b385760405162461bcd60e51b815260206004820152602f60248201527f4552433732314d657461646174613a2055524920717565727920666f72206e6f60448201526e3732bc34b9ba32b73a103a37b5b2b760891b6064820152608401610b30565b60115460ff16158015611b4d57506012548210155b8015611b5b57506013548211155b15611bf25760148054611b6d90612fdb565b80601f0160208091040260200160405190810160405280929190818152602001828054611b9990612fdb565b8015611be65780601f10611bbb57610100808354040283529160200191611be6565b820191906000526020600020905b815481529060010190602001808311611bc957829003601f168201915b50505050509050919050565b600060108054611c0190612fdb565b80601f0160208091040260200160405190810160405280929190818152602001828054611c2d90612fdb565b8015611c7a5780601f10611c4f57610100808354040283529160200191611c7a565b820191906000526020600020905b815481529060010190602001808311611c5d57829003601f168201915b505050505090506000815111611c9f576040518060200160405280600081525061180c565b80611ca984612160565b604051602001611cba9291906130c8565b6040516020818303038152906040529392505050565b3360009081526015602052604090205460ff16611cff5760405162461bcd60e51b8152600401610b3090613043565b600d55565b60108054610e5f90612fdb565b604080516001600160a01b038616602082015290810184905260608101839052600090611d57906080016040516020818303038152906040528051906020012083612260565b90505b949350505050565b611d6a611ead565b6001600160a01b038116611dcf5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610b30565b6115ca81611f07565b600081600111158015611dec575060005482105b8015610a11575050600090815260046020526040902054600160e01b161590565b611128828260405180602001604052806000815250612284565b60008180600111611e7d57600054811015611e7d5760008181526004602052604081205490600160e01b82169003611e7b575b8060000361180c575060001901600081815260046020526040902054611e5a565b505b604051636f96cda160e11b815260040160405180910390fd5b600061180c82846130f7565b6000610a1182611e27565b6008546001600160a01b031633146114685760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610b30565b600880546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b604080516080810182526000808252602082018190529181018290526060810191909152600082815260046020526040902054610a11906122ea565b6000826001600160a01b03168260405160006040518083038185875af1925050503d8060008114611fe2576040519150601f19603f3d011682016040523d82523d6000602084013e611fe7565b606091505b50509050806110e15760405162461bcd60e51b815260206004820152601860248201527f4d42482049493a205472616e73666572206661696c65642e00000000000000006044820152606401610b30565b6115ca816000612331565b604051630a85bd0160e11b81526000906001600160a01b0385169063150b7a0290612078903390899088908890600401613116565b6020604051808303816000875af19250505080156120b3575060408051601f3d908101601f191682019092526120b091810190613153565b60015b612111573d8080156120e1576040519150601f19603f3d011682016040523d82523d6000602084013e6120e6565b606091505b508051600003612109576040516368d2bf6b60e11b815260040160405180910390fd5b805181602001fd5b6001600160e01b031916630a85bd0160e11b149050611d5a565b604080516080810182526000808252602082018190529181018290526060810191909152610a1161215b83611e27565b6122ea565b6060816000036121875750506040805180820190915260018152600360fc1b602082015290565b8160005b81156121b1578061219b81613090565b91506121aa9050600a83613186565b915061218b565b6000816001600160401b038111156121cb576121cb6129dd565b6040519080825280601f01601f1916602001820160405280156121f5576020820181803683370190505b5090505b8415611d5a5761220a60018361319a565b9150612217600a866131b1565b61222290603061302b565b60f81b8183815181106122375761223761307a565b60200101906001600160f81b031916908160001a905350612259600a86613186565b94506121f9565b600080600061226f8585612469565b9150915061227c816124d7565b509392505050565b61228e838361268d565b6001600160a01b0383163b156110e1576000548281035b6122b86000868380600101945086612043565b6122d5576040516368d2bf6b60e11b815260040160405180910390fd5b8181106122a557816000541461140157600080fd5b604080516080810182526001600160a01b038316815260a083901c6001600160401b03166020820152600160e01b831615159181019190915260e89190911c606082015290565b600061233c83611e27565b90508060008061235a86600090815260066020526040902080549091565b91509150841561239a5761236f818433610f7e565b61239a5761237d8333610921565b61239a57604051632ce44b5f60e11b815260040160405180910390fd5b80156123a557600082555b6001600160a01b038316600081815260056020526040902080546fffffffffffffffffffffffffffffffff0190554260a01b17600360e01b17600087815260046020526040812091909155600160e11b85169003612433576001860160008181526004602052604081205490036124315760005481146124315760008181526004602052604090208590555b505b60405186906000906001600160a01b038616906000805160206131dc833981519152908390a45050600180548101905550505050565b600080825160410361249f5760208301516040840151606085015160001a61249387828585612767565b945094505050506124d0565b82516040036124c857602083015160408401516124bd868383612854565b9350935050506124d0565b506000905060025b9250929050565b60008160048111156124eb576124eb6131c5565b036124f35750565b6001816004811115612507576125076131c5565b036125545760405162461bcd60e51b815260206004820152601860248201527f45434453413a20696e76616c6964207369676e617475726500000000000000006044820152606401610b30565b6002816004811115612568576125686131c5565b036125b55760405162461bcd60e51b815260206004820152601f60248201527f45434453413a20696e76616c6964207369676e6174757265206c656e677468006044820152606401610b30565b60038160048111156125c9576125c96131c5565b036126215760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202773272076616c604482015261756560f01b6064820152608401610b30565b6004816004811115612635576126356131c5565b036115ca5760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202776272076616c604482015261756560f01b6064820152608401610b30565b60008054908290036126b25760405163b562e8dd60e01b815260040160405180910390fd5b6001600160a01b03831660008181526005602090815260408083208054680100000000000000018802019055848352600490915281206001851460e11b4260a01b178317905582840190839083906000805160206131dc8339815191528180a4600183015b81811461273d57808360006000805160206131dc833981519152600080a4600101612717565b508160000361275e57604051622e076360e81b815260040160405180910390fd5b60005550505050565b6000807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a083111561279e575060009050600361284b565b8460ff16601b141580156127b657508460ff16601c14155b156127c7575060009050600461284b565b6040805160008082526020820180845289905260ff881692820192909252606081018690526080810185905260019060a0016020604051602081039080840390855afa15801561281b573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b0381166128445760006001925092505061284b565b9150600090505b94509492505050565b6000806001600160ff1b0383168161287160ff86901c601b61302b565b905061287f87828885612767565b935093505050935093915050565b82805461289990612fdb565b90600052602060002090601f0160209004810192826128bb5760008555612901565b82601f106128d457805160ff1916838001178555612901565b82800160010185558215612901579182015b828111156129015782518255916020019190600101906128e6565b5061290d929150612911565b5090565b5b8082111561290d5760008155600101612912565b6001600160e01b0319811681146115ca57600080fd5b60006020828403121561294e57600080fd5b813561180c81612926565b60005b8381101561297457818101518382015260200161295c565b838111156119885750506000910152565b6000815180845261299d816020860160208601612959565b601f01601f19169290920160200192915050565b60208152600061180c6020830184612985565b6000602082840312156129d657600080fd5b5035919050565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f191681016001600160401b0381118282101715612a1b57612a1b6129dd565b604052919050565b60006001600160401b03831115612a3c57612a3c6129dd565b612a4f601f8401601f19166020016129f3565b9050828152838383011115612a6357600080fd5b828260208301376000602084830101529392505050565b600082601f830112612a8b57600080fd5b61180c83833560208501612a23565b600080600060608486031215612aaf57600080fd5b833592506020840135915060408401356001600160401b03811115612ad357600080fd5b612adf86828701612a7a565b9150509250925092565b80356001600160a01b0381168114612b0057600080fd5b919050565b60008060408385031215612b1857600080fd5b612b2183612ae9565b946020939093013593505050565b80358015158114612b0057600080fd5b600080600060608486031215612b5457600080fd5b612b5d84612b2f565b95602085013595506040909401359392505050565b600080600060608486031215612b8757600080fd5b612b9084612ae9565b9250612b9e60208501612ae9565b9150604084013590509250925092565b600060208284031215612bc057600080fd5b81356001600160401b03811115612bd657600080fd5b8201601f81018413612be757600080fd5b611d5a84823560208401612a23565b60008060208385031215612c0957600080fd5b82356001600160401b0380821115612c2057600080fd5b818501915085601f830112612c3457600080fd5b813581811115612c4357600080fd5b8660208260051b8501011115612c5857600080fd5b60209290920196919550909350505050565b80516001600160a01b031682526020808201516001600160401b03169083015260408082015115159083015260609081015162ffffff16910152565b6020808252825182820181905260009190848201906040850190845b8181101561156657612cd5838551612c6a565b9284019260809290920191600101612cc2565b600060208284031215612cfa57600080fd5b61180c82612ae9565b60006001600160401b03821115612d1c57612d1c6129dd565b5060051b60200190565b600082601f830112612d3757600080fd5b81356020612d4c612d4783612d03565b6129f3565b82815260059290921b84018101918181019086841115612d6b57600080fd5b8286015b84811015612d865780358352918301918301612d6f565b509695505050505050565b60008060408385031215612da457600080fd5b82356001600160401b0380821115612dbb57600080fd5b818501915085601f830112612dcf57600080fd5b81356020612ddf612d4783612d03565b82815260059290921b84018101918181019089841115612dfe57600080fd5b948201945b83861015612e2357612e1486612ae9565b82529482019490820190612e03565b96505086013592505080821115612e3957600080fd5b50612e4685828601612d26565b9150509250929050565b6020808252825182820181905260009190848201906040850190845b8181101561156657835183529284019291840191600101612e6c565b600080600060608486031215612e9d57600080fd5b612b5d84612ae9565b60008060408385031215612eb957600080fd5b612ec283612ae9565b9150612ed060208401612b2f565b90509250929050565b60008060008060808587031215612eef57600080fd5b612ef885612ae9565b9350612f0660208601612ae9565b92506040850135915060608501356001600160401b03811115612f2857600080fd5b612f3487828801612a7a565b91505092959194509250565b600060208284031215612f5257600080fd5b61180c82612b2f565b60808101610a118284612c6a565b60008060408385031215612f7c57600080fd5b612f8583612ae9565b9150612ed060208401612ae9565b60008060008060808587031215612fa957600080fd5b612fb285612ae9565b9350602085013592506040850135915060608501356001600160401b03811115612f2857600080fd5b600181811c90821680612fef57607f821691505b60208210810361300f57634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b6000821982111561303e5761303e613015565b500190565b6020808252601f908201527f4d42482049493a2043616c6c6572206973206e6f74207468652061646d696e00604082015260600190565b634e487b7160e01b600052603260045260246000fd5b6000600182016130a2576130a2613015565b5060010190565b600060ff821660ff81036130bf576130bf613015565b60010192915050565b600083516130da818460208801612959565b8351908301906130ee818360208801612959565b01949350505050565b600081600019048311821515161561311157613111613015565b500290565b6001600160a01b038581168252841660208201526040810183905260806060820181905260009061314990830184612985565b9695505050505050565b60006020828403121561316557600080fd5b815161180c81612926565b634e487b7160e01b600052601260045260246000fd5b60008261319557613195613170565b500490565b6000828210156131ac576131ac613015565b500390565b6000826131c0576131c0613170565b500690565b634e487b7160e01b600052602160045260246000fdfeddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa2646970667358221220228d05df8da36b54135fda5c885fe8a3e8a72fe1a958e8e941f93beb16afcbc864736f6c634300080d0033000000000000000000000000e8f515990db3ef189c781021a64f14ac6e42de27