608060405234801561000f575f80fd5b506040518060400160405280600581526020017f52616973650000000000000000000000000000000000000000000000000000008152506040518060400160405280600281526020017f5243000000000000000000000000000000000000000000000000000000000000815250815f908161008a91906102dc565b50806001908161009a91906102dc565b5050506103ab565b5f81519050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168061011d57607f821691505b6020821081036101305761012f6100d9565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f600883026101927fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82610157565b61019c8683610157565b95508019841693508086168417925050509392505050565b5f819050919050565b5f819050919050565b5f6101e06101db6101d6846101b4565b6101bd565b6101b4565b9050919050565b5f819050919050565b6101f9836101c6565b61020d610205826101e7565b848454610163565b825550505050565b5f90565b610221610215565b61022c8184846101f0565b505050565b5b8181101561024f576102445f82610219565b600181019050610232565b5050565b601f8211156102945761026581610136565b61026e84610148565b8101602085101561027d578190505b61029161028985610148565b830182610231565b50505b505050565b5f82821c905092915050565b5f6102b45f1984600802610299565b1980831691505092915050565b5f6102cc83836102a5565b9150826002028217905092915050565b6102e5826100a2565b67ffffffffffffffff8111156102fe576102fd6100ac565b5b6103088254610106565b610313828285610253565b5f60209050601f831160018114610344575f8415610332578287015190505b61033c85826102c1565b8655506103a3565b601f19841661035286610136565b5f5b8281101561037957848901518255600182019150602085019450602081019050610354565b868310156103965784890151610392601f8916826102a5565b8355505b6001600288020188555050505b505050505050565b6130c2806103b85f395ff3fe608060405260043610610184575f3560e01c80635ee77159116100d0578063a22cb46511610089578063e5d5f9ac11610063578063e5d5f9ac146105fb578063e985e9c514610639578063f281f94414610675578063f812d9411461069d5761018b565b8063a22cb4651461056f578063b88d4fde14610597578063c87b56dd146105bf5761018b565b80635ee77159146104255780636352211e1461046157806363bae8c01461049d57806370a08231146104cd5780639166063f1461050957806395d89b41146105455761018b565b806318148f1b1161013d57806323b872dd1161011757806323b872dd1461035d57806342842e0e14610385578063448481f4146103ad578063452bbeb1146103e95761018b565b806318148f1b146102d15780631b55e3381461030d5780631bbfae0e146103355761018b565b806301ffc9a71461018f57806306fdde03146101cb578063081812fc146101f5578063095ea7b3146102315780630ef12aa914610259578063163f7522146102955761018b565b3661018b57005b5f80fd5b34801561019a575f80fd5b506101b560048036038101906101b0919061234b565b6106c5565b6040516101c29190612390565b60405180910390f35b3480156101d6575f80fd5b506101df610725565b6040516101ec9190612419565b60405180910390f35b348015610200575f80fd5b5061021b6004803603810190610216919061246c565b6107b4565b60405161022891906124d6565b60405180910390f35b34801561023c575f80fd5b5061025760048036038101906102529190612519565b6107cf565b005b348015610264575f80fd5b5061027f600480360381019061027a9190612557565b6107e5565b60405161028c9190612591565b60405180910390f35b3480156102a0575f80fd5b506102bb60048036038101906102b69190612557565b61082b565b6040516102c89190612390565b60405180910390f35b3480156102dc575f80fd5b506102f760048036038101906102f29190612557565b610874565b6040516103049190612661565b60405180910390f35b348015610318575f80fd5b50610333600480360381019061032e919061246c565b610907565b005b348015610340575f80fd5b5061035b6004803603810190610356919061246c565b610a4c565b005b348015610368575f80fd5b50610383600480360381019061037e9190612681565b610b10565b005b348015610390575f80fd5b506103ab60048036038101906103a69190612681565b610c0f565b005b3480156103b8575f80fd5b506103d360048036038101906103ce9190612557565b610c2e565b6040516103e09190612591565b60405180910390f35b3480156103f4575f80fd5b5061040f600480360381019061040a9190612557565b610c74565b60405161041c9190612390565b60405180910390f35b348015610430575f80fd5b5061044b60048036038101906104469190612557565b610cbd565b6040516104589190612591565b60405180910390f35b34801561046c575f80fd5b506104876004803603810190610482919061246c565b610cd2565b60405161049491906124d6565b60405180910390f35b6104b760048036038101906104b291906127fd565b610ce3565b6040516104c49190612591565b60405180910390f35b3480156104d8575f80fd5b506104f360048036038101906104ee9190612557565b610eb7565b6040516105009190612591565b60405180910390f35b348015610514575f80fd5b5061052f600480360381019061052a9190612557565b610f6d565b60405161053c9190612591565b60405180910390f35b348015610550575f80fd5b50610559610f82565b6040516105669190612419565b60405180910390f35b34801561057a575f80fd5b5061059560048036038101906105909190612893565b611012565b005b3480156105a2575f80fd5b506105bd60048036038101906105b8919061296f565b611028565b005b3480156105ca575f80fd5b506105e560048036038101906105e0919061246c565b611045565b6040516105f29190612419565b60405180910390f35b348015610606575f80fd5b50610621600480360381019061061c919061246c565b611150565b604051610630939291906129ef565b60405180910390f35b348015610644575f80fd5b5061065f600480360381019061065a9190612a24565b6111a2565b60405161066c9190612390565b60405180910390f35b348015610680575f80fd5b5061069b6004803603810190610696919061246c565b611230565b005b3480156106a8575f80fd5b506106c360048036038101906106be919061246c565b6112f4565b005b5f634906490660e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916148061071e575061071d8261141e565b5b9050919050565b60605f805461073390612a8f565b80601f016020809104026020016040519081016040528092919081815260200182805461075f90612a8f565b80156107aa5780601f10610781576101008083540402835291602001916107aa565b820191905f5260205f20905b81548152906001019060200180831161078d57829003601f168201915b5050505050905090565b5f6107be826114ff565b506107c882611585565b9050919050565b6107e182826107dc6115be565b6115c5565b5050565b5f60085f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b5f8060085f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205414159050919050565b6060600a5f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f208054806020026020016040519081016040528092919081815260200182805480156108fb57602002820191905f5260205f20905b8154815260200190600101908083116108e7575b50505050509050919050565b600b5f8281526020019081526020015f2060010160149054906101000a900460ff1615610969576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161096090612b09565b60405180910390fd5b5f600b5f8381526020019081526020015f20905060018160010160146101000a81548160ff021916908315150217905550806001015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc825f015490811502906040515f60405180830381858888f19350505050158015610a03573d5f803e3d5ffd5b503373ffffffffffffffffffffffffffffffffffffffff16827f6bd56533ce1c8ea03f7b858ac441b5a86d140a793a7c9e3faecbbe517c2c879160405160405180910390a35050565b5f60085f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205414610acb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ac290612b71565b60405180910390fd5b8060085f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f208190555050565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610b80575f6040517f64a0ae92000000000000000000000000000000000000000000000000000000008152600401610b7791906124d6565b60405180910390fd5b5f610b938383610b8e6115be565b6115d7565b90508373ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614610c09578382826040517f64283d7b000000000000000000000000000000000000000000000000000000008152600401610c0093929190612b8f565b60405180910390fd5b50505050565b610c2983838360405180602001604052805f815250611028565b505050565b5f60095f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b5f8060095f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205414159050919050565b6009602052805f5260405f205f915090505481565b5f610cdc826114ff565b9050919050565b5f82341015610d27576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d1e90612c0e565b60405180910390fd5b610d3160076117e2565b5f610d3c60076117f6565b9050610d483382611802565b610d5281866118f5565b600a5f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081908060018154018082558091505060019003905f5260205f20015f909190919091505560405180606001604052808581526020018473ffffffffffffffffffffffffffffffffffffffff1681526020015f1515815250600b5f8381526020019081526020015f205f820151815f01556020820151816001015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060408201518160010160146101000a81548160ff0219169083151502179055509050503373ffffffffffffffffffffffffffffffffffffffff16817f0176f203df400d7bd5f1b1c9ef36c16709bf3b5d9fd35f000a6bae32393f66c360405160405180910390a3809150509392505050565b5f8073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610f28575f6040517f89c62b64000000000000000000000000000000000000000000000000000000008152600401610f1f91906124d6565b60405180910390fd5b60035f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b6008602052805f5260405f205f915090505481565b606060018054610f9190612a8f565b80601f0160208091040260200160405190810160405280929190818152602001828054610fbd90612a8f565b80156110085780601f10610fdf57610100808354040283529160200191611008565b820191905f5260205f20905b815481529060010190602001808311610feb57829003601f168201915b5050505050905090565b61102461101d6115be565b838361194f565b5050565b611033848484610b10565b61103f84848484611ab8565b50505050565b6060611050826114ff565b505f60065f8481526020019081526020015f20805461106e90612a8f565b80601f016020809104026020016040519081016040528092919081815260200182805461109a90612a8f565b80156110e55780601f106110bc576101008083540402835291602001916110e5565b820191905f5260205f20905b8154815290600101906020018083116110c857829003601f168201915b505050505090505f6110f5611c6a565b90505f81510361110957819250505061114b565b5f8251111561113d578082604051602001611125929190612c66565b6040516020818303038152906040529250505061114b565b61114684611c80565b925050505b919050565b600b602052805f5260405f205f91509050805f015490806001015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16908060010160149054906101000a900460ff16905083565b5f60055f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16905092915050565b5f60095f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054146112af576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112a690612cd3565b60405180910390fd5b8060095f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f208190555050565b600b5f8281526020019081526020015f2060010160149054906101000a900460ff1615611356576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161134d90612b09565b60405180910390fd5b5f600b5f8381526020019081526020015f20905061137382610cd2565b73ffffffffffffffffffffffffffffffffffffffff166108fc825f015490811502906040515f60405180830381858888f193505050501580156113b8573d5f803e3d5ffd5b5060018160010160146101000a81548160ff0219169083151502179055503373ffffffffffffffffffffffffffffffffffffffff16827f184fef87b929a63113204deaba84893766b5ead254088df8c9aa4a5d694f2a1b60405160405180910390a35050565b5f7f80ac58cd000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614806114e857507f5b5e139f000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b806114f857506114f782611ce6565b5b9050919050565b5f8061150a83611d4f565b90505f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160361157c57826040517f7e2732890000000000000000000000000000000000000000000000000000000081526004016115739190612591565b60405180910390fd5b80915050919050565b5f60045f8381526020019081526020015f205f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b5f33905090565b6115d28383836001611d88565b505050565b5f806115e284611d4f565b90505f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161461162357611622818486611f47565b5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16146116ae576116625f855f80611d88565b600160035f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825403925050819055505b5f73ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff161461172d57600160035f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825401925050819055505b8460025f8681526020019081526020015f205f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550838573ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4809150509392505050565b6001815f015f828254019250508190555050565b5f815f01549050919050565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611872575f6040517f64a0ae9200000000000000000000000000000000000000000000000000000000815260040161186991906124d6565b60405180910390fd5b5f61187e83835f6115d7565b90505f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16146118f0575f6040517f73c6ac6e0000000000000000000000000000000000000000000000000000000081526004016118e791906124d6565b60405180910390fd5b505050565b8060065f8481526020019081526020015f2090816119139190612e8e565b507ff8e1a15aba9398e019f0b49df1a4fde98ee17ae345cb5f6b5e2c27f5033e8ce7826040516119439190612591565b60405180910390a15050565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036119bf57816040517f5b08ba180000000000000000000000000000000000000000000000000000000081526004016119b691906124d6565b60405180910390fd5b8060055f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c3183604051611aab9190612390565b60405180910390a3505050565b5f8373ffffffffffffffffffffffffffffffffffffffff163b1115611c64578273ffffffffffffffffffffffffffffffffffffffff1663150b7a02611afb6115be565b8685856040518563ffffffff1660e01b8152600401611b1d9493929190612faf565b6020604051808303815f875af1925050508015611b5857506040513d601f19601f82011682018060405250810190611b55919061300d565b60015b611bd9573d805f8114611b86576040519150601f19603f3d011682016040523d82523d5f602084013e611b8b565b606091505b505f815103611bd157836040517f64a0ae92000000000000000000000000000000000000000000000000000000008152600401611bc891906124d6565b60405180910390fd5b805181602001fd5b63150b7a0260e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614611c6257836040517f64a0ae92000000000000000000000000000000000000000000000000000000008152600401611c5991906124d6565b60405180910390fd5b505b50505050565b606060405180602001604052805f815250905090565b6060611c8b826114ff565b505f611c95611c6a565b90505f815111611cb35760405180602001604052805f815250611cde565b80611cbd8461200a565b604051602001611cce929190612c66565b6040516020818303038152906040525b915050919050565b5f7f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b5f60025f8381526020019081526020015f205f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b8080611dc057505f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b15611ef2575f611dcf846114ff565b90505f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015611e3957508273ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b8015611e4c5750611e4a81846111a2565b155b15611e8e57826040517fa9fbf51f000000000000000000000000000000000000000000000000000000008152600401611e8591906124d6565b60405180910390fd5b8115611ef057838573ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45b505b8360045f8581526020019081526020015f205f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050505050565b611f528383836120d4565b612005575f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611fc657806040517f7e273289000000000000000000000000000000000000000000000000000000008152600401611fbd9190612591565b60405180910390fd5b81816040517f177e802f000000000000000000000000000000000000000000000000000000008152600401611ffc929190613038565b60405180910390fd5b505050565b60605f600161201884612194565b0190505f8167ffffffffffffffff811115612036576120356126d9565b5b6040519080825280601f01601f1916602001820160405280156120685781602001600182028036833780820191505090505b5090505f82602001820190505b6001156120c9578080600190039150507f3031323334353637383961626364656600000000000000000000000000000000600a86061a8153600a85816120be576120bd61305f565b5b0494505f8503612075575b819350505050919050565b5f8073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415801561218b57508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148061214c575061214b84846111a2565b5b8061218a57508273ffffffffffffffffffffffffffffffffffffffff1661217283611585565b73ffffffffffffffffffffffffffffffffffffffff16145b5b90509392505050565b5f805f90507a184f03e93ff9f4daa797ed6e38ed64bf6a1f01000000000000000083106121f0577a184f03e93ff9f4daa797ed6e38ed64bf6a1f01000000000000000083816121e6576121e561305f565b5b0492506040810190505b6d04ee2d6d415b85acef8100000000831061222d576d04ee2d6d415b85acef810000000083816122235761222261305f565b5b0492506020810190505b662386f26fc10000831061225c57662386f26fc1000083816122525761225161305f565b5b0492506010810190505b6305f5e1008310612285576305f5e100838161227b5761227a61305f565b5b0492506008810190505b61271083106122aa5761271083816122a05761229f61305f565b5b0492506004810190505b606483106122cd57606483816122c3576122c261305f565b5b0492506002810190505b600a83106122dc576001810190505b80915050919050565b5f604051905090565b5f80fd5b5f80fd5b5f7fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b61232a816122f6565b8114612334575f80fd5b50565b5f8135905061234581612321565b92915050565b5f602082840312156123605761235f6122ee565b5b5f61236d84828501612337565b91505092915050565b5f8115159050919050565b61238a81612376565b82525050565b5f6020820190506123a35f830184612381565b92915050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f6123eb826123a9565b6123f581856123b3565b93506124058185602086016123c3565b61240e816123d1565b840191505092915050565b5f6020820190508181035f83015261243181846123e1565b905092915050565b5f819050919050565b61244b81612439565b8114612455575f80fd5b50565b5f8135905061246681612442565b92915050565b5f60208284031215612481576124806122ee565b5b5f61248e84828501612458565b91505092915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6124c082612497565b9050919050565b6124d0816124b6565b82525050565b5f6020820190506124e95f8301846124c7565b92915050565b6124f8816124b6565b8114612502575f80fd5b50565b5f81359050612513816124ef565b92915050565b5f806040838503121561252f5761252e6122ee565b5b5f61253c85828601612505565b925050602061254d85828601612458565b9150509250929050565b5f6020828403121561256c5761256b6122ee565b5b5f61257984828501612505565b91505092915050565b61258b81612439565b82525050565b5f6020820190506125a45f830184612582565b92915050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b6125dc81612439565b82525050565b5f6125ed83836125d3565b60208301905092915050565b5f602082019050919050565b5f61260f826125aa565b61261981856125b4565b9350612624836125c4565b805f5b8381101561265457815161263b88826125e2565b9750612646836125f9565b925050600181019050612627565b5085935050505092915050565b5f6020820190508181035f8301526126798184612605565b905092915050565b5f805f60608486031215612698576126976122ee565b5b5f6126a586828701612505565b93505060206126b686828701612505565b92505060406126c786828701612458565b9150509250925092565b5f80fd5b5f80fd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b61270f826123d1565b810181811067ffffffffffffffff8211171561272e5761272d6126d9565b5b80604052505050565b5f6127406122e5565b905061274c8282612706565b919050565b5f67ffffffffffffffff82111561276b5761276a6126d9565b5b612774826123d1565b9050602081019050919050565b828183375f83830152505050565b5f6127a161279c84612751565b612737565b9050828152602081018484840111156127bd576127bc6126d5565b5b6127c8848285612781565b509392505050565b5f82601f8301126127e4576127e36126d1565b5b81356127f484826020860161278f565b91505092915050565b5f805f60608486031215612814576128136122ee565b5b5f84013567ffffffffffffffff811115612831576128306122f2565b5b61283d868287016127d0565b935050602061284e86828701612458565b925050604061285f86828701612505565b9150509250925092565b61287281612376565b811461287c575f80fd5b50565b5f8135905061288d81612869565b92915050565b5f80604083850312156128a9576128a86122ee565b5b5f6128b685828601612505565b92505060206128c78582860161287f565b9150509250929050565b5f67ffffffffffffffff8211156128eb576128ea6126d9565b5b6128f4826123d1565b9050602081019050919050565b5f61291361290e846128d1565b612737565b90508281526020810184848401111561292f5761292e6126d5565b5b61293a848285612781565b509392505050565b5f82601f830112612956576129556126d1565b5b8135612966848260208601612901565b91505092915050565b5f805f8060808587031215612987576129866122ee565b5b5f61299487828801612505565b94505060206129a587828801612505565b93505060406129b687828801612458565b925050606085013567ffffffffffffffff8111156129d7576129d66122f2565b5b6129e387828801612942565b91505092959194509250565b5f606082019050612a025f830186612582565b612a0f60208301856124c7565b612a1c6040830184612381565b949350505050565b5f8060408385031215612a3a57612a396122ee565b5b5f612a4785828601612505565b9250506020612a5885828601612505565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f6002820490506001821680612aa657607f821691505b602082108103612ab957612ab8612a62565b5b50919050565b7f46756e647320616c726561647920636c61696d65642e000000000000000000005f82015250565b5f612af36016836123b3565b9150612afe82612abf565b602082019050919050565b5f6020820190508181035f830152612b2081612ae7565b9050919050565b7f5573657220616c726561647920726567697374657265642e00000000000000005f82015250565b5f612b5b6018836123b3565b9150612b6682612b27565b602082019050919050565b5f6020820190508181035f830152612b8881612b4f565b9050919050565b5f606082019050612ba25f8301866124c7565b612baf6020830185612582565b612bbc60408301846124c7565b949350505050565b7f496e73756666696369656e742066756e64732073656e742e00000000000000005f82015250565b5f612bf86018836123b3565b9150612c0382612bc4565b602082019050919050565b5f6020820190508181035f830152612c2581612bec565b9050919050565b5f81905092915050565b5f612c40826123a9565b612c4a8185612c2c565b9350612c5a8185602086016123c3565b80840191505092915050565b5f612c718285612c36565b9150612c7d8284612c36565b91508190509392505050565b7f466f756e64657220616c726561647920726567697374657265642e00000000005f82015250565b5f612cbd601b836123b3565b9150612cc882612c89565b602082019050919050565b5f6020820190508181035f830152612cea81612cb1565b9050919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f60088302612d4d7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82612d12565b612d578683612d12565b95508019841693508086168417925050509392505050565b5f819050919050565b5f612d92612d8d612d8884612439565b612d6f565b612439565b9050919050565b5f819050919050565b612dab83612d78565b612dbf612db782612d99565b848454612d1e565b825550505050565b5f90565b612dd3612dc7565b612dde818484612da2565b505050565b5b81811015612e0157612df65f82612dcb565b600181019050612de4565b5050565b601f821115612e4657612e1781612cf1565b612e2084612d03565b81016020851015612e2f578190505b612e43612e3b85612d03565b830182612de3565b50505b505050565b5f82821c905092915050565b5f612e665f1984600802612e4b565b1980831691505092915050565b5f612e7e8383612e57565b9150826002028217905092915050565b612e97826123a9565b67ffffffffffffffff811115612eb057612eaf6126d9565b5b612eba8254612a8f565b612ec5828285612e05565b5f60209050601f831160018114612ef6575f8415612ee4578287015190505b612eee8582612e73565b865550612f55565b601f198416612f0486612cf1565b5f5b82811015612f2b57848901518255600182019150602085019450602081019050612f06565b86831015612f485784890151612f44601f891682612e57565b8355505b6001600288020188555050505b505050505050565b5f81519050919050565b5f82825260208201905092915050565b5f612f8182612f5d565b612f8b8185612f67565b9350612f9b8185602086016123c3565b612fa4816123d1565b840191505092915050565b5f608082019050612fc25f8301876124c7565b612fcf60208301866124c7565b612fdc6040830185612582565b8181036060830152612fee8184612f77565b905095945050505050565b5f8151905061300781612321565b92915050565b5f60208284031215613022576130216122ee565b5b5f61302f84828501612ff9565b91505092915050565b5f60408201905061304b5f8301856124c7565b6130586020830184612582565b9392505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffdfea2646970667358221220c10a6d055ebe770e0dbad6be37047a4baff8a999848fce7d561f25920a64f3ba64736f6c63430008190033