0x60a060405234801561001057600080fd5b50604051615f8f380380615f8f83398101604081905261002f91610040565b6001600160a01b0316608052610070565b60006020828403121561005257600080fd5b81516001600160a01b038116811461006957600080fd5b9392505050565b608051615eff61009060003960008181606c015260d30152615eff6000f3fe608060405234801561001057600080fd5b506004361061002b5760003560e01c806353e7dbba14610030575b600080fd5b61004361003e3660046101e7565b61005f565b6040516001600160a01b03909116815260200160405180910390f35b6000336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146100ca576040517f1d25260a0000000000000000000000000000000000000000000000000000000081526000600482015260240160405180910390fd5b858989898888887f0000000000000000000000000000000000000000000000000000000000000000896040516100ff906101be565b6001600160a01b039889168152968816602088015294871660408701526bffffffffffffffffffffffff909316606086015260029190910b608085015262ffffff1660a0840152831660c08301529190911660e0820152610100018190604051809103906000f590508015801561017a573d6000803e3d6000fd5b506040519091506001600160a01b038216907f55ea6c6b31543d8e2ec6a72f71a79c0f4b72ed0d4757172b043d8f4f4cd8484890600090a298975050505050505050565b615c2c8061029e83390190565b80356001600160a01b03811681146101e257600080fd5b919050565b600080600080600080600080610100898b03121561020457600080fd5b61020d896101cb565b975061021b60208a016101cb565b965061022960408a016101cb565b95506060890135945060808901356bffffffffffffffffffffffff8116811461025157600080fd5b935060a0890135600281900b811461026857600080fd5b925060c089013562ffffff8116811461028057600080fd5b915061028e60e08a016101cb565b9050929598509295989093965056fe6101e060405260016000553480156200001757600080fd5b5060405162005c2c38038062005c2c8339810160408190526200003a9162000202565b306080526001600160a01b038881166101c0526001600160601b03861661012052828116610160528181166101405287811660a052861660c0526200007f87620000f5565b60e0526200008d86620000f5565b61010052600284900b6101805262ffffff83166101a052620000bc60016200017c602090811b6200202017901c565b620000d3600b6200017c60201b620020201760201c565b5050601980546001600160801b03191660011790555062000469945050505050565b6000816001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000136573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200015c9190620002cb565b620001699060126200030d565b6200017690600a62000426565b92915050565b805415620001a45760405163720080a360e11b81526000600482015260240160405180910390fd5b60005b6009811015620001e15764ed2eb01c00828260098110620001cc57620001cc62000437565b0155620001d9816200044d565b9050620001a7565b5050565b80516001600160a01b0381168114620001fd57600080fd5b919050565b600080600080600080600080610100898b0312156200022057600080fd5b6200022b89620001e5565b97506200023b60208a01620001e5565b96506200024b60408a01620001e5565b60608a01519096506001600160601b03811681146200026957600080fd5b8095505060808901518060020b81146200028257600080fd5b60a08a015190945062ffffff811681146200029c57600080fd5b9250620002ac60c08a01620001e5565b9150620002bc60e08a01620001e5565b90509295985092959890939650565b600060208284031215620002de57600080fd5b815160ff81168114620002f057600080fd5b9392505050565b634e487b7160e01b600052601160045260246000fd5b60ff8281168282160390811115620001765762000176620002f7565b600181815b808511156200036a5781600019048211156200034e576200034e620002f7565b808516156200035c57918102915b93841c93908002906200032e565b509250929050565b600082620003835750600162000176565b81620003925750600062000176565b8160018114620003ab5760028114620003b657620003d6565b600191505062000176565b60ff841115620003ca57620003ca620002f7565b50506001821b62000176565b5060208310610133831016604e8410600b8410161715620003fb575081810a62000176565b62000407838362000329565b80600019048211156200041e576200041e620002f7565b029392505050565b6000620002f060ff84168362000372565b634e487b7160e01b600052603260045260246000fd5b600060018201620004625762000462620002f7565b5060010190565b60805160a05160c05160e05161010051610120516101405161016051610180516101a0516101c051615616620006166000396000818161055001528181610a2b01528181612d3d0152818161323b01526135db01526000818161037601528181610e7101528181610eb701528181612df401526131180152600081816107a7015281816124180152818161244e0152612488015260008181610ae9015261214301526000818161060e0152818161115501528181611328015261185b0152600081816104ef0152818161080d015281816109490152610d8501526000818161090b0152611b7001526000818161096d0152611b1c01526000818161064101528181610ba501528181610e3901528181610f1f01528181610f77015281816110250152818161159d015281816116f50152818161175f01528181611a5801528181611ac00152611f360152600081816101ec01528181610b6d01528181610e0c01528181610ef401528181610f5601528181610ff80152818161156e015281816117160152818161173e01528181611a7901528181611a9f0152611f0b0152600061208801526156166000f3fe6080604052600436106101d85760003560e01c80638241dd1011610102578063c9ed237611610095578063dfdc938811610064578063dfdc938814610755578063e9756ef514610775578063fc741c7c14610795578063ffd3ca8f146107dc57600080fd5b8063c9ed237614610685578063d20e2211146106b3578063d4c30ceb146106e3578063da54a1241461072057600080fd5b8063bfc18aef116100d1578063bfc18aef146105ec578063c1b7bf74146105ff578063c55dae6314610632578063c7c641421461066557600080fd5b80638241dd101461051157806385d189171461053e57806399b3810214610572578063b46d4ce8146105cc57600080fd5b8063441055f51161017a5780635fec3779116101495780635fec3779146104535780636a204d0c1461049d57806375375e96146104bd5780637be5bdd1146104dd57600080fd5b8063441055f5146103ac578063490e6cbc146103cc5780634932cfd1146103ec578063523fdc711461041957600080fd5b80632a3a8d0e116101b65780632a3a8d0e146102ea5780633827b48b146103225780633c9b45221461034457806343f0179b1461036457600080fd5b8063217a4b70146101dd578063240ddd2e14610229578063248cdfac14610257575b600080fd5b3480156101e957600080fd5b507f00000000000000000000000000000000000000000000000000000000000000005b6040516001600160a01b0390911681526020015b60405180910390f35b34801561023557600080fd5b50610249610244366004614dd1565b6107fc565b604051908152602001610220565b34801561026357600080fd5b50610277610272366004614dff565b610837565b6040516102209190600060e0820190506001600160401b0380845116835280602085015116602084015280604085015116604084015250606083015161ffff80821660608501528060808601511660808501528060a08601511660a08501528060c08601511660c0850152505092915050565b3480156102f657600080fd5b5061030a610305366004614e2a565b610903565b6040516001600160401b039091168152602001610220565b34801561032e57600080fd5b5061034261033d366004614e99565b6109ed565b005b34801561035057600080fd5b5061034261035f366004614ed1565b610ab7565b34801561037057600080fd5b506103987f000000000000000000000000000000000000000000000000000000000000000081565b60405162ffffff9091168152602001610220565b3480156103b857600080fd5b5061030a6103c7366004614eff565b610d81565b3480156103d857600080fd5b506103426103e7366004614f65565b610dda565b3480156103f857600080fd5b50610249610407366004614fce565b601b6020526000908152604090205481565b34801561042557600080fd5b50610439610434366004614eff565b611111565b6040805161ffff9093168352602083019190915201610220565b34801561045f57600080fd5b5061047361046e366004614feb565b6111cb565b604080516001600160401b0390951685526020850193909352918301526060820152608001610220565b3480156104a957600080fd5b506102496104b8366004614dff565b6112f3565b3480156104c957600080fd5b506103426104d8366004615007565b61139c565b3480156104e957600080fd5b506102497f000000000000000000000000000000000000000000000000000000000000000081565b34801561051d57600080fd5b5061024961052c366004614fce565b601a6020526000908152604090205481565b34801561054a57600080fd5b5061020c7f000000000000000000000000000000000000000000000000000000000000000081565b34801561057e57600080fd5b5061059261058d366004614feb565b6115f7565b6040805182516001600160401b0316815260208084015163ffffffff1690820152918101516001600160a01b031690820152606001610220565b3480156105d857600080fd5b506103426105e736600461509f565b61166a565b6102496105fa36600461509f565b6117ea565b34801561060b57600080fd5b507f000000000000000000000000000000000000000000000000000000000000000061020c565b34801561063e57600080fd5b507f000000000000000000000000000000000000000000000000000000000000000061020c565b34801561067157600080fd5b50610249610680366004615132565b611b15565b34801561069157600080fd5b50601d546106a09061ffff1681565b60405161ffff9091168152602001610220565b3480156106bf57600080fd5b506106d36106ce366004615160565b611ba1565b6040519015158152602001610220565b3480156106ef57600080fd5b50601954604080516001600160801b038084166000190181168252600160801b909304909216602083015201610220565b34801561072c57600080fd5b5061074061073b36600461517d565b611bba565b60408051928352602083019190915201610220565b34801561076157600080fd5b50610342610770366004615007565b611d97565b34801561078157600080fd5b506106a0610790366004615160565b611f87565b3480156107a157600080fd5b506107c97f000000000000000000000000000000000000000000000000000000000000000081565b60405160029190910b8152602001610220565b3480156107e857600080fd5b5061030a6107f73660046151cc565b611fae565b60006108316001600160401b0383167f0000000000000000000000000000000000000000000000000000000000000000615210565b92915050565b6040805160e081018252600080825260208201819052918101829052606081018290526080810182905260a0810182905260c0810191909152601e8261ffff1662010000811061088957610889615227565b6040805160e08101825292909101546001600160401b038082168452600160401b820481166020850152600160801b8204169183019190915261ffff600160c01b820481166060840152600160d01b820481166080840152600160e01b8204811660a0840152600160f01b9091041660c082015292915050565b6000806109b17f0000000000000000000000000000000000000000000000000000000000000000610933866112f3565b61093d9088615210565b6109479190615210565b7f000000000000000000000000000000000000000000000000000000000000000061099a7f0000000000000000000000000000000000000000000000000000000000000000670de0b6b3a7640000615210565b6109a49190615210565b8082061515861691040190565b90506001600160401b038111156109e357604051630e92930560e11b8152600360048201526024015b60405180910390fd5b90505b9392505050565b600054600114610a1357604051630e92930560e11b8152600960048201526024016109da565b6002600055610a2061207d565b336001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614610a6c57604051630e92930560e11b8152600060048201526024016109da565b80610a84610a7f3685900385018561523d565b6120cb565b80546001600160a01b0392909216600160601b026bffffffffffffffffffffffff90921691909117905550506001600055565b600054600114610add57604051630e92930560e11b8152600960048201526024016109da565b600260008190555060007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166379022a9f6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610b45573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b6991906152b5565b90507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0384811690821614801590610bda57507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316846001600160a01b031614155b80610c1b5750816001600160a01b0316836001600160a01b031614158015610c1b5750610c05612112565b6001600160a01b0316836001600160a01b031614155b15610c3c57604051630e92930560e11b8152600060048201526024016109da565b6000816001600160a01b0316856001600160a01b031603610c8b5750601980546fffffffffffffffffffffffffffffffff1981166001179091556000196001600160801b039182160116610ca7565b50601980546001600160801b03808216909255600160801b9004165b6000610ccb610cb962030d4084615210565b620f4240808206151560011691040190565b905080820360008080806001600160a01b038a8116908a1614610cf357601b601a8688610cfa565b601a601b87875b6001600160a01b038f1660009081526020849052604090205493975091955093509150610d2790836152d2565b6001600160a01b038c1660009081526020858152604080832083905590879052812080549294508392909190610d5e9084906152d2565b90915550610d6f90508b8b846121bb565b50506001600055505050505050505050565b60007f000000000000000000000000000000000000000000000000000000000000000080840490840615158316016001600160401b038111156109e657604051630e92930560e11b8152600360048201526024016109da565b600054600114610e0057604051630e92930560e11b8152600960048201526024016109da565b60026000908155610e307f00000000000000000000000000000000000000000000000000000000000000006121da565b90506000610e5d7f00000000000000000000000000000000000000000000000000000000000000006121da565b9050620f42406000610ea7610e9762ffffff7f0000000000000000000000000000000000000000000000000000000000000000168a615210565b8381061515600116908490040190565b90506000610eed610edd62ffffff7f0000000000000000000000000000000000000000000000000000000000000000168a615210565b8481061515600116908590040190565b9050610f1a7f00000000000000000000000000000000000000000000000000000000000000008b8b6121bb565b610f457f00000000000000000000000000000000000000000000000000000000000000008b8a6121bb565b336001600160a01b031663ce2ecea67f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000008c8c87878e8e6040518963ffffffff1660e01b8152600401610fbf98979695949392919061530e565b600060405180830381600087803b158015610fd957600080fd5b505af1158015610fed573d6000803e3d6000fd5b50505050600061101c7f00000000000000000000000000000000000000000000000000000000000000006121da565b905060006110497f00000000000000000000000000000000000000000000000000000000000000006121da565b905061105584886152d2565b82108061106a575061106783876152d2565b81105b1561108b57604051630e92930560e11b8152600260048201526024016109da565b86820386820361109c600083612222565b6110a7600182612222565b604080518e8152602081018e9052908101839052606081018290526001600160a01b038f169033907fbdbdb71d7860376ba52b25a5028beea23581364a40522f6bcfb86bb1f2dca6339060800160405180910390a350506001600055505050505050505050505050565b6040517f523fdc7100000000000000000000000000000000000000000000000000000000815260048101839052811515602482015260009081906001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063523fdc71906044016040805180830381865afa15801561119b573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111bf9190615361565b915091505b9250929050565b600080808080601c816111eb6111e6368a90038a018a61523d565b612292565b815260208082019290925260409081016000908120825160608101845290546001600160401b038116808352600160401b820463ffffffff1695830195909552600160601b90046001600160a01b0316928101929092529092500361125e576000806000809450945094509450506112ec565b61129c6112866112716020890189615160565b61128160408a0160208b01614dff565b6122ab565b8251611297368a90038a018a61523d565b6122d8565b945060006112c66112b06020890189615160565b876112c160408b0160208c01614dff565b6123cd565b50909550905060008113156112dd578093506112e9565b6112e68161538f565b92505b50505b9193509193565b6040517f6a204d0c00000000000000000000000000000000000000000000000000000000815261ffff821660048201526000907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690636a204d0c906024015b602060405180830381865afa158015611378573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061083191906153c7565b6000546001146113c257604051630e92930560e11b8152600960048201526024016109da565b60026000556113cf61207d565b6000805b828110156115e157368484838181106113ee576113ee615227565b6060029190910191506000905061141b61140b6020840184615160565b6112816040850160208601614dff565b905061142f82604001358260040154111590565b1561143b5750506115d1565b600061144f6111e63685900385018561523d565b6000818152601c60209081526040808320815160608101835290546001600160401b038116808352600160401b820463ffffffff1694830194909452600160601b90046001600160a01b03169181019190915292935090036114b457505050506115d1565b600080806114d286856114cc368b90038b018b61523d565b8f6124de565b925092509250806001600160401b03166000036114f557505050505050506115d1565b83516115029082906153e0565b6000868152601c60205260409020805467ffffffffffffffff19166001600160401b03928316179055845182821691160361154757836020015163ffffffff16890198505b60008061155760208a018a615160565b611562578484611565565b83855b915091506115987f00000000000000000000000000000000000000000000000000000000000000008760400151846121bb565b6115c77f00000000000000000000000000000000000000000000000000000000000000008760400151836121bb565b5050505050505050505b6115da81615407565b90506113d3565b506115ec8482612666565b505060016000555050565b6040805160608101825260008082526020820181905291810191909152611626610a7f3684900384018461523d565b6040805160608101825291546001600160401b0381168352600160401b810463ffffffff166020840152600160601b90046001600160a01b03169082015292915050565b60005460011461169057604051630e92930560e11b8152600960048201526024016109da565b600260005561169d61207d565b6083608090931792831692600190811614600080806116bb896107fc565b90506002808816146116e28c86151583146116d6578a6116d8565b835b8d8815858d6126ec565b9094509250600090508080808761173c577f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000008d87611781565b7f00000000000000000000000000000000000000000000000000000000000000007f0000000000000000000000000000000000000000000000000000000000000000868e5b929650909450925090508187118061179857508086105b156117b957604051630e92930560e11b8152600b60048201526024016109da565b50506117c6818e866121bb565b6117d68282878760008d8d612930565b505060016000555050505050505050505050565b6000805460011461181157604051630e92930560e11b8152600960048201526024016109da565b600260005561181e61207d565b60039093169263ffffffff611837633b9aca0034615436565b111561185957604051630e92930560e11b8152600360048201526024016109da565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316637242ec1d6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156118b7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118db919061544a565b61ffff168761ffff16111561190657604051630e92930560e11b8152601160048201526024016109da565b6001808516146000808061191e633b9aca0034615467565b905060008461192d5789611936565b6119368b6107fc565b90506002808a1690036119b157600061194f86156129f9565b9050611960815464ed2eb01c001490565b15801561198a575061197181612a0f565b61ffff1686611981578d19611983565b8d5b61ffff1610155b156119ab57604051630e92930560e11b8152600a60048201526024016109da565b506119d3565b6119c18d828e881560018e6126ec565b90945092506119d0848261547b565b90505b6000856119eb576119e6828e6000610903565b6119f6565b6119f6826000610d81565b90506001600160401b03811615611a4357611a228e8e83611a1b633b9aca0034615436565b8a8f612a63565b97509150611a3082866152d2565b9450611a3e8e878f8a612d3b565b611a4c565b60001996503492505b505060008085611a9d577f00000000000000000000000000000000000000000000000000000000000000007f0000000000000000000000000000000000000000000000000000000000000000611ae0565b7f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000005b91509150611aef818f866121bb565b611afe82828787878e8e612930565b5050600160005550929a9950505050505050505050565b60006109e37f0000000000000000000000000000000000000000000000000000000000000000670de0b6b3a7640000611b4d876107fc565b611b579190615210565b611b619190615210565b611b6a856112f3565b611b94907f0000000000000000000000000000000000000000000000000000000000000000615210565b8082061515851691040190565b6000610831611baf836129f9565b5464ed2eb01c001490565b600080600183161560028085161482818314611bde57611bd9886107fc565b611be0565b865b90506000611bed846129f9565b90508315611bf9579819985b82611c0a57611c0782612de8565b91505b81600003611c22576000809550955050505050611d8e565b600080611c2e83612e3b565b9150915081600003611c4c5760008097509750505050505050611d8e565b6000611c5783612ef3565b60ff1682600081518110611c6d57611c6d615227565b602002602001015161ff00161790505b8215611d6f578061ffff168d61ffff1610611d6f578615611c9a57195b600080611ca98988858b612f48565b509092509050611cb9828c6152d2565b9a50611cc5818b6152d2565b9950600088611cd45781611cd6565b825b90508088118015611ce75750600081115b15611cf6578088039750611cfe565b505050611d6f565b611d09878787613018565b90965094508515611d6757611d1d86612ef3565b60ff1685600081518110611d3357611d33615227565b602002602001015161ff0016179350611d588a8b611d515785611fae565b8519611fae565b6001600160401b031615611cfe575b505050611c7d565b611d7a88600161310a565b611d84908961547b565b9750505050505050505b94509492505050565b600054600114611dbd57604051630e92930560e11b8152600960048201526024016109da565b6002600055611dca61207d565b6000819003611dee57604051630e92930560e11b81526004818101526024016109da565b60008080805b84811015611f055736868683818110611e0f57611e0f615227565b9050606002019050600080600080611e278c8661314f565b63ffffffff81169a909a019992965090945092509050611e4a6020860186615160565b15611e9857826000856001600160401b031611611e68576000611e71565b611e71856107fc565b611e7b91906152d2565b611e85908a6152d2565b9850611e9182896152d2565b9750611eef565b826000856001600160401b031611611eb1576000611ecc565b611ecc85611ec56040890160208a01614dff565b6000611b15565b611ed691906152d2565b611ee090896152d2565b9750611eec828a6152d2565b98505b505050505080611efe90615407565b9050611df4565b50611f317f000000000000000000000000000000000000000000000000000000000000000087856121bb565b611f5c7f000000000000000000000000000000000000000000000000000000000000000087846121bb565b611f668682612666565b611f7060016133ad565b611f7a60006133ad565b5050600160005550505050565b6000611f9f82611f98576001612a0f565b600b612a0f565b90508115611fa957195b919050565b6000613fff600283901c1660038316611ffb611fea82611fcd88613407565b61ffff8616600090815260209190915260409020549060061b1c90565b6001600160401b0316801515900390565b61200d61200887876122ab565b61341d565b61201791906153e0565b95945050505050565b8054156120435760405163720080a360e11b8152600060048201526024016109da565b60005b60098110156120795764ed2eb01c0082826009811061206757612067615227565b015561207281615407565b9050612046565b5050565b306001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146120c957604051630e92930560e11b8152600560048201526024016109da565b565b60006120f082604001516120e7846000015185602001516122ab565b6004015461345e565b601c60006120fd84612292565b81526020019081526020016000209050919050565b6040517fafdd9edc0000000000000000000000000000000000000000000000000000000081523060048201526000907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063afdd9edc90602401602060405180830381865afa158015612192573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906121b691906152b5565b905090565b80156121d5576121d56001600160a01b0384168383613481565b505050565b6040517f70a082310000000000000000000000000000000000000000000000000000000081523060048201526000906001600160a01b038316906370a082319060240161135b565b81156122745780601960108282829054906101000a90046001600160801b031661224c919061548e565b92506101000a8154816001600160801b0302191690836001600160801b031602179055505050565b6019805482919060009061224c9084906001600160801b031661548e565b6000610831826000015183602001518460400151613501565b6000826122b95760156122bc565b60165b61ffff8316600090815260209190915260409020905092915050565b6000836004015461800083604001516122f191906152d2565b10156122fe5750816109e6565b60208201518251613fff600283901c16916003169060009061234690611fea90849061232990613407565b61ffff8716600090815260209190915260409020549060061b1c90565b90506000612358888760400151613558565b905061236487836154ae565b6001600160401b0316816001600160401b0316106123895760009450505050506109e6565b816001600160401b0316816001600160401b0316116123aa578694506123c2565b806123b588846154ae565b6123bf91906153e0565b94505b505050509392505050565b6000806000806123df86866000611b15565b905060006123ec876107fc565b90506000886123fc5782826123ff565b81835b9650905061240e81600061310a565b9350620f424060007f000000000000000000000000000000000000000000000000000000000000000060020b1315612482576000612474610e9762ffffff7f0000000000000000000000000000000000000000000000000000000000000000168a615210565b978890039796506124d19050565b806124ac7f00000000000000000000000000000000000000000000000000000000000000006154ce565b6124bb9062ffffff1684615210565b6124c59190615436565b6124ce9061538f565b95505b5050505093509350939050565b6000806000806124f3888860000151886122d8565b9150816001600160401b03166000036125175760008060009350935093505061265c565b86600001516001600160401b0316826001600160401b03160361256057602087015161254d9063ffffffff16633b9aca00615210565b905061256061255b87612292565b6135ac565b6000806125768860000151858a602001516123cd565b6040808d01518c8201516020808f01518f5185516001600160401b038e1681529283018c90529482019290925261ffff909116606082015291151560808301529399509094509092506001600160a01b03918216918916907f99c241c427f5f19b5ea80420dfe04d2c77c9523195b179bf06dacf130f0268a39060a00160405180910390a360008082136126125761260d8261538f565b612614565b815b9050600082131561263d57885161262c901584612222565b88516126389082612222565b612657565b8851612653901561264e838661547b565b612222565b8095505b505050505b9450945094915050565b80156120795760006001600160a01b038316612686633b9aca0084615210565b604051600081818185875af1925050503d80600081146126c2576040519150601f19603f3d011682016040523d82523d6000602084013e6126c7565b606091505b50509050806121d557604051630e92930560e11b8152600160048201526024016109da565b60008086810361271157604051630e92930560e11b81526004818101526024016109da565b600061271c866129f9565b90508515612728579519955b846127395761273688612de8565b97505b600061274487613407565b90505b60008911801561275d5750815464ed2eb01c0014155b1561290c57600061276d83612a0f565b90508061ffff168961ffff161015612785575061290c565b871561278d57195b600080600061279e8b8e868d612f48565b945090925090506001600160401b0383166000036127bf575050505061290c565b6127c982896152d2565b97506127d581886152d2565b965060008a6127e457816127e6565b825b9050808e11156127fa57808e039d506127ff565b60009d505b505050613fff600283901c166000818152602085905260409020546003841690612860826128428660c060068a901b1685901c5b6001600160401b031690613661565b6001600160401b0390811660069290921b91821b911b831683030190565b61ffff9093166000908152602087905260409020929092555061288590508983611fae565b6001600160401b031660000361289e5761289e896133ad565b6040805161ffff841681526001600160401b038316602082015260ff89168183015290516001600160a01b038e169133917f9754cddf091a07317cd2bfc6ead4610d1a7401cf0ea4176a44ab9366d4042d7d9181900360600190a3612905891583836136a8565b5050612747565b61291783600161310a565b612921908461547b565b92505050965096945050505050565b600061293b886121da565b6040517ffd235fda000000000000000000000000000000000000000000000000000000008152909150339063fd235fda908690612986908c908c908c908c908b908b906004016154f0565b6000604051808303818588803b15801561299f57600080fd5b505af11580156129b3573d6000803e3d6000fd5b505050505085816129c491906152d2565b6129cd896121da565b10156129ef57604051630e92930560e11b8152600260048201526024016109da565b5050505050505050565b600081612a07576001610831565b600b92915050565b6000612a20825464ed2eb01c001490565b15612a415760405163720080a360e11b8152600160048201526024016109da565b600080612a4d84613b8f565b60ff1660089190911b61ff001617949350505050565b6000808315612a7d57612a78600b8819613bba565b612a88565b612a88600188613bba565b6000612a9485896122ab565b9050806004015491506180008210612b64576040805160608101825260008082526020820181905291810191909152604051806060016040528087151581526020018a61ffff168152602001618000850381525090506000601c6000612af984612292565b81526020810191909152604001600020546001600160401b031690508015612b61576000612b288483856122d8565b9050816001600160401b0316816001600160401b031614612b5f57604051630e92930560e11b8152600c60048201526024016109da565b505b50505b6000612b7482617fff8516613bef565b90506001600160401b03811615612bc3576000612b9087613407565b60028b901c613fff1660009081526020919091526040902080546001600160401b03841660068d901b60c0161b90039055505b612bce8360016152d2565b6004830155612be282617fff85168a613c3e565b506040518060600160405280896001600160401b031681526020018863ffffffff1681526020018b6001600160a01b0316815250601c6000612c25898d88613501565b81526020808201929092526040908101600020835181549385015194909201516001600160a01b0316600160601b026bffffffffffffffffffffffff63ffffffff909516600160401b026bffffffffffffffffffffffff199094166001600160401b0390931692909217929092179290921691909117905585612cb357612cae888a6001611b15565b612cbc565b612cbc886107fc565b604080516001600160401b038b16815263ffffffff8a16602082015290810185905261ffff8b16606082015260ff871660808201529094506001600160a01b038b169033907fe1f111710ff958f9c3f05fb0558dea428c31da1f38ea57cb41986f103aa2bcd19060a00160405180910390a35050965096945050505050565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316630f632fd385612d76868686613501565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e085901b1681526001600160a01b0390921660048301526024820152604401600060405180830381600087803b158015612dd457600080fd5b505af11580156129ef573d6000803e3d6000fd5b6000620f424062ffffff7f0000000000000000000000000000000000000000000000000000000000000000168103612e33612e238386615210565b8281061515600116908390040190565b949350505050565b604080516009808252610140820190925260009160609190602082016101208036833701905050905060005b6009811015612eb157838160098110612e8257612e82615227565b0154828281518110612e9657612e96615227565b6020908102919091010152612eaa81615407565b9050612e67565b50826009016000600883600081518110612ecd57612ecd615227565b6020026020010151901c60ff1660ff168152602001908152602001600020549150915091565b6000808211612f0157600080fd5b5060006001600160801b0360805b83600116600003612f4157818416600003612f325760ff81169390931c92918201915b60011c607f1690811c90612f0f565b5050919050565b6000806000806000612f5a8988611fae565b905060008615158a151514612f7957612f74898815610d81565b612f85565b612f8589898915610903565b9050806001600160401b0316826001600160401b031611612fa65781612fa8565b805b9250826001600160401b0316600003612fce57600080600095509550955050505061265c565b505060008089612ff157612fe1836107fc565b612fec848a8d611b15565b613005565b612ffc83898c611b15565b613005846107fc565b909b909a50929850919650505050505050565b60006060600061302785612ef3565b9050600160ff82161b8581146130465719851692508391506131029050565b60008060006130708a8960008151811061306257613062615227565b60200260200101518a613e85565b925092509250828860008151811061308a5761308a615227565b60200260200101818152505064ed2eb01c0083036130b357600088965096505050505050613102565b61ffff8216156130e15780888361ffff16815181106130d4576130d4615227565b6020026020010181815250505b505060081c60ff166000908152600988016020526040902054935084925050505b935093915050565b60006109e661313e62ffffff7f00000000000000000000000000000000000000000000000000000000000000001685615210565b620f42408082061515851691040190565b6000808080806131756131656020880188615160565b6112816040890160208a01614dff565b90506131898660400135826004015461345e565b600061319d6111e63689900389018961523d565b6000818152601c60209081526040808320815160608101835290546001600160401b038116808352600160401b820463ffffffff1694830194909452600160601b90046001600160a01b031691810191909152929350900361320f5760008060008096509650965096505050506133a4565b80604001516001600160a01b0316336001600160a01b03161415801561325e5750336001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614155b1561327f57604051630e92930560e11b8152600060048201526024016109da565b6132998382613293368c90038c018c61523d565b8c6124de565b6000858152601c60205260409020805467ffffffffffffffff1916905583519099509097509095506132cc9088906153e0565b96506001600160401b0387161561339b576133066040890135617fff16886132f48683613bef565b6132fe91906153e0565b859190613c3e565b5080604001516001600160a01b03167f2302c152790a5d6816b7f6f1f4fbc768a9378c3d8102e2022468242bbf346aa6888a604001358b602001602081019061334f9190614dff565b61335c60208e018e615160565b604080516001600160401b03959095168552602085019390935261ffff919091168383015215156060830152519081900360800190a261339b826135ac565b60200151925050505b92959194509250565b60006133b8826129f9565b90505b805464ed2eb01c0014612079576133e982836133da576107f783612a0f565b6133e383612a0f565b19611fae565b6001600160401b03166000036120795761340281614098565b6133bb565b600081613415576017610831565b601892915050565b600160009081526020829052604081205461343a90826004614160565b600080805260208490526040812054613454916004614160565b61083191906154ae565b81811161207957604051630e92930560e11b8152600e60048201526024016109da565b604080516001600160a01b038416602482015260448082018490528251808303909101815260649091019091526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fa9059cbb000000000000000000000000000000000000000000000000000000001790526121d59084906141a0565b60007cffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82111561354457604051630e92930560e11b8152600e60048201526024016109da565b8360f81b8360e81b01820190509392505050565b6004820154600090617fff9081169082906135748560016152d2565b1690508082106135a157613589858284614285565b6135928661341d565b61359c91906153e0565b612017565b612017858383614285565b6040517f0513fc8b000000000000000000000000000000000000000000000000000000008152600481018290527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690630513fc8b90602401600060405180830381600087803b15801561362757600080fd5b505af115801561363b573d6000803e3d6000fd5b505050600091825250601c6020526040902080546bffffffffffffffffffffffff169055565b60008183158401019250816001600160401b0316836001600160401b031610156136a157604051633e6c0de960e11b8152600060048201526024016109da565b5090919050565b601d54600090601e9061ffff166201000081106136c7576136c7615227565b6040805160e08101825292909101546001600160401b03808216808552600160401b830482166020860152600160801b83049091169284019290925261ffff600160c01b820481166060850152600160d01b820481166080850152600160e01b8204811660a0850152600160f01b9091041660c08301529091506000036138da576040518060e00160405280426001600160401b031681526020018561376d5783613770565b60005b6001600160401b031681526020018561378a57600061378c565b835b6001600160401b0316815261ffff808616602083018190526040830181905260608301819052608090920191909152601d54601e91166201000081106137d4576137d4615227565b825191018054602084015160408501516060860151608087015160a088015160c09098015161ffff908116600160f01b027dffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff998216600160e01b0261ffff60e01b19938316600160d01b029390931663ffffffff60d01b1992909416600160c01b0261ffff60c01b196001600160401b03968716600160801b02167fffffffffffff00000000000000000000ffffffffffffffffffffffffffffffff978716600160401b026fffffffffffffffffffffffffffffffff1990991696909a1695909517969096179490941696909617919091179190911617929092179290921617905550505050565b80516001600160401b03164203613a9c57831561391457818160400181815161390391906154ae565b6001600160401b0316905250613933565b818160200181815161392691906154ae565b6001600160401b03169052505b806080015161ffff168361ffff1611156139525761ffff831660808201525b8060a0015161ffff168361ffff1610156139715761ffff831660a08201525b61ffff80841660c0830152601d548291601e911662010000811061399757613997615227565b825191018054602084015160408501516060860151608087015160a088015160c09098015161ffff908116600160f01b027dffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff998216600160e01b0261ffff60e01b19938316600160d01b029390931663ffffffff60d01b1992909416600160c01b0261ffff60c01b196001600160401b03968716600160801b02167fffffffffffff00000000000000000000ffffffffffffffffffffffffffffffff978716600160401b026fffffffffffffffffffffffffffffffff1990991696909a16959095179690961794909416969096179190911791909116179290921792909216179055613b89565b601d805461ffff8082166001011661ffff199091161790556040805160e081019091526001600160401b03421681526020810185613ada5783613add565b60005b6001600160401b0316815260200185613af7576000613af9565b835b6001600160401b031681526020018260c0015161ffff1681526020018461ffff168360c0015161ffff1611613b2e5784613b34565b8260c001515b61ffff1681526020018461ffff168360c0015161ffff1610613b565784613b5c565b8260c001515b61ffff9081168252858116602090920191909152601d54601e91166201000081106137d4576137d4615227565b50505050565b805460081c60ff81166000908152600983016020526040812054613bb281612ef3565b915050915091565b60ff600882901c8116600090815260098401602052604090205460019183169190911b90811614612079576120798282614736565b60006180008210613c165760405163163da48960e01b8152600060048201526024016109da565b6109e6611fea6003848116908690600287901c6000908152910160205260409020549061489a565b60006180008310613c655760405163163da48960e01b8152600060048201526024016109da565b6000613c70846148c9565b9050600081600160040360ff1681518110613c8d57613c8d615227565b602090810291909101810151808201518151600090815260038a01909352604090922054909250613cc19160061b1c611fea565b9250836001600160401b0316836001600160401b031610613d9b5783830360005b6004811015613d94576000848281518110613cff57613cff615227565b602002602001015190506000896000018360048110613d2057613d20615227565b835160009081529101602090815260409091205490830151909150613d6490613d5c86613d4d858461489a565b6001600160401b031690614972565b8391906149bd565b8a8460048110613d7657613d76615227565b93516000908152930160205260409092209190915550600101613ce2565b5050613e7c565b8284036001600160401b0381810316613db38861341d565b6001600160401b03161115613dde5760405163163da48960e01b8152600160048201526024016109da565b60005b60048110156123c2576000848281518110613dfe57613dfe615227565b602002602001015190506000896000018360048110613e1f57613e1f615227565b835160009081529101602090815260409091205490830151909150613e4c90613d5c86612833858461489a565b8a8460048110613e5e57613e5e615227565b93516000908152930160205260409092209190915550600101613de1565b50509392505050565b600080806000198501818060ff83168103613eb15764ed2eb01c0060008095509550955050505061408f565b6000613ebc84614a04565b905060008851600014613f0257613efd8a8a600561ffff168561ffff16901c61ffff1681518110613eef57613eef615227565b602002602001015184614ab3565b613f0c565b613f0c8b83614ae7565b6001925090508160025b8660ff168261ffff161015614051576000613f328d8884614ab3565b90506000613f4b8e89613f46866001615535565b614ab3565b90508460ff168260ff16118015613f6757508460ff168160ff16115b15613f73575050614051565b8060ff168260ff161115613fae57613f8d8e898884614b33565b809950819f50505082600101955060018461ffff16901b6003019350613fd3565b613fba8e898885614b33565b909e5097509194506201fffe600193841b169092019184915b613fdc86614b84565b9250601f61ffff8416118015613ff4575061ffff8716155b1561404a578c516107ff600585901c1697501561402e578c8761ffff168151811061402157614021615227565b6020026020010151614047565b8e61ffff88166009811061404457614044615227565b01545b97505b5050613f16565b61405d8c878686614b33565b909c50955060ff8c166000036140785760ff8c019b50614080565b600019909b019a5b508a9850929650929450505050505b93509350939050565b6000806140a483613b8f565b60ff808316600090815260098701602052604090205492945090925060019083161b9081810361413d576000808061410b88808301546000604051908082528060200260200182016040528015614105578160200160208202803683370190505b50613e85565b828b559194509250905061ffff82161561413957808861ffff84166009811061413657614136615227565b01555b5050505b60ff90931660009081526009909401602052604090932092199190911690915550565b600682901b9290921c916000825b8281101561419557604085901c946001600160401b0316801501919091019060010161416e565b509190039003919050565b60006141f5826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b0316614bdb9092919063ffffffff16565b8051909150156121d557808060200190518101906142139190615550565b6121d55760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e60448201527f6f7420737563636565640000000000000000000000000000000000000000000060648201526084016109da565b6000818303614296575060006109e6565b8183106142b95760405163163da48960e01b8152600060048201526024016109da565b6180008211156142df5760405163163da48960e01b8152600060048201526024016109da565b60006142ea846148c9565b905060006142f7846148c9565b9050600080808060035b600087828151811061431557614315615227565b60200260200101519050600087838151811061433357614333615227565b60200260200101519050816020015185019450806020015184019350816000015181600001510361439f5761438b8d846004811061437357614373615227565b84516000908152910160205260409020548686614160565b6001600160401b0316870196505050614727565b8151815160049190031015614481576143dc8d84600481106143c3576143c3615227565b8451600090815291016020526040902054866004614160565b6001600160401b031696909601956144178d84600481106143ff576143ff615227565b83516000908152910160205260408120549086614160565b82516001600160401b039190911697909701966001015b8151811015614479576144638e856004811061444c5761444c615227565b600084815291016020526040812054906004614160565b6001600160401b0316979097019660010161442e565b505050614727565b81516003166000036144d0576144ba8d84600481106144a2576144a2615227565b84516000908152910160205260408120549087614160565b6001600160401b031686019550600094506145ce565b81516003166001036145315761450e8d84600481106144f1576144f1615227565b845160001901600090815291016020526040812054906004614160565b6001600160401b031695909501946144ba8d84600481106144a2576144a2615227565b81516003166002036145a7576145528d84600481106143c3576143c3615227565b6001600160401b031696909601956145918d846004811061457557614575615227565b8451600101600090815291016020526040812054906004614160565b6001600160401b031687019650600194506145ce565b6145bc8d84600481106143c3576143c3615227565b6001600160401b031687019650600194505b8051600316600003614605576145ef8d84600481106143ff576143ff615227565b6001600160401b0316870196506000935061471c565b8051600316600103614666576146438d846004811061462657614626615227565b835160001901600090815291016020526040812054906004614160565b6001600160401b031696909601956145ef8d84600481106143ff576143ff615227565b80516003166002036146f5576146a08d846004811061468757614687615227565b8351600090815291016020526040902054856004614160565b6001600160401b031695909501946146df8d84600481106146c3576146c3615227565b8351600101600090815291016020526040812054906004614160565b6001600160401b0316860195506001935061471c565b61470a8d846004811061468757614687615227565b6001600160401b031686019550600193505b505060001901614301565b50505090039695505050505050565b600881901c60ff8181166000908152600985016020526040902054839160019083161b908181161561477e5760405163720080a360e11b8152600260048201526024016109da565b8060000361487957855460008061479483614a04565b90506000601f61ffff831611156147c657506107ff600582901c168981600981106147c1576147c1615227565b015492505b61ffff82166001146148215760006147dd83614bea565b905060006147ec868684614ab3565b90508960ff168160ff1611156148125761480886868684614b33565b9096509450614819565b5050614821565b5091506147c6565b61482d8484848b614b33565b909450925060ff80851690036148495760fe1984018a55614850565b600184018a555b61ffff81161561487457828a61ffff83166009811061487157614871615227565b01555b505050505b60ff9093166000908152600990950160205260409094209190931790555050565b600060038211156148c15760405163b8710e2160e01b8152600360048201526024016109da565b5060061b1c90565b60408051600480825260a0820190925260609160009190816020015b60408051808201909152600080825260208201528152602001906001900390816148e5579050509050600e60005b60048110156149695760405180604001604052808387901c815260200160036002850388901c1681525083828151811061494f5761494f615227565b602090810291909101015260031990910190600101614913565b50909392505050565b8115909101908082036001600160401b03808216908416108061499c57506001600160401b038116155b1561083157604051633e6c0de960e11b8152600160048201526024016109da565b600060038311156149e45760405163b8710e2160e01b8152600360048201526024016109da565b506001600160401b0390811660069290921b91821b911b82169091030190565b6000600160ff831601602361ffff821611614a1f5792915050565b60408161ffff161015614a4d5760e0600560028361ffff16901c61ffff16901b826003160103915050919050565b60808161ffff161015614a7b5760dc600560038361ffff16901c61ffff16901b826007160103915050919050565b6101008161ffff161015614aaa5760d4600560048361ffff16901c61ffff16901b82600f160103915050919050565b50603c92915050565b6000601f61ffff831611614ad857614ad18461ffff841660031b1c90565b90506109e6565b6109e383601f841660031b1c90565b6000601f61ffff831611614b1257614b0b61ffff83168460005b01549060031b1c90565b9050610831565b6109e6601f8316846107ff600586901c1660098110614b0157614b01615227565b600080601f61ffff851611614b6357505060ff6207fff8600384901b1681811b86168603918316901b0183611d8e565b8560ff60f8600387901b1681811b88168803918616901b0191509150611d8e565b600060108261ffff161015614b9a575060011b90565b60208261ffff161015614bc25750600d1901600481901b601f191660019190911b6002160190565b5061ffe0811680820360040160011b0160031901919050565b60606109e38484600085614c39565b6000601f61ffff831611614bff575060011c90565b601c8216600003614c20576002821660011c8260041c600e01019050919050565b5061ffe0811680820360040160011c0160031901919050565b606082471015614cb15760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f60448201527f722063616c6c000000000000000000000000000000000000000000000000000060648201526084016109da565b6001600160a01b0385163b614d085760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000060448201526064016109da565b600080866001600160a01b03168587604051614d249190615591565b60006040518083038185875af1925050503d8060008114614d61576040519150601f19603f3d011682016040523d82523d6000602084013e614d66565b606091505b5091509150614d76828286614d81565b979650505050505050565b60608315614d905750816109e6565b825115614da05782518084602001fd5b8160405162461bcd60e51b81526004016109da91906155ad565b80356001600160401b0381168114611fa957600080fd5b600060208284031215614de357600080fd5b6109e682614dba565b61ffff81168114614dfc57600080fd5b50565b600060208284031215614e1157600080fd5b81356109e681614dec565b8015158114614dfc57600080fd5b600080600060608486031215614e3f57600080fd5b833592506020840135614e5181614dec565b91506040840135614e6181614e1c565b809150509250925092565b600060608284031215614e7e57600080fd5b50919050565b6001600160a01b0381168114614dfc57600080fd5b60008060808385031215614eac57600080fd5b614eb68484614e6c565b91506060830135614ec681614e84565b809150509250929050565b60008060408385031215614ee457600080fd5b8235614eef81614e84565b91506020830135614ec681614e84565b60008060408385031215614f1257600080fd5b823591506020830135614ec681614e1c565b60008083601f840112614f3657600080fd5b5081356001600160401b03811115614f4d57600080fd5b6020830191508360208285010111156111c457600080fd5b600080600080600060808688031215614f7d57600080fd5b8535614f8881614e84565b9450602086013593506040860135925060608601356001600160401b03811115614fb157600080fd5b614fbd88828901614f24565b969995985093965092949392505050565b600060208284031215614fe057600080fd5b81356109e681614e84565b600060608284031215614ffd57600080fd5b6109e68383614e6c565b60008060006040848603121561501c57600080fd5b833561502781614e84565b925060208401356001600160401b038082111561504357600080fd5b818601915086601f83011261505757600080fd5b81358181111561506657600080fd5b87602060608302850101111561507b57600080fd5b6020830194508093505050509250925092565b803560ff81168114611fa957600080fd5b600080600080600080600060c0888a0312156150ba57600080fd5b87356150c581614e84565b965060208801356150d581614dec565b95506150e360408901614dba565b9450606088013593506150f86080890161508e565b925060a08801356001600160401b0381111561511357600080fd5b61511f8a828b01614f24565b989b979a50959850939692959293505050565b60008060006060848603121561514757600080fd5b61515084614dba565b92506020840135614e5181614dec565b60006020828403121561517257600080fd5b81356109e681614e1c565b6000806000806080858703121561519357600080fd5b843561519e81614dec565b93506151ac60208601614dba565b9250604085013591506151c16060860161508e565b905092959194509250565b600080604083850312156151df57600080fd5b82356151ea81614e1c565b91506020830135614ec681614dec565b634e487b7160e01b600052601160045260246000fd5b8082028115828204841417610831576108316151fa565b634e487b7160e01b600052603260045260246000fd5b60006060828403121561524f57600080fd5b604051606081018181106001600160401b038211171561527f57634e487b7160e01b600052604160045260246000fd5b604052823561528d81614e1c565b8152602083013561529d81614dec565b60208201526040928301359281019290925250919050565b6000602082840312156152c757600080fd5b81516109e681614e84565b80820180821115610831576108316151fa565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b60006001600160a01b03808b168352808a166020840152508760408301528660608301528560808301528460a083015260e060c083015261535360e0830184866152e5565b9a9950505050505050505050565b6000806040838503121561537457600080fd5b825161537f81614dec565b6020939093015192949293505050565b60007f800000000000000000000000000000000000000000000000000000000000000082036153c0576153c06151fa565b5060000390565b6000602082840312156153d957600080fd5b5051919050565b6001600160401b03828116828216039080821115615400576154006151fa565b5092915050565b600060018201615419576154196151fa565b5060010190565b634e487b7160e01b600052601260045260246000fd5b60008261544557615445615420565b500490565b60006020828403121561545c57600080fd5b81516109e681614dec565b60008261547657615476615420565b500690565b81810381811115610831576108316151fa565b6001600160801b03818116838216019080821115615400576154006151fa565b6001600160401b03818116838216019080821115615400576154006151fa565b60008160020b627fffff1981036154e7576154e76151fa565b60000392915050565b60006001600160a01b03808916835280881660208401525085604083015284606083015260a0608083015261552960a0830184866152e5565b98975050505050505050565b61ffff818116838216019080821115615400576154006151fa565b60006020828403121561556257600080fd5b81516109e681614e1c565b60005b83811015615588578181015183820152602001615570565b50506000910152565b600082516155a381846020870161556d565b9190910192915050565b60208152600082518060208401526155cc81604085016020870161556d565b601f01601f1916919091016040019291505056fea2646970667358221220d7db901412713c1e969b4b6fd97a83367b88a48d5db4bce80155fc46febb84fa64736f6c63430008110033a26469706673582212205d29905544f67c13bf8cbc60df554cace872205ba495a0a644242e493c5bdcfd64736f6c6343000811003300000000000000000000000024ac0938c010fb520f1068e96d78e0458855111d