60806040526001600955348015610014575f80fd5b50604051613b27380380613b27833981810160405281019061003691906101ad565b8181815f90816100469190610430565b5080600190816100569190610430565b50505050506104ff565b5f604051905090565b5f80fd5b5f80fd5b5f80fd5b5f80fd5b5f601f19601f8301169050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6100bf82610079565b810181811067ffffffffffffffff821117156100de576100dd610089565b5b80604052505050565b5f6100f0610060565b90506100fc82826100b6565b919050565b5f67ffffffffffffffff82111561011b5761011a610089565b5b61012482610079565b9050602081019050919050565b8281835e5f83830152505050565b5f61015161014c84610101565b6100e7565b90508281526020810184848401111561016d5761016c610075565b5b610178848285610131565b509392505050565b5f82601f83011261019457610193610071565b5b81516101a484826020860161013f565b91505092915050565b5f80604083850312156101c3576101c2610069565b5b5f83015167ffffffffffffffff8111156101e0576101df61006d565b5b6101ec85828601610180565b925050602083015167ffffffffffffffff81111561020d5761020c61006d565b5b61021985828601610180565b9150509250929050565b5f81519050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168061027157607f821691505b6020821081036102845761028361022d565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f600883026102e67fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff826102ab565b6102f086836102ab565b95508019841693508086168417925050509392505050565b5f819050919050565b5f819050919050565b5f61033461032f61032a84610308565b610311565b610308565b9050919050565b5f819050919050565b61034d8361031a565b6103616103598261033b565b8484546102b7565b825550505050565b5f90565b610375610369565b610380818484610344565b505050565b5b818110156103a3576103985f8261036d565b600181019050610386565b5050565b601f8211156103e8576103b98161028a565b6103c28461029c565b810160208510156103d1578190505b6103e56103dd8561029c565b830182610385565b50505b505050565b5f82821c905092915050565b5f6104085f19846008026103ed565b1980831691505092915050565b5f61042083836103f9565b9150826002028217905092915050565b61043982610223565b67ffffffffffffffff81111561045257610451610089565b5b61045c825461025a565b6104678282856103a7565b5f60209050601f831160018114610498575f8415610486578287015190505b6104908582610415565b8655506104f7565b601f1984166104a68661028a565b5f5b828110156104cd578489015182556001820191506020850194506020810190506104a8565b868310156104ea57848901516104e6601f8916826103f9565b8355505b6001600288020188555050505b505050505050565b61361b8061050c5f395ff3fe608060405234801561000f575f80fd5b506004361061012a575f3560e01c80636352211e116100ab578063a22cb4651161006f578063a22cb46514610355578063b88d4fde14610371578063c87b56dd1461038d578063e985e9c5146103bd578063f9bfb7c1146103ed5761012a565b80636352211e1461027457806370a08231146102a45780637cb82b2a146102d457806395d89b411461030757806397afe82d146103255761012a565b80632c83ea56116100f25780632c83ea56146101e4578063350fe1651461020057806342842e0e1461021c57806349af5bfe1461023857806361bc221a146102565761012a565b806301ffc9a71461012e57806306fdde031461015e578063081812fc1461017c578063095ea7b3146101ac57806323b872dd146101c8575b5f80fd5b6101486004803603810190610143919061228f565b61041d565b60405161015591906122d4565b60405180910390f35b6101666104fe565b604051610173919061235d565b60405180910390f35b610196600480360381019061019191906123b0565b61058d565b6040516101a3919061241a565b60405180910390f35b6101c660048036038101906101c1919061245d565b6105cf565b005b6101e260048036038101906101dd919061249b565b6106e5565b005b6101fe60048036038101906101f991906124eb565b610745565b005b61021a6004803603810190610215919061258a565b610817565b005b6102366004803603810190610231919061249b565b610a7a565b005b610240610a99565b60405161024d91906127ba565b60405180910390f35b61025e610e46565b60405161026b91906127e9565b60405180910390f35b61028e600480360381019061028991906123b0565b610e4c565b60405161029b919061241a565b60405180910390f35b6102be60048036038101906102b99190612802565b610ed0565b6040516102cb91906127e9565b60405180910390f35b6102ee60048036038101906102e991906123b0565b610f84565b6040516102fe949392919061282d565b60405180910390f35b61030f611170565b60405161031c919061235d565b60405180910390f35b61033f600480360381019061033a919061245d565b611200565b60405161034c91906127e9565b60405180910390f35b61036f600480360381019061036a91906128af565b61122b565b005b61038b60048036038101906103869190612a15565b611241565b005b6103a760048036038101906103a291906123b0565b6112a3565b6040516103b4919061235d565b60405180910390f35b6103d760048036038101906103d29190612a95565b611308565b6040516103e491906122d4565b60405180910390f35b61040760048036038101906104029190612b06565b611396565b60405161041491906122d4565b60405180910390f35b5f7f80ac58cd000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614806104e757507f5b5e139f000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b806104f757506104f6826113b3565b5b9050919050565b60605f805461050c90612b5e565b80601f016020809104026020016040519081016040528092919081815260200182805461053890612b5e565b80156105835780601f1061055a57610100808354040283529160200191610583565b820191905f5260205f20905b81548152906001019060200180831161056657829003601f168201915b5050505050905090565b5f6105978261141c565b60045f8381526020019081526020015f205f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b5f6105d982610e4c565b90508073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610649576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161064090612bfe565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff16610668611467565b73ffffffffffffffffffffffffffffffffffffffff161480610697575061069681610691611467565b611308565b5b6106d6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106cd90612c8c565b60405180910390fd5b6106e0838361146e565b505050565b6106f66106f0611467565b82611524565b610735576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161072c90612d1a565b60405180910390fd5b6107408383836115b8565b505050565b3373ffffffffffffffffffffffffffffffffffffffff1661076583610e4c565b73ffffffffffffffffffffffffffffffffffffffff16146107b2576040517fe30f026900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60085f8273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2082908060018154018082558091505060019003905f5260205f20015f90919091909150555050565b5f868660405160200161082b929190612d66565b6040516020818303038152906040528051906020012090505f8585604051602001610857929190612d66565b6040516020818303038152906040528051906020012090505f8484604051602001610883929190612d66565b60405160208183030381529060405280519060200120905060065f8481526020019081526020015f205f9054906101000a900460ff16806108de575060065f8381526020019081526020015f205f9054906101000a900460ff165b80610903575060065f8281526020019081526020015f205f9054906101000a900460ff165b1561093a576040517f693a889e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600160065f8581526020019081526020015f205f6101000a81548160ff021916908315150217905550600160065f8481526020019081526020015f205f6101000a81548160ff021916908315150217905550600160065f8381526020019081526020015f205f6101000a81548160ff0219169083151502179055505f600760018160018154018082558091505003905f5260205f209060040201905033815f015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508989826001019182610a2a929190612f25565b508787826002019182610a3e929190612f25565b508585826003019182610a52929190612f25565b50610a5f336009546118a4565b60095f81546001019190508190555050505050505050505050565b610a9483838360405180602001604052805f815250611241565b505050565b60605f60085f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20805480602002602001604051908101604052809291908181526020018280548015610b2157602002820191905f5260205f20905b815481526020019060010190808311610b0d575b505050505090505f815190505f8103610b66576040517ff8826a6900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f8167ffffffffffffffff811115610b8157610b806128f1565b5b604051908082528060200260200182016040528015610bba57816020015b610ba76121ec565b815260200190600190039081610b9f5790505b5090505f5b82811015610e3c5760076001858381518110610bde57610bdd612ff2565b5b60200260200101510381548110610bf857610bf7612ff2565b5b905f5260205f2090600402016040518060800160405290815f82015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001600182018054610c7390612b5e565b80601f0160208091040260200160405190810160405280929190818152602001828054610c9f90612b5e565b8015610cea5780601f10610cc157610100808354040283529160200191610cea565b820191905f5260205f20905b815481529060010190602001808311610ccd57829003601f168201915b50505050508152602001600282018054610d0390612b5e565b80601f0160208091040260200160405190810160405280929190818152602001828054610d2f90612b5e565b8015610d7a5780601f10610d5157610100808354040283529160200191610d7a565b820191905f5260205f20905b815481529060010190602001808311610d5d57829003601f168201915b50505050508152602001600382018054610d9390612b5e565b80601f0160208091040260200160405190810160405280929190818152602001828054610dbf90612b5e565b8015610e0a5780601f10610de157610100808354040283529160200191610e0a565b820191905f5260205f20905b815481529060010190602001808311610ded57829003601f168201915b505050505081525050828281518110610e2657610e25612ff2565b5b6020026020010181905250806001019050610bbf565b5080935050505090565b60095481565b5f80610e5783611ab7565b90505f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610ec7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ebe90613069565b60405180910390fd5b80915050919050565b5f8073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610f3f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f36906130f7565b60405180910390fd5b60035f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b60078181548110610f93575f80fd5b905f5260205f2090600402015f91509050805f015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690806001018054610fd790612b5e565b80601f016020809104026020016040519081016040528092919081815260200182805461100390612b5e565b801561104e5780601f106110255761010080835404028352916020019161104e565b820191905f5260205f20905b81548152906001019060200180831161103157829003601f168201915b50505050509080600201805461106390612b5e565b80601f016020809104026020016040519081016040528092919081815260200182805461108f90612b5e565b80156110da5780601f106110b1576101008083540402835291602001916110da565b820191905f5260205f20905b8154815290600101906020018083116110bd57829003601f168201915b5050505050908060030180546110ef90612b5e565b80601f016020809104026020016040519081016040528092919081815260200182805461111b90612b5e565b80156111665780601f1061113d57610100808354040283529160200191611166565b820191905f5260205f20905b81548152906001019060200180831161114957829003601f168201915b5050505050905084565b60606001805461117f90612b5e565b80601f01602080910402602001604051908101604052809291908181526020018280546111ab90612b5e565b80156111f65780601f106111cd576101008083540402835291602001916111f6565b820191905f5260205f20905b8154815290600101906020018083116111d957829003601f168201915b5050505050905090565b6008602052815f5260405f208181548110611219575f80fd5b905f5260205f20015f91509150505481565b61123d611236611467565b8383611af0565b5050565b61125261124c611467565b83611524565b611291576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161128890612d1a565b60405180910390fd5b61129d84848484611c57565b50505050565b60606112ae8261141c565b5f6112b7611cb3565b90505f8151116112d55760405180602001604052805f815250611300565b806112df84611cc9565b6040516020016112f0929190613145565b6040516020818303038152906040525b915050919050565b5f60055f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16905092915050565b6006602052805f5260405f205f915054906101000a900460ff1681565b5f7f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b61142581611d93565b611464576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161145b90613069565b60405180910390fd5b50565b5f33905090565b8160045f8381526020019081526020015f205f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff166114de83610e4c565b73ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b5f8061152f83610e4c565b90508073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148061157157506115708185611308565b5b806115af57508373ffffffffffffffffffffffffffffffffffffffff166115978461058d565b73ffffffffffffffffffffffffffffffffffffffff16145b91505092915050565b8273ffffffffffffffffffffffffffffffffffffffff166115d882610e4c565b73ffffffffffffffffffffffffffffffffffffffff161461162e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611625906131d8565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361169c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161169390613266565b60405180910390fd5b6116a98383836001611dd3565b8273ffffffffffffffffffffffffffffffffffffffff166116c982610e4c565b73ffffffffffffffffffffffffffffffffffffffff161461171f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611716906131d8565b60405180910390fd5b60045f8281526020019081526020015f205f6101000a81549073ffffffffffffffffffffffffffffffffffffffff0219169055600160035f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8282540392505081905550600160035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825401925050819055508160025f8381526020019081526020015f205f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a461189f8383836001611ef1565b505050565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611912576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611909906132ce565b60405180910390fd5b61191b81611d93565b1561195b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161195290613336565b60405180910390fd5b6119685f83836001611dd3565b61197181611d93565b156119b1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119a890613336565b60405180910390fd5b600160035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825401925050819055508160025f8381526020019081526020015f205f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4611ab35f83836001611ef1565b5050565b5f60025f8381526020019081526020015f205f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611b5e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b559061339e565b60405180910390fd5b8060055f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c3183604051611c4a91906122d4565b60405180910390a3505050565b611c628484846115b8565b611c6e84848484611ef7565b611cad576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ca49061342c565b60405180910390fd5b50505050565b606060405180602001604052805f815250905090565b60605f6001611cd784612079565b0190505f8167ffffffffffffffff811115611cf557611cf46128f1565b5b6040519080825280601f01601f191660200182016040528015611d275781602001600182028036833780820191505090505b5090505f82602001820190505b600115611d88578080600190039150507f3031323334353637383961626364656600000000000000000000000000000000600a86061a8153600a8581611d7d57611d7c61344a565b5b0494505f8503611d34575b819350505050919050565b5f8073ffffffffffffffffffffffffffffffffffffffff16611db483611ab7565b73ffffffffffffffffffffffffffffffffffffffff1614159050919050565b6001811115611eeb575f73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614611e63578060035f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f828254611e5b91906134a4565b925050819055505b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614611eea578060035f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f828254611ee291906134d7565b925050819055505b5b50505050565b50505050565b5f611f178473ffffffffffffffffffffffffffffffffffffffff166121ca565b1561206c578373ffffffffffffffffffffffffffffffffffffffff1663150b7a02611f40611467565b8786866040518563ffffffff1660e01b8152600401611f62949392919061355c565b6020604051808303815f875af1925050508015611f9d57506040513d601f19601f82011682018060405250810190611f9a91906135ba565b60015b61201c573d805f8114611fcb576040519150601f19603f3d011682016040523d82523d5f602084013e611fd0565b606091505b505f815103612014576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161200b9061342c565b60405180910390fd5b805181602001fd5b63150b7a0260e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614915050612071565b600190505b949350505050565b5f805f90507a184f03e93ff9f4daa797ed6e38ed64bf6a1f01000000000000000083106120d5577a184f03e93ff9f4daa797ed6e38ed64bf6a1f01000000000000000083816120cb576120ca61344a565b5b0492506040810190505b6d04ee2d6d415b85acef81000000008310612112576d04ee2d6d415b85acef810000000083816121085761210761344a565b5b0492506020810190505b662386f26fc10000831061214157662386f26fc1000083816121375761213661344a565b5b0492506010810190505b6305f5e100831061216a576305f5e10083816121605761215f61344a565b5b0492506008810190505b612710831061218f5761271083816121855761218461344a565b5b0492506004810190505b606483106121b257606483816121a8576121a761344a565b5b0492506002810190505b600a83106121c1576001810190505b80915050919050565b5f808273ffffffffffffffffffffffffffffffffffffffff163b119050919050565b60405180608001604052805f73ffffffffffffffffffffffffffffffffffffffff1681526020016060815260200160608152602001606081525090565b5f604051905090565b5f80fd5b5f80fd5b5f7fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b61226e8161223a565b8114612278575f80fd5b50565b5f8135905061228981612265565b92915050565b5f602082840312156122a4576122a3612232565b5b5f6122b18482850161227b565b91505092915050565b5f8115159050919050565b6122ce816122ba565b82525050565b5f6020820190506122e75f8301846122c5565b92915050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f61232f826122ed565b61233981856122f7565b9350612349818560208601612307565b61235281612315565b840191505092915050565b5f6020820190508181035f8301526123758184612325565b905092915050565b5f819050919050565b61238f8161237d565b8114612399575f80fd5b50565b5f813590506123aa81612386565b92915050565b5f602082840312156123c5576123c4612232565b5b5f6123d28482850161239c565b91505092915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f612404826123db565b9050919050565b612414816123fa565b82525050565b5f60208201905061242d5f83018461240b565b92915050565b61243c816123fa565b8114612446575f80fd5b50565b5f8135905061245781612433565b92915050565b5f806040838503121561247357612472612232565b5b5f61248085828601612449565b92505060206124918582860161239c565b9150509250929050565b5f805f606084860312156124b2576124b1612232565b5b5f6124bf86828701612449565b93505060206124d086828701612449565b92505060406124e18682870161239c565b9150509250925092565b5f806040838503121561250157612500612232565b5b5f61250e8582860161239c565b925050602061251f85828601612449565b9150509250929050565b5f80fd5b5f80fd5b5f80fd5b5f8083601f84011261254a57612549612529565b5b8235905067ffffffffffffffff8111156125675761256661252d565b5b60208301915083600182028301111561258357612582612531565b5b9250929050565b5f805f805f80606087890312156125a4576125a3612232565b5b5f87013567ffffffffffffffff8111156125c1576125c0612236565b5b6125cd89828a01612535565b9650965050602087013567ffffffffffffffff8111156125f0576125ef612236565b5b6125fc89828a01612535565b9450945050604087013567ffffffffffffffff81111561261f5761261e612236565b5b61262b89828a01612535565b92509250509295509295509295565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b61266c816123fa565b82525050565b5f82825260208201905092915050565b5f61268c826122ed565b6126968185612672565b93506126a6818560208601612307565b6126af81612315565b840191505092915050565b5f608083015f8301516126cf5f860182612663565b50602083015184820360208601526126e78282612682565b915050604083015184820360408601526127018282612682565b9150506060830151848203606086015261271b8282612682565b9150508091505092915050565b5f61273383836126ba565b905092915050565b5f602082019050919050565b5f6127518261263a565b61275b8185612644565b93508360208202850161276d85612654565b805f5b858110156127a857848403895281516127898582612728565b94506127948361273b565b925060208a01995050600181019050612770565b50829750879550505050505092915050565b5f6020820190508181035f8301526127d28184612747565b905092915050565b6127e38161237d565b82525050565b5f6020820190506127fc5f8301846127da565b92915050565b5f6020828403121561281757612816612232565b5b5f61282484828501612449565b91505092915050565b5f6080820190506128405f83018761240b565b81810360208301526128528186612325565b905081810360408301526128668185612325565b9050818103606083015261287a8184612325565b905095945050505050565b61288e816122ba565b8114612898575f80fd5b50565b5f813590506128a981612885565b92915050565b5f80604083850312156128c5576128c4612232565b5b5f6128d285828601612449565b92505060206128e38582860161289b565b9150509250929050565b5f80fd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b61292782612315565b810181811067ffffffffffffffff82111715612946576129456128f1565b5b80604052505050565b5f612958612229565b9050612964828261291e565b919050565b5f67ffffffffffffffff821115612983576129826128f1565b5b61298c82612315565b9050602081019050919050565b828183375f83830152505050565b5f6129b96129b484612969565b61294f565b9050828152602081018484840111156129d5576129d46128ed565b5b6129e0848285612999565b509392505050565b5f82601f8301126129fc576129fb612529565b5b8135612a0c8482602086016129a7565b91505092915050565b5f805f8060808587031215612a2d57612a2c612232565b5b5f612a3a87828801612449565b9450506020612a4b87828801612449565b9350506040612a5c8782880161239c565b925050606085013567ffffffffffffffff811115612a7d57612a7c612236565b5b612a89878288016129e8565b91505092959194509250565b5f8060408385031215612aab57612aaa612232565b5b5f612ab885828601612449565b9250506020612ac985828601612449565b9150509250929050565b5f819050919050565b612ae581612ad3565b8114612aef575f80fd5b50565b5f81359050612b0081612adc565b92915050565b5f60208284031215612b1b57612b1a612232565b5b5f612b2884828501612af2565b91505092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f6002820490506001821680612b7557607f821691505b602082108103612b8857612b87612b31565b5b50919050565b7f4552433732313a20617070726f76616c20746f2063757272656e74206f776e655f8201527f7200000000000000000000000000000000000000000000000000000000000000602082015250565b5f612be86021836122f7565b9150612bf382612b8e565b604082019050919050565b5f6020820190508181035f830152612c1581612bdc565b9050919050565b7f4552433732313a20617070726f76652063616c6c6572206973206e6f7420746f5f8201527f6b656e206f776e6572206f7220617070726f76656420666f7220616c6c000000602082015250565b5f612c76603d836122f7565b9150612c8182612c1c565b604082019050919050565b5f6020820190508181035f830152612ca381612c6a565b9050919050565b7f4552433732313a2063616c6c6572206973206e6f7420746f6b656e206f776e655f8201527f72206f7220617070726f76656400000000000000000000000000000000000000602082015250565b5f612d04602d836122f7565b9150612d0f82612caa565b604082019050919050565b5f6020820190508181035f830152612d3181612cf8565b9050919050565b5f81905092915050565b5f612d4d8385612d38565b9350612d5a838584612999565b82840190509392505050565b5f612d72828486612d42565b91508190509392505050565b5f82905092915050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f60088302612de47fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82612da9565b612dee8683612da9565b95508019841693508086168417925050509392505050565b5f819050919050565b5f612e29612e24612e1f8461237d565b612e06565b61237d565b9050919050565b5f819050919050565b612e4283612e0f565b612e56612e4e82612e30565b848454612db5565b825550505050565b5f90565b612e6a612e5e565b612e75818484612e39565b505050565b5b81811015612e9857612e8d5f82612e62565b600181019050612e7b565b5050565b601f821115612edd57612eae81612d88565b612eb784612d9a565b81016020851015612ec6578190505b612eda612ed285612d9a565b830182612e7a565b50505b505050565b5f82821c905092915050565b5f612efd5f1984600802612ee2565b1980831691505092915050565b5f612f158383612eee565b9150826002028217905092915050565b612f2f8383612d7e565b67ffffffffffffffff811115612f4857612f476128f1565b5b612f528254612b5e565b612f5d828285612e9c565b5f601f831160018114612f8a575f8415612f78578287013590505b612f828582612f0a565b865550612fe9565b601f198416612f9886612d88565b5f5b82811015612fbf57848901358255600182019150602085019450602081019050612f9a565b86831015612fdc5784890135612fd8601f891682612eee565b8355505b6001600288020188555050505b50505050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b7f4552433732313a20696e76616c696420746f6b656e20494400000000000000005f82015250565b5f6130536018836122f7565b915061305e8261301f565b602082019050919050565b5f6020820190508181035f83015261308081613047565b9050919050565b7f4552433732313a2061646472657373207a65726f206973206e6f7420612076615f8201527f6c6964206f776e65720000000000000000000000000000000000000000000000602082015250565b5f6130e16029836122f7565b91506130ec82613087565b604082019050919050565b5f6020820190508181035f83015261310e816130d5565b9050919050565b5f61311f826122ed565b6131298185612d38565b9350613139818560208601612307565b80840191505092915050565b5f6131508285613115565b915061315c8284613115565b91508190509392505050565b7f4552433732313a207472616e736665722066726f6d20696e636f7272656374205f8201527f6f776e6572000000000000000000000000000000000000000000000000000000602082015250565b5f6131c26025836122f7565b91506131cd82613168565b604082019050919050565b5f6020820190508181035f8301526131ef816131b6565b9050919050565b7f4552433732313a207472616e7366657220746f20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f6132506024836122f7565b915061325b826131f6565b604082019050919050565b5f6020820190508181035f83015261327d81613244565b9050919050565b7f4552433732313a206d696e7420746f20746865207a65726f20616464726573735f82015250565b5f6132b86020836122f7565b91506132c382613284565b602082019050919050565b5f6020820190508181035f8301526132e5816132ac565b9050919050565b7f4552433732313a20746f6b656e20616c7265616479206d696e746564000000005f82015250565b5f613320601c836122f7565b915061332b826132ec565b602082019050919050565b5f6020820190508181035f83015261334d81613314565b9050919050565b7f4552433732313a20617070726f766520746f2063616c6c6572000000000000005f82015250565b5f6133886019836122f7565b915061339382613354565b602082019050919050565b5f6020820190508181035f8301526133b58161337c565b9050919050565b7f4552433732313a207472616e7366657220746f206e6f6e2045524337323152655f8201527f63656976657220696d706c656d656e7465720000000000000000000000000000602082015250565b5f6134166032836122f7565b9150613421826133bc565b604082019050919050565b5f6020820190508181035f8301526134438161340a565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f6134ae8261237d565b91506134b98361237d565b92508282039050818111156134d1576134d0613477565b5b92915050565b5f6134e18261237d565b91506134ec8361237d565b925082820190508082111561350457613503613477565b5b92915050565b5f81519050919050565b5f82825260208201905092915050565b5f61352e8261350a565b6135388185613514565b9350613548818560208601612307565b61355181612315565b840191505092915050565b5f60808201905061356f5f83018761240b565b61357c602083018661240b565b61358960408301856127da565b818103606083015261359b8184613524565b905095945050505050565b5f815190506135b481612265565b92915050565b5f602082840312156135cf576135ce612232565b5b5f6135dc848285016135a6565b9150509291505056fea2646970667358221220ebeeb20cd25ca90c7f0d433f1c0a0f40a86a8da873da2bcdc08450aca70c0f3c64736f6c634300081a00330000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000084861696b754e46540000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004484e465400000000000000000000000000000000000000000000000000000000