0x60806040523480156200001157600080fd5b506200001c62000022565b620000e3565b600054610100900460ff16156200008f5760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b606482015260840160405180910390fd5b60005460ff90811614620000e1576000805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b615cf080620000f36000396000f3fe608060405234801561001057600080fd5b50600436106104065760003560e01c8063715018a611610220578063b20feaaf11610130578063d0e30db0116100b8578063e97206a911610087578063e97206a914610826578063f1a392da1461082e578063f2fde38b14610837578063fbfa77cf1461084a578063fcc25e131461085d57600080fd5b8063d0e30db0146107e3578063d92f3d73146107eb578063d9ceab13146107fe578063e941fa781461065d57600080fd5b8063c45a0155116100ff578063c45a01551461079a578063c6bbd5a7146107ad578063c6ebd4ae146107c0578063c7b9d530146107c8578063c7d54132146107db57600080fd5b8063b20feaaf1461075c578063b3a60cb314610771578063b83d268314610779578063bc415d8a1461078157600080fd5b80638e145459116101b357806399eee9d01161018257806399eee9d0146107295780639bdde46b1461073c5780639c6d490414610744578063a035b1fe1461074c578063aced16611461075457600080fd5b80638e145459146106dd57806393f1c442146106e5578063953d329f146106ee57806399cd2446146106f657600080fd5b8063865238d4116101ef578063865238d4146106a8578063877562b6146106b15780638cfc0250146106c45780638da5cb5b146106cc57600080fd5b8063715018a6146106785780637bb98a68146106805780637f10e4b9146106885780638097e2491461069b57600080fd5b80632b950b661161031b5780634641257d116102ae5780635c975abb1161027d5780635c975abb146106205780635ee167c014610637578063609913461461064a57806367a527931461065d578063696c58e51461066457600080fd5b80634641257d146105ff5780634746fb55146106075780634c02a21c1461060f57806354cf2aeb1461061857600080fd5b80633e55f932116102ea5780633e55f932146105c95780633f4ba83a146105dc578063441a3e70146105e457806344b81396146105f757600080fd5b80632b950b661461056c5780632e773d3214610575578063362c28c61461058a5780633c1d5df01461059d57600080fd5b806316b9cd9c1161039e5780631dcfeddd1161036d5780631dcfeddd146105165780631fe4a6861461052b5780632150c5181461053e578063236db04214610546578063257ae0de1461055957600080fd5b806316b9cd9c146104e057806316f0115b146104e857806317dd7a72146104fb5780631d27050f1461050357600080fd5b80630e5c011e116103da5780630e5c011e1461047457806311b0b42d146104875780631208aa18146104b257806312cf1381146104cd57600080fd5b8062a4b5c91461040b57806304c404b31461042d578063065e53601461044457806308898ea01461045f575b600080fd5b610413610892565b604080519283526020830191909152015b60405180910390f35b610436609d5481565b604051908152602001610424565b61044c610977565b60405160029190910b8152602001610424565b61047261046d366004614dcf565b6109f1565b005b610472610482366004614e26565b610b87565b60975461049a906001600160a01b031681565b6040516001600160a01b039091168152602001610424565b6104ba610b93565b60405160069190910b8152602001610424565b6104726104db366004614e52565b610d02565b610436610d83565b60d15461049a906001600160a01b031681565b610472610ec1565b610472610511366004614e81565b610edf565b61051e610f80565b6040516104249190614eee565b609a5461049a906001600160a01b031681565b61041361100e565b610472610554366004614dcf565b61109a565b60995461049a906001600160a01b031681565b610436609c5481565b61057d611222565b6040516104249190614f01565b610472610598366004614f5d565b611304565b60db546105b490600160501b900463ffffffff1681565b60405163ffffffff9091168152602001610424565b6104726105d7366004614f7a565b6113a7565b61047261149c565b6104726105f2366004614f93565b611549565b61041361160c565b610472611719565b61049a611722565b61043660d65481565b610436611790565b60655460ff165b6040519015158152602001610424565b60d35461049a906001600160a01b031681565b610472610658366004614f93565b61182f565b6000610436565b60db546104ba906301000000900460060b81565b6104726118e5565b6104136118f7565b610472610696366004614fb5565b6119a3565b60db5461044c9060020b81565b610436609f5481565b60d45461049a906001600160a01b031681565b610436611c3c565b6033546001600160a01b031661049a565b61049a611cb0565b61043660d55481565b61051e611cfa565b60da5461070f90600281810b9163010000009004900b82565b60408051600293840b81529190920b602082015201610424565b610472610737366004615111565b611d07565b610627611db4565b610436611e5c565b610436611f46565b61049a611f7f565b610764611fc9565b60405161042491906151a4565b610472611ff9565b61049a6121e5565b60d95461070f90600281810b9163010000009004900b82565b609b5461049a906001600160a01b031681565b60d25461049a906001600160a01b031681565b61057d61225f565b6104726107d6366004614e26565b61228e565b610472612307565b61047261240b565b6104726107f9366004614e26565b61249b565b610806612507565b604080519485526020850193909352918301526060820152608001610424565b610413612523565b610436609e5481565b610472610845366004614e26565b612592565b60985461049a906001600160a01b031681565b610865612608565b604080519687526020870195909552938501929092526060840152608083015260a082015260c001610424565b60d3546040516370a0823160e01b815230600482015260009182916001600160a01b03909116906370a0823190602401602060405180830381865afa1580156108df573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109039190615221565b60d4546040516370a0823160e01b81523060048201526001600160a01b03909116906370a0823190602401602060405180830381865afa15801561094b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061096f9190615221565b915091509091565b60d15460408051633850c7bd60e01b815290516000926001600160a01b031691633850c7bd9160048083019260e09291908290030181865afa1580156109c1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109e5919061525c565b50939695505050505050565b6033546001600160a01b03163314801590610a255750610a0f611f7f565b6001600160a01b0316336001600160a01b031614155b15610a435760405163607e454560e11b815260040160405180910390fd5b8015610b83576000610a8a83838080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061280592505050565b60d45481519192506001600160a01b0316908290600090610aad57610aad6152e9565b60200260200101516001600160a01b031614610adc5760405163b4fa3fb360e01b815260040160405180910390fd5b60975481516001600160a01b03909116908290610afb90600190615315565b81518110610b0b57610b0b6152e9565b60200260200101516001600160a01b031614610b3a576040516398f7360960e01b815260040160405180910390fd5b60d8610b478385836153aa565b507f1b9728f4ac995937074d8e70e21a1660544fb7c16be984e1c289f262f2be9c748383604051610b7992919061546a565b60405180910390a1505b5050565b610b9081612906565b50565b6040805160028082526060820183526000928392919060208301908036833701905050905060db600a9054906101000a900463ffffffff1681600081518110610bde57610bde6152e9565b602002602001019063ffffffff16908163ffffffff1681525050600081600181518110610c0d57610c0d6152e9565b63ffffffff9092166020928302919091019091015260d15460405163883bdbfd60e01b81526000916001600160a01b03169063883bdbfd90610c53908590600401615499565b600060405180830381865afa158015610c70573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610c98919081019061556e565b50905060db600a9054906101000a900463ffffffff1660030b81600081518110610cc457610cc46152e9565b602002602001015182600181518110610cdf57610cdf6152e9565b6020026020010151610cf19190615633565b610cfb9190615676565b9250505090565b610d0a6129b8565b60db5460408051600292830b81529183900b60208301527f69d927977053f4ff4a26e8d792564e367e844a869cda4df12630bf7b62a632de910160405180910390a1610d54612a12565b50505050610d60612e11565b60db805462ffffff191662ffffff8316179055610d7b61316b565b610b906131c1565b600080600a60d460009054906101000a90046001600160a01b03166001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa158015610ddb573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610dff91906156b4565b610e0a90600a6157bb565b610e1491906157ca565b60975460d4549192506001600160a01b03908116911603610e4057610e3a81600a6157de565b91505090565b60d25460405163cdca175360e01b81526001600160a01b039091169063cdca175390610e739060d89085906004016157f5565b6020604051808303816000875af1158015610e92573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610eb69190615221565b610e3a90600a6157de565b610ec961345c565b610ed1612a12565b50505050610edd612e11565b565b610ee76129b8565b60db546040805163ffffffff600160501b9093048316815291831660208301527f86139943149914833c057d2c24f3a3967cce8e6aba2eb12e422500d8a51ffc7b910160405180910390a1603c8163ffffffff161015610f5a5760405163b4fa3fb360e01b815260040160405180910390fd5b60db805463ffffffff909216600160501b0263ffffffff60501b19909216919091179055565b60d78054610f8d90615328565b80601f0160208091040260200160405190810160405280929190818152602001828054610fb990615328565b80156110065780601f10610fdb57610100808354040283529160200191611006565b820191906000526020600020905b815481529060010190602001808311610fe957829003601f168201915b505050505081565b60d954604080513060601b6bffffffffffffffffffffffff1916602080830182905260e885811b6034850152630100000095869004811b60378501528451601a818603018152603a8501865280519083012060da54605a86019490945283821b606e8601529590920490911b607183015282516054818403018152607490920190925280519101209091565b6033546001600160a01b031633148015906110ce57506110b8611f7f565b6001600160a01b0316336001600160a01b031614155b156110ec5760405163607e454560e11b815260040160405180910390fd5b8015610b8357600061113383838080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061280592505050565b60d35481519192506001600160a01b0316908290600090611156576111566152e9565b60200260200101516001600160a01b0316146111855760405163b4fa3fb360e01b815260040160405180910390fd5b60975481516001600160a01b039091169082906111a490600190615315565b815181106111b4576111b46152e9565b60200260200101516001600160a01b0316146111e3576040516398f7360960e01b815260040160405180910390fd5b60d76111f08385836153aa565b507f203244158601764729526c0736d6b833b1f3da905ae0a631a059bbb9040541f08383604051610b7992919061546a565b606060d7805461123190615328565b905060000361126c5760005b604051908082528060200260200182016040528015611266578160200160208202803683370190505b50905090565b6112ff60d7805461127c90615328565b80601f01602080910402602001604051908101604052809291908181526020018280546112a890615328565b80156112f55780601f106112ca576101008083540402835291602001916112f5565b820191906000526020600020905b8154815290600101906020018083116112d857829003601f168201915b5050505050612805565b905090565b61130c6129b8565b604051600682900b81527f69d3f73bfb3c2f0de63dc1de2ed486cf45d88ebfff8cb1e8f124b085d2bafb979060200160405180910390a161134b613487565b61135690600461588c565b60020b8160060b1261137b5760405163b4fa3fb360e01b815260040160405180910390fd5b60db805466ffffffffffffff90921663010000000269ffffffffffffff00000019909216919091179055565b6033546001600160a01b031633148015906113db57506113c5611f7f565b6001600160a01b0316336001600160a01b031614155b156113f95760405163607e454560e11b815260040160405180910390fd5b611401611722565b6001600160a01b0316633e55f932826040518263ffffffff1660e01b815260040161142e91815260200190565b600060405180830381600087803b15801561144857600080fd5b505af115801561145c573d6000803e3d6000fd5b505050507f9163810ee1e29168d4ce900e48a333fb8fbd3fd070d2bef67f6d4db0846a469f8160405161149191815260200190565b60405180910390a150565b6033546001600160a01b031633148015906114d057506114ba611f7f565b6001600160a01b0316336001600160a01b031614155b156114ee5760405163607e454560e11b815260040160405180910390fd5b60006115026033546001600160a01b031690565b6001600160a01b0316036115295760405163ea8e4eb560e01b815260040160405180910390fd5b6115316134f5565b611539613533565b61154161316b565b610edd6131c1565b61155161345c565b60dc54420361156257611562613585565b81156115855760985460d354611585916001600160a01b039182169116846135aa565b80156115a85760985460d4546115a8916001600160a01b039182169116836135aa565b6115b0613609565b6115bc576115bc6131c1565b6000806115c76118f7565b60408051838152602081018390529294509092507f631c4f79c14099a717f4be2f25e6cef89e310b3944ef0e44ea2c0811ebb982a8910160405180910390a150505050565b60008060008061161a610892565b91509150600080611629612608565b50505050915091506000828561163f91906158b3565b9050600061164d83866158b3565b90506000609e544261165f9190615315565b90506000610e10821061167357600061167f565b61167f82610e10615315565b9050609c548411156116ad57610e1081609c5461169c91906157de565b6116a691906157ca565b99506116c7565b610e106116ba82866157de565b6116c491906157ca565b99505b609d548311156116f357610e1081609d546116e291906157de565b6116ec91906157ca565b985061170d565b610e1061170082856157de565b61170a91906157ca565b98505b50505050505050509091565b610edd32612906565b609b5460408051634746fb5560e01b815290516000926001600160a01b031691634746fb559160048083019260209291908290030181865afa15801561176c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112ff91906158c6565b6000620f4240670de0b6b3a764000060d160009054906101000a90046001600160a01b03166001600160a01b031663ddca3f436040518163ffffffff1660e01b8152600401602060405180830381865afa1580156117f2573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061181691906158e3565b62ffffff1661182591906157de565b6112ff91906157ca565b6033546001600160a01b03163314801590611863575061184d611f7f565b6001600160a01b0316336001600160a01b031614155b156118815760405163607e454560e11b815260040160405180910390fd5b611889612a12565b50505050611895612e11565b61189d613694565b6118a56136d0565b6000806118b06118f7565b91509150838210806118c157508281105b156118df5760405163fa6ad35560e01b815260040160405180910390fd5b50505050565b6118ed6129b8565b610edd600061370d565b600080600080611905610892565b91509150600080611914612608565b505050509150915060008061192761160c565b909250905060008261193986896158b3565b6119439190615315565b905060008261195286896158b3565b61195c9190615315565b60d55460d6549192509083821115611972578391505b8281111561197d5750815b6119878285615315565b6119918285615315565b9b509b50505050505050505050509091565b600054610100900460ff16158080156119c35750600054600160ff909116105b806119dd5750303b1580156119dd575060005460ff166001145b611a455760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b60648201526084015b60405180910390fd5b6000805460ff191660011790558015611a68576000805461ff0019166101001790555b611a718261375f565b60d180546001600160a01b03808c166001600160a01b0319928316811790935560d28054918c169190921617905560408051630dfe168160e01b81529051630dfe1681916004808201926020929091908290030181865afa158015611ada573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611afe91906158c6565b60d360006101000a8154816001600160a01b0302191690836001600160a01b03160217905550886001600160a01b031663d21220a76040518163ffffffff1660e01b8152600401602060405180830381865afa158015611b62573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b8691906158c6565b60d480546001600160a01b0319166001600160a01b039290921691909117905560db805462ffffff191662ffffff8916179055611bc3868661109a565b611bcd84846109f1565b60db805463ffffffff60501b1916600f60531b179055611beb6134f5565b8015611c31576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b505050505050505050565b6000611c46611722565b604051636788231160e11b81523060048201526001600160a01b03919091169063cf10462290602401602060405180830381865afa158015611c8c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112ff9190615221565b609b5460408051638e14545960e01b815290516000926001600160a01b031691638e1454599160048083019260209291908290030181865afa15801561176c573d6000803e3d6000fd5b60d88054610f8d90615328565b60d1546001600160a01b03163314611d3257604051636f61f64160e01b815260040160405180910390fd5b60db54600160701b900460ff16611d5c5760405163887efaa560e01b815260040160405180910390fd5b8215611d7f5760d15460d354611d7f916001600160a01b039182169116856135aa565b8115611da25760d15460d454611da2916001600160a01b039182169116846135aa565b505060db805460ff60701b1916905550565b600080611dbf610977565b90506000611dcb610b93565b60db54909150600090611df990611dec906301000000900460060b84615633565b60060b620d89e7196138d4565b60db54909150600090611e2690611e1a906301000000900460060b85615908565b60060b620d89e86138ee565b90508360020b8260060b1380611e4157508360020b8160060b125b15611e5157600094505050505090565b600194505050505090565b600080600a60d360009054906101000a90046001600160a01b03166001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa158015611eb4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ed891906156b4565b611ee390600a6157bb565b611eed91906157ca565b60975460d3549192506001600160a01b03908116911603611f1357610e3a81600a6157de565b60d25460405163cdca175360e01b81526001600160a01b039091169063cdca175390610e739060d79085906004016157f5565b600080611f516121e5565b90506002611f75826001600160a01b0316670de0b6b3a7640000600160601b6138fd565b610e3a91906157bb565b609b546040805163aced166160e01b815290516000926001600160a01b03169163aced16619160048083019260209291908290030181865afa15801561176c573d6000803e3d6000fd5b611fd1614d2c565b6040518060600160405280611fe46139b1565b81526020016000815260200160009052919050565b6120016129b8565b609860009054906101000a90046001600160a01b03166001600160a01b03166318160ddd6040518163ffffffff1660e01b8152600401602060405180830381865afa158015612054573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120789190615221565b6103e8146120995760405163ea8e4eb560e01b815260040160405180910390fd5b6120a460008061182f565b60006120ae611cb0565b90506000806120bb610892565b9092509050811561214b5760d3546040516370a0823160e01b815230600482015261214b9185916001600160a01b03909116906370a0823190602401602060405180830381865afa158015612114573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906121389190615221565b60d3546001600160a01b031691906135aa565b80156121d65760d4546040516370a0823160e01b81523060048201526121d69185916001600160a01b03909116906370a0823190602401602060405180830381865afa15801561219f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906121c39190615221565b60d4546001600160a01b031691906135aa565b6121e0600061370d565b505050565b60d15460408051633850c7bd60e01b815290516000926001600160a01b031691633850c7bd9160048083019260e09291908290030181865afa15801561222f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612253919061525c565b50949695505050505050565b606060d8805461226e90615328565b905060000361227e57600061123d565b6112ff60d8805461127c90615328565b609a546001600160a01b031633146122b957604051633163ba6d60e11b815260040160405180910390fd5b609a80546001600160a01b0319166001600160a01b0383169081179091556040519081527f46d58e3fa07bf19b1d27240f0e286b27e9f7c1b0d88933333fe833b60eec541290602001611491565b61230f613585565b609b546040516305226abd60e51b81523360048201526001600160a01b039091169063a44d57a090602401602060405180830381865afa158015612357573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061237b9190615935565b6123985760405163ea8e4eb560e01b815260040160405180910390fd5b6123a0612a12565b505050506123ac612e11565b6123b461316b565b6123bc6131c1565b6000806123c76118f7565b60408051838152602081018390529294509092507f631c4f79c14099a717f4be2f25e6cef89e310b3944ef0e44ea2c0811ebb982a891015b60405180910390a15050565b612413613585565b61241b61345c565b60db54600160781b900460ff166124485761243461316b565b60db805460ff60781b1916600160781b1790555b6124506131c1565b60008061245b6118f7565b4260dc5560408051838152602081018390529294509092507f631c4f79c14099a717f4be2f25e6cef89e310b3944ef0e44ea2c0811ebb982a891016123ff565b6124a36129b8565b6124ab613694565b609980546001600160a01b0319166001600160a01b0383161790556124ce6134f5565b6040516001600160a01b03821681527f5ca6e64c4522e68e154aa9372f2c5969cd37d9640e59f66953dc472f54ee86fa90602001611491565b600080600080612515612a12565b929791965094509092509050565b60d95460009081906002906125599061253d90830b613a62565b6001600160a01b0316670de0b6b3a7640000600160601b6138fd565b61256391906157bb565b60d9549092506002906125829061253d9063010000009004830b613a62565b61258c91906157bb565b90509091565b61259a6129b8565b6001600160a01b0381166125ff5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401611a3c565b610b908161370d565b60008060008060008060008061261c61100e565b91509150600061262a6121e5565b60d15460405163514ea4bf60e01b815260048101869052919250600091829182916001600160a01b039091169063514ea4bf9060240160a060405180830381865afa15801561267d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906126a19190615967565b60d15460405163514ea4bf60e01b8152600481018c90529598506001600160801b039283169750911694506000938493508392506001600160a01b039091169063514ea4bf9060240160a060405180830381865afa158015612707573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061272b9190615967565b60d9549497506001600160801b039182169650169350612771928a9250612755915060020b613a62565b60d95461276b906301000000900460020b613a62565b89613d98565b60da54919e509c506127a790889061278b9060020b613a62565b60da546127a1906301000000900460020b613a62565b86613d98565b909b5099506127b6858e6158b3565b9c506127c2848d6158b3565b9b506127ce828c6158b3565b9a506127da818b6158b3565b99506127e68b8e6158b3565b9e506127f28a8d6158b3565b9d50505050505050505050909192939495565b6060600061281283613e34565b905060006128218260016158b3565b67ffffffffffffffff81111561283957612839615079565b604051908082528060200260200182016040528015612862578160200160208202803683370190505b50905060005b828110156128fe5760008061287c87613e5a565b509150915081848481518110612894576128946152e9565b6001600160a01b039092166020928302919091019091015280846128b98560016158b3565b815181106128c9576128c96152e9565b60200260200101906001600160a01b031690816001600160a01b0316815250506128f287613e96565b96505050600101612868565b509392505050565b61290e613585565b612916612a12565b50505050612922612e11565b6000806129348360d55460d654613ec7565b915091506129406131c1565b600060d581905560d68190558061295561160c565b909250905061296482856158b3565b609c5561297181846158b3565b609d5542609e5560408051858152602081018590527f6c8433a8e155f0af04dba058d4e4695f7da554578963d876bdf4a6d8d6399d9c910160405180910390a15050505050565b6033546001600160a01b03163314610edd5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401611a3c565b600080600080600080612a2361100e565b60d15460405163514ea4bf60e01b8152600481018490529294509092506000916001600160a01b039091169063514ea4bf9060240160a060405180830381865afa158015612a75573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612a999190615967565b505060d15460405163514ea4bf60e01b8152600481018790529394506000936001600160a01b03909116925063514ea4bf915060240160a060405180830381865afa158015612aec573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612b109190615967565b5050505090506000826001600160801b03161115612bb15760d15460d95460405163a34123a760e01b81526001600160a01b039092169163a34123a791612b6c91600282810b9263010000009004900b906000906004016159be565b60408051808303816000875af1158015612b8a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612bae91906159e4565b50505b6001600160801b03811615612c495760d15460da5460405163a34123a760e01b81526001600160a01b039092169163a34123a791612c0491600282810b9263010000009004900b906000906004016159be565b60408051808303816000875af1158015612c22573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612c4691906159e4565b50505b60d15460d9546040516309e3d67b60e31b81526001600160a01b0390921691634f1eb3d891612c98913091600281810b926301000000909204900b906001600160801b03908190600401615a08565b60408051808303816000875af1158015612cb6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612cda9190615a45565b60d15460da546040516309e3d67b60e31b81526001600160801b039485169c509284169a506001600160a01b0390911692634f1eb3d892612d32923092600282810b936301000000909304900b918190600401615a08565b60408051808303816000875af1158015612d50573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612d749190615a45565b60d5546001600160801b039283169850911695508690612d95908a906158b3565b612d9f91906158b3565b60d55560d6548590612db29089906158b3565b612dbc91906158b3565b60d6556040805189815260208101899052908101879052606081018690527f6fe7c663aa15def6e80578b76ddd894fcefeabf14a0106afbec24da4a6c578729060800160405180910390a15050505090919293565b600080612e1c61100e565b60d15460405163514ea4bf60e01b8152600481018490529294509092506000916001600160a01b039091169063514ea4bf9060240160a060405180830381865afa158015612e6e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612e929190615967565b505060d15460405163514ea4bf60e01b8152600481018790529394506000936001600160a01b03909116925063514ea4bf915060240160a060405180830381865afa158015612ee5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612f099190615967565b5050505090506000826001600160801b0316111561303c5760d15460d95460405163a34123a760e01b81526001600160a01b039092169163a34123a791612f6491600282810b9263010000009004900b9087906004016159be565b60408051808303816000875af1158015612f82573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612fa691906159e4565b505060d15460d9546040516309e3d67b60e31b81526001600160a01b0390921691634f1eb3d891612ff7913091600281810b926301000000909204900b906001600160801b03908190600401615a08565b60408051808303816000875af1158015613015573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906130399190615a45565b50505b6001600160801b038116156118df5760d15460da5460405163a34123a760e01b81526001600160a01b039092169163a34123a79161308e91600282810b9263010000009004900b9086906004016159be565b60408051808303816000875af11580156130ac573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906130d091906159e4565b505060d15460da546040516309e3d67b60e31b81526001600160a01b0390921691634f1eb3d891613121913091600281810b926301000000909204900b906001600160801b03908190600401615a08565b60408051808303816000875af115801561313f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906131639190615a45565b505050505050565b613173613585565b600061317d610977565b90506000613189613487565b60db549091506000906131a090839060020b61588c565b90506131ad838383614207565b6131b8838383614242565b505042609f5550565b6131c961434a565b6000806131d4610892565b9150915060006131e26121e5565b60d95490915060009061321a9083906131fd9060020b613a62565b60d954613213906301000000900460020b613a62565b87876143eb565b60d95490915060009061323d908390600281810b9163010000009004900b6144af565b90506000826001600160801b03161180156132555750805b1561332e5760db805460ff60701b1916600160701b17905560d15460d954604051633c8a7d8d60e01b8152306004820152600282810b6024830152630100000090920490910b60448201526001600160801b038416606482015260a06084820152600a60a4820152692132b2b33c9026b0b4b760b11b60c48201526001600160a01b0390911690633c8a7d8d9060e40160408051808303816000875af1158015613303573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061332791906159e4565b5050613336565b613336613585565b61333e610892565b60da5491965094506133759084906133589060020b613a62565b60da5461336e906301000000900460020b613a62565b88886143eb565b91506001600160801b038216156134555760db805460ff60701b1916600160701b17905560d15460da54604051633c8a7d8d60e01b8152306004820152600282810b6024830152630100000090920490910b60448201526001600160801b038416606482015260a06084820152600960a482015268109959599e48105b1d60ba1b60c48201526001600160a01b0390911690633c8a7d8d9060e40160408051808303816000875af115801561342e573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061345291906159e4565b50505b5050505050565b6098546001600160a01b03163314610edd576040516362df054560e01b815260040160405180910390fd5b60d154604080516334324e9f60e21b815290516000926001600160a01b03169163d0c93a7c9160048083019260209291908290030181865afa1580156134d1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112ff9190615a78565b60995460d354613514916001600160a01b0391821691166000196144fd565b60995460d454610edd916001600160a01b0391821691166000196144fd565b61353b61458d565b6065805460ff191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa335b6040516001600160a01b03909116815260200160405180910390a1565b61358d611db4565b610edd576040516313643c3b60e11b815260040160405180910390fd5b6040516001600160a01b038381166024830152604482018390526121e091859182169063a9059cbb906064015b604051602081830303815290604052915060e01b6020820180516001600160e01b0383818316178352505050506145d6565b600061361760655460ff1690565b806112ff5750609b60009054906101000a90046001600160a01b03166001600160a01b031663f12d54d86040518163ffffffff1660e01b8152600401602060405180830381865afa158015613670573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112ff9190615935565b60995460d3546136b2916001600160a01b03918216911660006144fd565b60995460d454610edd916001600160a01b03918216911660006144fd565b6136d8614639565b6065805460ff191660011790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2586135683390565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b600054610100900460ff166137865760405162461bcd60e51b8152600401611a3c90615a95565b61378e61467f565b6137966146ae565b6137a36020820182614e26565b609880546001600160a01b0319166001600160a01b03929092169190911790556137d36040820160208301614e26565b609980546001600160a01b0319166001600160a01b03929092169190911790556138036060820160408301614e26565b609a80546001600160a01b0319166001600160a01b03929092169190911790556138336080820160608301614e26565b609b80546001600160a01b0319166001600160a01b03929092169182179055604080516311b0b42d60e01b815290516311b0b42d916004808201926020929091908290030181865afa15801561388d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906138b191906158c6565b609780546001600160a01b0319166001600160a01b039290921691909117905550565b60008183136138e357816138e5565b825b90505b92915050565b60008183126138e357816138e5565b6000808060001985870985870292508281108382030391505080600003613936576000841161392b57600080fd5b5082900490506139aa565b80841161394257600080fd5b600084868809851960019081018716968790049682860381900495909211909303600082900391909104909201919091029190911760038402600290811880860282030280860282030280860282030280860282030280860282030280860290910302029150505b9392505050565b6139ec6040518060c0016040528060008152602001600081526020016000815260200160008152602001606081526020016000151581525090565b6139f4611722565b604051639af608c960e01b81523060048201526001600160a01b039190911690639af608c990602401600060405180830381865afa158015613a3a573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526112ff9190810190615ae0565b60008060008360020b12613a79578260020b613a81565b8260020b6000035b9050620d89e8811115613aba5760405162461bcd60e51b81526020600482015260016024820152601560fa1b6044820152606401611a3c565b600081600116600003613ad157600160801b613ae3565b6ffffcb933bd6fad37aa2d162d1a5940015b70ffffffffffffffffffffffffffffffffff1690506002821615613b17576ffff97272373d413259a46990580e213a0260801c5b6004821615613b36576ffff2e50f5f656932ef12357cf3c7fdcc0260801c5b6008821615613b55576fffe5caca7e10e4e61c3624eaa0941cd00260801c5b6010821615613b74576fffcb9843d60f6159c9db58835c9266440260801c5b6020821615613b93576fff973b41fa98c081472e6896dfb254c00260801c5b6040821615613bb2576fff2ea16466c96a3843ec78b326b528610260801c5b6080821615613bd1576ffe5dee046a99a2a811c461f1969c30530260801c5b610100821615613bf1576ffcbe86c7900a88aedcffc83b479aa3a40260801c5b610200821615613c11576ff987a7253ac413176f2b074cf7815e540260801c5b610400821615613c31576ff3392b0822b70005940c7a398e4b70f30260801c5b610800821615613c51576fe7159475a2c29b7443b29c7fa6e889d90260801c5b611000821615613c71576fd097f3bdfd2022b8845ad8f792aa58250260801c5b612000821615613c91576fa9f746462d870fdf8a65dc1f90e061e50260801c5b614000821615613cb1576f70d869a156d2a1b890bb3df62baf32f70260801c5b618000821615613cd1576f31be135f97d08fd981231505542fcfa60260801c5b62010000821615613cf2576f09aa508b5b7a84e1c677de54f3e99bc90260801c5b62020000821615613d12576e5d6af8dedb81196699c329225ee6040260801c5b62040000821615613d31576d2216e584f5fa1ea926041bedfe980260801c5b62080000821615613d4e576b048a170391f7dc42444e8fa20260801c5b60008460020b1315613d6f578060001981613d6b57613d6b615660565b0490505b640100000000810615613d83576001613d86565b60005b60ff16602082901c0192505050919050565b600080836001600160a01b0316856001600160a01b03161115613db9579293925b846001600160a01b0316866001600160a01b031611613de457613ddd8585856146dd565b9150613e2b565b836001600160a01b0316866001600160a01b03161015613e1d57613e098685856146dd565b9150613e16858785614758565b9050613e2b565b613e28858585614758565b90505b94509492505050565b6000613e42600360146158b3565b60148351613e509190615315565b6138e891906157ca565b60008080613e6884826147a2565b9250613e75846014614807565b9050613e8d613e86600360146158b3565b85906147a2565b91509193909250565b60606138e8613ea7600360146158b3565b613eb3600360146158b3565b8451613ebf9190615315565b8491906148b2565b6000806000613ed46139b1565b905060008515613feb578151600090670de0b6b3a764000090613ef790896157de565b613f0191906157ca565b9050613f0d8188615315565b60975460d3549196506000916001600160a01b03908116911614613fb25760995460d354609754604051630df791e560e41b81526001600160a01b03928316600482015290821660248201526044810185905291169063df791e50906064016020604051808303816000875af1158015613f8b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613faf9190615221565b90505b60975460d3546001600160a01b03918216911603613fdb57613fd482846158b3565b9250613fe8565b613fe581846158b3565b92505b50505b84156140fe578151600090670de0b6b3a76400009061400a90886157de565b61401491906157ca565b90506140208187615315565b60975460d4549195506000916001600160a01b039081169116146140c55760995460d454609754604051630df791e560e41b81526001600160a01b03928316600482015290821660248201526044810185905291169063df791e50906064016020604051808303816000875af115801561409e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906140c29190615221565b90505b60975460d4546001600160a01b039182169116036140ee576140e782846158b3565b92506140fb565b6140f881846158b3565b92505b50505b6000670de0b6b3a764000083604001518361411991906157de565b61412391906157ca565b60975490915061413d906001600160a01b031689836135aa565b6000670de0b6b3a764000084606001518461415891906157de565b61416291906157ca565b609a54609754919250614182916001600160a01b039081169116836135aa565b60008161418f8486615315565b6141999190615315565b90506141b96141a6611cb0565b6097546001600160a01b031690836135aa565b60408051848152602081018390529081018390527fd255b592c7f268a73e534da5219a60ff911b4cf6daae21c7d20527dd657bd99a9060600160405180910390a15050505050935093915050565b6142128382846149bf565b60d9805465ffffffffffff1916630100000062ffffff9384160262ffffff19161792909116919091179055505050565b60008061424d610892565b909250905060008215614289576ec097ce7bc90715b34b9f1000000000614272611f46565b61427c90856157de565b61428691906157ca565b90505b818110156142e85761429c8685876149bf565b5060da805462ffffff191662ffffff929092169190911790556142c08686806149bf565b5060da805462ffffff90921663010000000265ffffff00000019909216919091179055613163565b80821015613163576142fb8686876149bf565b60da805462ffffff191662ffffff929092169190911790555061431f8685876149bf565b60da805462ffffff90921663010000000265ffffff0000001990921691909117905550505050505050565b60655460ff16806143cd5750609b60009054906101000a90046001600160a01b03166001600160a01b031663f12d54d86040518163ffffffff1660e01b8152600401602060405180830381865afa1580156143a9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906143cd9190615935565b15610edd5760405163e628b94960e01b815260040160405180910390fd5b6000836001600160a01b0316856001600160a01b0316111561440b579293925b846001600160a01b0316866001600160a01b0316116144365761442f8585856149f1565b90506144a6565b836001600160a01b0316866001600160a01b0316101561449857600061445d8786866149f1565b9050600061446c878986614a5b565b9050806001600160801b0316826001600160801b03161061448d578061448f565b815b925050506144a6565b6144a3858584614a5b565b90505b95945050505050565b60008060006144d16144bf6121e5565b6144c887613a62565b61276b87613a62565b9150915081600014806144e2575080155b156144f2576000925050506139aa565b6001925050506139aa565b604080516001600160a01b038416602482015260448082018490528251808303909101815260649091019091526020810180516001600160e01b031663095ea7b360e01b17905261454e8482614a91565b6118df576040516001600160a01b0384811660248301526000604483015261458391869182169063095ea7b3906064016135d7565b6118df84826145d6565b60655460ff16610edd5760405162461bcd60e51b815260206004820152601460248201527314185d5cd8589b194e881b9bdd081c185d5cd95960621b6044820152606401611a3c565b60006145eb6001600160a01b03841683614b34565b9050805160001415801561461057508080602001905181019061460e9190615935565b155b156121e057604051635274afe760e01b81526001600160a01b0384166004820152602401611a3c565b60655460ff1615610edd5760405162461bcd60e51b815260206004820152601060248201526f14185d5cd8589b194e881c185d5cd95960821b6044820152606401611a3c565b600054610100900460ff166146a65760405162461bcd60e51b8152600401611a3c90615a95565b610edd614b42565b600054610100900460ff166146d55760405162461bcd60e51b8152600401611a3c90615a95565b610edd614b72565b6000826001600160a01b0316846001600160a01b031611156146fd579192915b6001600160a01b0384166147466fffffffffffffffffffffffffffffffff60601b606085901b1661472e8787615bbe565b6001600160a01b0316866001600160a01b03166138fd565b61475091906157ca565b949350505050565b6000826001600160a01b0316846001600160a01b03161115614778579192915b6147506001600160801b03831661478f8686615bbe565b6001600160a01b0316600160601b6138fd565b60006147af8260146158b3565b835110156147f75760405162461bcd60e51b8152602060048201526015602482015274746f416464726573735f6f75744f66426f756e647360581b6044820152606401611a3c565b500160200151600160601b900490565b6000816148158160036158b3565b10156148575760405162461bcd60e51b8152602060048201526011602482015270746f55696e7432345f6f766572666c6f7760781b6044820152606401611a3c565b6148628260036158b3565b835110156148a95760405162461bcd60e51b8152602060048201526014602482015273746f55696e7432345f6f75744f66426f756e647360601b6044820152606401611a3c565b50016003015190565b6060816148c081601f6158b3565b10156148ff5760405162461bcd60e51b815260206004820152600e60248201526d736c6963655f6f766572666c6f7760901b6044820152606401611a3c565b61490982846158b3565b8451101561494d5760405162461bcd60e51b8152602060048201526011602482015270736c6963655f6f75744f66426f756e647360781b6044820152606401611a3c565b60608215801561496c57604051915060008252602082016040526149b6565b6040519150601f8416801560200281840101858101878315602002848b0101015b818310156149a557805183526020928301920161498d565b5050858452601f01601f1916604052505b50949350505050565b60008060006149ce8685614ba5565b90506149da8582615bde565b92506149e68582615c03565b915050935093915050565b6000826001600160a01b0316846001600160a01b03161115614a11579192915b6000614a34856001600160a01b0316856001600160a01b0316600160601b6138fd565b90506144a6614a568483614a488989615bbe565b6001600160a01b03166138fd565b614bef565b6000826001600160a01b0316846001600160a01b03161115614a7b579192915b614750614a5683600160601b614a488888615bbe565b6000806000846001600160a01b031684604051614aae9190615c28565b6000604051808303816000865af19150503d8060008114614aeb576040519150601f19603f3d011682016040523d82523d6000602084013e614af0565b606091505b5091509150818015614b1a575080511580614b1a575080806020019051810190614b1a9190615935565b80156144a65750505050506001600160a01b03163b151590565b60606138e583836000614c0a565b600054610100900460ff16614b695760405162461bcd60e51b8152600401611a3c90615a95565b610edd3361370d565b600054610100900460ff16614b995760405162461bcd60e51b8152600401611a3c90615a95565b6065805460ff19169055565b600080614bb28385615c44565b905060008460020b128015614bd25750614bcc8385615c75565b60020b15155b15614be55780614be181615c97565b9150505b614750838261588c565b806001600160801b0381168114614c0557600080fd5b919050565b606081471015614c2f5760405163cd78605960e01b8152306004820152602401611a3c565b600080856001600160a01b03168486604051614c4b9190615c28565b60006040518083038185875af1925050503d8060008114614c88576040519150601f19603f3d011682016040523d82523d6000602084013e614c8d565b606091505b5091509150614c9d868383614ca7565b9695505050505050565b606082614cbc57614cb782614d03565b6139aa565b8151158015614cd357506001600160a01b0384163b155b15614cfc57604051639996b31560e01b81526001600160a01b0385166004820152602401611a3c565b50806139aa565b805115614d135780518082602001fd5b604051630a12f52160e11b815260040160405180910390fd5b6040518060600160405280614d726040518060c0016040528060008152602001600081526020016000815260200160008152602001606081526020016000151581525090565b815260200160008152602001600081525090565b60008083601f840112614d9857600080fd5b50813567ffffffffffffffff811115614db057600080fd5b602083019150836020828501011115614dc857600080fd5b9250929050565b60008060208385031215614de257600080fd5b823567ffffffffffffffff811115614df957600080fd5b614e0585828601614d86565b90969095509350505050565b6001600160a01b0381168114610b9057600080fd5b600060208284031215614e3857600080fd5b81356139aa81614e11565b8060020b8114610b9057600080fd5b600060208284031215614e6457600080fd5b81356139aa81614e43565b63ffffffff81168114610b9057600080fd5b600060208284031215614e9357600080fd5b81356139aa81614e6f565b60005b83811015614eb9578181015183820152602001614ea1565b50506000910152565b60008151808452614eda816020860160208601614e9e565b601f01601f19169290920160200192915050565b6020815260006138e56020830184614ec2565b6020808252825182820181905260009190848201906040850190845b81811015614f425783516001600160a01b031683529284019291840191600101614f1d565b50909695505050505050565b8060060b8114610b9057600080fd5b600060208284031215614f6f57600080fd5b81356139aa81614f4e565b600060208284031215614f8c57600080fd5b5035919050565b60008060408385031215614fa657600080fd5b50508035926020909101359150565b600080600080600080600080888a03610120811215614fd357600080fd5b8935614fde81614e11565b985060208a0135614fee81614e11565b975060408a0135614ffe81614e43565b965060608a013567ffffffffffffffff8082111561501b57600080fd5b6150278d838e01614d86565b909850965060808c013591508082111561504057600080fd5b5061504d8c828d01614d86565b9095509350506080609f198201121561506557600080fd5b5060a0890190509295985092959890939650565b634e487b7160e01b600052604160045260246000fd5b60405160c0810167ffffffffffffffff811182821017156150b2576150b2615079565b60405290565b604051601f8201601f1916810167ffffffffffffffff811182821017156150e1576150e1615079565b604052919050565b600067ffffffffffffffff82111561510357615103615079565b50601f01601f191660200190565b60008060006060848603121561512657600080fd5b8335925060208401359150604084013567ffffffffffffffff81111561514b57600080fd5b8401601f8101861361515c57600080fd5b803561516f61516a826150e9565b6150b8565b81815287602083850101111561518457600080fd5b816020840160208301376000602083830101528093505050509250925092565b60208152600082516060602084015280516080840152602081015160a0840152604081015160c0840152606081015160e0840152608081015160c06101008501526151f3610140850182614ec2565b905060a082015115156101208501526020850151604085015260408501516060850152809250505092915050565b60006020828403121561523357600080fd5b5051919050565b805161ffff81168114614c0557600080fd5b80518015158114614c0557600080fd5b600080600080600080600060e0888a03121561527757600080fd5b875161528281614e11565b602089015190975061529381614e43565b95506152a16040890161523a565b94506152af6060890161523a565b93506152bd6080890161523a565b925060a08801516152cd81614e6f565b91506152db60c0890161524c565b905092959891949750929550565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b818103818111156138e8576138e86152ff565b600181811c9082168061533c57607f821691505b60208210810361535c57634e487b7160e01b600052602260045260246000fd5b50919050565b601f8211156121e0576000816000526020600020601f850160051c8101602086101561538b5750805b601f850160051c820191505b8181101561316357828155600101615397565b67ffffffffffffffff8311156153c2576153c2615079565b6153d6836153d08354615328565b83615362565b6000601f84116001811461540a57600085156153f25750838201355b600019600387901b1c1916600186901b178355613455565b600083815260209020601f19861690835b8281101561543b578685013582556020948501946001909201910161541b565b50868210156154585760001960f88860031b161c19848701351681555b505060018560011b0183555050505050565b60208152816020820152818360408301376000818301604090810191909152601f909201601f19160101919050565b6020808252825182820181905260009190848201906040850190845b81811015614f4257835163ffffffff16835292840192918401916001016154b5565b600067ffffffffffffffff8211156154f1576154f1615079565b5060051b60200190565b600082601f83011261550c57600080fd5b8151602061551c61516a836154d7565b8083825260208201915060208460051b87010193508684111561553e57600080fd5b602086015b8481101561556357805161555681614e11565b8352918301918301615543565b509695505050505050565b6000806040838503121561558157600080fd5b825167ffffffffffffffff8082111561559957600080fd5b818501915085601f8301126155ad57600080fd5b815160206155bd61516a836154d7565b82815260059290921b840181019181810190898411156155dc57600080fd5b948201945b838610156156035785516155f481614f4e565b825294820194908201906155e1565b9188015191965090935050508082111561561c57600080fd5b50615629858286016154fb565b9150509250929050565b600682810b9082900b03667fffffffffffff198112667fffffffffffff821317156138e8576138e86152ff565b634e487b7160e01b600052601260045260246000fd5b60008160060b8360060b8061568d5761568d615660565b667fffffffffffff198214600019821416156156ab576156ab6152ff565b90059392505050565b6000602082840312156156c657600080fd5b815160ff811681146139aa57600080fd5b600181815b808511156157125781600019048211156156f8576156f86152ff565b8085161561570557918102915b93841c93908002906156dc565b509250929050565b600082615729575060016138e8565b81615736575060006138e8565b816001811461574c576002811461575657615772565b60019150506138e8565b60ff841115615767576157676152ff565b50506001821b6138e8565b5060208310610133831016604e8410600b8410161715615795575081810a6138e8565b61579f83836156d7565b80600019048211156157b3576157b36152ff565b029392505050565b60006138e560ff84168361571a565b6000826157d9576157d9615660565b500490565b80820281158282048414176138e8576138e86152ff565b60408152600080845461580781615328565b8060408601526060600180841660008114615829576001811461584557615877565b60ff1985166060890152606084151560051b8901019550615877565b8960005260208060002060005b8681101561586d5781548b8201870152908401908201615852565b8a01606001975050505b50505050506020929092019290925292915050565b60008260020b8260020b028060020b91508082146158ac576158ac6152ff565b5092915050565b808201808211156138e8576138e86152ff565b6000602082840312156158d857600080fd5b81516139aa81614e11565b6000602082840312156158f557600080fd5b815162ffffff811681146139aa57600080fd5b600681810b9083900b01667fffffffffffff8113667fffffffffffff19821217156138e8576138e86152ff565b60006020828403121561594757600080fd5b6138e58261524c565b80516001600160801b0381168114614c0557600080fd5b600080600080600060a0868803121561597f57600080fd5b61598886615950565b945060208601519350604086015192506159a460608701615950565b91506159b260808701615950565b90509295509295909350565b600293840b81529190920b60208201526001600160801b03909116604082015260600190565b600080604083850312156159f757600080fd5b505080516020909101519092909150565b6001600160a01b03959095168552600293840b60208601529190920b60408401526001600160801b03918216606084015216608082015260a00190565b60008060408385031215615a5857600080fd5b615a6183615950565b9150615a6f60208401615950565b90509250929050565b600060208284031215615a8a57600080fd5b81516139aa81614e43565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b606082015260800190565b60006020808385031215615af357600080fd5b825167ffffffffffffffff80821115615b0b57600080fd5b9084019060c08287031215615b1f57600080fd5b615b2761508f565b8251815283830151848201526040830151604082015260608301516060820152608083015182811115615b5957600080fd5b83019150601f82018713615b6c57600080fd5b8151615b7a61516a826150e9565b8181528886838601011115615b8e57600080fd5b615b9d82878301888701614e9e565b608083015250615baf60a0840161524c565b60a08201529695505050505050565b6001600160a01b038281168282160390808211156158ac576158ac6152ff565b600282810b9082900b03627fffff198112627fffff821317156138e8576138e86152ff565b600281810b9083900b01627fffff8113627fffff19821217156138e8576138e86152ff565b60008251615c3a818460208701614e9e565b9190910192915050565b60008160020b8360020b80615c5b57615c5b615660565b627fffff198214600019821416156156ab576156ab6152ff565b60008260020b80615c8857615c88615660565b808360020b0791505092915050565b60008160020b627fffff198103615cb057615cb06152ff565b600019019291505056fea26469706673582212200c9552bd30e3aca63a86fd266ca05fa78804fcefc23ba6da21a18a2a5508e2b064736f6c63430008170033