608060405234801561000f575f5ffd5b506040518060400160405280600881526020017f4861696b754e46540000000000000000000000000000000000000000000000008152506040518060400160405280600581526020017f484b4e4654000000000000000000000000000000000000000000000000000000815250815f908161008a91906102df565b50806001908161009a91906102df565b5050506103ae565b5f81519050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168061011d57607f821691505b6020821081036101305761012f6100d9565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f600883026101927fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82610157565b61019c8683610157565b95508019841693508086168417925050509392505050565b5f819050919050565b5f819050919050565b5f6101e06101db6101d6846101b4565b6101bd565b6101b4565b9050919050565b5f819050919050565b6101f9836101c6565b61020d610205826101e7565b848454610163565b825550505050565b5f5f905090565b610224610215565b61022f8184846101f0565b505050565b5b81811015610252576102475f8261021c565b600181019050610235565b5050565b601f8211156102975761026881610136565b61027184610148565b81016020851015610280578190505b61029461028c85610148565b830182610234565b50505b505050565b5f82821c905092915050565b5f6102b75f198460080261029c565b1980831691505092915050565b5f6102cf83836102a8565b9150826002028217905092915050565b6102e8826100a2565b67ffffffffffffffff811115610301576103006100ac565b5b61030b8254610106565b610316828285610256565b5f60209050601f831160018114610347575f8415610335578287015190505b61033f85826102c4565b8655506103a6565b601f19841661035586610136565b5f5b8281101561037c57848901518255600182019150602085019450602081019050610357565b868310156103995784890151610395601f8916826102a8565b8355505b6001600288020188555050505b505050505050565b613538806103bb5f395ff3fe608060405234801561000f575f5ffd5b5060043610610140575f3560e01c80637cb82b2a116100b6578063a48317641161007a578063a48317641461039b578063b88d4fde146103b9578063c87b56dd146103d5578063e985e9c514610405578063f65d099514610435578063f95894ba1461046557610140565b80637cb82b2a146102cc5780638e667f57146102ff57806395d89b4114610331578063969d288d1461034f578063a22cb4651461037f57610140565b80632c83ea56116101085780632c83ea56146101fa578063350fe1651461021657806342842e0e1461023257806361bc221a1461024e5780636352211e1461026c57806370a082311461029c57610140565b806301ffc9a71461014457806306fdde0314610174578063081812fc14610192578063095ea7b3146101c257806323b872dd146101de575b5f5ffd5b61015e600480360381019061015991906125ee565b610498565b60405161016b9190612633565b60405180910390f35b61017c610579565b60405161018991906126bc565b60405180910390f35b6101ac60048036038101906101a7919061270f565b610608565b6040516101b99190612779565b60405180910390f35b6101dc60048036038101906101d791906127bc565b610623565b005b6101f860048036038101906101f391906127fa565b610639565b005b610214600480360381019061020f919061284a565b610738565b005b610230600480360381019061022b91906129b4565b61083b565b005b61024c600480360381019061024791906127fa565b610a76565b005b610256610a95565b6040516102639190612a67565b60405180910390f35b6102866004803603810190610281919061270f565b610aa0565b6040516102939190612779565b60405180910390f35b6102b660048036038101906102b19190612a80565b610ab1565b6040516102c39190612a67565b60405180910390f35b6102e660048036038101906102e1919061270f565b610b67565b6040516102f69493929190612aab565b60405180910390f35b6103196004803603810190610314919061270f565b610d44565b60405161032893929190612b03565b60405180910390f35b610339610f89565b60405161034691906126bc565b60405180910390f35b61036960048036038101906103649190612b4d565b611019565b6040516103769190612779565b60405180910390f35b61039960048036038101906103949190612bb5565b611061565b005b6103a3611077565b6040516103b09190612d73565b60405180910390f35b6103d360048036038101906103ce9190612e31565b6112d7565b005b6103ef60048036038101906103ea919061270f565b6112f4565b6040516103fc91906126bc565b60405180910390f35b61041f600480360381019061041a9190612eb1565b61135a565b60405161042c9190612633565b60405180910390f35b61044f600480360381019061044a919061270f565b6113e8565b60405161045c9190612f97565b60405180910390f35b61047f600480360381019061047a919061270f565b611484565b60405161048f9493929190612aab565b60405180910390f35b5f7f80ac58cd000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916148061056257507f5b5e139f000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b80610572575061057182611670565b5b9050919050565b60605f805461058790612fe4565b80601f01602080910402602001604051908101604052809291908181526020018280546105b390612fe4565b80156105fe5780601f106105d5576101008083540402835291602001916105fe565b820191905f5260205f20905b8154815290600101906020018083116105e157829003601f168201915b5050505050905090565b5f610612826116d9565b5061061c8261175f565b9050919050565b6106358282610630611798565b61179f565b5050565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036106a9575f6040517f64a0ae920000000000000000000000000000000000000000000000000000000081526004016106a09190612779565b60405180910390fd5b5f6106bc83836106b7611798565b6117b1565b90508373ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614610732578382826040517f64283d7b00000000000000000000000000000000000000000000000000000000815260040161072993929190613014565b60405180910390fd5b50505050565b3373ffffffffffffffffffffffffffffffffffffffff1661075883610aa0565b73ffffffffffffffffffffffffffffffffffffffff16146107ae576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107a5906130b9565b60405180910390fd5b6107c833828460405180602001604052805f8152506119bc565b600a5f8381526020019081526020015f2081908060018154018082558091505060019003905f5260205f20015f9091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050565b5f6108478484846119d9565b905060095f8281526020019081526020015f205f9054906101000a900460ff161561089e576040517f693a889e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f6108a96006611a0e565b90506108b53382611a1a565b5f60405180608001604052803373ffffffffffffffffffffffffffffffffffffffff1681526020018781526020018681526020018581525090508060075f8481526020019081526020015f205f820151815f015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550602082015181600101908161095a9190613277565b5060408201518160020190816109709190613277565b5060608201518160030190816109869190613277565b50905050600881908060018154018082558091505060019003905f5260205f2090600402015f909190919091505f820151815f015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506020820151816001019081610a0c9190613277565b506040820151816002019081610a229190613277565b506060820151816003019081610a389190613277565b505050600160095f8581526020019081526020015f205f6101000a81548160ff021916908315150217905550610a6e6006611a37565b505050505050565b610a9083838360405180602001604052805f8152506112d7565b505050565b6006805f0154905081565b5f610aaa826116d9565b9050919050565b5f5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610b22575f6040517f89c62b64000000000000000000000000000000000000000000000000000000008152600401610b199190612779565b60405180910390fd5b60035f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b6007602052805f5260405f205f91509050805f015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690806001018054610bab90612fe4565b80601f0160208091040260200160405190810160405280929190818152602001828054610bd790612fe4565b8015610c225780601f10610bf957610100808354040283529160200191610c22565b820191905f5260205f20905b815481529060010190602001808311610c0557829003601f168201915b505050505090806002018054610c3790612fe4565b80601f0160208091040260200160405190810160405280929190818152602001828054610c6390612fe4565b8015610cae5780601f10610c8557610100808354040283529160200191610cae565b820191905f5260205f20905b815481529060010190602001808311610c9157829003601f168201915b505050505090806003018054610cc390612fe4565b80601f0160208091040260200160405190810160405280929190818152602001828054610cef90612fe4565b8015610d3a5780601f10610d1157610100808354040283529160200191610d3a565b820191905f5260205f20905b815481529060010190602001808311610d1d57829003601f168201915b5050505050905084565b60608060605f60075f8681526020019081526020015f206040518060800160405290815f82015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001600182018054610dca90612fe4565b80601f0160208091040260200160405190810160405280929190818152602001828054610df690612fe4565b8015610e415780601f10610e1857610100808354040283529160200191610e41565b820191905f5260205f20905b815481529060010190602001808311610e2457829003601f168201915b50505050508152602001600282018054610e5a90612fe4565b80601f0160208091040260200160405190810160405280929190818152602001828054610e8690612fe4565b8015610ed15780601f10610ea857610100808354040283529160200191610ed1565b820191905f5260205f20905b815481529060010190602001808311610eb457829003601f168201915b50505050508152602001600382018054610eea90612fe4565b80601f0160208091040260200160405190810160405280929190818152602001828054610f1690612fe4565b8015610f615780601f10610f3857610100808354040283529160200191610f61565b820191905f5260205f20905b815481529060010190602001808311610f4457829003601f168201915b5050505050815250509050806020015181604001518260600151935093509350509193909250565b606060018054610f9890612fe4565b80601f0160208091040260200160405190810160405280929190818152602001828054610fc490612fe4565b801561100f5780601f10610fe65761010080835404028352916020019161100f565b820191905f5260205f20905b815481529060010190602001808311610ff257829003601f168201915b5050505050905090565b600a602052815f5260405f208181548110611032575f80fd5b905f5260205f20015f915091509054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b61107361106c611798565b8383611a4b565b5050565b60606008805480602002602001604051908101604052809291908181526020015f905b828210156112ce578382905f5260205f2090600402016040518060800160405290815f82015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200160018201805461111f90612fe4565b80601f016020809104026020016040519081016040528092919081815260200182805461114b90612fe4565b80156111965780601f1061116d57610100808354040283529160200191611196565b820191905f5260205f20905b81548152906001019060200180831161117957829003601f168201915b505050505081526020016002820180546111af90612fe4565b80601f01602080910402602001604051908101604052809291908181526020018280546111db90612fe4565b80156112265780601f106111fd57610100808354040283529160200191611226565b820191905f5260205f20905b81548152906001019060200180831161120957829003601f168201915b5050505050815260200160038201805461123f90612fe4565b80601f016020809104026020016040519081016040528092919081815260200182805461126b90612fe4565b80156112b65780601f1061128d576101008083540402835291602001916112b6565b820191905f5260205f20905b81548152906001019060200180831161129957829003601f168201915b5050505050815250508152602001906001019061109a565b50505050905090565b6112e2848484610639565b6112ee84848484611bb4565b50505050565b60606112ff826116d9565b505f611309611d66565b90505f8151116113275760405180602001604052805f815250611352565b8061133184611d7c565b604051602001611342929190613380565b6040516020818303038152906040525b915050919050565b5f60055f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16905092915050565b6060600a5f8381526020019081526020015f2080548060200260200160405190810160405280929190818152602001828054801561147857602002820191905f5260205f20905b815f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001906001019080831161142f575b50505050509050919050565b60088181548110611493575f80fd5b905f5260205f2090600402015f91509050805f015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16908060010180546114d790612fe4565b80601f016020809104026020016040519081016040528092919081815260200182805461150390612fe4565b801561154e5780601f106115255761010080835404028352916020019161154e565b820191905f5260205f20905b81548152906001019060200180831161153157829003601f168201915b50505050509080600201805461156390612fe4565b80601f016020809104026020016040519081016040528092919081815260200182805461158f90612fe4565b80156115da5780601f106115b1576101008083540402835291602001916115da565b820191905f5260205f20905b8154815290600101906020018083116115bd57829003601f168201915b5050505050908060030180546115ef90612fe4565b80601f016020809104026020016040519081016040528092919081815260200182805461161b90612fe4565b80156116665780601f1061163d57610100808354040283529160200191611666565b820191905f5260205f20905b81548152906001019060200180831161164957829003601f168201915b5050505050905084565b5f7f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b5f5f6116e483611e46565b90505f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160361175657826040517f7e27328900000000000000000000000000000000000000000000000000000000815260040161174d9190612a67565b60405180910390fd5b80915050919050565b5f60045f8381526020019081526020015f205f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b5f33905090565b6117ac8383836001611e7f565b505050565b5f5f6117bc84611e46565b90505f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16146117fd576117fc81848661203e565b5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16146118885761183c5f855f5f611e7f565b600160035f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825403925050819055505b5f73ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff161461190757600160035f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825401925050819055505b8460025f8681526020019081526020015f205f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550838573ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4809150509392505050565b6119c7848484612101565b6119d384848484611bb4565b50505050565b5f8383836040516020016119ef939291906133a3565b6040516020818303038152906040528051906020012090509392505050565b5f815f01549050919050565b611a33828260405180602001604052805f815250612269565b5050565b6001815f015f828254019250508190555050565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611abb57816040517f5b08ba18000000000000000000000000000000000000000000000000000000008152600401611ab29190612779565b60405180910390fd5b8060055f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c3183604051611ba79190612633565b60405180910390a3505050565b5f8373ffffffffffffffffffffffffffffffffffffffff163b1115611d60578273ffffffffffffffffffffffffffffffffffffffff1663150b7a02611bf7611798565b8685856040518563ffffffff1660e01b8152600401611c199493929190613425565b6020604051808303815f875af1925050508015611c5457506040513d601f19601f82011682018060405250810190611c519190613483565b60015b611cd5573d805f8114611c82576040519150601f19603f3d011682016040523d82523d5f602084013e611c87565b606091505b505f815103611ccd57836040517f64a0ae92000000000000000000000000000000000000000000000000000000008152600401611cc49190612779565b60405180910390fd5b805181602001fd5b63150b7a0260e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614611d5e57836040517f64a0ae92000000000000000000000000000000000000000000000000000000008152600401611d559190612779565b60405180910390fd5b505b50505050565b606060405180602001604052805f815250905090565b60605f6001611d8a84612284565b0190505f8167ffffffffffffffff811115611da857611da7612890565b5b6040519080825280601f01601f191660200182016040528015611dda5781602001600182028036833780820191505090505b5090505f82602001820190505b600115611e3b578080600190039150507f3031323334353637383961626364656600000000000000000000000000000000600a86061a8153600a8581611e3057611e2f6134ae565b5b0494505f8503611de7575b819350505050919050565b5f60025f8381526020019081526020015f205f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b8080611eb757505f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b15611fe9575f611ec6846116d9565b90505f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015611f3057508273ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b8015611f435750611f41818461135a565b155b15611f8557826040517fa9fbf51f000000000000000000000000000000000000000000000000000000008152600401611f7c9190612779565b60405180910390fd5b8115611fe757838573ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45b505b8360045f8581526020019081526020015f205f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050505050565b6120498383836123d5565b6120fc575f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036120bd57806040517f7e2732890000000000000000000000000000000000000000000000000000000081526004016120b49190612a67565b60405180910390fd5b81816040517f177e802f0000000000000000000000000000000000000000000000000000000081526004016120f39291906134db565b60405180910390fd5b505050565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603612171575f6040517f64a0ae920000000000000000000000000000000000000000000000000000000081526004016121689190612779565b60405180910390fd5b5f61217d83835f6117b1565b90505f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036121ef57816040517f7e2732890000000000000000000000000000000000000000000000000000000081526004016121e69190612a67565b60405180910390fd5b8373ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614612263578382826040517f64283d7b00000000000000000000000000000000000000000000000000000000815260040161225a93929190613014565b60405180910390fd5b50505050565b6122738383612495565b61227f5f848484611bb4565b505050565b5f5f5f90507a184f03e93ff9f4daa797ed6e38ed64bf6a1f01000000000000000083106122e0577a184f03e93ff9f4daa797ed6e38ed64bf6a1f01000000000000000083816122d6576122d56134ae565b5b0492506040810190505b6d04ee2d6d415b85acef8100000000831061231d576d04ee2d6d415b85acef81000000008381612313576123126134ae565b5b0492506020810190505b662386f26fc10000831061234c57662386f26fc100008381612342576123416134ae565b5b0492506010810190505b6305f5e1008310612375576305f5e100838161236b5761236a6134ae565b5b0492506008810190505b612710831061239a5761271083816123905761238f6134ae565b5b0492506004810190505b606483106123bd57606483816123b3576123b26134ae565b5b0492506002810190505b600a83106123cc576001810190505b80915050919050565b5f5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415801561248c57508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148061244d575061244c848461135a565b5b8061248b57508273ffffffffffffffffffffffffffffffffffffffff166124738361175f565b73ffffffffffffffffffffffffffffffffffffffff16145b5b90509392505050565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603612505575f6040517f64a0ae920000000000000000000000000000000000000000000000000000000081526004016124fc9190612779565b60405180910390fd5b5f61251183835f6117b1565b90505f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614612583575f6040517f73c6ac6e00000000000000000000000000000000000000000000000000000000815260040161257a9190612779565b60405180910390fd5b505050565b5f604051905090565b5f5ffd5b5f5ffd5b5f7fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b6125cd81612599565b81146125d7575f5ffd5b50565b5f813590506125e8816125c4565b92915050565b5f6020828403121561260357612602612591565b5b5f612610848285016125da565b91505092915050565b5f8115159050919050565b61262d81612619565b82525050565b5f6020820190506126465f830184612624565b92915050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f61268e8261264c565b6126988185612656565b93506126a8818560208601612666565b6126b181612674565b840191505092915050565b5f6020820190508181035f8301526126d48184612684565b905092915050565b5f819050919050565b6126ee816126dc565b81146126f8575f5ffd5b50565b5f81359050612709816126e5565b92915050565b5f6020828403121561272457612723612591565b5b5f612731848285016126fb565b91505092915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6127638261273a565b9050919050565b61277381612759565b82525050565b5f60208201905061278c5f83018461276a565b92915050565b61279b81612759565b81146127a5575f5ffd5b50565b5f813590506127b681612792565b92915050565b5f5f604083850312156127d2576127d1612591565b5b5f6127df858286016127a8565b92505060206127f0858286016126fb565b9150509250929050565b5f5f5f6060848603121561281157612810612591565b5b5f61281e868287016127a8565b935050602061282f868287016127a8565b9250506040612840868287016126fb565b9150509250925092565b5f5f604083850312156128605761285f612591565b5b5f61286d858286016126fb565b925050602061287e858286016127a8565b9150509250929050565b5f5ffd5b5f5ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6128c682612674565b810181811067ffffffffffffffff821117156128e5576128e4612890565b5b80604052505050565b5f6128f7612588565b905061290382826128bd565b919050565b5f67ffffffffffffffff82111561292257612921612890565b5b61292b82612674565b9050602081019050919050565b828183375f83830152505050565b5f61295861295384612908565b6128ee565b9050828152602081018484840111156129745761297361288c565b5b61297f848285612938565b509392505050565b5f82601f83011261299b5761299a612888565b5b81356129ab848260208601612946565b91505092915050565b5f5f5f606084860312156129cb576129ca612591565b5b5f84013567ffffffffffffffff8111156129e8576129e7612595565b5b6129f486828701612987565b935050602084013567ffffffffffffffff811115612a1557612a14612595565b5b612a2186828701612987565b925050604084013567ffffffffffffffff811115612a4257612a41612595565b5b612a4e86828701612987565b9150509250925092565b612a61816126dc565b82525050565b5f602082019050612a7a5f830184612a58565b92915050565b5f60208284031215612a9557612a94612591565b5b5f612aa2848285016127a8565b91505092915050565b5f608082019050612abe5f83018761276a565b8181036020830152612ad08186612684565b90508181036040830152612ae48185612684565b90508181036060830152612af88184612684565b905095945050505050565b5f6060820190508181035f830152612b1b8186612684565b90508181036020830152612b2f8185612684565b90508181036040830152612b438184612684565b9050949350505050565b5f5f60408385031215612b6357612b62612591565b5b5f612b70858286016126fb565b9250506020612b81858286016126fb565b9150509250929050565b612b9481612619565b8114612b9e575f5ffd5b50565b5f81359050612baf81612b8b565b92915050565b5f5f60408385031215612bcb57612bca612591565b5b5f612bd8858286016127a8565b9250506020612be985828601612ba1565b9150509250929050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b612c2581612759565b82525050565b5f82825260208201905092915050565b5f612c458261264c565b612c4f8185612c2b565b9350612c5f818560208601612666565b612c6881612674565b840191505092915050565b5f608083015f830151612c885f860182612c1c565b5060208301518482036020860152612ca08282612c3b565b91505060408301518482036040860152612cba8282612c3b565b91505060608301518482036060860152612cd48282612c3b565b9150508091505092915050565b5f612cec8383612c73565b905092915050565b5f602082019050919050565b5f612d0a82612bf3565b612d148185612bfd565b935083602082028501612d2685612c0d565b805f5b85811015612d615784840389528151612d428582612ce1565b9450612d4d83612cf4565b925060208a01995050600181019050612d29565b50829750879550505050505092915050565b5f6020820190508181035f830152612d8b8184612d00565b905092915050565b5f67ffffffffffffffff821115612dad57612dac612890565b5b612db682612674565b9050602081019050919050565b5f612dd5612dd084612d93565b6128ee565b905082815260208101848484011115612df157612df061288c565b5b612dfc848285612938565b509392505050565b5f82601f830112612e1857612e17612888565b5b8135612e28848260208601612dc3565b91505092915050565b5f5f5f5f60808587031215612e4957612e48612591565b5b5f612e56878288016127a8565b9450506020612e67878288016127a8565b9350506040612e78878288016126fb565b925050606085013567ffffffffffffffff811115612e9957612e98612595565b5b612ea587828801612e04565b91505092959194509250565b5f5f60408385031215612ec757612ec6612591565b5b5f612ed4858286016127a8565b9250506020612ee5858286016127a8565b9150509250929050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b5f612f238383612c1c565b60208301905092915050565b5f602082019050919050565b5f612f4582612eef565b612f4f8185612ef9565b9350612f5a83612f09565b805f5b83811015612f8a578151612f718882612f18565b9750612f7c83612f2f565b925050600181019050612f5d565b5085935050505092915050565b5f6020820190508181035f830152612faf8184612f3b565b905092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f6002820490506001821680612ffb57607f821691505b60208210810361300e5761300d612fb7565b5b50919050565b5f6060820190506130275f83018661276a565b6130346020830185612a58565b613041604083018461276a565b949350505050565b7f596f7520617265206e6f7420746865206f776e6572206f6620746869732048615f8201527f696b752e00000000000000000000000000000000000000000000000000000000602082015250565b5f6130a3602483612656565b91506130ae82613049565b604082019050919050565b5f6020820190508181035f8301526130d081613097565b9050919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f600883026131337fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff826130f8565b61313d86836130f8565b95508019841693508086168417925050509392505050565b5f819050919050565b5f61317861317361316e846126dc565b613155565b6126dc565b9050919050565b5f819050919050565b6131918361315e565b6131a561319d8261317f565b848454613104565b825550505050565b5f5f905090565b6131bc6131ad565b6131c7818484613188565b505050565b5b818110156131ea576131df5f826131b4565b6001810190506131cd565b5050565b601f82111561322f57613200816130d7565b613209846130e9565b81016020851015613218578190505b61322c613224856130e9565b8301826131cc565b50505b505050565b5f82821c905092915050565b5f61324f5f1984600802613234565b1980831691505092915050565b5f6132678383613240565b9150826002028217905092915050565b6132808261264c565b67ffffffffffffffff81111561329957613298612890565b5b6132a38254612fe4565b6132ae8282856131ee565b5f60209050601f8311600181146132df575f84156132cd578287015190505b6132d7858261325c565b86555061333e565b601f1984166132ed866130d7565b5f5b82811015613314578489015182556001820191506020850194506020810190506132ef565b86831015613331578489015161332d601f891682613240565b8355505b6001600288020188555050505b505050505050565b5f81905092915050565b5f61335a8261264c565b6133648185613346565b9350613374818560208601612666565b80840191505092915050565b5f61338b8285613350565b91506133978284613350565b91508190509392505050565b5f6133ae8286613350565b91506133ba8285613350565b91506133c68284613350565b9150819050949350505050565b5f81519050919050565b5f82825260208201905092915050565b5f6133f7826133d3565b61340181856133dd565b9350613411818560208601612666565b61341a81612674565b840191505092915050565b5f6080820190506134385f83018761276a565b613445602083018661276a565b6134526040830185612a58565b818103606083015261346481846133ed565b905095945050505050565b5f8151905061347d816125c4565b92915050565b5f6020828403121561349857613497612591565b5b5f6134a58482850161346f565b91505092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f6040820190506134ee5f83018561276a565b6134fb6020830184612a58565b939250505056fea26469706673582212205c0656e750459f6ca13b4f4f42a3b1ca3e89232394d217eca39b7d9ed408062564736f6c634300081b0033