608060405234801561000f575f80fd5b506040518060400160405280600881526020017f4861696b754e46540000000000000000000000000000000000000000000000008152506040518060400160405280600581526020017f4841494b55000000000000000000000000000000000000000000000000000000815250815f908161008a91906103e6565b50806001908161009a91906103e6565b5050506100b96100ae6100ce60201b60201c565b6100d560201b60201c565b6100c9600761019860201b60201c565b6104b5565b5f33905090565b5f60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508160065f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b6001815f015f828254019250508190555050565b5f81519050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168061022757607f821691505b60208210810361023a576102396101e3565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f6008830261029c7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82610261565b6102a68683610261565b95508019841693508086168417925050509392505050565b5f819050919050565b5f819050919050565b5f6102ea6102e56102e0846102be565b6102c7565b6102be565b9050919050565b5f819050919050565b610303836102d0565b61031761030f826102f1565b84845461026d565b825550505050565b5f90565b61032b61031f565b6103368184846102fa565b505050565b5b818110156103595761034e5f82610323565b60018101905061033c565b5050565b601f82111561039e5761036f81610240565b61037884610252565b81016020851015610387578190505b61039b61039385610252565b83018261033b565b50505b505050565b5f82821c905092915050565b5f6103be5f19846008026103a3565b1980831691505092915050565b5f6103d683836103af565b9150826002028217905092915050565b6103ef826101ac565b67ffffffffffffffff811115610408576104076101b6565b5b6104128254610210565b61041d82828561035d565b5f60209050601f83116001811461044e575f841561043c578287015190505b61044685826103cb565b8655506104ad565b601f19841661045c86610240565b5f5b828110156104835784890151825560018201915060208501945060208101905061045e565b868310156104a0578489015161049c601f8916826103af565b8355505b6001600288020188555050505b505050505050565b613acf806104c25f395ff3fe608060405234801561000f575f80fd5b5060043610610140575f3560e01c806370a08231116100b657806397afe82d1161007a57806397afe82d14610363578063a22cb46514610393578063b88d4fde146103af578063c87b56dd146103cb578063e985e9c5146103fb578063f2fde38b1461042b57610140565b806370a08231146102ba578063715018a6146102ea5780637cb82b2a146102f45780638da5cb5b1461032757806395d89b411461034557610140565b80632c83ea56116101085780632c83ea56146101fa57806331d81cbb14610216578063350fe1651461023457806342842e0e1461025057806349af5bfe1461026c5780636352211e1461028a57610140565b806301ffc9a71461014457806306fdde0314610174578063081812fc14610192578063095ea7b3146101c257806323b872dd146101de575b5f80fd5b61015e6004803603810190610159919061243c565b610447565b60405161016b9190612481565b60405180910390f35b61017c610528565b604051610189919061250a565b60405180910390f35b6101ac60048036038101906101a7919061255d565b6105b7565b6040516101b991906125c7565b60405180910390f35b6101dc60048036038101906101d7919061260a565b610638565b005b6101f860048036038101906101f39190612648565b61074e565b005b610214600480360381019061020f9190612698565b6107ae565b005b61021e61088b565b60405161022b91906126e5565b60405180910390f35b61024e6004803603810190610249919061275f565b610896565b005b61026a60048036038101906102659190612648565b610be4565b005b610274610c03565b604051610281919061298f565b60405180910390f35b6102a4600480360381019061029f919061255d565b610f75565b6040516102b191906125c7565b60405180910390f35b6102d460048036038101906102cf91906129af565b611021565b6040516102e191906126e5565b60405180910390f35b6102f26110d5565b005b61030e6004803603810190610309919061255d565b61115c565b60405161031e94939291906129da565b60405180910390f35b61032f611348565b60405161033c91906125c7565b60405180910390f35b61034d611370565b60405161035a919061250a565b60405180910390f35b61037d6004803603810190610378919061260a565b611400565b60405161038a91906126e5565b60405180910390f35b6103ad60048036038101906103a89190612a5c565b61142b565b005b6103c960048036038101906103c49190612bc2565b611441565b005b6103e560048036038101906103e0919061255d565b6114a3565b6040516103f2919061250a565b60405180910390f35b61041560048036038101906104109190612c42565b611547565b6040516104229190612481565b60405180910390f35b610445600480360381019061044091906129af565b6115d5565b005b5f7f80ac58cd000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916148061051157507f5b5e139f000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b806105215750610520826116cb565b5b9050919050565b60605f805461053690612cad565b80601f016020809104026020016040519081016040528092919081815260200182805461056290612cad565b80156105ad5780601f10610584576101008083540402835291602001916105ad565b820191905f5260205f20905b81548152906001019060200180831161059057829003601f168201915b5050505050905090565b5f6105c182611734565b610600576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105f790612d4d565b60405180910390fd5b60045f8381526020019081526020015f205f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b5f61064282610f75565b90508073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036106b2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106a990612ddb565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff166106d161179c565b73ffffffffffffffffffffffffffffffffffffffff16148061070057506106ff816106fa61179c565b611547565b5b61073f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161073690612e69565b60405180910390fd5b61074983836117a3565b505050565b61075f61075961179c565b82611859565b61079e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161079590612ef7565b60405180910390fd5b6107a9838383611935565b505050565b3373ffffffffffffffffffffffffffffffffffffffff166107ce83610f75565b73ffffffffffffffffffffffffffffffffffffffff161461082657816040517f03ce4e3200000000000000000000000000000000000000000000000000000000815260040161081d91906126e5565b60405180910390fd5b60095f8273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2082908060018154018082558091505060019003905f5260205f20015f90919091909150555050565b6007805f0154905081565b600a86866040516108a8929190612f43565b90815260200160405180910390205f9054906101000a900460ff16806108f75750600a84846040516108db929190612f43565b90815260200160405180910390205f9054906101000a900460ff165b8061092b5750600a828260405161090f929190612f43565b90815260200160405180910390205f9054906101000a900460ff165b15610962576040517f693a889e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001600a8787604051610976929190612f43565b90815260200160405180910390205f6101000a81548160ff0219169083151502179055506001600a85856040516109ae929190612f43565b90815260200160405180910390205f6101000a81548160ff0219169083151502179055506001600a83836040516109e6929190612f43565b90815260200160405180910390205f6101000a81548160ff0219169083151502179055505f610a156007611b90565b9050610a213382611b9c565b600860405180608001604052803373ffffffffffffffffffffffffffffffffffffffff16815260200189898080601f0160208091040260200160405190810160405280939291908181526020018383808284375f81840152601f19601f82011690508083019250505050505050815260200187878080601f0160208091040260200160405190810160405280939291908181526020018383808284375f81840152601f19601f82011690508083019250505050505050815260200185858080601f0160208091040260200160405190810160405280939291908181526020018383808284375f81840152601f19601f82011690508083019250505050505050815250908060018154018082558091505060019003905f5260205f2090600402015f909190919091505f820151815f015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506020820151816001019081610ba291906130f8565b506040820151816002019081610bb891906130f8565b506060820151816003019081610bce91906130f8565b505050610bdb6007611bb9565b50505050505050565b610bfe83838360405180602001604052805f815250611441565b505050565b60605f60095f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2090505f818054905003610c82576040517ff8826a6900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f818054905067ffffffffffffffff811115610ca157610ca0612a9e565b5b604051908082528060200260200182016040528015610cda57816020015b610cc7612399565b815260200190600190039081610cbf5790505b5090505f5b8280549050811015610f6c5760086001848381548110610d0257610d016131c7565b5b905f5260205f200154610d159190613221565b81548110610d2657610d256131c7565b5b905f5260205f2090600402016040518060800160405290815f82015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001600182018054610da190612cad565b80601f0160208091040260200160405190810160405280929190818152602001828054610dcd90612cad565b8015610e185780601f10610def57610100808354040283529160200191610e18565b820191905f5260205f20905b815481529060010190602001808311610dfb57829003601f168201915b50505050508152602001600282018054610e3190612cad565b80601f0160208091040260200160405190810160405280929190818152602001828054610e5d90612cad565b8015610ea85780601f10610e7f57610100808354040283529160200191610ea8565b820191905f5260205f20905b815481529060010190602001808311610e8b57829003601f168201915b50505050508152602001600382018054610ec190612cad565b80601f0160208091040260200160405190810160405280929190818152602001828054610eed90612cad565b8015610f385780601f10610f0f57610100808354040283529160200191610f38565b820191905f5260205f20905b815481529060010190602001808311610f1b57829003601f168201915b505050505081525050828281518110610f5457610f536131c7565b5b60200260200101819052508080600101915050610cdf565b50809250505090565b5f8060025f8481526020019081526020015f205f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690505f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611018576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161100f906132c4565b60405180910390fd5b80915050919050565b5f8073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611090576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161108790613352565b60405180910390fd5b60035f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b6110dd61179c565b73ffffffffffffffffffffffffffffffffffffffff166110fb611348565b73ffffffffffffffffffffffffffffffffffffffff1614611151576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611148906133ba565b60405180910390fd5b61115a5f611bcd565b565b6008818154811061116b575f80fd5b905f5260205f2090600402015f91509050805f015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16908060010180546111af90612cad565b80601f01602080910402602001604051908101604052809291908181526020018280546111db90612cad565b80156112265780601f106111fd57610100808354040283529160200191611226565b820191905f5260205f20905b81548152906001019060200180831161120957829003601f168201915b50505050509080600201805461123b90612cad565b80601f016020809104026020016040519081016040528092919081815260200182805461126790612cad565b80156112b25780601f10611289576101008083540402835291602001916112b2565b820191905f5260205f20905b81548152906001019060200180831161129557829003601f168201915b5050505050908060030180546112c790612cad565b80601f01602080910402602001604051908101604052809291908181526020018280546112f390612cad565b801561133e5780601f106113155761010080835404028352916020019161133e565b820191905f5260205f20905b81548152906001019060200180831161132157829003601f168201915b5050505050905084565b5f60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606001805461137f90612cad565b80601f01602080910402602001604051908101604052809291908181526020018280546113ab90612cad565b80156113f65780601f106113cd576101008083540402835291602001916113f6565b820191905f5260205f20905b8154815290600101906020018083116113d957829003601f168201915b5050505050905090565b6009602052815f5260405f208181548110611419575f80fd5b905f5260205f20015f91509150505481565b61143d61143661179c565b8383611c90565b5050565b61145261144c61179c565b83611859565b611491576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161148890612ef7565b60405180910390fd5b61149d84848484611df7565b50505050565b60606114ae82611734565b6114ed576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114e490613448565b60405180910390fd5b5f6114f6611e53565b90505f8151116115145760405180602001604052805f81525061153f565b8061151e84611e69565b60405160200161152f929190613496565b6040516020818303038152906040525b915050919050565b5f60055f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16905092915050565b6115dd61179c565b73ffffffffffffffffffffffffffffffffffffffff166115fb611348565b73ffffffffffffffffffffffffffffffffffffffff1614611651576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611648906133ba565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036116bf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116b690613529565b60405180910390fd5b6116c881611bcd565b50565b5f7f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b5f8073ffffffffffffffffffffffffffffffffffffffff1660025f8481526020019081526020015f205f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614159050919050565b5f33905090565b8160045f8381526020019081526020015f205f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff1661181383610f75565b73ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b5f61186382611734565b6118a2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611899906135b7565b60405180910390fd5b5f6118ac83610f75565b90508073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614806118ee57506118ed8185611547565b5b8061192c57508373ffffffffffffffffffffffffffffffffffffffff16611914846105b7565b73ffffffffffffffffffffffffffffffffffffffff16145b91505092915050565b8273ffffffffffffffffffffffffffffffffffffffff1661195582610f75565b73ffffffffffffffffffffffffffffffffffffffff16146119ab576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119a290613645565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611a19576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a10906136d3565b60405180910390fd5b611a24838383611fc2565b611a2e5f826117a3565b600160035f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f828254611a7b9190613221565b92505081905550600160035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f828254611acf91906136f1565b925050819055508160025f8381526020019081526020015f205f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4611b8b838383611fc7565b505050565b5f815f01549050919050565b611bb5828260405180602001604052805f815250611fcc565b5050565b6001815f015f828254019250508190555050565b5f60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508160065f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611cfe576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cf59061376e565b60405180910390fd5b8060055f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c3183604051611dea9190612481565b60405180910390a3505050565b611e02848484611935565b611e0e84848484612026565b611e4d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e44906137fc565b60405180910390fd5b50505050565b606060405180602001604052805f815250905090565b60605f8203611eaf576040518060400160405280600181526020017f30000000000000000000000000000000000000000000000000000000000000008152509050611fbd565b5f8290505f5b5f8214611ede578080611ec79061381a565b915050600a82611ed7919061388e565b9150611eb5565b5f8167ffffffffffffffff811115611ef957611ef8612a9e565b5b6040519080825280601f01601f191660200182016040528015611f2b5781602001600182028036833780820191505090505b5090505b5f8514611fb657600182611f439190613221565b9150600a85611f5291906138be565b6030611f5e91906136f1565b60f81b818381518110611f7457611f736131c7565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff191690815f1a905350600a85611faf919061388e565b9450611f2f565b8093505050505b919050565b505050565b505050565b611fd683836121a8565b611fe25f848484612026565b612021576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612018906137fc565b60405180910390fd5b505050565b5f6120468473ffffffffffffffffffffffffffffffffffffffff16612377565b1561219b578373ffffffffffffffffffffffffffffffffffffffff1663150b7a0261206f61179c565b8786866040518563ffffffff1660e01b81526004016120919493929190613940565b6020604051808303815f875af19250505080156120cc57506040513d601f19601f820116820180604052508101906120c9919061399e565b60015b61214b573d805f81146120fa576040519150601f19603f3d011682016040523d82523d5f602084013e6120ff565b606091505b505f815103612143576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161213a906137fc565b60405180910390fd5b805181602001fd5b63150b7a0260e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149150506121a0565b600190505b949350505050565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603612216576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161220d90613a13565b60405180910390fd5b61221f81611734565b1561225f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161225690613a7b565b60405180910390fd5b61226a5f8383611fc2565b600160035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8282546122b791906136f1565b925050819055508160025f8381526020019081526020015f205f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a46123735f8383611fc7565b5050565b5f808273ffffffffffffffffffffffffffffffffffffffff163b119050919050565b60405180608001604052805f73ffffffffffffffffffffffffffffffffffffffff1681526020016060815260200160608152602001606081525090565b5f604051905090565b5f80fd5b5f80fd5b5f7fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b61241b816123e7565b8114612425575f80fd5b50565b5f8135905061243681612412565b92915050565b5f60208284031215612451576124506123df565b5b5f61245e84828501612428565b91505092915050565b5f8115159050919050565b61247b81612467565b82525050565b5f6020820190506124945f830184612472565b92915050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f6124dc8261249a565b6124e681856124a4565b93506124f68185602086016124b4565b6124ff816124c2565b840191505092915050565b5f6020820190508181035f83015261252281846124d2565b905092915050565b5f819050919050565b61253c8161252a565b8114612546575f80fd5b50565b5f8135905061255781612533565b92915050565b5f60208284031215612572576125716123df565b5b5f61257f84828501612549565b91505092915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6125b182612588565b9050919050565b6125c1816125a7565b82525050565b5f6020820190506125da5f8301846125b8565b92915050565b6125e9816125a7565b81146125f3575f80fd5b50565b5f81359050612604816125e0565b92915050565b5f80604083850312156126205761261f6123df565b5b5f61262d858286016125f6565b925050602061263e85828601612549565b9150509250929050565b5f805f6060848603121561265f5761265e6123df565b5b5f61266c868287016125f6565b935050602061267d868287016125f6565b925050604061268e86828701612549565b9150509250925092565b5f80604083850312156126ae576126ad6123df565b5b5f6126bb85828601612549565b92505060206126cc858286016125f6565b9150509250929050565b6126df8161252a565b82525050565b5f6020820190506126f85f8301846126d6565b92915050565b5f80fd5b5f80fd5b5f80fd5b5f8083601f84011261271f5761271e6126fe565b5b8235905067ffffffffffffffff81111561273c5761273b612702565b5b60208301915083600182028301111561275857612757612706565b5b9250929050565b5f805f805f8060608789031215612779576127786123df565b5b5f87013567ffffffffffffffff811115612796576127956123e3565b5b6127a289828a0161270a565b9650965050602087013567ffffffffffffffff8111156127c5576127c46123e3565b5b6127d189828a0161270a565b9450945050604087013567ffffffffffffffff8111156127f4576127f36123e3565b5b61280089828a0161270a565b92509250509295509295509295565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b612841816125a7565b82525050565b5f82825260208201905092915050565b5f6128618261249a565b61286b8185612847565b935061287b8185602086016124b4565b612884816124c2565b840191505092915050565b5f608083015f8301516128a45f860182612838565b50602083015184820360208601526128bc8282612857565b915050604083015184820360408601526128d68282612857565b915050606083015184820360608601526128f08282612857565b9150508091505092915050565b5f612908838361288f565b905092915050565b5f602082019050919050565b5f6129268261280f565b6129308185612819565b93508360208202850161294285612829565b805f5b8581101561297d578484038952815161295e85826128fd565b945061296983612910565b925060208a01995050600181019050612945565b50829750879550505050505092915050565b5f6020820190508181035f8301526129a7818461291c565b905092915050565b5f602082840312156129c4576129c36123df565b5b5f6129d1848285016125f6565b91505092915050565b5f6080820190506129ed5f8301876125b8565b81810360208301526129ff81866124d2565b90508181036040830152612a1381856124d2565b90508181036060830152612a2781846124d2565b905095945050505050565b612a3b81612467565b8114612a45575f80fd5b50565b5f81359050612a5681612a32565b92915050565b5f8060408385031215612a7257612a716123df565b5b5f612a7f858286016125f6565b9250506020612a9085828601612a48565b9150509250929050565b5f80fd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b612ad4826124c2565b810181811067ffffffffffffffff82111715612af357612af2612a9e565b5b80604052505050565b5f612b056123d6565b9050612b118282612acb565b919050565b5f67ffffffffffffffff821115612b3057612b2f612a9e565b5b612b39826124c2565b9050602081019050919050565b828183375f83830152505050565b5f612b66612b6184612b16565b612afc565b905082815260208101848484011115612b8257612b81612a9a565b5b612b8d848285612b46565b509392505050565b5f82601f830112612ba957612ba86126fe565b5b8135612bb9848260208601612b54565b91505092915050565b5f805f8060808587031215612bda57612bd96123df565b5b5f612be7878288016125f6565b9450506020612bf8878288016125f6565b9350506040612c0987828801612549565b925050606085013567ffffffffffffffff811115612c2a57612c296123e3565b5b612c3687828801612b95565b91505092959194509250565b5f8060408385031215612c5857612c576123df565b5b5f612c65858286016125f6565b9250506020612c76858286016125f6565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f6002820490506001821680612cc457607f821691505b602082108103612cd757612cd6612c80565b5b50919050565b7f4552433732313a20617070726f76656420717565727920666f72206e6f6e65785f8201527f697374656e7420746f6b656e0000000000000000000000000000000000000000602082015250565b5f612d37602c836124a4565b9150612d4282612cdd565b604082019050919050565b5f6020820190508181035f830152612d6481612d2b565b9050919050565b7f4552433732313a20617070726f76616c20746f2063757272656e74206f776e655f8201527f7200000000000000000000000000000000000000000000000000000000000000602082015250565b5f612dc56021836124a4565b9150612dd082612d6b565b604082019050919050565b5f6020820190508181035f830152612df281612db9565b9050919050565b7f4552433732313a20617070726f76652063616c6c6572206973206e6f74206f775f8201527f6e6572206e6f7220617070726f76656420666f7220616c6c0000000000000000602082015250565b5f612e536038836124a4565b9150612e5e82612df9565b604082019050919050565b5f6020820190508181035f830152612e8081612e47565b9050919050565b7f4552433732313a207472616e736665722063616c6c6572206973206e6f74206f5f8201527f776e6572206e6f7220617070726f766564000000000000000000000000000000602082015250565b5f612ee16031836124a4565b9150612eec82612e87565b604082019050919050565b5f6020820190508181035f830152612f0e81612ed5565b9050919050565b5f81905092915050565b5f612f2a8385612f15565b9350612f37838584612b46565b82840190509392505050565b5f612f4f828486612f1f565b91508190509392505050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f60088302612fb77fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82612f7c565b612fc18683612f7c565b95508019841693508086168417925050509392505050565b5f819050919050565b5f612ffc612ff7612ff28461252a565b612fd9565b61252a565b9050919050565b5f819050919050565b61301583612fe2565b61302961302182613003565b848454612f88565b825550505050565b5f90565b61303d613031565b61304881848461300c565b505050565b5b8181101561306b576130605f82613035565b60018101905061304e565b5050565b601f8211156130b05761308181612f5b565b61308a84612f6d565b81016020851015613099578190505b6130ad6130a585612f6d565b83018261304d565b50505b505050565b5f82821c905092915050565b5f6130d05f19846008026130b5565b1980831691505092915050565b5f6130e883836130c1565b9150826002028217905092915050565b6131018261249a565b67ffffffffffffffff81111561311a57613119612a9e565b5b6131248254612cad565b61312f82828561306f565b5f60209050601f831160018114613160575f841561314e578287015190505b61315885826130dd565b8655506131bf565b601f19841661316e86612f5b565b5f5b8281101561319557848901518255600182019150602085019450602081019050613170565b868310156131b257848901516131ae601f8916826130c1565b8355505b6001600288020188555050505b505050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f61322b8261252a565b91506132368361252a565b925082820390508181111561324e5761324d6131f4565b5b92915050565b7f4552433732313a206f776e657220717565727920666f72206e6f6e65786973745f8201527f656e7420746f6b656e0000000000000000000000000000000000000000000000602082015250565b5f6132ae6029836124a4565b91506132b982613254565b604082019050919050565b5f6020820190508181035f8301526132db816132a2565b9050919050565b7f4552433732313a2062616c616e636520717565727920666f7220746865207a655f8201527f726f206164647265737300000000000000000000000000000000000000000000602082015250565b5f61333c602a836124a4565b9150613347826132e2565b604082019050919050565b5f6020820190508181035f83015261336981613330565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f6133a46020836124a4565b91506133af82613370565b602082019050919050565b5f6020820190508181035f8301526133d181613398565b9050919050565b7f4552433732314d657461646174613a2055524920717565727920666f72206e6f5f8201527f6e6578697374656e7420746f6b656e0000000000000000000000000000000000602082015250565b5f613432602f836124a4565b915061343d826133d8565b604082019050919050565b5f6020820190508181035f83015261345f81613426565b9050919050565b5f6134708261249a565b61347a8185612f15565b935061348a8185602086016124b4565b80840191505092915050565b5f6134a18285613466565b91506134ad8284613466565b91508190509392505050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f20615f8201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b5f6135136026836124a4565b915061351e826134b9565b604082019050919050565b5f6020820190508181035f83015261354081613507565b9050919050565b7f4552433732313a206f70657261746f7220717565727920666f72206e6f6e65785f8201527f697374656e7420746f6b656e0000000000000000000000000000000000000000602082015250565b5f6135a1602c836124a4565b91506135ac82613547565b604082019050919050565b5f6020820190508181035f8301526135ce81613595565b9050919050565b7f4552433732313a207472616e736665722066726f6d20696e636f7272656374205f8201527f6f776e6572000000000000000000000000000000000000000000000000000000602082015250565b5f61362f6025836124a4565b915061363a826135d5565b604082019050919050565b5f6020820190508181035f83015261365c81613623565b9050919050565b7f4552433732313a207472616e7366657220746f20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f6136bd6024836124a4565b91506136c882613663565b604082019050919050565b5f6020820190508181035f8301526136ea816136b1565b9050919050565b5f6136fb8261252a565b91506137068361252a565b925082820190508082111561371e5761371d6131f4565b5b92915050565b7f4552433732313a20617070726f766520746f2063616c6c6572000000000000005f82015250565b5f6137586019836124a4565b915061376382613724565b602082019050919050565b5f6020820190508181035f8301526137858161374c565b9050919050565b7f4552433732313a207472616e7366657220746f206e6f6e2045524337323152655f8201527f63656976657220696d706c656d656e7465720000000000000000000000000000602082015250565b5f6137e66032836124a4565b91506137f18261378c565b604082019050919050565b5f6020820190508181035f830152613813816137da565b9050919050565b5f6138248261252a565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203613856576138556131f4565b5b600182019050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f6138988261252a565b91506138a38361252a565b9250826138b3576138b2613861565b5b828204905092915050565b5f6138c88261252a565b91506138d38361252a565b9250826138e3576138e2613861565b5b828206905092915050565b5f81519050919050565b5f82825260208201905092915050565b5f613912826138ee565b61391c81856138f8565b935061392c8185602086016124b4565b613935816124c2565b840191505092915050565b5f6080820190506139535f8301876125b8565b61396060208301866125b8565b61396d60408301856126d6565b818103606083015261397f8184613908565b905095945050505050565b5f8151905061399881612412565b92915050565b5f602082840312156139b3576139b26123df565b5b5f6139c08482850161398a565b91505092915050565b7f4552433732313a206d696e7420746f20746865207a65726f20616464726573735f82015250565b5f6139fd6020836124a4565b9150613a08826139c9565b602082019050919050565b5f6020820190508181035f830152613a2a816139f1565b9050919050565b7f4552433732313a20746f6b656e20616c7265616479206d696e746564000000005f82015250565b5f613a65601c836124a4565b9150613a7082613a31565b602082019050919050565b5f6020820190508181035f830152613a9281613a59565b905091905056fea26469706673582212208e732bdd9cfb2b290852647e15ff036107b88d79356600ae83946377caefb44d64736f6c634300081a0033