60806040523480156200001157600080fd5b506040518060200160405280600081525062000033816200003a60201b60201c565b50620003b0565b80600290816200004b9190620002c9565b5050565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680620000d157607f821691505b602082108103620000e757620000e662000089565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b600060088302620001517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8262000112565b6200015d868362000112565b95508019841693508086168417925050509392505050565b6000819050919050565b6000819050919050565b6000620001aa620001a46200019e8462000175565b6200017f565b62000175565b9050919050565b6000819050919050565b620001c68362000189565b620001de620001d582620001b1565b8484546200011f565b825550505050565b600090565b620001f5620001e6565b62000202818484620001bb565b505050565b5b818110156200022a576200021e600082620001eb565b60018101905062000208565b5050565b601f82111562000279576200024381620000ed565b6200024e8462000102565b810160208510156200025e578190505b620002766200026d8562000102565b83018262000207565b50505b505050565b600082821c905092915050565b60006200029e600019846008026200027e565b1980831691505092915050565b6000620002b983836200028b565b9150826002028217905092915050565b620002d4826200004f565b67ffffffffffffffff811115620002f057620002ef6200005a565b5b620002fc8254620000b8565b620003098282856200022e565b600060209050601f8311600181146200034157600084156200032c578287015190505b620003388582620002ab565b865550620003a8565b601f1984166200035186620000ed565b60005b828110156200037b5784890151825560018201915060208501945060208101905062000354565b868310156200039b578489015162000397601f8916826200028b565b8355505b6001600288020188555050505b505050505050565b615bb380620003c06000396000f3fe608060405234801561001057600080fd5b50600436106101a85760003560e01c80638f44fe3f116100f9578063d97a4cb711610097578063f242432a11610071578063f242432a1461056e578063f27dd1631461058a578063f769d51e146105bf578063fb4086a5146105ef576101a8565b8063d97a4cb7146104de578063e8a96b461461050e578063e985e9c51461053e576101a8565b8063aed6176e116100d3578063aed6176e1461042b578063aeda852f1461045d578063bad4259014610490578063c53fd38e146104ac576101a8565b80638f44fe3f146103bc578063a22cb465146103f1578063ab0ca44b1461040d576101a8565b806348d8c67c116101665780635cab95ea116101405780635cab95ea146103245780636f905b7814610340578063742978da14610370578063846c37ee146103a0576101a8565b806348d8c67c146102935780634e1273f4146102c357806351eb27c0146102f3576101a8565b8062fdd58e146101ad57806301ffc9a7146101dd5780630e89341c1461020d5780631cbc5ab11461023d5780632eb2c2d61461025957806339f6888814610275575b600080fd5b6101c760048036038101906101c29190613d5a565b61060b565b6040516101d49190613da9565b60405180910390f35b6101f760048036038101906101f29190613e1c565b6106d3565b6040516102049190613e64565b60405180910390f35b61022760048036038101906102229190613e7f565b6107b5565b6040516102349190613f3c565b60405180910390f35b61025760048036038101906102529190613f5e565b610849565b005b610273600480360381019061026e91906141ae565b611554565b005b61027d6115f5565b60405161028a9190613da9565b60405180910390f35b6102ad60048036038101906102a89190613e7f565b6115fb565b6040516102ba9190613f3c565b60405180910390f35b6102dd60048036038101906102d89190614340565b61169b565b6040516102ea9190614476565b60405180910390f35b61030d60048036038101906103089190613d5a565b6117b4565b60405161031b929190614498565b60405180910390f35b61033e60048036038101906103399190614562565b6117f5565b005b61035a60048036038101906103559190613e7f565b611a21565b60405161036791906146d1565b60405180910390f35b61038a600480360381019061038591906146f3565b611afd565b60405161039791906147fe565b60405180910390f35b6103ba60048036038101906103b59190614820565b611baf565b005b6103d660048036038101906103d19190613d5a565b612144565b6040516103e896959493929190614896565b60405180910390f35b61040b60048036038101906104069190614923565b6121dd565b005b6104156121f3565b604051610422919061497f565b60405180910390f35b6104456004803603810190610440919061499a565b6121f8565b604051610454939291906149da565b60405180910390f35b61047760048036038101906104729190613e7f565b61225f565b6040516104879493929190614a11565b60405180910390f35b6104aa60048036038101906104a59190614a56565b6122af565b005b6104c660048036038101906104c1919061499a565b612561565b6040516104d5939291906149da565b60405180910390f35b6104f860048036038101906104f391906146f3565b6125c8565b6040516105059190614bc0565b60405180910390f35b61052860048036038101906105239190613e7f565b61273a565b60405161053591906146d1565b60405180910390f35b61055860048036038101906105539190614be2565b612816565b6040516105659190613e64565b60405180910390f35b61058860048036038101906105839190614c22565b6128aa565b005b6105a4600480360381019061059f919061499a565b61294b565b6040516105b696959493929190614896565b60405180910390f35b6105d960048036038101906105d49190613e7f565b6129e4565b6040516105e69190614bc0565b60405180910390f35b61060960048036038101906106049190614cb9565b612b2a565b005b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361067b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161067290614dde565b60405180910390fd5b60008083815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b60007fd9b67a26000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916148061079e57507f0e89341c000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b806107ae57506107ad82612f0d565b5b9050919050565b6060600280546107c490614e2d565b80601f01602080910402602001604051908101604052809291908181526020018280546107f090614e2d565b801561083d5780601f106108125761010080835404028352916020019161083d565b820191906000526020600020905b81548152906001019060200180831161082057829003601f168201915b50505050509050919050565b60006040518060400160405280600481526020017f307861620000000000000000000000000000000000000000000000000000000081525090506000806000905060005b6006600087815260200190815260200160002080549050811015610aa95760006006600088815260200190815260200160002082815481106108d2576108d1614e5e565b5b90600052602060002090600302016040518060600160405290816000820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020016001820154815260200160028201548152505090508773ffffffffffffffffffffffffffffffffffffffff16816000015173ffffffffffffffffffffffffffffffffffffffff1603610a95578060200151935085816040015110156109dc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109d390614f25565b60405180910390fd5b6109e988338989896128aa565b8581604001516109f99190614f74565b81604001818152505080600660008981526020019081526020016000208381548110610a2857610a27614e5e565b5b906000526020600020906003020160008201518160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060208201518160010155604082015181600201559050505b508080610aa190614fa8565b91505061088d565b5060005b6007600087815260200190815260200160002080549050811015610d4e576000600760008881526020019081526020016000208281548110610af257610af1614e5e565b5b90600052602060002090600302016040518060600160405290816000820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020016001820154815260200160028201548152505090503373ffffffffffffffffffffffffffffffffffffffff16816000015173ffffffffffffffffffffffffffffffffffffffff1603610c5c57610bb8338861060b565b81604001818152505080600760008981526020019081526020016000208381548110610be757610be6614e5e565b5b906000526020600020906003020160008201518160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550602082015181600101556040820151816002015590505060019250610d3a565b8773ffffffffffffffffffffffffffffffffffffffff16816000015173ffffffffffffffffffffffffffffffffffffffff1603610d3957610c9d888861060b565b81604001818152505080600760008981526020019081526020016000208381548110610ccc57610ccb614e5e565b5b906000526020600020906003020160008201518160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060208201518160010155604082015181600201559050505b5b508080610d4690614fa8565b915050610aad565b5080610e2e57600060405180606001604052803373ffffffffffffffffffffffffffffffffffffffff168152602001848152602001610d8d338961060b565b81525090506007600087815260200190815260200160002081908060018154018082558091505060019003906000526020600020906003020160009091909190915060008201518160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060208201518160010155604082015181600201555050505b60006040518060c001604052808781526020018873ffffffffffffffffffffffffffffffffffffffff1681526020013373ffffffffffffffffffffffffffffffffffffffff168152602001868152602001848152602001428152509050600860008781526020019081526020016000208190806001815401808255809150506001900390600052602060002090600602016000909190919091506000820151816000015560208201518160010160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060408201518160020160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550606082015181600301556080820151816004015560a082015181600501555050600960008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190806001815401808255809150506001900390600052602060002090600602016000909190919091506000820151816000015560208201518160010160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060408201518160020160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550606082015181600301556080820151816004015560a082015181600501555050600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190806001815401808255809150506001900390600052602060002090600602016000909190919091506000820151816000015560208201518160010160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060408201518160020160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550606082015181600301556080820151816004015560a0820151816005015550506000805b600a60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020805490508110156113055787600a60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020828154811061126257611261614e5e565b5b906000526020600020906002020160000154036112f257611283338961060b565b600a60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002082815481106112d4576112d3614e5e565b5b90600052602060002090600202016001018190555060019150611305565b80806112fd90614fa8565b9150506111c6565b5060005b600a60008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020805490508110156114445787600a60008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002082815481106113a5576113a4614e5e565b5b90600052602060002090600202016000015403611431576113c6898961060b565b600a60008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020828154811061141757611416614e5e565b5b906000526020600020906002020160010181905550611444565b808061143c90614fa8565b915050611309565b50806114e45760006040518060400160405280898152602001888152509050600a60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081908060018154018082558091505060019003906000526020600020906002020160009091909190915060008201518160000155602082015181600101555050505b863373ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fce28a0de97ae13b916b5e683b7c98f408ed3abff20cd4323f437e3c0e57fe90d896040516115429190613da9565b60405180910390a45050505050505050565b61155c612f77565b73ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614806115a257506115a18561159c612f77565b612816565b5b6115e1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115d890615062565b60405180910390fd5b6115ee8585858585612f7f565b5050505050565b60035481565b6005602052806000526040600020600091509050805461161a90614e2d565b80601f016020809104026020016040519081016040528092919081815260200182805461164690614e2d565b80156116935780601f1061166857610100808354040283529160200191611693565b820191906000526020600020905b81548152906001019060200180831161167657829003601f168201915b505050505081565b606081518351146116e1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116d8906150f4565b60405180910390fd5b6000835167ffffffffffffffff8111156116fe576116fd613fb6565b5b60405190808252806020026020018201604052801561172c5781602001602082028036833780820191505090505b50905060005b84518110156117a95761177985828151811061175157611750614e5e565b5b602002602001015185838151811061176c5761176b614e5e565b5b602002602001015161060b565b82828151811061178c5761178b614e5e565b5b602002602001018181525050806117a290614fa8565b9050611732565b508091505092915050565b600a60205281600052604060002081815481106117d057600080fd5b9060005260206000209060020201600091509150508060000154908060010154905082565b3373ffffffffffffffffffffffffffffffffffffffff166004600085815260200190815260200160002060020160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611899576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161189090615160565b60405180910390fd5b60006004600085815260200190815260200160002060405180608001604052908160008201548152602001600182015481526020016002820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020016003820154815250509050828160600181815250508060046000868152602001908152602001600020600082015181600001556020820151816001015560408201518160020160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060608201518160030155905050816005600086815260200190815260200160002090816119d5919061532c565b5082843373ffffffffffffffffffffffffffffffffffffffff167f629637af48afbe8f7e702fbc0c69d7ac36a0e995b610e0b1fe30b9a4204abebd60405160405180910390a450505050565b606060066000838152602001908152602001600020805480602002602001604051908101604052809291908181526020016000905b82821015611af257838290600052602060002090600302016040518060600160405290816000820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020016001820154815260200160028201548152505081526020019060010190611a56565b505050509050919050565b6060600a60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020805480602002602001604051908101604052809291908181526020016000905b82821015611ba457838290600052602060002090600202016040518060400160405290816000820154815260200160018201548152505081526020019060010190611b5e565b505050509050919050565b81611bba338561060b565b1015611bfb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bf290614f25565b60405180910390fd5b6000806000805b6006600088815260200190815260200160002080549050811015611dbd576000600660008981526020019081526020016000208281548110611c4757611c46614e5e565b5b90600052602060002090600302016040518060600160405290816000820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020016001820154815260200160028201548152505090503373ffffffffffffffffffffffffffffffffffffffff16816000015173ffffffffffffffffffffffffffffffffffffffff1603611da9578681604001818152505080600660008a81526020019081526020016000208381548110611d3357611d32614e5e565b5b906000526020600020906003020160008201518160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060208201518160010155604082015181600201559050506001935050611dbd565b508080611db590614fa8565b915050611c02565b5060005b6007600088815260200190815260200160002080549050811015611f85576000600760008981526020019081526020016000208281548110611e0657611e05614e5e565b5b90600052602060002090600302016040518060600160405290816000820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020016001820154815260200160028201548152505090503373ffffffffffffffffffffffffffffffffffffffff16816000015173ffffffffffffffffffffffffffffffffffffffff1603611f7157611ecc338961060b565b81604001818152505080600760008a81526020019081526020016000208381548110611efb57611efa614e5e565b5b906000526020600020906003020160008201518160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060208201518160010155604082015181600201559050506001925050611f85565b508080611f7d90614fa8565b915050611dc1565b508161205c57600060405180606001604052803373ffffffffffffffffffffffffffffffffffffffff1681526020018681526020018781525090506006600088815260200190815260200160002081908060018154018082558091505060019003906000526020600020906003020160009091909190915060008201518160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060208201518160010155604082015181600201555050505b8061213b57600060405180606001604052803373ffffffffffffffffffffffffffffffffffffffff16815260200186815260200161209a338a61060b565b81525090506007600088815260200190815260200160002081908060018154018082558091505060019003906000526020600020906003020160009091909190915060008201518160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060208201518160010155604082015181600201555050505b50505050505050565b6009602052816000526040600020818154811061216057600080fd5b9060005260206000209060060201600091509150508060000154908060010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16908060020160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16908060030154908060040154908060050154905086565b6121ef6121e8612f77565b83836132a0565b5050565b600181565b6007602052816000526040600020818154811061221457600080fd5b9060005260206000209060030201600091509150508060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16908060010154908060020154905083565b60046020528060005260406000206000915090508060000154908060010154908060020160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16908060030154905084565b60006040518060400160405280600481526020017f307861620000000000000000000000000000000000000000000000000000000081525090503373ffffffffffffffffffffffffffffffffffffffff166004600085815260200190815260200160002060020160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461238d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161238490615160565b60405180910390fd5b612397338461060b565b6004600085815260200190815260200160002060030154146123ee576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123e59061544a565b60405180910390fd5b6124113383856004600088815260200190815260200160002060030154856128aa565b60006004600085815260200190815260200160002060405180608001604052908160008201548152602001600182015481526020016002820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001600382015481525050905082816040019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250508060046000868152602001908152602001600020600082015181600001556020820151816001015560408201518160020160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506060820151816003015590505050505050565b6006602052816000526040600020818154811061257d57600080fd5b9060005260206000209060030201600091509150508060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16908060010154908060020154905083565b6060600960008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020805480602002602001604051908101604052809291908181526020016000905b8282101561272f57838290600052602060002090600602016040518060c0016040529081600082015481526020016001820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020016002820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001600382015481526020016004820154815260200160058201548152505081526020019060010190612629565b505050509050919050565b606060076000838152602001908152602001600020805480602002602001604051908101604052809291908181526020016000905b8282101561280b57838290600052602060002090600302016040518060600160405290816000820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001600182015481526020016002820154815250508152602001906001019061276f565b505050509050919050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b6128b2612f77565b73ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614806128f857506128f7856128f2612f77565b612816565b5b612937576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161292e90615062565b60405180910390fd5b612944858585858561340c565b5050505050565b6008602052816000526040600020818154811061296757600080fd5b9060005260206000209060060201600091509150508060000154908060010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16908060020160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16908060030154908060040154908060050154905086565b606060086000838152602001908152602001600020805480602002602001604051908101604052809291908181526020016000905b82821015612b1f57838290600052602060002090600602016040518060c0016040529081600082015481526020016001820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020016002820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001600382015481526020016004820154815260200160058201548152505081526020019060010190612a19565b505050509050919050565b600082118015612b435750680ad78ebc5ac62000008211155b8015612b4f5750600083115b612b8e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612b85906154dc565b60405180910390fd5b600060405180606001604052803373ffffffffffffffffffffffffffffffffffffffff168152602001858152602001848152509050600060405180608001604052808881526020018681526020013373ffffffffffffffffffffffffffffffffffffffff168152602001858152509050612c3f3388866040518060400160405280600181526020017f20000000000000000000000000000000000000000000000000000000000000008152506136a7565b600360008154612c4e90614fa8565b919050819055508060046000898152602001908152602001600020600082015181600001556020820151816001015560408201518160020160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550606082015181600301559050506007600088815260200190815260200160002082908060018154018082558091505060019003906000526020600020906003020160009091909190915060008201518160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550602082015181600101556040820151816002015550506006600088815260200190815260200160002082908060018154018082558091505060019003906000526020600020906003020160009091909190915060008201518160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506020820151816001015560408201518160020155505060006040518060400160405280898152602001868152509050600a60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190806001815401808255809150506001900390600052602060002090600202016000909190919091506000820151816000015560208201518160010155505083600560008a81526020019081526020016000209081612ebd919061532c565b5084883373ffffffffffffffffffffffffffffffffffffffff167f582bf44182b7334942612c663a2101380abf2b7d3bdf0968e6931b006b93f2c560405160405180910390a45050505050505050565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b600033905090565b8151835114612fc3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612fba9061556e565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603613032576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161302990615600565b60405180910390fd5b600061303c612f77565b905061304c818787878787613857565b60005b84518110156131fd57600085828151811061306d5761306c614e5e565b5b60200260200101519050600085838151811061308c5761308b614e5e565b5b60200260200101519050600080600084815260200190815260200160002060008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490508181101561312d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161312490615692565b60405180910390fd5b81810360008085815260200190815260200160002060008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508160008085815260200190815260200160002060008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546131e291906156b2565b92505081905550505050806131f690614fa8565b905061304f565b508473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb87876040516132749291906156e6565b60405180910390a461328a81878787878761385f565b613298818787878787613867565b505050505050565b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361330e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016133059061578f565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31836040516133ff9190613e64565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff160361347b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161347290615600565b60405180910390fd5b6000613485612f77565b9050600061349285613a3e565b9050600061349f85613a3e565b90506134af838989858589613857565b600080600088815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905085811015613546576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161353d90615692565b60405180910390fd5b85810360008089815260200190815260200160002060008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508560008089815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546135fb91906156b2565b925050819055508773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f628a8a604051613678929190614498565b60405180910390a461368e848a8a86868a61385f565b61369c848a8a8a8a8a613ab8565b505050505050505050565b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603613716576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161370d90615821565b60405180910390fd5b6000613720612f77565b9050600061372d85613a3e565b9050600061373a85613a3e565b905061374b83600089858589613857565b8460008088815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546137aa91906156b2565b925050819055508673ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f628989604051613828929190614498565b60405180910390a461383f8360008985858961385f565b61384e83600089898989613ab8565b50505050505050565b505050505050565b505050505050565b6138868473ffffffffffffffffffffffffffffffffffffffff16613c8f565b15613a36578373ffffffffffffffffffffffffffffffffffffffff1663bc197c8187878686866040518663ffffffff1660e01b81526004016138cc959493929190615896565b6020604051808303816000875af192505050801561390857506040513d601f19601f820116820180604052508101906139059190615913565b60015b6139ad5761391461594d565b806308c379a003613970575061392861596f565b806139335750613972565b806040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016139679190613f3c565b60405180910390fd5b505b6040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016139a490615a71565b60405180910390fd5b63bc197c8160e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614613a34576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613a2b90615b03565b60405180910390fd5b505b505050505050565b60606000600167ffffffffffffffff811115613a5d57613a5c613fb6565b5b604051908082528060200260200182016040528015613a8b5781602001602082028036833780820191505090505b5090508281600081518110613aa357613aa2614e5e565b5b60200260200101818152505080915050919050565b613ad78473ffffffffffffffffffffffffffffffffffffffff16613c8f565b15613c87578373ffffffffffffffffffffffffffffffffffffffff1663f23a6e6187878686866040518663ffffffff1660e01b8152600401613b1d959493929190615b23565b6020604051808303816000875af1925050508015613b5957506040513d601f19601f82011682018060405250810190613b569190615913565b60015b613bfe57613b6561594d565b806308c379a003613bc15750613b7961596f565b80613b845750613bc3565b806040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613bb89190613f3c565b60405180910390fd5b505b6040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613bf590615a71565b60405180910390fd5b63f23a6e6160e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614613c85576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613c7c90615b03565b60405180910390fd5b505b505050505050565b6000808273ffffffffffffffffffffffffffffffffffffffff163b119050919050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000613cf182613cc6565b9050919050565b613d0181613ce6565b8114613d0c57600080fd5b50565b600081359050613d1e81613cf8565b92915050565b6000819050919050565b613d3781613d24565b8114613d4257600080fd5b50565b600081359050613d5481613d2e565b92915050565b60008060408385031215613d7157613d70613cbc565b5b6000613d7f85828601613d0f565b9250506020613d9085828601613d45565b9150509250929050565b613da381613d24565b82525050565b6000602082019050613dbe6000830184613d9a565b92915050565b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b613df981613dc4565b8114613e0457600080fd5b50565b600081359050613e1681613df0565b92915050565b600060208284031215613e3257613e31613cbc565b5b6000613e4084828501613e07565b91505092915050565b60008115159050919050565b613e5e81613e49565b82525050565b6000602082019050613e796000830184613e55565b92915050565b600060208284031215613e9557613e94613cbc565b5b6000613ea384828501613d45565b91505092915050565b600081519050919050565b600082825260208201905092915050565b60005b83811015613ee6578082015181840152602081019050613ecb565b60008484015250505050565b6000601f19601f8301169050919050565b6000613f0e82613eac565b613f188185613eb7565b9350613f28818560208601613ec8565b613f3181613ef2565b840191505092915050565b60006020820190508181036000830152613f568184613f03565b905092915050565b600080600060608486031215613f7757613f76613cbc565b5b6000613f8586828701613d0f565b9350506020613f9686828701613d45565b9250506040613fa786828701613d45565b9150509250925092565b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b613fee82613ef2565b810181811067ffffffffffffffff8211171561400d5761400c613fb6565b5b80604052505050565b6000614020613cb2565b905061402c8282613fe5565b919050565b600067ffffffffffffffff82111561404c5761404b613fb6565b5b602082029050602081019050919050565b600080fd5b600061407561407084614031565b614016565b905080838252602082019050602084028301858111156140985761409761405d565b5b835b818110156140c157806140ad8882613d45565b84526020840193505060208101905061409a565b5050509392505050565b600082601f8301126140e0576140df613fb1565b5b81356140f0848260208601614062565b91505092915050565b600080fd5b600067ffffffffffffffff82111561411957614118613fb6565b5b61412282613ef2565b9050602081019050919050565b82818337600083830152505050565b600061415161414c846140fe565b614016565b90508281526020810184848401111561416d5761416c6140f9565b5b61417884828561412f565b509392505050565b600082601f83011261419557614194613fb1565b5b81356141a584826020860161413e565b91505092915050565b600080600080600060a086880312156141ca576141c9613cbc565b5b60006141d888828901613d0f565b95505060206141e988828901613d0f565b945050604086013567ffffffffffffffff81111561420a57614209613cc1565b5b614216888289016140cb565b935050606086013567ffffffffffffffff81111561423757614236613cc1565b5b614243888289016140cb565b925050608086013567ffffffffffffffff81111561426457614263613cc1565b5b61427088828901614180565b9150509295509295909350565b600067ffffffffffffffff82111561429857614297613fb6565b5b602082029050602081019050919050565b60006142bc6142b78461427d565b614016565b905080838252602082019050602084028301858111156142df576142de61405d565b5b835b8181101561430857806142f48882613d0f565b8452602084019350506020810190506142e1565b5050509392505050565b600082601f83011261432757614326613fb1565b5b81356143378482602086016142a9565b91505092915050565b6000806040838503121561435757614356613cbc565b5b600083013567ffffffffffffffff81111561437557614374613cc1565b5b61438185828601614312565b925050602083013567ffffffffffffffff8111156143a2576143a1613cc1565b5b6143ae858286016140cb565b9150509250929050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6143ed81613d24565b82525050565b60006143ff83836143e4565b60208301905092915050565b6000602082019050919050565b6000614423826143b8565b61442d81856143c3565b9350614438836143d4565b8060005b8381101561446957815161445088826143f3565b975061445b8361440b565b92505060018101905061443c565b5085935050505092915050565b600060208201905081810360008301526144908184614418565b905092915050565b60006040820190506144ad6000830185613d9a565b6144ba6020830184613d9a565b9392505050565b600067ffffffffffffffff8211156144dc576144db613fb6565b5b6144e582613ef2565b9050602081019050919050565b6000614505614500846144c1565b614016565b905082815260208101848484011115614521576145206140f9565b5b61452c84828561412f565b509392505050565b600082601f83011261454957614548613fb1565b5b81356145598482602086016144f2565b91505092915050565b60008060006060848603121561457b5761457a613cbc565b5b600061458986828701613d45565b935050602061459a86828701613d45565b925050604084013567ffffffffffffffff8111156145bb576145ba613cc1565b5b6145c786828701614534565b9150509250925092565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61460681613ce6565b82525050565b60608201600082015161462260008501826145fd565b50602082015161463560208501826143e4565b50604082015161464860408501826143e4565b50505050565b600061465a838361460c565b60608301905092915050565b6000602082019050919050565b600061467e826145d1565b61468881856145dc565b9350614693836145ed565b8060005b838110156146c45781516146ab888261464e565b97506146b683614666565b925050600181019050614697565b5085935050505092915050565b600060208201905081810360008301526146eb8184614673565b905092915050565b60006020828403121561470957614708613cbc565b5b600061471784828501613d0f565b91505092915050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b60408201600082015161476260008501826143e4565b50602082015161477560208501826143e4565b50505050565b6000614787838361474c565b60408301905092915050565b6000602082019050919050565b60006147ab82614720565b6147b5818561472b565b93506147c08361473c565b8060005b838110156147f15781516147d8888261477b565b97506147e383614793565b9250506001810190506147c4565b5085935050505092915050565b6000602082019050818103600083015261481881846147a0565b905092915050565b6000806000806080858703121561483a57614839613cbc565b5b600061484887828801613d0f565b945050602061485987828801613d45565b935050604061486a87828801613d45565b925050606061487b87828801613d45565b91505092959194509250565b61489081613ce6565b82525050565b600060c0820190506148ab6000830189613d9a565b6148b86020830188614887565b6148c56040830187614887565b6148d26060830186613d9a565b6148df6080830185613d9a565b6148ec60a0830184613d9a565b979650505050505050565b61490081613e49565b811461490b57600080fd5b50565b60008135905061491d816148f7565b92915050565b6000806040838503121561493a57614939613cbc565b5b600061494885828601613d0f565b92505060206149598582860161490e565b9150509250929050565b600060ff82169050919050565b61497981614963565b82525050565b60006020820190506149946000830184614970565b92915050565b600080604083850312156149b1576149b0613cbc565b5b60006149bf85828601613d45565b92505060206149d085828601613d45565b9150509250929050565b60006060820190506149ef6000830186614887565b6149fc6020830185613d9a565b614a096040830184613d9a565b949350505050565b6000608082019050614a266000830187613d9a565b614a336020830186613d9a565b614a406040830185614887565b614a4d6060830184613d9a565b95945050505050565b60008060408385031215614a6d57614a6c613cbc565b5b6000614a7b85828601613d45565b9250506020614a8c85828601613d0f565b9150509250929050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b60c082016000820151614ad860008501826143e4565b506020820151614aeb60208501826145fd565b506040820151614afe60408501826145fd565b506060820151614b1160608501826143e4565b506080820151614b2460808501826143e4565b5060a0820151614b3760a08501826143e4565b50505050565b6000614b498383614ac2565b60c08301905092915050565b6000602082019050919050565b6000614b6d82614a96565b614b778185614aa1565b9350614b8283614ab2565b8060005b83811015614bb3578151614b9a8882614b3d565b9750614ba583614b55565b925050600181019050614b86565b5085935050505092915050565b60006020820190508181036000830152614bda8184614b62565b905092915050565b60008060408385031215614bf957614bf8613cbc565b5b6000614c0785828601613d0f565b9250506020614c1885828601613d0f565b9150509250929050565b600080600080600060a08688031215614c3e57614c3d613cbc565b5b6000614c4c88828901613d0f565b9550506020614c5d88828901613d0f565b9450506040614c6e88828901613d45565b9350506060614c7f88828901613d45565b925050608086013567ffffffffffffffff811115614ca057614c9f613cc1565b5b614cac88828901614180565b9150509295509295909350565b600080600080600060a08688031215614cd557614cd4613cbc565b5b6000614ce388828901613d45565b955050602086013567ffffffffffffffff811115614d0457614d03613cc1565b5b614d1088828901614534565b9450506040614d2188828901613d45565b9350506060614d3288828901613d45565b925050608086013567ffffffffffffffff811115614d5357614d52613cc1565b5b614d5f88828901614534565b9150509295509295909350565b7f455243313135353a2061646472657373207a65726f206973206e6f742061207660008201527f616c6964206f776e657200000000000000000000000000000000000000000000602082015250565b6000614dc8602a83613eb7565b9150614dd382614d6c565b604082019050919050565b60006020820190508181036000830152614df781614dbb565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680614e4557607f821691505b602082108103614e5857614e57614dfe565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f496e73756666696369656e742062616c616e636520746f207472616e7366657260008201527f206f7220796f75206172652074727920746f2073656e64206d6f726520616d6f60208201527f756e74207468616e20796f75206f776e00000000000000000000000000000000604082015250565b6000614f0f605083613eb7565b9150614f1a82614e8d565b606082019050919050565b60006020820190508181036000830152614f3e81614f02565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000614f7f82613d24565b9150614f8a83613d24565b9250828203905081811115614fa257614fa1614f45565b5b92915050565b6000614fb382613d24565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203614fe557614fe4614f45565b5b600182019050919050565b7f455243313135353a2063616c6c6572206973206e6f7420746f6b656e206f776e60008201527f6572206f7220617070726f766564000000000000000000000000000000000000602082015250565b600061504c602e83613eb7565b915061505782614ff0565b604082019050919050565b6000602082019050818103600083015261507b8161503f565b9050919050565b7f455243313135353a206163636f756e747320616e6420696473206c656e67746860008201527f206d69736d617463680000000000000000000000000000000000000000000000602082015250565b60006150de602983613eb7565b91506150e982615082565b604082019050919050565b6000602082019050818103600083015261510d816150d1565b9050919050565b7f596f7520617265206e6f74206f776e6572206f66207468697320686f75736500600082015250565b600061514a601f83613eb7565b915061515582615114565b602082019050919050565b600060208201905081810360008301526151798161513d565b9050919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b6000600883026151e27fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff826151a5565b6151ec86836151a5565b95508019841693508086168417925050509392505050565b6000819050919050565b600061522961522461521f84613d24565b615204565b613d24565b9050919050565b6000819050919050565b6152438361520e565b61525761524f82615230565b8484546151b2565b825550505050565b600090565b61526c61525f565b61527781848461523a565b505050565b5b8181101561529b57615290600082615264565b60018101905061527d565b5050565b601f8211156152e0576152b181615180565b6152ba84615195565b810160208510156152c9578190505b6152dd6152d585615195565b83018261527c565b50505b505050565b600082821c905092915050565b6000615303600019846008026152e5565b1980831691505092915050565b600061531c83836152f2565b9150826002028217905092915050565b61533582613eac565b67ffffffffffffffff81111561534e5761534d613fb6565b5b6153588254614e2d565b61536382828561529f565b600060209050601f8311600181146153965760008415615384578287015190505b61538e8582615310565b8655506153f6565b601f1984166153a486615180565b60005b828110156153cc578489015182556001820191506020850194506020810190506153a7565b868310156153e957848901516153e5601f8916826152f2565b8355505b6001600288020188555050505b505050505050565b7f596f752063616e206e6f742073656c6c207468697320686f7573650000000000600082015250565b6000615434601b83613eb7565b915061543f826153fe565b602082019050919050565b6000602082019050818103600083015261546381615427565b9050919050565b7f50726f70657274792073697a65206f7220707269636520646f6573206e6f742060008201527f6d6565742074686520726571756972656d656e74730000000000000000000000602082015250565b60006154c6603583613eb7565b91506154d18261546a565b604082019050919050565b600060208201905081810360008301526154f5816154b9565b9050919050565b7f455243313135353a2069647320616e6420616d6f756e7473206c656e6774682060008201527f6d69736d61746368000000000000000000000000000000000000000000000000602082015250565b6000615558602883613eb7565b9150615563826154fc565b604082019050919050565b600060208201905081810360008301526155878161554b565b9050919050565b7f455243313135353a207472616e7366657220746f20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b60006155ea602583613eb7565b91506155f58261558e565b604082019050919050565b60006020820190508181036000830152615619816155dd565b9050919050565b7f455243313135353a20696e73756666696369656e742062616c616e636520666f60008201527f72207472616e7366657200000000000000000000000000000000000000000000602082015250565b600061567c602a83613eb7565b915061568782615620565b604082019050919050565b600060208201905081810360008301526156ab8161566f565b9050919050565b60006156bd82613d24565b91506156c883613d24565b92508282019050808211156156e0576156df614f45565b5b92915050565b600060408201905081810360008301526157008185614418565b905081810360208301526157148184614418565b90509392505050565b7f455243313135353a2073657474696e6720617070726f76616c2073746174757360008201527f20666f722073656c660000000000000000000000000000000000000000000000602082015250565b6000615779602983613eb7565b91506157848261571d565b604082019050919050565b600060208201905081810360008301526157a88161576c565b9050919050565b7f455243313135353a206d696e7420746f20746865207a65726f2061646472657360008201527f7300000000000000000000000000000000000000000000000000000000000000602082015250565b600061580b602183613eb7565b9150615816826157af565b604082019050919050565b6000602082019050818103600083015261583a816157fe565b9050919050565b600081519050919050565b600082825260208201905092915050565b600061586882615841565b615872818561584c565b9350615882818560208601613ec8565b61588b81613ef2565b840191505092915050565b600060a0820190506158ab6000830188614887565b6158b86020830187614887565b81810360408301526158ca8186614418565b905081810360608301526158de8185614418565b905081810360808301526158f2818461585d565b90509695505050505050565b60008151905061590d81613df0565b92915050565b60006020828403121561592957615928613cbc565b5b6000615937848285016158fe565b91505092915050565b60008160e01c9050919050565b600060033d111561596c5760046000803e615969600051615940565b90505b90565b600060443d106159fc57615981613cb2565b60043d036004823e80513d602482011167ffffffffffffffff821117156159a95750506159fc565b808201805167ffffffffffffffff8111156159c757505050506159fc565b80602083010160043d0385018111156159e45750505050506159fc565b6159f382602001850186613fe5565b82955050505050505b90565b7f455243313135353a207472616e7366657220746f206e6f6e2d4552433131353560008201527f526563656976657220696d706c656d656e746572000000000000000000000000602082015250565b6000615a5b603483613eb7565b9150615a66826159ff565b604082019050919050565b60006020820190508181036000830152615a8a81615a4e565b9050919050565b7f455243313135353a204552433131353552656365697665722072656a6563746560008201527f6420746f6b656e73000000000000000000000000000000000000000000000000602082015250565b6000615aed602883613eb7565b9150615af882615a91565b604082019050919050565b60006020820190508181036000830152615b1c81615ae0565b9050919050565b600060a082019050615b386000830188614887565b615b456020830187614887565b615b526040830186613d9a565b615b5f6060830185613d9a565b8181036080830152615b71818461585d565b9050969550505050505056fea264697066735822122064e42ebbea56f97846f8d2525aae33a9c74a58c3eeb041b3c80976c86d75da6164736f6c63430008100033