6101206040523480156200001257600080fd5b5060405162005f8838038062005f888339810160408190526200003591620002ae565b6200003f620001b1565b6001600160a01b03811660808190526040805163026b1d5f60e01b8152905163026b1d5f916004808201926020929091908290030181865afa1580156200008a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620000b09190620002fe565b6001600160a01b0390811660a081905261ffff84166101005290841660e08190526040516335ea6a7560e01b81526004810191909152600091906335ea6a75906024016101e060405180830381865afa15801562000112573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001389190620003dc565b610100015190506001600160a01b0381166200019b5760405162461bcd60e51b815260206004820152601360248201527f41535345545f4e4f545f535550504f525445440000000000000000000000000060448201526064015b60405180910390fd5b6001600160a01b031660c0525062000520915050565b600054610100900460ff16156200021b5760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b606482015260840162000192565b60005460ff90811610156200026e576000805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b6001600160a01b03811681146200028657600080fd5b50565b8051620002968162000270565b919050565b805161ffff811681146200029657600080fd5b600080600060608486031215620002c457600080fd5b8351620002d18162000270565b9250620002e1602085016200029b565b91506040840151620002f38162000270565b809150509250925092565b6000602082840312156200031157600080fd5b81516200031e8162000270565b9392505050565b6040516101e081016001600160401b03811182821017156200035757634e487b7160e01b600052604160045260246000fd5b60405290565b6000602082840312156200037057600080fd5b604051602081016001600160401b0381118282101715620003a157634e487b7160e01b600052604160045260246000fd5b6040529151825250919050565b80516001600160801b03811681146200029657600080fd5b805164ffffffffff811681146200029657600080fd5b60006101e08284031215620003f057600080fd5b620003fa62000325565b6200040684846200035d565b81526200041660208401620003ae565b60208201526200042960408401620003ae565b60408201526200043c60608401620003ae565b60608201526200044f60808401620003ae565b60808201526200046260a08401620003ae565b60a08201526200047560c08401620003c6565b60c08201526200048860e084016200029b565b60e08201526101006200049d81850162000289565b90820152610120620004b184820162000289565b90820152610140620004c584820162000289565b90820152610160620004d984820162000289565b90820152610180620004ed848201620003ae565b908201526101a062000501848201620003ae565b908201526101c062000515848201620003ae565b908201529392505050565b60805160a05160c05160e0516101005161595f62000629600039600081816105290152613ff701526000818161078f01528181610b1901528181610ba901528181612e3201528181612f64015281816133fd01528181613f5d01528181613fc2015261446a0152600081816105cd01528181610cc101528181610fef01528181611741015281816117dd01528181611a9b01528181611d9c01528181611e0d01528181612f3c01528181613538015281816137fd01528181613ed0015281816140ac015281816143ba015261453e01526000818161042d01528181610bcb01528181612e5f0152818161342a0152818161402101526144a1015260006104d2015261595f6000f3fe608060405234801561001057600080fd5b50600436106103825760003560e01c80638da5cb5b116101de578063c63d75b61161010f578063dd62ed3e116100ad578063ef8b30f71161007c578063ef8b30f7146108bd578063f2fde38b146108d0578063f698da25146108e3578063ffd7d21f146108eb57600080fd5b8063dd62ed3e1461083e578063e25ec34914610884578063ee4535ba14610897578063ef5cfb8c146108aa57600080fd5b8063ce96cb77116100e9578063ce96cb77146107ea578063ced72f87146107fd578063d687d0b314610818578063d905777e1461082b57600080fd5b8063c63d75b6146107b1578063c6e6f592146107c4578063c7df1f56146107d757600080fd5b8063b344ed031161017c578063ba08765211610156578063ba0876521461074a578063bddd09b71461075d578063bfedc2be14610777578063c5d664c61461078a57600080fd5b8063b344ed0314610711578063b3d7f6b914610724578063b460af941461073757600080fd5b80639d3ebd94116101b85780639d3ebd94146106c5578063a457c2d7146106d8578063a9059cbb146106eb578063ad3b1b47146106fe57600080fd5b80638da5cb5b1461068c57806394bf804d146106aa57806395d89b41146106bd57600080fd5b80633583849a116102b85780635be35e1a116102565780636e553f65116102305780636e553f651461062857806370a082311461063b578063715018a6146106715780637fc1664a1461067957600080fd5b80635be35e1a146105ef5780636738445e1461060257806369fe0e2d1461061557600080fd5b8063402d267d11610292578063402d267d1461058f578063403c02d0146105a25780634cdad506146105b557806351c0e061146105c857600080fd5b80633583849a1461052457806338d52e0f1461055e578063395093511461057c57600080fd5b8063095ea7b31161032557806323b872dd116102ff57806323b872dd146104b2578063274f0e24146104c5578063311cd5a4146104cd578063313ce567146104f457600080fd5b8063095ea7b3146104745780630a28a4771461049757806318160ddd146104aa57600080fd5b80630634d4e9116103615780630634d4e9146103ed57806306fdde031461040057806307a2d13a1461041557806308a016751461042857600080fd5b80628b187b1461038757806301e1d1141461039c57806305ac0ab4146103b7575b600080fd5b61039a610395366004614e93565b6108fe565b005b6103a4610c89565b6040519081526020015b60405180910390f35b6103a46103c5366004614f1b565b73ffffffffffffffffffffffffffffffffffffffff16600090815260fd602052604090205490565b6103a46103fb366004614f38565b610d50565b610408610e90565b6040516103ae9190615027565b6103a461042336600461503a565b610f22565b61044f7f000000000000000000000000000000000000000000000000000000000000000081565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020016103ae565b610487610482366004615053565b610f35565b60405190151581526020016103ae565b6103a46104a536600461503a565b610f4d565b6035546103a4565b6104876104c036600461507f565b610f83565b6103a4610fa7565b61044f7f000000000000000000000000000000000000000000000000000000000000000081565b60655474010000000000000000000000000000000000000000900460ff1660405160ff90911681526020016103ae565b61054b7f000000000000000000000000000000000000000000000000000000000000000081565b60405161ffff90911681526020016103ae565b60655473ffffffffffffffffffffffffffffffffffffffff1661044f565b61048761058a366004615053565b611138565b6103a461059d366004614f1b565b611184565b6103a46105b0366004614f38565b61118e565b6103a46105c336600461503a565b611249565b61044f7f000000000000000000000000000000000000000000000000000000000000000081565b6103a46105fd3660046150c0565b611271565b6103a4610610366004614f38565b611281565b61039a61062336600461503a565b61133c565b6103a4610636366004615102565b611358565b6103a4610649366004614f1b565b73ffffffffffffffffffffffffffffffffffffffff1660009081526033602052604090205490565b61039a611367565b6103a4610687366004614f38565b61137b565b60975473ffffffffffffffffffffffffffffffffffffffff1661044f565b6103a46106b8366004615102565b611435565b610408611444565b6103a46106d3366004614f38565b611453565b6104876106e6366004615053565b61150d565b6104876106f9366004615053565b6115de565b61039a61070c366004615053565b6115ec565b6103a461071f366004614f38565b61190b565b6103a461073236600461503a565b6119c6565b6103a46107453660046150c0565b6119de565b6103a46107583660046150c0565b6119ee565b60fe546fffffffffffffffffffffffffffffffff166103a4565b6103a4610785366004615102565b6119fe565b61044f7f000000000000000000000000000000000000000000000000000000000000000081565b6103a46107bf366004614f1b565b611a0d565b6103a46107d236600461503a565b611a21565b6103a46107e53660046150c0565b611a2e565b6103a46107f8366004614f1b565b611a3e565b60ff5465010000000000900467ffffffffffffffff166103a4565b61039a61082636600461507f565b611a91565b6103a4610839366004614f1b565b611bdc565b6103a461084c366004615132565b73ffffffffffffffffffffffffffffffffffffffff918216600090815260346020908152604080832093909416825291909152205490565b6103a4610892366004615102565b611c29565b6103a46108a5366004614f38565b611c38565b61039a6108b8366004614f1b565b611cf3565b6103a46108cb36600461503a565b611f93565b61039a6108de366004614f1b565b611fa4565b6103a4612058565b6103a46108f9366004614f38565b612062565b600054610100900460ff161580801561091e5750600054600160ff909116105b806109385750303b158015610938575060005460ff166001145b6109c9576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a656400000000000000000000000000000000000060648201526084015b60405180910390fd5b600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660011790558015610a2757600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff166101001790555b73ffffffffffffffffffffffffffffffffffffffff8616610aa4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601660248201527f5a45524f5f414444524553535f4e4f545f56414c49440000000000000000000060448201526064016109c0565b81610b0b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601960248201527f5a45524f5f494e495449414c5f4c4f434b5f4445504f5349540000000000000060448201526064016109c0565b610b148661211c565b610b3d7f0000000000000000000000000000000000000000000000000000000000000000612193565b610b478484612233565b610b86846040518060400160405280600181526020017f31000000000000000000000000000000000000000000000000000000000000008152506122d8565b610b8f85612379565b610c1073ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000167f00000000000000000000000000000000000000000000000000000000000000007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff612463565b610c1d8230336000612668565b508015610c8157600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b505050505050565b6000610c93610fa7565b6040517f70a082310000000000000000000000000000000000000000000000000000000081523060048201527f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16906370a0823190602401602060405180830381865afa158015610d1d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d419190615160565b610d4b91906151a8565b905090565b73ffffffffffffffffffffffffffffffffffffffff8216600090815260fd602090815260408083208054600181019091559051610e7892610e7192610dfd927f31f715285d0336ec5283088d1b45126d1ce4b6ecda1dacc0018f3af0ab9f2739928b928b928b9260608c01359101958652602086019490945273ffffffffffffffffffffffffffffffffffffffff928316604086015291166060840152608083015260a082015260c00190565b60405160208183030381529060405280519060200120610e1b612774565b604080517f19010000000000000000000000000000000000000000000000000000000000006020808301919091526022820193909352604280820194909452815180820390940184526062019052815191012090565b84846127ef565b610e858585856001612b7c565b90505b949350505050565b606060368054610e9f906151bf565b80601f0160208091040260200160405190810160405280929190818152602001828054610ecb906151bf565b8015610f185780601f10610eed57610100808354040283529160200191610f18565b820191906000526020600020905b815481529060010190602001808311610efb57829003601f168201915b5050505050905090565b6000610f2f826000612c17565b92915050565b600033610f43818585612c4a565b5060019392505050565b600080610f58612df5565b90508015610f7957610f74610f6d8285612fd6565b6001612fec565b610f7c565b60005b9392505050565b600033610f9185828561301e565b610f9c8585856130ef565b506001949350505050565b6040517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152600090819073ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016906370a0823190602401602060405180830381865afa158015611036573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061105a9190615160565b60fe549091506fffffffffffffffffffffffffffffffff1681116110a657505060fe5470010000000000000000000000000000000090046fffffffffffffffffffffffffffffffff1690565b60fe546000906110c8906fffffffffffffffffffffffffffffffff16836151a8565b60ff549091506000906110f990839065010000000000900467ffffffffffffffff16670de0b6b3a764000084613365565b60fe5490915061113090829070010000000000000000000000000000000090046fffffffffffffffffffffffffffffffff16615213565b935050505090565b33600081815260346020908152604080832073ffffffffffffffffffffffffffffffffffffffff87168452909152812054909190610f43908290869061117f908790615213565b612c4a565b6000610f2f6133c0565b73ffffffffffffffffffffffffffffffffffffffff8216600090815260fd60209081526040808320805460018101909155905161123b92610e7192610dfd927ff7a555df330b7da73a95b63b182e2bb0502dca4a55fa99d8b235bea4c1d2fa0f928b928b928b9260608c01359101958652602086019490945273ffffffffffffffffffffffffffffffffffffffff928316604086015291166060840152608083015260a082015260c00190565b610e8585858586600161364d565b600080611254612df5565b90508015610f7957610f748161126b856000612c17565b90612fd6565b6000610e8884848433600161364d565b73ffffffffffffffffffffffffffffffffffffffff8216600090815260fd60209081526040808320805460018101909155905161132e92610e7192610dfd927fc0484d18c6ea2cbf7245b69a4c0ff9eac77560075afcb46f857ca211330d8bfd928b928b928b9260608c01359101958652602086019490945273ffffffffffffffffffffffffffffffffffffffff928316604086015291166060840152608083015260a082015260c00190565b610e8585858586600061364d565b61134461374b565b61134c6137cc565b61135581612379565b50565b6000610f7c8383336000612668565b61136f61374b565b611379600061211c565b565b73ffffffffffffffffffffffffffffffffffffffff8216600090815260fd60209081526040808320805460018101909155905161142892610e7192610dfd927f15eaa5acc15a2b2b4af7fa12919d9e1f33955afd5d7af5764a1c5c88ef95f428928b928b928b9260608c01359101958652602086019490945273ffffffffffffffffffffffffffffffffffffffff928316604086015291166060840152608083015260a082015260c00190565b610e858585856001612668565b6000610f7c8383336000612b7c565b606060378054610e9f906151bf565b73ffffffffffffffffffffffffffffffffffffffff8216600090815260fd60209081526040808320805460018101909155905161150092610e7192610dfd927fe9c23c17074c4703a97d1bd5244f0b58300a709d3583fdad93de5e134ea685d2928b928b928b9260608c01359101958652602086019490945273ffffffffffffffffffffffffffffffffffffffff928316604086015291166060840152608083015260a082015260c00190565b610e858585856000612b7c565b33600081815260346020908152604080832073ffffffffffffffffffffffffffffffffffffffff87168452909152812054909190838110156115d1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760448201527f207a65726f00000000000000000000000000000000000000000000000000000060648201526084016109c0565b610f9c8286868403612c4a565b600033610f438185856130ef565b6115f461374b565b6115fc6137cc565b60fe5470010000000000000000000000000000000090046fffffffffffffffffffffffffffffffff1681111561168e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f494e53554646494349454e545f4645455300000000000000000000000000000060448201526064016109c0565b60fe80548291906010906116c990849070010000000000000000000000000000000090046fffffffffffffffffffffffffffffffff1661522b565b82546fffffffffffffffffffffffffffffffff9182166101009390930a9283029190920219909116179055506040517fa9059cbb00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8381166004830152602482018390527f0000000000000000000000000000000000000000000000000000000000000000169063a9059cbb906044016020604051808303816000875af115801561178a573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117ae919061525c565b506040517f70a082310000000000000000000000000000000000000000000000000000000081523060048201527f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16906370a0823190602401602060405180830381865afa158015611839573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061185d9190615160565b60fe80547fffffffffffffffffffffffffffffffff00000000000000000000000000000000166fffffffffffffffffffffffffffffffff92831690811791829055604080519182527001000000000000000000000000000000009092049092166020830152829173ffffffffffffffffffffffffffffffffffffffff8516917f2f7b02703a7c602588420b2be2f0a441b52632acdfcb11933bfc01e6226bd966910160405180910390a35050565b73ffffffffffffffffffffffffffffffffffffffff8216600090815260fd6020908152604080832080546001810190915590516119b892610e7192610dfd927f2a779101c1c147a93a0f0f2af51e69be2bf9fcfd59c93571c7dc958f7b00bc9f928b928b928b9260608c01359101958652602086019490945273ffffffffffffffffffffffffffffffffffffffff928316604086015291166060840152608083015260a082015260c00190565b610e858585858660016139cd565b6000610f2f6119d36133c0565b61126b846001612c17565b6000610e888484843360006139cd565b6000610e8884848433600061364d565b6000610f7c8383336001612b7c565b6000610f2f611a1a6133c0565b6000612fec565b6000610f2f826000612fec565b6000610e888484843360016139cd565b600080611a49612df5565b90508015610f7957610f74611a8a611a838573ffffffffffffffffffffffffffffffffffffffff1660009081526033602052604090205490565b6000612c17565b8290612fd6565b611a9961374b565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611b4f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f43414e4e4f545f5245534355455f41544f4b454e00000000000000000000000060448201526064016109c0565b611b7073ffffffffffffffffffffffffffffffffffffffff84168383613a64565b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fea4a477e0088f88561958e72554e9c7813468c62643829628924da5793beb96983604051611bcf91815260200190565b60405180910390a3505050565b600080611be7612df5565b90508015610f7957610f74611c1e8473ffffffffffffffffffffffffffffffffffffffff1660009081526033602052604090205490565b61126b836000612fec565b6000610f7c8383336001612668565b73ffffffffffffffffffffffffffffffffffffffff8216600090815260fd602090815260408083208054600181019091559051611ce592610e7192610dfd927fad42a8f215b27fe0954650488d71791b9850878ebd5d05b6dac694749400a1a6928b928b928b9260608c01359101958652602086019490945273ffffffffffffffffffffffffffffffffffffffff928316604086015291166060840152608083015260a082015260c00190565b610e858585858660006139cd565b611cfb61374b565b73ffffffffffffffffffffffffffffffffffffffff8116611d78576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601c60248201527f43414e4e4f545f434c41494d5f544f5f5a45524f5f414444524553530000000060448201526064016109c0565b604080516001808252818301909252600091602080830190803683370190505090507f000000000000000000000000000000000000000000000000000000000000000081600081518110611dce57611dce61527e565b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506000807f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166375d264136040518163ffffffff1660e01b8152600401602060405180830381865afa158015611e76573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611e9a91906152ad565b73ffffffffffffffffffffffffffffffffffffffff1663bb492bf584866040518363ffffffff1660e01b8152600401611ed492919061531b565b6000604051808303816000875af1158015611ef3573d6000803e3d6000fd5b505050506040513d6000823e601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0168201604052611f3991908101906153f2565b915091508373ffffffffffffffffffffffffffffffffffffffff167fc53cb8bc1a7200a84d0b66a538905a245c4915aace7f1ce5dc4a0ba107ebc15c8383604051611f859291906154b7565b60405180910390a250505050565b6000610f2f611a1a8361126b6133c0565b611fac61374b565b73ffffffffffffffffffffffffffffffffffffffff811661204f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084016109c0565b6113558161211c565b6000610d4b612774565b73ffffffffffffffffffffffffffffffffffffffff8216600090815260fd60209081526040808320805460018101909155905161210f92610e7192610dfd927f63ae75f148e3e5d376e66254575f23cf64979c3f62382d02bd9616f4f49dc499928b928b928b9260608c01359101958652602086019490945273ffffffffffffffffffffffffffffffffffffffff928316604086015291166060840152608083015260a082015260c00190565b610e858585856000612668565b6097805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b600054610100900460ff1661222a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e6700000000000000000000000000000000000000000060648201526084016109c0565b61135581613aba565b600054610100900460ff166122ca576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e6700000000000000000000000000000000000000000060648201526084016109c0565b6122d48282613bfd565b5050565b600054610100900460ff1661236f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e6700000000000000000000000000000000000000000060648201526084016109c0565b6122d48282613cbb565b670de0b6b3a76400008111156123eb576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600c60248201527f4645455f544f4f5f48494748000000000000000000000000000000000000000060448201526064016109c0565b60ff805467ffffffffffffffff838116650100000000009081027fffffffffffffffffffffffffffffffffffffff0000000000000000ffffffffff841617909355604051929091041690829082907f528d9479e9f9889a87a3c30c7f7ba537e5e59c4c85a37733b16e57c62df6130290600090a35050565b80158061250357506040517fdd62ed3e00000000000000000000000000000000000000000000000000000000815230600482015273ffffffffffffffffffffffffffffffffffffffff838116602483015284169063dd62ed3e90604401602060405180830381865afa1580156124dd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906125019190615160565b155b61258f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603660248201527f5361666545524332303a20617070726f76652066726f6d206e6f6e2d7a65726f60448201527f20746f206e6f6e2d7a65726f20616c6c6f77616e63650000000000000000000060648201526084016109c0565b60405173ffffffffffffffffffffffffffffffffffffffff83166024820152604481018290526126639084907f095ea7b300000000000000000000000000000000000000000000000000000000906064015b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff0000000000000000000000000000000000000000000000000000000090931692909217909152613d6c565b505050565b6000816126e15761267884611184565b8511156126e1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f4445504f5349545f455843454544535f4d41580000000000000000000000000060448201526064016109c0565b6126e96137cc565b60006126f486611a21565b90508061275d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600b60248201527f5a45524f5f53484152455300000000000000000000000000000000000000000060448201526064016109c0565b610e8561276b826001612c17565b82868887613e78565b6000610d4b7f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f6127a360c95490565b60ca546040805160208101859052908101839052606081018290524660808201523060a082015260009060c0016040516020818303038152906040528051906020012090509392505050565b428160600135101561285d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600b60248201527f5349475f4558504952454400000000000000000000000000000000000000000060448201526064016109c0565b8173ffffffffffffffffffffffffffffffffffffffff81163b15612a3157600060208301803590604085013590612894908661550e565b6040516020016128dc93929190928352602083019190915260f81b7fff0000000000000000000000000000000000000000000000000000000000000016604082015260410190565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0818403018152908290527f1626ba7e000000000000000000000000000000000000000000000000000000008083529092509073ffffffffffffffffffffffffffffffffffffffff861690631626ba7e906129619089908690600401615531565b602060405180830381865afa15801561297e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906129a2919061554a565b7fffffffff000000000000000000000000000000000000000000000000000000001614612a2b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600b60248201527f5349475f494e56414c494400000000000000000000000000000000000000000060448201526064016109c0565b50612b76565b600184612a41602085018561550e565b604080516000815260208181018084529490945260ff9092168282015291850135606082015290840135608082015260a0016020604051602081039080840390855afa158015612a95573d6000803e3d6000fd5b50506040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0015191505073ffffffffffffffffffffffffffffffffffffffff811615801590612b1057508273ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16145b612b76576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600b60248201527f5349475f494e56414c494400000000000000000000000000000000000000000060448201526064016109c0565b50505050565b600081612bf557612b8c84611a0d565b851115612bf5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601060248201527f4d494e545f455843454544535f4d41580000000000000000000000000000000060448201526064016109c0565b612bfd6137cc565b6000612c08866141ee565b9050610e858187868887613e78565b600080612c2360355490565b90508015612c4457612c3f612c36610c89565b85908386613365565b610e88565b83610e88565b73ffffffffffffffffffffffffffffffffffffffff8316612cec576040517f08c379a0000000000000000000000000000000000000000000000000000000008152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460448201527f726573730000000000000000000000000000000000000000000000000000000060648201526084016109c0565b73ffffffffffffffffffffffffffffffffffffffff8216612d8f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f20616464726560448201527f737300000000000000000000000000000000000000000000000000000000000060648201526084016109c0565b73ffffffffffffffffffffffffffffffffffffffff83811660008181526034602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259101611bcf565b6040517f35ea6a7500000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000008116600483015260009182917f000000000000000000000000000000000000000000000000000000000000000016906335ea6a75906024016101e060405180830381865afa158015612ea7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612ecb9190615615565b80515190915067010000000000000081161580612ef15750671000000000000000811615155b15612eff5760009250505090565b6040517f70a0823100000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000811660048301527f000000000000000000000000000000000000000000000000000000000000000016906370a0823190602401602060405180830381865afa158015612fab573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612fcf9190615160565b9250505090565b6000818310612fe55781610f7c565b5090919050565b600080612ff860355490565b9050831580613005575080155b612c4457612c3f81613015610c89565b86919086613365565b73ffffffffffffffffffffffffffffffffffffffff8381166000908152603460209081526040808320938616835292905220547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8114612b7657818110156130e2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e636500000060448201526064016109c0565b612b768484848403612c4a565b73ffffffffffffffffffffffffffffffffffffffff8316613192576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f20616460448201527f647265737300000000000000000000000000000000000000000000000000000060648201526084016109c0565b73ffffffffffffffffffffffffffffffffffffffff8216613235576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201527f657373000000000000000000000000000000000000000000000000000000000060648201526084016109c0565b73ffffffffffffffffffffffffffffffffffffffff8316600090815260336020526040902054818110156132eb576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e742065786365656473206260448201527f616c616e6365000000000000000000000000000000000000000000000000000060648201526084016109c0565b73ffffffffffffffffffffffffffffffffffffffff80851660008181526033602052604080822086860390559286168082529083902080548601905591517fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906133589086815260200190565b60405180910390a3612b76565b6000806133738686866141fb565b9050600183600281111561338957613389615738565b1480156133a65750600084806133a1576133a1615767565b868809115b15610e85576133b6600182615213565b9695505050505050565b6040517f35ea6a7500000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000008116600483015260009182917f000000000000000000000000000000000000000000000000000000000000000016906335ea6a75906024016101e060405180830381865afa158015613472573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906134969190615615565b805151909150640fffffffff607482901c16670100000000000000821615806134c85750670200000000000000821615155b806134dc5750671000000000000000821615155b156134eb576000935050505090565b80613519577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff935050505090565b60006135eb8461018001516fffffffffffffffffffffffffffffffff167f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663b1bf962d6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156135a1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906135c59190615160565b6135cf9190615213565b85602001516fffffffffffffffffffffffffffffffff166142c9565b9050600061361460655460ff740100000000000000000000000000000000000000009091041690565b61361f90600a6158b6565b61362990846158c5565b9050818111613639576000613643565b61364382826151a8565b9550505050505090565b60006136576137cc565b61366084611bdc565b8611156136c9576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601260248201527f52454445454d5f455843454544535f4d4158000000000000000000000000000060448201526064016109c0565b60006136d487610f22565b90508061373d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600b60248201527f5a45524f5f41535345545300000000000000000000000000000000000000000060448201526064016109c0565b6133b6818887898888614320565b60975473ffffffffffffffffffffffffffffffffffffffff163314611379576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016109c0565b6040517f70a082310000000000000000000000000000000000000000000000000000000081523060048201526000907f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16906370a0823190602401602060405180830381865afa158015613859573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061387d9190615160565b60fe549091506fffffffffffffffffffffffffffffffff16811161389e5750565b60fe546000906138c0906fffffffffffffffffffffffffffffffff16836151a8565b60ff549091506000906138f190839065010000000000900467ffffffffffffffff16670de0b6b3a764000084613365565b60fe8054919250829160109061392e90849070010000000000000000000000000000000090046fffffffffffffffffffffffffffffffff16615902565b82546101009290920a6fffffffffffffffffffffffffffffffff81810219909316918316021790915560fe80547fffffffffffffffffffffffffffffffff00000000000000000000000000000000169186169190911790555060408051838152602081018390529081018490527fd3bca34d88bc8c8d0d3304ca482da710a7f673bcd8e764fdae6f4f2b66bb315d9060600160405180910390a1505050565b60006139d76137cc565b6139e084611a3e565b861115613a49576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f57495448445241575f455843454544535f4d415800000000000000000000000060448201526064016109c0565b6000613a5487614661565b90506133b6878287898888614320565b60405173ffffffffffffffffffffffffffffffffffffffff83166024820152604481018290526126639084907fa9059cbb00000000000000000000000000000000000000000000000000000000906064016125e1565b600054610100900460ff16613b51576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e6700000000000000000000000000000000000000000060648201526084016109c0565b600080613b5d8361466e565b9150915081613b6d576012613b6f565b805b6065805473ffffffffffffffffffffffffffffffffffffffff9095167fffffffffffffffffffffffff000000000000000000000000000000000000000060ff939093167401000000000000000000000000000000000000000002929092167fffffffffffffffffffffff00000000000000000000000000000000000000000090951694909417179092555050565b600054610100900460ff16613c94576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e6700000000000000000000000000000000000000000060648201526084016109c0565b8151613ca7906036906020850190614ca2565b508051612663906037906020840190614ca2565b600054610100900460ff16613d52576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e6700000000000000000000000000000000000000000060648201526084016109c0565b81516020928301208151919092012060c99190915560ca55565b6000613dce826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c65648152508573ffffffffffffffffffffffffffffffffffffffff166147859092919063ffffffff16565b8051909150156126635780806020019051810190613dec919061525c565b612663576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e60448201527f6f7420737563636565640000000000000000000000000000000000000000000060648201526084016109c0565b8015613f43576040517f23b872dd00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8481166004830152306024830152604482018790527f000000000000000000000000000000000000000000000000000000000000000016906323b872dd906064016020604051808303816000875af1158015613f19573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613f3d919061525c565b5061407e565b613f8573ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016843088614794565b6040517f617ba03700000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000081166004830152602482018790523060448301527f000000000000000000000000000000000000000000000000000000000000000061ffff1660648301527f0000000000000000000000000000000000000000000000000000000000000000169063617ba03790608401600060405180830381600087803b15801561406557600080fd5b505af1158015614079573d6000803e3d6000fd5b505050505b6040517f70a082310000000000000000000000000000000000000000000000000000000081523060048201527f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16906370a0823190602401602060405180830381865afa158015614108573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061412c9190615160565b60fe80547fffffffffffffffffffffffffffffffff00000000000000000000000000000000166fffffffffffffffffffffffffffffffff9290921691909117905561417782856147f2565b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fdcbc1c05240f31ff3ad067ef1ee35ce4997762752e3a095284754544f4c709d787876040516141df929190918252602082015260400190565b60405180910390a35050505050565b6000610f2f826001612c17565b600080807fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff85870985870292508281108382030391505080600014156142545783828161424a5761424a615767565b0492505050610f7c565b80841161426057600080fd5b60008486880960026001871981018816978890046003810283188082028403028082028403028082028403028082028403028082028403029081029092039091026000889003889004909101858311909403939093029303949094049190911702949350505050565b600081157ffffffffffffffffffffffffffffffffffffffffffe6268e1b017bfe18bffffff839004841115176142fe57600080fd5b506b033b2e3c9fd0803ce800000091026b019d971e4fe8401e74000000010490565b8373ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161461435e5761435e84838761301e565b61436884866148e7565b801561442d576040517fa9059cbb00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8481166004830152602482018890527f0000000000000000000000000000000000000000000000000000000000000000169063a9059cbb906044016020604051808303816000875af1158015614403573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190614427919061525c565b50614510565b6040517f69328dec00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000811660048301526024820188905284811660448301527f000000000000000000000000000000000000000000000000000000000000000016906369328dec906064016020604051808303816000875af11580156144ea573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061450e9190615160565b505b6040517f70a082310000000000000000000000000000000000000000000000000000000081523060048201527f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16906370a0823190602401602060405180830381865afa15801561459a573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906145be9190615160565b60fe80547fffffffffffffffffffffffffffffffff00000000000000000000000000000000166fffffffffffffffffffffffffffffffff92909216919091179055604080518781526020810187905273ffffffffffffffffffffffffffffffffffffffff8681169286821692918616917ffbde797d201c681b91056529119e0b02407c7bb96a4a2c75c01fc9667232c8db910160405180910390a4505050505050565b6000610f2f826001612fec565b60408051600481526024810182526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f313ce56700000000000000000000000000000000000000000000000000000000179052905160009182918291829173ffffffffffffffffffffffffffffffffffffffff8716916146f091615936565b600060405180830381855afa9150503d806000811461472b576040519150601f19603f3d011682016040523d82523d6000602084013e614730565b606091505b509150915081801561474457506020815110155b156147785760008180602001905181019061475f9190615160565b905060ff8111614776576001969095509350505050565b505b5060009485945092505050565b6060610e888484600085614aad565b60405173ffffffffffffffffffffffffffffffffffffffff80851660248301528316604482015260648101829052612b769085907f23b872dd00000000000000000000000000000000000000000000000000000000906084016125e1565b73ffffffffffffffffffffffffffffffffffffffff821661486f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f20616464726573730060448201526064016109c0565b80603560008282546148819190615213565b909155505073ffffffffffffffffffffffffffffffffffffffff82166000818152603360209081526040808320805486019055518481527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35050565b73ffffffffffffffffffffffffffffffffffffffff821661498a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f2061646472657360448201527f730000000000000000000000000000000000000000000000000000000000000060648201526084016109c0565b73ffffffffffffffffffffffffffffffffffffffff821660009081526033602052604090205481811015614a40576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602260248201527f45524332303a206275726e20616d6f756e7420657863656564732062616c616e60448201527f636500000000000000000000000000000000000000000000000000000000000060648201526084016109c0565b73ffffffffffffffffffffffffffffffffffffffff831660008181526033602090815260408083208686039055603580548790039055518581529192917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a3505050565b606082471015614b3f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f60448201527f722063616c6c000000000000000000000000000000000000000000000000000060648201526084016109c0565b6000808673ffffffffffffffffffffffffffffffffffffffff168587604051614b689190615936565b60006040518083038185875af1925050503d8060008114614ba5576040519150601f19603f3d011682016040523d82523d6000602084013e614baa565b606091505b5091509150614bbb87838387614bc6565b979650505050505050565b60608315614c59578251614c525773ffffffffffffffffffffffffffffffffffffffff85163b614c52576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000060448201526064016109c0565b5081610e88565b610e888383815115614c6e5781518083602001fd5b806040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109c09190615027565b828054614cae906151bf565b90600052602060002090601f016020900481019282614cd05760008555614d16565b82601f10614ce957805160ff1916838001178555614d16565b82800160010185558215614d16579182015b82811115614d16578251825591602001919060010190614cfb565b50614d22929150614d26565b5090565b5b80821115614d225760008155600101614d27565b73ffffffffffffffffffffffffffffffffffffffff8116811461135557600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6040516101e0810167ffffffffffffffff81118282101715614db057614db0614d5d565b60405290565b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016810167ffffffffffffffff81118282101715614dfd57614dfd614d5d565b604052919050565b600082601f830112614e1657600080fd5b813567ffffffffffffffff811115614e3057614e30614d5d565b614e6160207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f84011601614db6565b818152846020838601011115614e7657600080fd5b816020850160208301376000918101602001919091529392505050565b600080600080600060a08688031215614eab57600080fd5b8535614eb681614d3b565b945060208601359350604086013567ffffffffffffffff80821115614eda57600080fd5b614ee689838a01614e05565b94506060880135915080821115614efc57600080fd5b50614f0988828901614e05565b95989497509295608001359392505050565b600060208284031215614f2d57600080fd5b8135610f7c81614d3b565b60008060008084860360e0811215614f4f57600080fd5b853594506020860135614f6181614d3b565b93506040860135614f7181614d3b565b925060807fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa082011215614fa357600080fd5b509295919450926060019150565b60005b83811015614fcc578181015183820152602001614fb4565b83811115612b765750506000910152565b60008151808452614ff5816020860160208601614fb1565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b602081526000610f7c6020830184614fdd565b60006020828403121561504c57600080fd5b5035919050565b6000806040838503121561506657600080fd5b823561507181614d3b565b946020939093013593505050565b60008060006060848603121561509457600080fd5b833561509f81614d3b565b925060208401356150af81614d3b565b929592945050506040919091013590565b6000806000606084860312156150d557600080fd5b8335925060208401356150e781614d3b565b915060408401356150f781614d3b565b809150509250925092565b6000806040838503121561511557600080fd5b82359150602083013561512781614d3b565b809150509250929050565b6000806040838503121561514557600080fd5b823561515081614d3b565b9150602083013561512781614d3b565b60006020828403121561517257600080fd5b5051919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000828210156151ba576151ba615179565b500390565b600181811c908216806151d357607f821691505b6020821081141561520d577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b50919050565b6000821982111561522657615226615179565b500190565b60006fffffffffffffffffffffffffffffffff8381169083168181101561525457615254615179565b039392505050565b60006020828403121561526e57600080fd5b81518015158114610f7c57600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000602082840312156152bf57600080fd5b8151610f7c81614d3b565b600081518084526020808501945080840160005b8381101561531057815173ffffffffffffffffffffffffffffffffffffffff16875295820195908201906001016152de565b509495945050505050565b60408152600061532e60408301856152ca565b905073ffffffffffffffffffffffffffffffffffffffff831660208301529392505050565b600067ffffffffffffffff82111561536d5761536d614d5d565b5060051b60200190565b805161538281614d3b565b919050565b600082601f83011261539857600080fd5b815160206153ad6153a883615353565b614db6565b82815260059290921b840181019181810190868411156153cc57600080fd5b8286015b848110156153e757805183529183019183016153d0565b509695505050505050565b6000806040838503121561540557600080fd5b825167ffffffffffffffff8082111561541d57600080fd5b818501915085601f83011261543157600080fd5b815160206154416153a883615353565b82815260059290921b8401810191818101908984111561546057600080fd5b948201945b8386101561548757855161547881614d3b565b82529482019490820190615465565b918801519196509093505050808211156154a057600080fd5b506154ad85828601615387565b9150509250929050565b6040815260006154ca60408301856152ca565b82810360208481019190915284518083528582019282019060005b81811015615501578451835293830193918301916001016154e5565b5090979650505050505050565b60006020828403121561552057600080fd5b813560ff81168114610f7c57600080fd5b828152604060208201526000610e886040830184614fdd565b60006020828403121561555c57600080fd5b81517fffffffff0000000000000000000000000000000000000000000000000000000081168114610f7c57600080fd5b60006020828403121561559e57600080fd5b6040516020810181811067ffffffffffffffff821117156155c1576155c1614d5d565b6040529151825250919050565b80516fffffffffffffffffffffffffffffffff8116811461538257600080fd5b805164ffffffffff8116811461538257600080fd5b805161ffff8116811461538257600080fd5b60006101e0828403121561562857600080fd5b615630614d8c565b61563a848461558c565b8152615648602084016155ce565b6020820152615659604084016155ce565b604082015261566a606084016155ce565b606082015261567b608084016155ce565b608082015261568c60a084016155ce565b60a082015261569d60c084016155ee565b60c08201526156ae60e08401615603565b60e08201526101006156c1818501615377565b908201526101206156d3848201615377565b908201526101406156e5848201615377565b908201526101606156f7848201615377565b908201526101806157098482016155ce565b908201526101a061571b8482016155ce565b908201526101c061572d8482016155ce565b908201529392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600181815b808511156157ef57817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048211156157d5576157d5615179565b808516156157e257918102915b93841c939080029061579b565b509250929050565b60008261580657506001610f2f565b8161581357506000610f2f565b816001811461582957600281146158335761584f565b6001915050610f2f565b60ff84111561584457615844615179565b50506001821b610f2f565b5060208310610133831016604e8410600b8410161715615872575081810a610f2f565b61587c8383615796565b807fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048211156158ae576158ae615179565b029392505050565b6000610f7c60ff8416836157f7565b6000817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156158fd576158fd615179565b500290565b60006fffffffffffffffffffffffffffffffff80831681851680830382111561592d5761592d615179565b01949350505050565b60008251615948818460208701614fb1565b919091019291505056fea164736f6c634300080a000a000000000000000000000000d586e7f844cea2f87f50152665bcbc2c279d8d700000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a97684ead0e402dc232d5a977953df7ecbab3cdb