608060405234801561000f575f80fd5b506040518060400160405280600881526020017f4861696b754e46540000000000000000000000000000000000000000000000008152506040518060400160405280600581526020017f4841494b55000000000000000000000000000000000000000000000000000000815250815f908161008a91906103e6565b50806001908161009a91906103e6565b5050506100b96100ae6100ce60201b60201c565b6100d560201b60201c565b6100c9600761019860201b60201c565b6104b5565b5f33905090565b5f60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508160065f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b6001815f015f828254019250508190555050565b5f81519050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168061022757607f821691505b60208210810361023a576102396101e3565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f6008830261029c7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82610261565b6102a68683610261565b95508019841693508086168417925050509392505050565b5f819050919050565b5f819050919050565b5f6102ea6102e56102e0846102be565b6102c7565b6102be565b9050919050565b5f819050919050565b610303836102d0565b61031761030f826102f1565b84845461026d565b825550505050565b5f90565b61032b61031f565b6103368184846102fa565b505050565b5b818110156103595761034e5f82610323565b60018101905061033c565b5050565b601f82111561039e5761036f81610240565b61037884610252565b81016020851015610387578190505b61039b61039385610252565b83018261033b565b50505b505050565b5f82821c905092915050565b5f6103be5f19846008026103a3565b1980831691505092915050565b5f6103d683836103af565b9150826002028217905092915050565b6103ef826101ac565b67ffffffffffffffff811115610408576104076101b6565b5b6104128254610210565b61041d82828561035d565b5f60209050601f83116001811461044e575f841561043c578287015190505b61044685826103cb565b8655506104ad565b601f19841661045c86610240565b5f5b828110156104835784890151825560018201915060208501945060208101905061045e565b868310156104a0578489015161049c601f8916826103af565b8355505b6001600288020188555050505b505050505050565b613a9b806104c25f395ff3fe608060405234801561000f575f80fd5b5060043610610135575f3560e01c806370a08231116100b657806397afe82d1161007a57806397afe82d1461033a578063a22cb4651461036a578063b88d4fde14610386578063c87b56dd146103a2578063e985e9c5146103d2578063f2fde38b1461040257610135565b806370a0823114610291578063715018a6146102c15780637cb82b2a146102cb5780638da5cb5b146102fe57806395d89b411461031c57610135565b80632c83ea56116100fd5780632c83ea56146101ef578063350fe1651461020b57806342842e0e1461022757806349af5bfe146102435780636352211e1461026157610135565b806301ffc9a71461013957806306fdde0314610169578063081812fc14610187578063095ea7b3146101b757806323b872dd146101d3575b5f80fd5b610153600480360381019061014e9190612408565b61041e565b604051610160919061244d565b60405180910390f35b6101716104ff565b60405161017e91906124d6565b60405180910390f35b6101a1600480360381019061019c9190612529565b61058e565b6040516101ae9190612593565b60405180910390f35b6101d160048036038101906101cc91906125d6565b61060f565b005b6101ed60048036038101906101e89190612614565b610725565b005b61020960048036038101906102049190612664565b610785565b005b61022560048036038101906102209190612703565b610862565b005b610241600480360381019061023c9190612614565b610bb0565b005b61024b610bcf565b6040516102589190612933565b60405180910390f35b61027b60048036038101906102769190612529565b610f41565b6040516102889190612593565b60405180910390f35b6102ab60048036038101906102a69190612953565b610fed565b6040516102b8919061298d565b60405180910390f35b6102c96110a1565b005b6102e560048036038101906102e09190612529565b611128565b6040516102f594939291906129a6565b60405180910390f35b610306611314565b6040516103139190612593565b60405180910390f35b61032461133c565b60405161033191906124d6565b60405180910390f35b610354600480360381019061034f91906125d6565b6113cc565b604051610361919061298d565b60405180910390f35b610384600480360381019061037f9190612a28565b6113f7565b005b6103a0600480360381019061039b9190612b8e565b61140d565b005b6103bc60048036038101906103b79190612529565b61146f565b6040516103c991906124d6565b60405180910390f35b6103ec60048036038101906103e79190612c0e565b611513565b6040516103f9919061244d565b60405180910390f35b61041c60048036038101906104179190612953565b6115a1565b005b5f7f80ac58cd000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614806104e857507f5b5e139f000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b806104f857506104f782611697565b5b9050919050565b60605f805461050d90612c79565b80601f016020809104026020016040519081016040528092919081815260200182805461053990612c79565b80156105845780601f1061055b57610100808354040283529160200191610584565b820191905f5260205f20905b81548152906001019060200180831161056757829003601f168201915b5050505050905090565b5f61059882611700565b6105d7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105ce90612d19565b60405180910390fd5b60045f8381526020019081526020015f205f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b5f61061982610f41565b90508073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610689576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161068090612da7565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff166106a8611768565b73ffffffffffffffffffffffffffffffffffffffff1614806106d757506106d6816106d1611768565b611513565b5b610716576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161070d90612e35565b60405180910390fd5b610720838361176f565b505050565b610736610730611768565b82611825565b610775576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161076c90612ec3565b60405180910390fd5b610780838383611901565b505050565b3373ffffffffffffffffffffffffffffffffffffffff166107a583610f41565b73ffffffffffffffffffffffffffffffffffffffff16146107fd57816040517f03ce4e320000000000000000000000000000000000000000000000000000000081526004016107f4919061298d565b60405180910390fd5b60095f8273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2082908060018154018082558091505060019003905f5260205f20015f90919091909150555050565b600a8686604051610874929190612f0f565b90815260200160405180910390205f9054906101000a900460ff16806108c35750600a84846040516108a7929190612f0f565b90815260200160405180910390205f9054906101000a900460ff165b806108f75750600a82826040516108db929190612f0f565b90815260200160405180910390205f9054906101000a900460ff165b1561092e576040517f693a889e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001600a8787604051610942929190612f0f565b90815260200160405180910390205f6101000a81548160ff0219169083151502179055506001600a858560405161097a929190612f0f565b90815260200160405180910390205f6101000a81548160ff0219169083151502179055506001600a83836040516109b2929190612f0f565b90815260200160405180910390205f6101000a81548160ff0219169083151502179055505f6109e16007611b5c565b90506109ed3382611b68565b600860405180608001604052803373ffffffffffffffffffffffffffffffffffffffff16815260200189898080601f0160208091040260200160405190810160405280939291908181526020018383808284375f81840152601f19601f82011690508083019250505050505050815260200187878080601f0160208091040260200160405190810160405280939291908181526020018383808284375f81840152601f19601f82011690508083019250505050505050815260200185858080601f0160208091040260200160405190810160405280939291908181526020018383808284375f81840152601f19601f82011690508083019250505050505050815250908060018154018082558091505060019003905f5260205f2090600402015f909190919091505f820151815f015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506020820151816001019081610b6e91906130c4565b506040820151816002019081610b8491906130c4565b506060820151816003019081610b9a91906130c4565b505050610ba76007611b85565b50505050505050565b610bca83838360405180602001604052805f81525061140d565b505050565b60605f60095f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2090505f818054905003610c4e576040517ff8826a6900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f818054905067ffffffffffffffff811115610c6d57610c6c612a6a565b5b604051908082528060200260200182016040528015610ca657816020015b610c93612365565b815260200190600190039081610c8b5790505b5090505f5b8280549050811015610f385760086001848381548110610cce57610ccd613193565b5b905f5260205f200154610ce191906131ed565b81548110610cf257610cf1613193565b5b905f5260205f2090600402016040518060800160405290815f82015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001600182018054610d6d90612c79565b80601f0160208091040260200160405190810160405280929190818152602001828054610d9990612c79565b8015610de45780601f10610dbb57610100808354040283529160200191610de4565b820191905f5260205f20905b815481529060010190602001808311610dc757829003601f168201915b50505050508152602001600282018054610dfd90612c79565b80601f0160208091040260200160405190810160405280929190818152602001828054610e2990612c79565b8015610e745780601f10610e4b57610100808354040283529160200191610e74565b820191905f5260205f20905b815481529060010190602001808311610e5757829003601f168201915b50505050508152602001600382018054610e8d90612c79565b80601f0160208091040260200160405190810160405280929190818152602001828054610eb990612c79565b8015610f045780601f10610edb57610100808354040283529160200191610f04565b820191905f5260205f20905b815481529060010190602001808311610ee757829003601f168201915b505050505081525050828281518110610f2057610f1f613193565b5b60200260200101819052508080600101915050610cab565b50809250505090565b5f8060025f8481526020019081526020015f205f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690505f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610fe4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fdb90613290565b60405180910390fd5b80915050919050565b5f8073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361105c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110539061331e565b60405180910390fd5b60035f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b6110a9611768565b73ffffffffffffffffffffffffffffffffffffffff166110c7611314565b73ffffffffffffffffffffffffffffffffffffffff161461111d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161111490613386565b60405180910390fd5b6111265f611b99565b565b60088181548110611137575f80fd5b905f5260205f2090600402015f91509050805f015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff169080600101805461117b90612c79565b80601f01602080910402602001604051908101604052809291908181526020018280546111a790612c79565b80156111f25780601f106111c9576101008083540402835291602001916111f2565b820191905f5260205f20905b8154815290600101906020018083116111d557829003601f168201915b50505050509080600201805461120790612c79565b80601f016020809104026020016040519081016040528092919081815260200182805461123390612c79565b801561127e5780601f106112555761010080835404028352916020019161127e565b820191905f5260205f20905b81548152906001019060200180831161126157829003601f168201915b50505050509080600301805461129390612c79565b80601f01602080910402602001604051908101604052809291908181526020018280546112bf90612c79565b801561130a5780601f106112e15761010080835404028352916020019161130a565b820191905f5260205f20905b8154815290600101906020018083116112ed57829003601f168201915b5050505050905084565b5f60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606001805461134b90612c79565b80601f016020809104026020016040519081016040528092919081815260200182805461137790612c79565b80156113c25780601f10611399576101008083540402835291602001916113c2565b820191905f5260205f20905b8154815290600101906020018083116113a557829003601f168201915b5050505050905090565b6009602052815f5260405f2081815481106113e5575f80fd5b905f5260205f20015f91509150505481565b611409611402611768565b8383611c5c565b5050565b61141e611418611768565b83611825565b61145d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161145490612ec3565b60405180910390fd5b61146984848484611dc3565b50505050565b606061147a82611700565b6114b9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114b090613414565b60405180910390fd5b5f6114c2611e1f565b90505f8151116114e05760405180602001604052805f81525061150b565b806114ea84611e35565b6040516020016114fb929190613462565b6040516020818303038152906040525b915050919050565b5f60055f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16905092915050565b6115a9611768565b73ffffffffffffffffffffffffffffffffffffffff166115c7611314565b73ffffffffffffffffffffffffffffffffffffffff161461161d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161161490613386565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160361168b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611682906134f5565b60405180910390fd5b61169481611b99565b50565b5f7f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b5f8073ffffffffffffffffffffffffffffffffffffffff1660025f8481526020019081526020015f205f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614159050919050565b5f33905090565b8160045f8381526020019081526020015f205f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff166117df83610f41565b73ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b5f61182f82611700565b61186e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161186590613583565b60405180910390fd5b5f61187883610f41565b90508073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614806118ba57506118b98185611513565b5b806118f857508373ffffffffffffffffffffffffffffffffffffffff166118e08461058e565b73ffffffffffffffffffffffffffffffffffffffff16145b91505092915050565b8273ffffffffffffffffffffffffffffffffffffffff1661192182610f41565b73ffffffffffffffffffffffffffffffffffffffff1614611977576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161196e90613611565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036119e5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119dc9061369f565b60405180910390fd5b6119f0838383611f8e565b6119fa5f8261176f565b600160035f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f828254611a4791906131ed565b92505081905550600160035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f828254611a9b91906136bd565b925050819055508160025f8381526020019081526020015f205f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4611b57838383611f93565b505050565b5f815f01549050919050565b611b81828260405180602001604052805f815250611f98565b5050565b6001815f015f828254019250508190555050565b5f60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508160065f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611cca576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cc19061373a565b60405180910390fd5b8060055f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c3183604051611db6919061244d565b60405180910390a3505050565b611dce848484611901565b611dda84848484611ff2565b611e19576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e10906137c8565b60405180910390fd5b50505050565b606060405180602001604052805f815250905090565b60605f8203611e7b576040518060400160405280600181526020017f30000000000000000000000000000000000000000000000000000000000000008152509050611f89565b5f8290505f5b5f8214611eaa578080611e93906137e6565b915050600a82611ea3919061385a565b9150611e81565b5f8167ffffffffffffffff811115611ec557611ec4612a6a565b5b6040519080825280601f01601f191660200182016040528015611ef75781602001600182028036833780820191505090505b5090505b5f8514611f8257600182611f0f91906131ed565b9150600a85611f1e919061388a565b6030611f2a91906136bd565b60f81b818381518110611f4057611f3f613193565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff191690815f1a905350600a85611f7b919061385a565b9450611efb565b8093505050505b919050565b505050565b505050565b611fa28383612174565b611fae5f848484611ff2565b611fed576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fe4906137c8565b60405180910390fd5b505050565b5f6120128473ffffffffffffffffffffffffffffffffffffffff16612343565b15612167578373ffffffffffffffffffffffffffffffffffffffff1663150b7a0261203b611768565b8786866040518563ffffffff1660e01b815260040161205d949392919061390c565b6020604051808303815f875af192505050801561209857506040513d601f19601f82011682018060405250810190612095919061396a565b60015b612117573d805f81146120c6576040519150601f19603f3d011682016040523d82523d5f602084013e6120cb565b606091505b505f81510361210f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612106906137c8565b60405180910390fd5b805181602001fd5b63150b7a0260e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161491505061216c565b600190505b949350505050565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036121e2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121d9906139df565b60405180910390fd5b6121eb81611700565b1561222b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161222290613a47565b60405180910390fd5b6122365f8383611f8e565b600160035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825461228391906136bd565b925050819055508160025f8381526020019081526020015f205f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a461233f5f8383611f93565b5050565b5f808273ffffffffffffffffffffffffffffffffffffffff163b119050919050565b60405180608001604052805f73ffffffffffffffffffffffffffffffffffffffff1681526020016060815260200160608152602001606081525090565b5f604051905090565b5f80fd5b5f80fd5b5f7fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b6123e7816123b3565b81146123f1575f80fd5b50565b5f81359050612402816123de565b92915050565b5f6020828403121561241d5761241c6123ab565b5b5f61242a848285016123f4565b91505092915050565b5f8115159050919050565b61244781612433565b82525050565b5f6020820190506124605f83018461243e565b92915050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f6124a882612466565b6124b28185612470565b93506124c2818560208601612480565b6124cb8161248e565b840191505092915050565b5f6020820190508181035f8301526124ee818461249e565b905092915050565b5f819050919050565b612508816124f6565b8114612512575f80fd5b50565b5f81359050612523816124ff565b92915050565b5f6020828403121561253e5761253d6123ab565b5b5f61254b84828501612515565b91505092915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61257d82612554565b9050919050565b61258d81612573565b82525050565b5f6020820190506125a65f830184612584565b92915050565b6125b581612573565b81146125bf575f80fd5b50565b5f813590506125d0816125ac565b92915050565b5f80604083850312156125ec576125eb6123ab565b5b5f6125f9858286016125c2565b925050602061260a85828601612515565b9150509250929050565b5f805f6060848603121561262b5761262a6123ab565b5b5f612638868287016125c2565b9350506020612649868287016125c2565b925050604061265a86828701612515565b9150509250925092565b5f806040838503121561267a576126796123ab565b5b5f61268785828601612515565b9250506020612698858286016125c2565b9150509250929050565b5f80fd5b5f80fd5b5f80fd5b5f8083601f8401126126c3576126c26126a2565b5b8235905067ffffffffffffffff8111156126e0576126df6126a6565b5b6020830191508360018202830111156126fc576126fb6126aa565b5b9250929050565b5f805f805f806060878903121561271d5761271c6123ab565b5b5f87013567ffffffffffffffff81111561273a576127396123af565b5b61274689828a016126ae565b9650965050602087013567ffffffffffffffff811115612769576127686123af565b5b61277589828a016126ae565b9450945050604087013567ffffffffffffffff811115612798576127976123af565b5b6127a489828a016126ae565b92509250509295509295509295565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b6127e581612573565b82525050565b5f82825260208201905092915050565b5f61280582612466565b61280f81856127eb565b935061281f818560208601612480565b6128288161248e565b840191505092915050565b5f608083015f8301516128485f8601826127dc565b506020830151848203602086015261286082826127fb565b9150506040830151848203604086015261287a82826127fb565b9150506060830151848203606086015261289482826127fb565b9150508091505092915050565b5f6128ac8383612833565b905092915050565b5f602082019050919050565b5f6128ca826127b3565b6128d481856127bd565b9350836020820285016128e6856127cd565b805f5b85811015612921578484038952815161290285826128a1565b945061290d836128b4565b925060208a019950506001810190506128e9565b50829750879550505050505092915050565b5f6020820190508181035f83015261294b81846128c0565b905092915050565b5f60208284031215612968576129676123ab565b5b5f612975848285016125c2565b91505092915050565b612987816124f6565b82525050565b5f6020820190506129a05f83018461297e565b92915050565b5f6080820190506129b95f830187612584565b81810360208301526129cb818661249e565b905081810360408301526129df818561249e565b905081810360608301526129f3818461249e565b905095945050505050565b612a0781612433565b8114612a11575f80fd5b50565b5f81359050612a22816129fe565b92915050565b5f8060408385031215612a3e57612a3d6123ab565b5b5f612a4b858286016125c2565b9250506020612a5c85828601612a14565b9150509250929050565b5f80fd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b612aa08261248e565b810181811067ffffffffffffffff82111715612abf57612abe612a6a565b5b80604052505050565b5f612ad16123a2565b9050612add8282612a97565b919050565b5f67ffffffffffffffff821115612afc57612afb612a6a565b5b612b058261248e565b9050602081019050919050565b828183375f83830152505050565b5f612b32612b2d84612ae2565b612ac8565b905082815260208101848484011115612b4e57612b4d612a66565b5b612b59848285612b12565b509392505050565b5f82601f830112612b7557612b746126a2565b5b8135612b85848260208601612b20565b91505092915050565b5f805f8060808587031215612ba657612ba56123ab565b5b5f612bb3878288016125c2565b9450506020612bc4878288016125c2565b9350506040612bd587828801612515565b925050606085013567ffffffffffffffff811115612bf657612bf56123af565b5b612c0287828801612b61565b91505092959194509250565b5f8060408385031215612c2457612c236123ab565b5b5f612c31858286016125c2565b9250506020612c42858286016125c2565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f6002820490506001821680612c9057607f821691505b602082108103612ca357612ca2612c4c565b5b50919050565b7f4552433732313a20617070726f76656420717565727920666f72206e6f6e65785f8201527f697374656e7420746f6b656e0000000000000000000000000000000000000000602082015250565b5f612d03602c83612470565b9150612d0e82612ca9565b604082019050919050565b5f6020820190508181035f830152612d3081612cf7565b9050919050565b7f4552433732313a20617070726f76616c20746f2063757272656e74206f776e655f8201527f7200000000000000000000000000000000000000000000000000000000000000602082015250565b5f612d91602183612470565b9150612d9c82612d37565b604082019050919050565b5f6020820190508181035f830152612dbe81612d85565b9050919050565b7f4552433732313a20617070726f76652063616c6c6572206973206e6f74206f775f8201527f6e6572206e6f7220617070726f76656420666f7220616c6c0000000000000000602082015250565b5f612e1f603883612470565b9150612e2a82612dc5565b604082019050919050565b5f6020820190508181035f830152612e4c81612e13565b9050919050565b7f4552433732313a207472616e736665722063616c6c6572206973206e6f74206f5f8201527f776e6572206e6f7220617070726f766564000000000000000000000000000000602082015250565b5f612ead603183612470565b9150612eb882612e53565b604082019050919050565b5f6020820190508181035f830152612eda81612ea1565b9050919050565b5f81905092915050565b5f612ef68385612ee1565b9350612f03838584612b12565b82840190509392505050565b5f612f1b828486612eeb565b91508190509392505050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f60088302612f837fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82612f48565b612f8d8683612f48565b95508019841693508086168417925050509392505050565b5f819050919050565b5f612fc8612fc3612fbe846124f6565b612fa5565b6124f6565b9050919050565b5f819050919050565b612fe183612fae565b612ff5612fed82612fcf565b848454612f54565b825550505050565b5f90565b613009612ffd565b613014818484612fd8565b505050565b5b818110156130375761302c5f82613001565b60018101905061301a565b5050565b601f82111561307c5761304d81612f27565b61305684612f39565b81016020851015613065578190505b61307961307185612f39565b830182613019565b50505b505050565b5f82821c905092915050565b5f61309c5f1984600802613081565b1980831691505092915050565b5f6130b4838361308d565b9150826002028217905092915050565b6130cd82612466565b67ffffffffffffffff8111156130e6576130e5612a6a565b5b6130f08254612c79565b6130fb82828561303b565b5f60209050601f83116001811461312c575f841561311a578287015190505b61312485826130a9565b86555061318b565b601f19841661313a86612f27565b5f5b828110156131615784890151825560018201915060208501945060208101905061313c565b8683101561317e578489015161317a601f89168261308d565b8355505b6001600288020188555050505b505050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f6131f7826124f6565b9150613202836124f6565b925082820390508181111561321a576132196131c0565b5b92915050565b7f4552433732313a206f776e657220717565727920666f72206e6f6e65786973745f8201527f656e7420746f6b656e0000000000000000000000000000000000000000000000602082015250565b5f61327a602983612470565b915061328582613220565b604082019050919050565b5f6020820190508181035f8301526132a78161326e565b9050919050565b7f4552433732313a2062616c616e636520717565727920666f7220746865207a655f8201527f726f206164647265737300000000000000000000000000000000000000000000602082015250565b5f613308602a83612470565b9150613313826132ae565b604082019050919050565b5f6020820190508181035f830152613335816132fc565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f613370602083612470565b915061337b8261333c565b602082019050919050565b5f6020820190508181035f83015261339d81613364565b9050919050565b7f4552433732314d657461646174613a2055524920717565727920666f72206e6f5f8201527f6e6578697374656e7420746f6b656e0000000000000000000000000000000000602082015250565b5f6133fe602f83612470565b9150613409826133a4565b604082019050919050565b5f6020820190508181035f83015261342b816133f2565b9050919050565b5f61343c82612466565b6134468185612ee1565b9350613456818560208601612480565b80840191505092915050565b5f61346d8285613432565b91506134798284613432565b91508190509392505050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f20615f8201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b5f6134df602683612470565b91506134ea82613485565b604082019050919050565b5f6020820190508181035f83015261350c816134d3565b9050919050565b7f4552433732313a206f70657261746f7220717565727920666f72206e6f6e65785f8201527f697374656e7420746f6b656e0000000000000000000000000000000000000000602082015250565b5f61356d602c83612470565b915061357882613513565b604082019050919050565b5f6020820190508181035f83015261359a81613561565b9050919050565b7f4552433732313a207472616e736665722066726f6d20696e636f7272656374205f8201527f6f776e6572000000000000000000000000000000000000000000000000000000602082015250565b5f6135fb602583612470565b9150613606826135a1565b604082019050919050565b5f6020820190508181035f830152613628816135ef565b9050919050565b7f4552433732313a207472616e7366657220746f20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f613689602483612470565b91506136948261362f565b604082019050919050565b5f6020820190508181035f8301526136b68161367d565b9050919050565b5f6136c7826124f6565b91506136d2836124f6565b92508282019050808211156136ea576136e96131c0565b5b92915050565b7f4552433732313a20617070726f766520746f2063616c6c6572000000000000005f82015250565b5f613724601983612470565b915061372f826136f0565b602082019050919050565b5f6020820190508181035f83015261375181613718565b9050919050565b7f4552433732313a207472616e7366657220746f206e6f6e2045524337323152655f8201527f63656976657220696d706c656d656e7465720000000000000000000000000000602082015250565b5f6137b2603283612470565b91506137bd82613758565b604082019050919050565b5f6020820190508181035f8301526137df816137a6565b9050919050565b5f6137f0826124f6565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203613822576138216131c0565b5b600182019050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f613864826124f6565b915061386f836124f6565b92508261387f5761387e61382d565b5b828204905092915050565b5f613894826124f6565b915061389f836124f6565b9250826138af576138ae61382d565b5b828206905092915050565b5f81519050919050565b5f82825260208201905092915050565b5f6138de826138ba565b6138e881856138c4565b93506138f8818560208601612480565b6139018161248e565b840191505092915050565b5f60808201905061391f5f830187612584565b61392c6020830186612584565b613939604083018561297e565b818103606083015261394b81846138d4565b905095945050505050565b5f81519050613964816123de565b92915050565b5f6020828403121561397f5761397e6123ab565b5b5f61398c84828501613956565b91505092915050565b7f4552433732313a206d696e7420746f20746865207a65726f20616464726573735f82015250565b5f6139c9602083612470565b91506139d482613995565b602082019050919050565b5f6020820190508181035f8301526139f6816139bd565b9050919050565b7f4552433732313a20746f6b656e20616c7265616479206d696e746564000000005f82015250565b5f613a31601c83612470565b9150613a3c826139fd565b602082019050919050565b5f6020820190508181035f830152613a5e81613a25565b905091905056fea264697066735822122082312916e99ee31c582bc45396cb2fb20788bb3736080d274fea7db16f3c9ccb64736f6c634300081a0033