608060405234801561000f575f80fd5b50604051613cbf380380613cbf83398181016040528101906100319190610364565b8383815f90816100419190610604565b5080600190816100519190610604565b5050506100706100656100c060201b60201c565b6100c760201b60201c565b81600d5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600c81905550505050506106d3565b5f33905090565b5f600a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600a5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f604051905090565b5f80fd5b5f80fd5b5f80fd5b5f80fd5b5f601f19601f8301169050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6101e9826101a3565b810181811067ffffffffffffffff82111715610208576102076101b3565b5b80604052505050565b5f61021a61018a565b905061022682826101e0565b919050565b5f67ffffffffffffffff821115610245576102446101b3565b5b61024e826101a3565b9050602081019050919050565b8281835e5f83830152505050565b5f61027b6102768461022b565b610211565b9050828152602081018484840111156102975761029661019f565b5b6102a284828561025b565b509392505050565b5f82601f8301126102be576102bd61019b565b5b81516102ce848260208601610269565b91505092915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f610300826102d7565b9050919050565b610310816102f6565b811461031a575f80fd5b50565b5f8151905061032b81610307565b92915050565b5f819050919050565b61034381610331565b811461034d575f80fd5b50565b5f8151905061035e8161033a565b92915050565b5f805f806080858703121561037c5761037b610193565b5b5f85015167ffffffffffffffff81111561039957610398610197565b5b6103a5878288016102aa565b945050602085015167ffffffffffffffff8111156103c6576103c5610197565b5b6103d2878288016102aa565b93505060406103e38782880161031d565b92505060606103f487828801610350565b91505092959194509250565b5f81519050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168061044e57607f821691505b6020821081036104615761046061040a565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f600883026104c37fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82610488565b6104cd8683610488565b95508019841693508086168417925050509392505050565b5f819050919050565b5f6105086105036104fe84610331565b6104e5565b610331565b9050919050565b5f819050919050565b610521836104ee565b61053561052d8261050f565b848454610494565b825550505050565b5f90565b61054961053d565b610554818484610518565b505050565b5b818110156105775761056c5f82610541565b60018101905061055a565b5050565b601f8211156105bc5761058d81610467565b61059684610479565b810160208510156105a5578190505b6105b96105b185610479565b830182610559565b50505b505050565b5f82821c905092915050565b5f6105dc5f19846008026105c1565b1980831691505092915050565b5f6105f483836105cd565b9150826002028217905092915050565b61060d82610400565b67ffffffffffffffff811115610626576106256101b3565b5b6106308254610437565b61063b82828561057b565b5f60209050601f83116001811461066c575f841561065a578287015190505b61066485826105e9565b8655506106cb565b601f19841661067a86610467565b5f5b828110156106a15784890151825560018201915060208501945060208101905061067c565b868310156106be57848901516106ba601f8916826105cd565b8355505b6001600288020188555050505b505050505050565b6135df806106e05f395ff3fe608060405234801561000f575f80fd5b5060043610610156575f3560e01c8063715018a6116100c1578063abaeb2631161007a578063abaeb263146103d6578063b88d4fde146103f4578063c87b56dd14610410578063e985e9c514610440578063f2fde38b14610470578063f7b2a7be1461048c57610156565b8063715018a61461033a5780637b47ec1a146103445780638da5cb5b1461036057806395d89b411461037e5780639d741e5d1461039c578063a22cb465146103ba57610156565b80632f745c59116101135780632f745c591461022e57806342842e0e1461025e5780634f6ccce71461027a5780636352211e146102aa5780636a627842146102da57806370a082311461030a57610156565b806301ffc9a71461015a57806306fdde031461018a578063081812fc146101a8578063095ea7b3146101d857806318160ddd146101f457806323b872dd14610212575b5f80fd5b610174600480360381019061016f9190612457565b6104aa565b604051610181919061249c565b60405180910390f35b610192610523565b60405161019f9190612525565b60405180910390f35b6101c260048036038101906101bd9190612578565b6105b2565b6040516101cf91906125e2565b60405180910390f35b6101f260048036038101906101ed9190612625565b6105f4565b005b6101fc61070a565b6040516102099190612672565b60405180910390f35b61022c6004803603810190610227919061268b565b610716565b005b61024860048036038101906102439190612625565b610776565b6040516102559190612672565b60405180910390f35b6102786004803603810190610273919061268b565b610816565b005b610294600480360381019061028f9190612578565b610835565b6040516102a19190612672565b60405180910390f35b6102c460048036038101906102bf9190612578565b6108a3565b6040516102d191906125e2565b60405180910390f35b6102f460048036038101906102ef91906126db565b610927565b6040516103019190612672565b60405180910390f35b610324600480360381019061031f91906126db565b61095a565b6040516103319190612672565b60405180910390f35b610342610a0e565b005b61035e60048036038101906103599190612578565b610a21565b005b610368610a8d565b60405161037591906125e2565b60405180910390f35b610386610ab5565b6040516103939190612525565b60405180910390f35b6103a4610b45565b6040516103b191906125e2565b60405180910390f35b6103d460048036038101906103cf9190612730565b610b6a565b005b6103de610b80565b6040516103eb9190612825565b60405180910390f35b61040e60048036038101906104099190612971565b610c21565b005b61042a60048036038101906104259190612578565b610c83565b6040516104379190612525565b60405180910390f35b61045a600480360381019061045591906129f1565b610ce8565b604051610467919061249c565b60405180910390f35b61048a600480360381019061048591906126db565b610d76565b005b610494610df8565b6040516104a19190612672565b60405180910390f35b5f7f780e9d63000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916148061051c575061051b82610dfe565b5b9050919050565b60605f805461053190612a5c565b80601f016020809104026020016040519081016040528092919081815260200182805461055d90612a5c565b80156105a85780601f1061057f576101008083540402835291602001916105a8565b820191905f5260205f20905b81548152906001019060200180831161058b57829003601f168201915b5050505050905090565b5f6105bc82610edf565b60045f8381526020019081526020015f205f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b5f6105fe826108a3565b90508073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361066e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161066590612afc565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1661068d610f2a565b73ffffffffffffffffffffffffffffffffffffffff1614806106bc57506106bb816106b6610f2a565b610ce8565b5b6106fb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106f290612b8a565b60405180910390fd5b6107058383610f31565b505050565b5f600880549050905090565b610727610721610f2a565b82610fe7565b610766576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161075d90612c18565b60405180910390fd5b61077183838361107b565b505050565b5f6107808361095a565b82106107c1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107b890612ca6565b60405180910390fd5b60065f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8381526020019081526020015f2054905092915050565b61083083838360405180602001604052805f815250610c21565b505050565b5f61083e61070a565b821061087f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161087690612d34565b60405180910390fd5b6008828154811061089357610892612d52565b5b905f5260205f2001549050919050565b5f806108ae83611367565b90505f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160361091e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161091590612dc9565b60405180910390fd5b80915050919050565b5f6109306113a0565b61093a600b61141e565b5f610945600b611432565b9050610951838261143e565b80915050919050565b5f8073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036109c9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109c090612e57565b60405180910390fd5b60035f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b610a166113a0565b610a1f5f61145b565b565b610a32610a2c610f2a565b82610fe7565b610a71576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a6890612ebf565b60405180910390fd5b610a7a8161151e565b610a8a610a85610f2a565b61165f565b50565b5f600a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b606060018054610ac490612a5c565b80601f0160208091040260200160405190810160405280929190818152602001828054610af090612a5c565b8015610b3b5780601f10610b1257610100808354040283529160200191610b3b565b820191905f5260205f20905b815481529060010190602001808311610b1e57829003601f168201915b5050505050905090565b600d5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b610b7c610b75610f2a565b838361170a565b5050565b60605f610b8b61070a565b90505f8167ffffffffffffffff811115610ba857610ba761284d565b5b604051908082528060200260200182016040528015610bd65781602001602082028036833780820191505090505b5090505f5b82811015610c1857610bec81610835565b828281518110610bff57610bfe612d52565b5b6020026020010181815250508080600101915050610bdb565b50809250505090565b610c32610c2c610f2a565b83610fe7565b610c71576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c6890612c18565b60405180910390fd5b610c7d84848484611871565b50505050565b6060610c8e82610edf565b5f610c976118cd565b90505f815111610cb55760405180602001604052805f815250610ce0565b80610cbf846118e3565b604051602001610cd0929190612f17565b6040516020818303038152906040525b915050919050565b5f60055f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16905092915050565b610d7e6113a0565b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610dec576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610de390612faa565b60405180910390fd5b610df58161145b565b50565b600c5481565b5f7f80ac58cd000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161480610ec857507f5b5e139f000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b80610ed85750610ed7826119ad565b5b9050919050565b610ee881611a16565b610f27576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f1e90612dc9565b60405180910390fd5b50565b5f33905090565b8160045f8381526020019081526020015f205f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff16610fa1836108a3565b73ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b5f80610ff2836108a3565b90508073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148061103457506110338185610ce8565b5b8061107257508373ffffffffffffffffffffffffffffffffffffffff1661105a846105b2565b73ffffffffffffffffffffffffffffffffffffffff16145b91505092915050565b8273ffffffffffffffffffffffffffffffffffffffff1661109b826108a3565b73ffffffffffffffffffffffffffffffffffffffff16146110f1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110e890613038565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361115f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611156906130c6565b60405180910390fd5b61116c8383836001611a56565b8273ffffffffffffffffffffffffffffffffffffffff1661118c826108a3565b73ffffffffffffffffffffffffffffffffffffffff16146111e2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111d990613038565b60405180910390fd5b60045f8281526020019081526020015f205f6101000a81549073ffffffffffffffffffffffffffffffffffffffff0219169055600160035f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8282540392505081905550600160035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825401925050819055508160025f8381526020019081526020015f205f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a46113628383836001611bb1565b505050565b5f60025f8381526020019081526020015f205f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b6113a8610f2a565b73ffffffffffffffffffffffffffffffffffffffff166113c6610a8d565b73ffffffffffffffffffffffffffffffffffffffff161461141c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114139061312e565b60405180910390fd5b565b6001815f015f828254019250508190555050565b5f815f01549050919050565b611457828260405180602001604052805f815250611bb7565b5050565b5f600a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600a5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f611528826108a3565b9050611537815f846001611a56565b611540826108a3565b905060045f8381526020019081526020015f205f6101000a81549073ffffffffffffffffffffffffffffffffffffffff0219169055600160035f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f828254039250508190555060025f8381526020019081526020015f205f6101000a81549073ffffffffffffffffffffffffffffffffffffffff0219169055815f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a461165b815f846001611bb1565b5050565b600d5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166323b872dd6116a4610a8d565b83600c546040518463ffffffff1660e01b81526004016116c69392919061314c565b6020604051808303815f875af11580156116e2573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906117069190613195565b5050565b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611778576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161176f9061320a565b60405180910390fd5b8060055f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c3183604051611864919061249c565b60405180910390a3505050565b61187c84848461107b565b61188884848484611c11565b6118c7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118be90613298565b60405180910390fd5b50505050565b606060405180602001604052805f815250905090565b60605f60016118f184611d93565b0190505f8167ffffffffffffffff81111561190f5761190e61284d565b5b6040519080825280601f01601f1916602001820160405280156119415781602001600182028036833780820191505090505b5090505f82602001820190505b6001156119a2578080600190039150507f3031323334353637383961626364656600000000000000000000000000000000600a86061a8153600a8581611997576119966132b6565b5b0494505f850361194e575b819350505050919050565b5f7f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b5f8073ffffffffffffffffffffffffffffffffffffffff16611a3783611367565b73ffffffffffffffffffffffffffffffffffffffff1614159050919050565b611a6284848484611ee4565b6001811115611aa6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a9d90613353565b60405180910390fd5b5f8290505f73ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1603611aeb57611ae681611eea565b611b2a565b8373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614611b2957611b288582611f2e565b5b5b5f73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603611b6b57611b6681612084565b611baa565b8473ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614611ba957611ba88482612144565b5b5b5050505050565b50505050565b611bc183836121bc565b611bcd5f848484611c11565b611c0c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c0390613298565b60405180910390fd5b505050565b5f611c318473ffffffffffffffffffffffffffffffffffffffff166123cf565b15611d86578373ffffffffffffffffffffffffffffffffffffffff1663150b7a02611c5a610f2a565b8786866040518563ffffffff1660e01b8152600401611c7c94939291906133c3565b6020604051808303815f875af1925050508015611cb757506040513d601f19601f82011682018060405250810190611cb49190613421565b60015b611d36573d805f8114611ce5576040519150601f19603f3d011682016040523d82523d5f602084013e611cea565b606091505b505f815103611d2e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d2590613298565b60405180910390fd5b805181602001fd5b63150b7a0260e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614915050611d8b565b600190505b949350505050565b5f805f90507a184f03e93ff9f4daa797ed6e38ed64bf6a1f0100000000000000008310611def577a184f03e93ff9f4daa797ed6e38ed64bf6a1f0100000000000000008381611de557611de46132b6565b5b0492506040810190505b6d04ee2d6d415b85acef81000000008310611e2c576d04ee2d6d415b85acef81000000008381611e2257611e216132b6565b5b0492506020810190505b662386f26fc100008310611e5b57662386f26fc100008381611e5157611e506132b6565b5b0492506010810190505b6305f5e1008310611e84576305f5e1008381611e7a57611e796132b6565b5b0492506008810190505b6127108310611ea9576127108381611e9f57611e9e6132b6565b5b0492506004810190505b60648310611ecc5760648381611ec257611ec16132b6565b5b0492506002810190505b600a8310611edb576001810190505b80915050919050565b50505050565b60088054905060095f8381526020019081526020015f2081905550600881908060018154018082558091505060019003905f5260205f20015f909190919091505550565b5f6001611f3a8461095a565b611f449190613479565b90505f60075f8481526020019081526020015f2054905081811461201b575f60065f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8481526020019081526020015f205490508060065f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8481526020019081526020015f20819055508160075f8381526020019081526020015f2081905550505b60075f8481526020019081526020015f205f905560065f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8381526020019081526020015f205f905550505050565b5f60016008805490506120979190613479565b90505f60095f8481526020019081526020015f205490505f600883815481106120c3576120c2612d52565b5b905f5260205f200154905080600883815481106120e3576120e2612d52565b5b905f5260205f2001819055508160095f8381526020019081526020015f208190555060095f8581526020019081526020015f205f9055600880548061212b5761212a6134ac565b5b600190038181905f5260205f20015f9055905550505050565b5f61214e8361095a565b90508160065f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8381526020019081526020015f20819055508060075f8481526020019081526020015f2081905550505050565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361222a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161222190613523565b60405180910390fd5b61223381611a16565b15612273576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161226a9061358b565b60405180910390fd5b6122805f83836001611a56565b61228981611a16565b156122c9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122c09061358b565b60405180910390fd5b600160035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825401925050819055508160025f8381526020019081526020015f205f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a46123cb5f83836001611bb1565b5050565b5f808273ffffffffffffffffffffffffffffffffffffffff163b119050919050565b5f604051905090565b5f80fd5b5f80fd5b5f7fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b61243681612402565b8114612440575f80fd5b50565b5f813590506124518161242d565b92915050565b5f6020828403121561246c5761246b6123fa565b5b5f61247984828501612443565b91505092915050565b5f8115159050919050565b61249681612482565b82525050565b5f6020820190506124af5f83018461248d565b92915050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f6124f7826124b5565b61250181856124bf565b93506125118185602086016124cf565b61251a816124dd565b840191505092915050565b5f6020820190508181035f83015261253d81846124ed565b905092915050565b5f819050919050565b61255781612545565b8114612561575f80fd5b50565b5f813590506125728161254e565b92915050565b5f6020828403121561258d5761258c6123fa565b5b5f61259a84828501612564565b91505092915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6125cc826125a3565b9050919050565b6125dc816125c2565b82525050565b5f6020820190506125f55f8301846125d3565b92915050565b612604816125c2565b811461260e575f80fd5b50565b5f8135905061261f816125fb565b92915050565b5f806040838503121561263b5761263a6123fa565b5b5f61264885828601612611565b925050602061265985828601612564565b9150509250929050565b61266c81612545565b82525050565b5f6020820190506126855f830184612663565b92915050565b5f805f606084860312156126a2576126a16123fa565b5b5f6126af86828701612611565b93505060206126c086828701612611565b92505060406126d186828701612564565b9150509250925092565b5f602082840312156126f0576126ef6123fa565b5b5f6126fd84828501612611565b91505092915050565b61270f81612482565b8114612719575f80fd5b50565b5f8135905061272a81612706565b92915050565b5f8060408385031215612746576127456123fa565b5b5f61275385828601612611565b92505060206127648582860161271c565b9150509250929050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b6127a081612545565b82525050565b5f6127b18383612797565b60208301905092915050565b5f602082019050919050565b5f6127d38261276e565b6127dd8185612778565b93506127e883612788565b805f5b838110156128185781516127ff88826127a6565b975061280a836127bd565b9250506001810190506127eb565b5085935050505092915050565b5f6020820190508181035f83015261283d81846127c9565b905092915050565b5f80fd5b5f80fd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b612883826124dd565b810181811067ffffffffffffffff821117156128a2576128a161284d565b5b80604052505050565b5f6128b46123f1565b90506128c0828261287a565b919050565b5f67ffffffffffffffff8211156128df576128de61284d565b5b6128e8826124dd565b9050602081019050919050565b828183375f83830152505050565b5f612915612910846128c5565b6128ab565b90508281526020810184848401111561293157612930612849565b5b61293c8482856128f5565b509392505050565b5f82601f83011261295857612957612845565b5b8135612968848260208601612903565b91505092915050565b5f805f8060808587031215612989576129886123fa565b5b5f61299687828801612611565b94505060206129a787828801612611565b93505060406129b887828801612564565b925050606085013567ffffffffffffffff8111156129d9576129d86123fe565b5b6129e587828801612944565b91505092959194509250565b5f8060408385031215612a0757612a066123fa565b5b5f612a1485828601612611565b9250506020612a2585828601612611565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f6002820490506001821680612a7357607f821691505b602082108103612a8657612a85612a2f565b5b50919050565b7f4552433732313a20617070726f76616c20746f2063757272656e74206f776e655f8201527f7200000000000000000000000000000000000000000000000000000000000000602082015250565b5f612ae66021836124bf565b9150612af182612a8c565b604082019050919050565b5f6020820190508181035f830152612b1381612ada565b9050919050565b7f4552433732313a20617070726f76652063616c6c6572206973206e6f7420746f5f8201527f6b656e206f776e6572206f7220617070726f76656420666f7220616c6c000000602082015250565b5f612b74603d836124bf565b9150612b7f82612b1a565b604082019050919050565b5f6020820190508181035f830152612ba181612b68565b9050919050565b7f4552433732313a2063616c6c6572206973206e6f7420746f6b656e206f776e655f8201527f72206f7220617070726f76656400000000000000000000000000000000000000602082015250565b5f612c02602d836124bf565b9150612c0d82612ba8565b604082019050919050565b5f6020820190508181035f830152612c2f81612bf6565b9050919050565b7f455243373231456e756d657261626c653a206f776e657220696e646578206f755f8201527f74206f6620626f756e6473000000000000000000000000000000000000000000602082015250565b5f612c90602b836124bf565b9150612c9b82612c36565b604082019050919050565b5f6020820190508181035f830152612cbd81612c84565b9050919050565b7f455243373231456e756d657261626c653a20676c6f62616c20696e646578206f5f8201527f7574206f6620626f756e64730000000000000000000000000000000000000000602082015250565b5f612d1e602c836124bf565b9150612d2982612cc4565b604082019050919050565b5f6020820190508181035f830152612d4b81612d12565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b7f4552433732313a20696e76616c696420746f6b656e20494400000000000000005f82015250565b5f612db36018836124bf565b9150612dbe82612d7f565b602082019050919050565b5f6020820190508181035f830152612de081612da7565b9050919050565b7f4552433732313a2061646472657373207a65726f206973206e6f7420612076615f8201527f6c6964206f776e65720000000000000000000000000000000000000000000000602082015250565b5f612e416029836124bf565b9150612e4c82612de7565b604082019050919050565b5f6020820190508181035f830152612e6e81612e35565b9050919050565b7f43616c6c6572206973206e6f74206f776e6572206e6f7220617070726f7665645f82015250565b5f612ea96020836124bf565b9150612eb482612e75565b602082019050919050565b5f6020820190508181035f830152612ed681612e9d565b9050919050565b5f81905092915050565b5f612ef1826124b5565b612efb8185612edd565b9350612f0b8185602086016124cf565b80840191505092915050565b5f612f228285612ee7565b9150612f2e8284612ee7565b91508190509392505050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f20615f8201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b5f612f946026836124bf565b9150612f9f82612f3a565b604082019050919050565b5f6020820190508181035f830152612fc181612f88565b9050919050565b7f4552433732313a207472616e736665722066726f6d20696e636f7272656374205f8201527f6f776e6572000000000000000000000000000000000000000000000000000000602082015250565b5f6130226025836124bf565b915061302d82612fc8565b604082019050919050565b5f6020820190508181035f83015261304f81613016565b9050919050565b7f4552433732313a207472616e7366657220746f20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f6130b06024836124bf565b91506130bb82613056565b604082019050919050565b5f6020820190508181035f8301526130dd816130a4565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f6131186020836124bf565b9150613123826130e4565b602082019050919050565b5f6020820190508181035f8301526131458161310c565b9050919050565b5f60608201905061315f5f8301866125d3565b61316c60208301856125d3565b6131796040830184612663565b949350505050565b5f8151905061318f81612706565b92915050565b5f602082840312156131aa576131a96123fa565b5b5f6131b784828501613181565b91505092915050565b7f4552433732313a20617070726f766520746f2063616c6c6572000000000000005f82015250565b5f6131f46019836124bf565b91506131ff826131c0565b602082019050919050565b5f6020820190508181035f830152613221816131e8565b9050919050565b7f4552433732313a207472616e7366657220746f206e6f6e2045524337323152655f8201527f63656976657220696d706c656d656e7465720000000000000000000000000000602082015250565b5f6132826032836124bf565b915061328d82613228565b604082019050919050565b5f6020820190508181035f8301526132af81613276565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b7f455243373231456e756d657261626c653a20636f6e73656375746976652074725f8201527f616e7366657273206e6f7420737570706f727465640000000000000000000000602082015250565b5f61333d6035836124bf565b9150613348826132e3565b604082019050919050565b5f6020820190508181035f83015261336a81613331565b9050919050565b5f81519050919050565b5f82825260208201905092915050565b5f61339582613371565b61339f818561337b565b93506133af8185602086016124cf565b6133b8816124dd565b840191505092915050565b5f6080820190506133d65f8301876125d3565b6133e360208301866125d3565b6133f06040830185612663565b8181036060830152613402818461338b565b905095945050505050565b5f8151905061341b8161242d565b92915050565b5f60208284031215613436576134356123fa565b5b5f6134438482850161340d565b91505092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f61348382612545565b915061348e83612545565b92508282039050818111156134a6576134a561344c565b5b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603160045260245ffd5b7f4552433732313a206d696e7420746f20746865207a65726f20616464726573735f82015250565b5f61350d6020836124bf565b9150613518826134d9565b602082019050919050565b5f6020820190508181035f83015261353a81613501565b9050919050565b7f4552433732313a20746f6b656e20616c7265616479206d696e746564000000005f82015250565b5f613575601c836124bf565b915061358082613541565b602082019050919050565b5f6020820190508181035f8301526135a281613569565b905091905056fea264697066735822122046dfb72c3c4410c6bcf47b9656b4d457a80007b4ea2bb93f44f17317bda1687664736f6c63430008190033000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000001531bc5de10618c511349f8007c08966e45ce8ef000000000000000000000000000000000000000000000000000000000000000a0000000000000000000000000000000000000000000000000000000000000007746172616e766400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000554524e5644000000000000000000000000000000000000000000000000000000