6101606040526100136102c260201b60201c565b600a61001f91906108b1565b606461002b91906108fb565b600b55348015610039575f80fd5b506040516135c73803806135c7833981810160405281019061005b919061099a565b6040518060400160405280600981526020017f457665726c6f6467650000000000000000000000000000000000000000000000815250806040518060400160405280600181526020017f3100000000000000000000000000000000000000000000000000000000000000815250836040518060400160405280600981526020017f457665726c6f64676500000000000000000000000000000000000000000000008152506040518060400160405280600481526020017f454c44470000000000000000000000000000000000000000000000000000000081525081600390816101449190610bf6565b5080600490816101549190610bf6565b5050505f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036101c7575f6040517f1e4fbdf70000000000000000000000000000000000000000000000000000000081526004016101be9190610cd4565b60405180910390fd5b6101d6816102ca60201b60201c565b506101eb60068361038d60201b90919060201c565b610120818152505061020760078261038d60201b90919060201c565b6101408181525050818051906020012060e08181525050808051906020012061010081815250504660a081815250506102446103da60201b60201c565b608081815250503073ffffffffffffffffffffffffffffffffffffffff1660c08173ffffffffffffffffffffffffffffffffffffffff16815250505050506102bc336102946102c260201b60201c565b600a6102a091906108b1565b6504e2410582006102b191906108fb565b61043460201b60201c565b50610eff565b5f6012905090565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508160055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f6020835110156103ae576103a7836104b960201b60201c565b90506103d4565b826103be8361051e60201b60201c565b5f0190816103cc9190610bf6565b5060ff5f1b90505b92915050565b5f7f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f60e051610100514630604051602001610419959493929190610d14565b60405160208183030381529060405280519060200120905090565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036104a4575f6040517fec442f0500000000000000000000000000000000000000000000000000000000815260040161049b9190610cd4565b60405180910390fd5b6104b55f838361052760201b60201c565b5050565b5f80829050601f8151111561050557826040517f305a27a90000000000000000000000000000000000000000000000000000000081526004016104fc9190610dcb565b60405180910390fd5b80518161051190610e18565b5f1c175f1b915050919050565b5f819050919050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610577578060025f82825461056b9190610e7e565b92505081905550610645565b5f805f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905081811015610600578381836040517fe450d38c0000000000000000000000000000000000000000000000000000000081526004016105f793929190610eb1565b60405180910390fd5b8181035f808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550505b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361068c578060025f82825403925050819055506106d6565b805f808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825401925050819055505b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516107339190610ee6565b60405180910390a3505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b60018511156107c25780860481111561079e5761079d610740565b5b60018516156107ad5780820291505b80810290506107bb8561076d565b9450610782565b94509492505050565b5f826107da5760019050610895565b816107e7575f9050610895565b81600181146107fd576002811461080757610836565b6001915050610895565b60ff84111561081957610818610740565b5b8360020a9150848211156108305761082f610740565b5b50610895565b5060208310610133831016604e8410600b841016171561086b5782820a90508381111561086657610865610740565b5b610895565b6108788484846001610779565b9250905081840481111561088f5761088e610740565b5b81810290505b9392505050565b5f819050919050565b5f60ff82169050919050565b5f6108bb8261089c565b91506108c6836108a5565b92506108f37fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84846107cb565b905092915050565b5f6109058261089c565b91506109108361089c565b925082820261091e8161089c565b9150828204841483151761093557610934610740565b5b5092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61096982610940565b9050919050565b6109798161095f565b8114610983575f80fd5b50565b5f8151905061099481610970565b92915050565b5f602082840312156109af576109ae61093c565b5b5f6109bc84828501610986565b91505092915050565b5f81519050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f6002820490506001821680610a4057607f821691505b602082108103610a5357610a526109fc565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f60088302610ab57fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82610a7a565b610abf8683610a7a565b95508019841693508086168417925050509392505050565b5f819050919050565b5f610afa610af5610af08461089c565b610ad7565b61089c565b9050919050565b5f819050919050565b610b1383610ae0565b610b27610b1f82610b01565b848454610a86565b825550505050565b5f90565b610b3b610b2f565b610b46818484610b0a565b505050565b5b81811015610b6957610b5e5f82610b33565b600181019050610b4c565b5050565b601f821115610bae57610b7f81610a59565b610b8884610a6b565b81016020851015610b97578190505b610bab610ba385610a6b565b830182610b4b565b50505b505050565b5f82821c905092915050565b5f610bce5f1984600802610bb3565b1980831691505092915050565b5f610be68383610bbf565b9150826002028217905092915050565b610bff826109c5565b67ffffffffffffffff811115610c1857610c176109cf565b5b610c228254610a29565b610c2d828285610b6d565b5f60209050601f831160018114610c5e575f8415610c4c578287015190505b610c568582610bdb565b865550610cbd565b601f198416610c6c86610a59565b5f5b82811015610c9357848901518255600182019150602085019450602081019050610c6e565b86831015610cb05784890151610cac601f891682610bbf565b8355505b6001600288020188555050505b505050505050565b610cce8161095f565b82525050565b5f602082019050610ce75f830184610cc5565b92915050565b5f819050919050565b610cff81610ced565b82525050565b610d0e8161089c565b82525050565b5f60a082019050610d275f830188610cf6565b610d346020830187610cf6565b610d416040830186610cf6565b610d4e6060830185610d05565b610d5b6080830184610cc5565b9695505050505050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f610d9d826109c5565b610da78185610d65565b9350610db7818560208601610d75565b610dc081610d83565b840191505092915050565b5f6020820190508181035f830152610de38184610d93565b905092915050565b5f81519050919050565b5f819050602082019050919050565b5f610e0f8251610ced565b80915050919050565b5f610e2282610deb565b82610e2c84610df5565b9050610e3781610e04565b92506020821015610e7757610e727fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff83602003600802610a7a565b831692505b5050919050565b5f610e888261089c565b9150610e938361089c565b9250828201905080821115610eab57610eaa610740565b5b92915050565b5f606082019050610ec45f830186610cc5565b610ed16020830185610d05565b610ede6040830184610d05565b949350505050565b5f602082019050610ef95f830184610d05565b92915050565b60805160a05160c05160e051610100516101205161014051612677610f505f395f61120c01525f6111d101525f61166e01525f61164d01525f610f8d01525f610fe301525f61100c01526126775ff3fe608060405234801561000f575f80fd5b5060043610610140575f3560e01c8063715018a6116100b6578063a62236341161007a578063a622363414610356578063a9059cbb14610374578063d505accf146103a4578063dd62ed3e146103c0578063f2fde38b146103f0578063fe575a871461040c57610140565b8063715018a6146102bc5780637ecebe00146102c657806384b0196e146102f65780638da5cb5b1461031a57806395d89b411461033857610140565b8063313ce56711610108578063313ce567146101fc5780633644e5151461021a57806340c10f191461023857806344337ea114610254578063537df3b61461027057806370a082311461028c57610140565b806306fdde0314610144578063095ea7b31461016257806318160ddd1461019257806323b872dd146101b05780632e20b080146101e0575b5f80fd5b61014c61043c565b6040516101599190611d3d565b60405180910390f35b61017c60048036038101906101779190611dee565b6104cc565b6040516101899190611e46565b60405180910390f35b61019a6104ee565b6040516101a79190611e6e565b60405180910390f35b6101ca60048036038101906101c59190611e87565b6104f7565b6040516101d79190611e46565b60405180910390f35b6101fa60048036038101906101f59190611ed7565b61076d565b005b6102046107fb565b6040516102119190611f1d565b60405180910390f35b610222610803565b60405161022f9190611f4e565b60405180910390f35b610252600480360381019061024d9190611dee565b610811565b005b61026e60048036038101906102699190611ed7565b6108b3565b005b61028a60048036038101906102859190611ed7565b610962565b005b6102a660048036038101906102a19190611ed7565b610a0f565b6040516102b39190611e6e565b60405180910390f35b6102c4610a54565b005b6102e060048036038101906102db9190611ed7565b610a67565b6040516102ed9190611e6e565b60405180910390f35b6102fe610a78565b6040516103119796959493929190612067565b60405180910390f35b610322610b1d565b60405161032f91906120e9565b60405180910390f35b610340610b45565b60405161034d9190611d3d565b60405180910390f35b61035e610bd5565b60405161036b91906120e9565b60405180910390f35b61038e60048036038101906103899190611dee565b610bfd565b60405161039b9190611e46565b60405180910390f35b6103be60048036038101906103b99190612156565b610c1f565b005b6103da60048036038101906103d591906121f3565b610d64565b6040516103e79190611e6e565b60405180910390f35b61040a60048036038101906104059190611ed7565b610de6565b005b61042660048036038101906104219190611ed7565b610e6a565b6040516104339190611e46565b60405180910390f35b60606003805461044b9061225e565b80601f01602080910402602001604051908101604052809291908181526020018280546104779061225e565b80156104c25780601f10610499576101008083540402835291602001916104c2565b820191905f5260205f20905b8154815290600101906020018083116104a557829003601f168201915b5050505050905090565b5f806104d6610ebc565b90506104e3818585610ec3565b600191505092915050565b5f600254905090565b5f8360095f8273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1615610583576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161057a906122fe565b60405180910390fd5b8360095f8273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff161561060e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610605906122fe565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff160361067c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106739061238c565b60405180910390fd5b610684610b1d565b73ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff161415801561070c5750600a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff1614155b1561075757600b54841115610756576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161074d9061241a565b60405180910390fd5b5b610762868686610ed5565b925050509392505050565b610775610f03565b80600a5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff167f9c2903f37bdcba731680cabe718b83b78aecba51bf7933e62f3ff59aeb76d63660405160405180910390a250565b5f6012905090565b5f61080c610f8a565b905090565b610819610f03565b8160095f8273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16156108a4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161089b906122fe565b60405180910390fd5b6108ae8383611040565b505050565b6108bb610f03565b600160095f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508073ffffffffffffffffffffffffffffffffffffffff167f6a12b3df6cba4203bd7fd06b816789f87de8c594299aed5717ae070fac781bac60016040516109579190611e46565b60405180910390a250565b61096a610f03565b5f60095f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508073ffffffffffffffffffffffffffffffffffffffff167f6a12b3df6cba4203bd7fd06b816789f87de8c594299aed5717ae070fac781bac5f604051610a049190611e46565b60405180910390a250565b5f805f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b610a5c610f03565b610a655f6110bf565b565b5f610a7182611182565b9050919050565b5f6060805f805f6060610a896111c8565b610a91611203565b46305f801b5f67ffffffffffffffff811115610ab057610aaf612438565b5b604051908082528060200260200182016040528015610ade5781602001602082028036833780820191505090505b507f0f00000000000000000000000000000000000000000000000000000000000000959493929190965096509650965096509650965090919293949596565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b606060048054610b549061225e565b80601f0160208091040260200160405190810160405280929190818152602001828054610b809061225e565b8015610bcb5780601f10610ba257610100808354040283529160200191610bcb565b820191905f5260205f20905b815481529060010190602001808311610bae57829003601f168201915b5050505050905090565b5f600a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b5f80610c07610ebc565b9050610c1481858561123e565b600191505092915050565b83421115610c6457836040517f62791302000000000000000000000000000000000000000000000000000000008152600401610c5b9190611e6e565b60405180910390fd5b5f7f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c9888888610c928c61132e565b89604051602001610ca896959493929190612465565b6040516020818303038152906040528051906020012090505f610cca82611381565b90505f610cd98287878761139a565b90508973ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614610d4d57808a6040517f4b800e46000000000000000000000000000000000000000000000000000000008152600401610d449291906124c4565b60405180910390fd5b610d588a8a8a610ec3565b50505050505050505050565b5f60015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b610dee610f03565b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610e5e575f6040517f1e4fbdf7000000000000000000000000000000000000000000000000000000008152600401610e5591906120e9565b60405180910390fd5b610e67816110bf565b50565b5f60095f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff169050919050565b5f33905090565b610ed083838360016113c8565b505050565b5f80610edf610ebc565b9050610eec858285611597565b610ef785858561123e565b60019150509392505050565b610f0b610ebc565b73ffffffffffffffffffffffffffffffffffffffff16610f29610b1d565b73ffffffffffffffffffffffffffffffffffffffff1614610f8857610f4c610ebc565b6040517f118cdaa7000000000000000000000000000000000000000000000000000000008152600401610f7f91906120e9565b60405180910390fd5b565b5f7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff163073ffffffffffffffffffffffffffffffffffffffff1614801561100557507f000000000000000000000000000000000000000000000000000000000000000046145b15611032577f0000000000000000000000000000000000000000000000000000000000000000905061103d565b61103a611629565b90505b90565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036110b0575f6040517fec442f050000000000000000000000000000000000000000000000000000000081526004016110a791906120e9565b60405180910390fd5b6110bb5f83836116be565b5050565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508160055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f60085f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b60606111fe60067f00000000000000000000000000000000000000000000000000000000000000006118d790919063ffffffff16565b905090565b606061123960077f00000000000000000000000000000000000000000000000000000000000000006118d790919063ffffffff16565b905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036112ae575f6040517f96c6fd1e0000000000000000000000000000000000000000000000000000000081526004016112a591906120e9565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361131e575f6040517fec442f0500000000000000000000000000000000000000000000000000000000815260040161131591906120e9565b60405180910390fd5b6113298383836116be565b505050565b5f60085f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f815480929190600101919050559050919050565b5f61139361138d610f8a565b83611984565b9050919050565b5f805f806113aa888888886119c4565b9250925092506113ba8282611aab565b829350505050949350505050565b5f73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603611438575f6040517fe602df0500000000000000000000000000000000000000000000000000000000815260040161142f91906120e9565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036114a8575f6040517f94280d6200000000000000000000000000000000000000000000000000000000815260040161149f91906120e9565b60405180910390fd5b8160015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508015611591578273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040516115889190611e6e565b60405180910390a35b50505050565b5f6115a28484610d64565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81146116235781811015611614578281836040517ffb8f41b200000000000000000000000000000000000000000000000000000000815260040161160b939291906124eb565b60405180910390fd5b61162284848484035f6113c8565b5b50505050565b5f7f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f7f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000000000000000000000000000000000000000000046306040516020016116a3959493929190612520565b60405160208183030381529060405280519060200120905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361170e578060025f828254611702919061259e565b925050819055506117dc565b5f805f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905081811015611797578381836040517fe450d38c00000000000000000000000000000000000000000000000000000000815260040161178e939291906124eb565b60405180910390fd5b8181035f808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550505b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611823578060025f828254039250508190555061186d565b805f808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825401925050819055505b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516118ca9190611e6e565b60405180910390a3505050565b606060ff5f1b83146118f3576118ec83611c0d565b905061197e565b8180546118ff9061225e565b80601f016020809104026020016040519081016040528092919081815260200182805461192b9061225e565b80156119765780601f1061194d57610100808354040283529160200191611976565b820191905f5260205f20905b81548152906001019060200180831161195957829003601f168201915b505050505090505b92915050565b5f6040517f190100000000000000000000000000000000000000000000000000000000000081528360028201528260228201526042812091505092915050565b5f805f7f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a0845f1c1115611a00575f600385925092509250611aa1565b5f6001888888886040515f8152602001604052604051611a2394939291906125d1565b6020604051602081039080840390855afa158015611a43573d5f803e3d5ffd5b5050506020604051035190505f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611a94575f60015f801b93509350935050611aa1565b805f805f1b935093509350505b9450945094915050565b5f6003811115611abe57611abd612614565b5b826003811115611ad157611ad0612614565b5b0315611c095760016003811115611aeb57611aea612614565b5b826003811115611afe57611afd612614565b5b03611b35576040517ff645eedf00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60026003811115611b4957611b48612614565b5b826003811115611b5c57611b5b612614565b5b03611ba057805f1c6040517ffce698f7000000000000000000000000000000000000000000000000000000008152600401611b979190611e6e565b60405180910390fd5b600380811115611bb357611bb2612614565b5b826003811115611bc657611bc5612614565b5b03611c0857806040517fd78bce0c000000000000000000000000000000000000000000000000000000008152600401611bff9190611f4e565b60405180910390fd5b5b5050565b60605f611c1983611c7f565b90505f602067ffffffffffffffff811115611c3757611c36612438565b5b6040519080825280601f01601f191660200182016040528015611c695781602001600182028036833780820191505090505b5090508181528360208201528092505050919050565b5f8060ff835f1c169050601f811115611cc4576040517fb3512b0c00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b80915050919050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f611d0f82611ccd565b611d198185611cd7565b9350611d29818560208601611ce7565b611d3281611cf5565b840191505092915050565b5f6020820190508181035f830152611d558184611d05565b905092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f611d8a82611d61565b9050919050565b611d9a81611d80565b8114611da4575f80fd5b50565b5f81359050611db581611d91565b92915050565b5f819050919050565b611dcd81611dbb565b8114611dd7575f80fd5b50565b5f81359050611de881611dc4565b92915050565b5f8060408385031215611e0457611e03611d5d565b5b5f611e1185828601611da7565b9250506020611e2285828601611dda565b9150509250929050565b5f8115159050919050565b611e4081611e2c565b82525050565b5f602082019050611e595f830184611e37565b92915050565b611e6881611dbb565b82525050565b5f602082019050611e815f830184611e5f565b92915050565b5f805f60608486031215611e9e57611e9d611d5d565b5b5f611eab86828701611da7565b9350506020611ebc86828701611da7565b9250506040611ecd86828701611dda565b9150509250925092565b5f60208284031215611eec57611eeb611d5d565b5b5f611ef984828501611da7565b91505092915050565b5f60ff82169050919050565b611f1781611f02565b82525050565b5f602082019050611f305f830184611f0e565b92915050565b5f819050919050565b611f4881611f36565b82525050565b5f602082019050611f615f830184611f3f565b92915050565b5f7fff0000000000000000000000000000000000000000000000000000000000000082169050919050565b611f9b81611f67565b82525050565b611faa81611d80565b82525050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b611fe281611dbb565b82525050565b5f611ff38383611fd9565b60208301905092915050565b5f602082019050919050565b5f61201582611fb0565b61201f8185611fba565b935061202a83611fca565b805f5b8381101561205a5781516120418882611fe8565b975061204c83611fff565b92505060018101905061202d565b5085935050505092915050565b5f60e08201905061207a5f83018a611f92565b818103602083015261208c8189611d05565b905081810360408301526120a08188611d05565b90506120af6060830187611e5f565b6120bc6080830186611fa1565b6120c960a0830185611f3f565b81810360c08301526120db818461200b565b905098975050505050505050565b5f6020820190506120fc5f830184611fa1565b92915050565b61210b81611f02565b8114612115575f80fd5b50565b5f8135905061212681612102565b92915050565b61213581611f36565b811461213f575f80fd5b50565b5f813590506121508161212c565b92915050565b5f805f805f805f60e0888a03121561217157612170611d5d565b5b5f61217e8a828b01611da7565b975050602061218f8a828b01611da7565b96505060406121a08a828b01611dda565b95505060606121b18a828b01611dda565b94505060806121c28a828b01612118565b93505060a06121d38a828b01612142565b92505060c06121e48a828b01612142565b91505092959891949750929550565b5f806040838503121561220957612208611d5d565b5b5f61221685828601611da7565b925050602061222785828601611da7565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168061227557607f821691505b60208210810361228857612287612231565b5b50919050565b7f457665726c6f6467653a204163636f756e7420697320626c61636b6c697374655f8201527f6400000000000000000000000000000000000000000000000000000000000000602082015250565b5f6122e8602183611cd7565b91506122f38261228e565b604082019050919050565b5f6020820190508181035f830152612315816122dc565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f612376602383611cd7565b91506123818261231c565b604082019050919050565b5f6020820190508181035f8301526123a38161236a565b9050919050565b7f457665726c6f6467653a2045786365656473206d61782073656c6c20616d6f755f8201527f6e74000000000000000000000000000000000000000000000000000000000000602082015250565b5f612404602283611cd7565b915061240f826123aa565b604082019050919050565b5f6020820190508181035f830152612431816123f8565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b5f60c0820190506124785f830189611f3f565b6124856020830188611fa1565b6124926040830187611fa1565b61249f6060830186611e5f565b6124ac6080830185611e5f565b6124b960a0830184611e5f565b979650505050505050565b5f6040820190506124d75f830185611fa1565b6124e46020830184611fa1565b9392505050565b5f6060820190506124fe5f830186611fa1565b61250b6020830185611e5f565b6125186040830184611e5f565b949350505050565b5f60a0820190506125335f830188611f3f565b6125406020830187611f3f565b61254d6040830186611f3f565b61255a6060830185611e5f565b6125676080830184611fa1565b9695505050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f6125a882611dbb565b91506125b383611dbb565b92508282019050808211156125cb576125ca612571565b5b92915050565b5f6080820190506125e45f830187611f3f565b6125f16020830186611f0e565b6125fe6040830185611f3f565b61260b6060830184611f3f565b95945050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602160045260245ffdfea2646970667358221220c7e12980470943e9a8753ef1fefd56c6c38093542887b2fbbfc9068b828b76e564736f6c634300081a00330000000000000000000000004c5ac89b9bfb7d9af3dd2af93effddb399a0e81c