608060405234801561000f575f80fd5b506040516140d43803806140d483398181016040528101906100319190610162565b6040518060400160405280600c81526020017f446576436f686f72744e465400000000000000000000000000000000000000008152506040518060400160405280600581526020017f44434e4654000000000000000000000000000000000000000000000000000000815250815f90816100ab91906103c7565b5080600190816100bb91906103c7565b5050508060065f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050610496565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61013182610108565b9050919050565b61014181610127565b811461014b575f80fd5b50565b5f8151905061015c81610138565b92915050565b5f6020828403121561017757610176610104565b5b5f6101848482850161014e565b91505092915050565b5f81519050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168061020857607f821691505b60208210810361021b5761021a6101c4565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f6008830261027d7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82610242565b6102878683610242565b95508019841693508086168417925050509392505050565b5f819050919050565b5f819050919050565b5f6102cb6102c66102c18461029f565b6102a8565b61029f565b9050919050565b5f819050919050565b6102e4836102b1565b6102f86102f0826102d2565b84845461024e565b825550505050565b5f90565b61030c610300565b6103178184846102db565b505050565b5b8181101561033a5761032f5f82610304565b60018101905061031d565b5050565b601f82111561037f5761035081610221565b61035984610233565b81016020851015610368578190505b61037c61037485610233565b83018261031c565b50505b505050565b5f82821c905092915050565b5f61039f5f1984600802610384565b1980831691505092915050565b5f6103b78383610390565b9150826002028217905092915050565b6103d08261018d565b67ffffffffffffffff8111156103e9576103e8610197565b5b6103f382546101f1565b6103fe82828561033e565b5f60209050601f83116001811461042f575f841561041d578287015190505b61042785826103ac565b86555061048e565b601f19841661043d86610221565b5f5b828110156104645784890151825560018201915060208501945060208101905061043f565b86831015610481578489015161047d601f891682610390565b8355505b6001600288020188555050505b505050505050565b613c31806104a35f395ff3fe608060405234801561000f575f80fd5b50600436106100fe575f3560e01c806370a0823111610095578063aeade0e611610064578063aeade0e6146102ce578063b88d4fde146102ec578063c87b56dd14610308578063e985e9c514610338576100fe565b806370a082311461023457806394c574ee1461026457806395d89b4114610294578063a22cb465146102b2576100fe565b806323b872dd116100d157806323b872dd1461019c5780633c3eb380146101b857806342842e0e146101e85780636352211e14610204576100fe565b806301ffc9a71461010257806306fdde0314610132578063081812fc14610150578063095ea7b314610180575b5f80fd5b61011c600480360381019061011791906121ac565b610368565b60405161012991906121f1565b60405180910390f35b61013a610449565b604051610147919061227a565b60405180910390f35b61016a600480360381019061016591906122cd565b6104d8565b6040516101779190612337565b60405180910390f35b61019a6004803603810190610195919061237a565b6104f3565b005b6101b660048036038101906101b191906123b8565b610509565b005b6101d260048036038101906101cd9190612534565b610608565b6040516101df91906121f1565b60405180910390f35b61020260048036038101906101fd91906123b8565b61063d565b005b61021e600480360381019061021991906122cd565b61065c565b60405161022b9190612337565b60405180910390f35b61024e6004803603810190610249919061257b565b61066d565b60405161025b91906125b5565b60405180910390f35b61027e600480360381019061027991906129da565b610723565b60405161028b91906125b5565b60405180910390f35b61029c61095a565b6040516102a9919061227a565b60405180910390f35b6102cc60048036038101906102c79190612a4b565b6109ea565b005b6102d6610a00565b6040516102e39190612337565b60405180910390f35b61030660048036038101906103019190612a89565b610a25565b005b610322600480360381019061031d91906122cd565b610a4a565b60405161032f919061227a565b60405180910390f35b610352600480360381019061034d9190612b09565b610bb9565b60405161035f91906121f1565b60405180910390f35b5f7f80ac58cd000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916148061043257507f5b5e139f000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b80610442575061044182610c47565b5b9050919050565b60605f805461045790612b74565b80601f016020809104026020016040519081016040528092919081815260200182805461048390612b74565b80156104ce5780601f106104a5576101008083540402835291602001916104ce565b820191905f5260205f20905b8154815290600101906020018083116104b157829003601f168201915b5050505050905090565b5f6104e282610cb0565b506104ec82610d36565b9050919050565b6105058282610500610d6f565b610d76565b5050565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610579575f6040517f64a0ae920000000000000000000000000000000000000000000000000000000081526004016105709190612337565b60405180910390fd5b5f61058c8383610587610d6f565b610d88565b90508373ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614610602578382826040517f64283d7b0000000000000000000000000000000000000000000000000000000081526004016105f993929190612ba4565b60405180910390fd5b50505050565b6007818051602081018201805184825260208301602085012081835280955050505050505f915054906101000a900460ff1681565b61065783838360405180602001604052805f815250610a25565b505050565b5f61066682610cb0565b9050919050565b5f8073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036106de575f6040517f89c62b640000000000000000000000000000000000000000000000000000000081526004016106d59190612337565b60405180910390fd5b60035f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b5f60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a960e69e836040518263ffffffff1660e01b815260040161077e9190612e84565b5f6040518083038186803b158015610794575f80fd5b505afa9250505080156107a5575060015b6107e4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107db90612eee565b60405180910390fd5b5f6107f5835f015160400151610f93565b90505f61080182610fdb565b905060078114610846576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161083d90612f56565b60405180910390fd5b5f610857855f015160400151611122565b90506007816040516108699190612fae565b90815260200160405180910390205f9054906101000a900460ff16156108c4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108bb9061300e565b60405180910390fd5b60016007826040516108d69190612fae565b90815260200160405180910390205f6101000a81548160ff0219169083151502179055505f61090b865f01516040015161116a565b905061091760086111b2565b5f61092260086111c6565b905061092e33826111d2565b8160095f8381526020019081526020015f20908161094c91906131c9565b508095505050505050919050565b60606001805461096990612b74565b80601f016020809104026020016040519081016040528092919081815260200182805461099590612b74565b80156109e05780601f106109b7576101008083540402835291602001916109e0565b820191905f5260205f20905b8154815290600101906020018083116109c357829003601f168201915b5050505050905090565b6109fc6109f5610d6f565b83836111ef565b5050565b60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b610a30848484610509565b610a44610a3b610d6f565b85858585611358565b50505050565b6060610a5582611504565b610a94576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a8b90613308565b60405180910390fd5b5f60095f8481526020019081526020015f208054610ab190612b74565b80601f0160208091040260200160405190810160405280929190818152602001828054610add90612b74565b8015610b285780601f10610aff57610100808354040283529160200191610b28565b820191905f5260205f20905b815481529060010190602001808311610b0b57829003601f168201915b505050505090505f81604051602001610b419190613612565b60405160208183030381529060405290505f610b8d610b5f86611544565b610b688461160e565b604051602001610b7992919061379f565b60405160208183030381529060405261160e565b905080604051602001610ba0919061382d565b6040516020818303038152906040529350505050919050565b5f60055f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16905092915050565b5f7f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b5f80610cbb8361163b565b90505f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610d2d57826040517f7e273289000000000000000000000000000000000000000000000000000000008152600401610d2491906125b5565b60405180910390fd5b80915050919050565b5f60045f8381526020019081526020015f205f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b5f33905090565b610d838383836001611674565b505050565b5f80610d938461163b565b90505f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614610dd457610dd3818486611833565b5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614610e5f57610e135f855f80611674565b600160035f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825403925050819055505b5f73ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614610ede57600160035f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825401925050819055505b8460025f8681526020019081526020015f205f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550838573ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4809150509392505050565b6060610fd4826040518060400160405280600681526020017f226964223a2200000000000000000000000000000000000000000000000000008152506118f6565b9050919050565b5f808290505f805b825181101561111757603060f81b8382815181106110045761100361384e565b5b602001015160f81c60f81b7effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916101580156110825750603960f81b8382815181106110525761105161384e565b5b602001015160f81c60f81b7effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff191611155b6110c1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110b8906138c5565b60405180910390fd5b60308382815181106110d6576110d561384e565b5b602001015160f81c60f81b60f81c60ff166110f19190613910565b600a836110fe9190613943565b6111089190613984565b91508080600101915050610fe3565b508092505050919050565b6060611163826040518060400160405280601181526020017f227472616e73616374696f6e6964223a220000000000000000000000000000008152506118f6565b9050919050565b60606111ab826040518060400160405280601081526020017f2255524c5f504152414d535f31223a22000000000000000000000000000000008152506118f6565b9050919050565b6001815f015f828254019250508190555050565b5f815f01549050919050565b6111eb828260405180602001604052805f815250611c90565b5050565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361125f57816040517f5b08ba180000000000000000000000000000000000000000000000000000000081526004016112569190612337565b60405180910390fd5b8060055f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c318360405161134b91906121f1565b60405180910390a3505050565b5f8373ffffffffffffffffffffffffffffffffffffffff163b11156114fd578273ffffffffffffffffffffffffffffffffffffffff1663150b7a02868685856040518563ffffffff1660e01b81526004016113b694939291906139ff565b6020604051808303815f875af19250505080156113f157506040513d601f19601f820116820180604052508101906113ee9190613a5d565b60015b611472573d805f811461141f576040519150601f19603f3d011682016040523d82523d5f602084013e611424565b606091505b505f81510361146a57836040517f64a0ae920000000000000000000000000000000000000000000000000000000081526004016114619190612337565b60405180910390fd5b805181602001fd5b63150b7a0260e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916146114fb57836040517f64a0ae920000000000000000000000000000000000000000000000000000000081526004016114f29190612337565b60405180910390fd5b505b5050505050565b5f8073ffffffffffffffffffffffffffffffffffffffff166115258361163b565b73ffffffffffffffffffffffffffffffffffffffff1614159050919050565b60605f600161155284611cb3565b0190505f8167ffffffffffffffff8111156115705761156f612410565b5b6040519080825280601f01601f1916602001820160405280156115a25781602001600182028036833780820191505090505b5090505f82602001820190505b600115611603578080600190039150507f3031323334353637383961626364656600000000000000000000000000000000600a86061a8153600a85816115f8576115f7613a88565b5b0494505f85036115af575b819350505050919050565b606061163482604051806060016040528060408152602001613bbc604091396001611e04565b9050919050565b5f60025f8381526020019081526020015f205f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b80806116ac57505f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b156117de575f6116bb84610cb0565b90505f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415801561172557508273ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b801561173857506117368184610bb9565b155b1561177a57826040517fa9fbf51f0000000000000000000000000000000000000000000000000000000081526004016117719190612337565b60405180910390fd5b81156117dc57838573ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45b505b8360045f8581526020019081526020015f205f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050505050565b61183e838383611f93565b6118f1575f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036118b257806040517f7e2732890000000000000000000000000000000000000000000000000000000081526004016118a991906125b5565b60405180910390fd5b81816040517f177e802f0000000000000000000000000000000000000000000000000000000081526004016118e8929190613ab5565b60405180910390fd5b505050565b60605f8390505f839050805182511015611945576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161193c90613b26565b60405180910390fd5b5f805f5b835185516119579190613910565b8111611a51575f600190505f5b8551811080156119715750815b15611a1d578581815181106119895761198861384e565b5b602001015160f81c60f81b7effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19168782856119c39190613984565b815181106119d4576119d361384e565b5b602001015160f81c60f81b7effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614611a0a575f91505b8080611a1590613b44565b915050611964565b508015611a3d57845182611a319190613984565b93506001925050611a51565b508080611a4990613b44565b915050611949565b5080611a715760405180602001604052805f815250945050505050611c8a565b5f8290505b845181108015611b6657507f2200000000000000000000000000000000000000000000000000000000000000858281518110611ab557611ab461384e565b5b602001015160f81c60f81b7effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916148015611b6457505f811480611b6357507f5c0000000000000000000000000000000000000000000000000000000000000085600183611b229190613910565b81518110611b3357611b3261384e565b5b602001015160f81c60f81b7effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614155b5b155b15611b7e578080611b7690613b44565b915050611a76565b828111611ba05760405180602001604052805f81525095505050505050611c8a565b5f8382611bad9190613910565b67ffffffffffffffff811115611bc657611bc5612410565b5b6040519080825280601f01601f191660200182016040528015611bf85781602001600182028036833780820191505090505b5090505f8490505b82811015611c7f57868181518110611c1b57611c1a61384e565b5b602001015160f81c60f81b828683611c339190613910565b81518110611c4457611c4361384e565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff191690815f1a9053508080600101915050611c00565b508096505050505050505b92915050565b611c9a8383612053565b611cae611ca5610d6f565b5f858585611358565b505050565b5f805f90507a184f03e93ff9f4daa797ed6e38ed64bf6a1f0100000000000000008310611d0f577a184f03e93ff9f4daa797ed6e38ed64bf6a1f0100000000000000008381611d0557611d04613a88565b5b0492506040810190505b6d04ee2d6d415b85acef81000000008310611d4c576d04ee2d6d415b85acef81000000008381611d4257611d41613a88565b5b0492506020810190505b662386f26fc100008310611d7b57662386f26fc100008381611d7157611d70613a88565b5b0492506010810190505b6305f5e1008310611da4576305f5e1008381611d9a57611d99613a88565b5b0492506008810190505b6127108310611dc9576127108381611dbf57611dbe613a88565b5b0492506004810190505b60648310611dec5760648381611de257611de1613a88565b5b0492506002810190505b600a8310611dfb576001810190505b80915050919050565b60605f845103611e245760405180602001604052805f8152509050611f8c565b5f82611e55576003600286516004611e3c9190613943565b611e469190613984565b611e509190613b8b565b611e7c565b600360028651611e659190613984565b611e6f9190613b8b565b6004611e7b9190613943565b5b90505f8167ffffffffffffffff811115611e9957611e98612410565b5b6040519080825280601f01601f191660200182016040528015611ecb5781602001600182028036833780820191505090505b509050600185016020820187885189016020810180515f82525b82841015611f40576003840193508351603f8160121c168701518653600186019550603f81600c1c168701518653600186019550603f8160061c168701518653600186019550603f8116870151865360018601955050611ee5565b8082528915611f805760038c510660018114611f635760028114611f7657611f7e565b603d6001870353603d6002870353611f7e565b603d60018703535b505b50505050505080925050505b9392505050565b5f8073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415801561204a57508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148061200b575061200a8484610bb9565b5b8061204957508273ffffffffffffffffffffffffffffffffffffffff1661203183610d36565b73ffffffffffffffffffffffffffffffffffffffff16145b5b90509392505050565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036120c3575f6040517f64a0ae920000000000000000000000000000000000000000000000000000000081526004016120ba9190612337565b60405180910390fd5b5f6120cf83835f610d88565b90505f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614612141575f6040517f73c6ac6e0000000000000000000000000000000000000000000000000000000081526004016121389190612337565b60405180910390fd5b505050565b5f604051905090565b5f80fd5b5f80fd5b5f7fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b61218b81612157565b8114612195575f80fd5b50565b5f813590506121a681612182565b92915050565b5f602082840312156121c1576121c061214f565b5b5f6121ce84828501612198565b91505092915050565b5f8115159050919050565b6121eb816121d7565b82525050565b5f6020820190506122045f8301846121e2565b92915050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f61224c8261220a565b6122568185612214565b9350612266818560208601612224565b61226f81612232565b840191505092915050565b5f6020820190508181035f8301526122928184612242565b905092915050565b5f819050919050565b6122ac8161229a565b81146122b6575f80fd5b50565b5f813590506122c7816122a3565b92915050565b5f602082840312156122e2576122e161214f565b5b5f6122ef848285016122b9565b91505092915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f612321826122f8565b9050919050565b61233181612317565b82525050565b5f60208201905061234a5f830184612328565b92915050565b61235981612317565b8114612363575f80fd5b50565b5f8135905061237481612350565b92915050565b5f80604083850312156123905761238f61214f565b5b5f61239d85828601612366565b92505060206123ae858286016122b9565b9150509250929050565b5f805f606084860312156123cf576123ce61214f565b5b5f6123dc86828701612366565b93505060206123ed86828701612366565b92505060406123fe868287016122b9565b9150509250925092565b5f80fd5b5f80fd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b61244682612232565b810181811067ffffffffffffffff8211171561246557612464612410565b5b80604052505050565b5f612477612146565b9050612483828261243d565b919050565b5f67ffffffffffffffff8211156124a2576124a1612410565b5b6124ab82612232565b9050602081019050919050565b828183375f83830152505050565b5f6124d86124d384612488565b61246e565b9050828152602081018484840111156124f4576124f361240c565b5b6124ff8482856124b8565b509392505050565b5f82601f83011261251b5761251a612408565b5b813561252b8482602086016124c6565b91505092915050565b5f602082840312156125495761254861214f565b5b5f82013567ffffffffffffffff81111561256657612565612153565b5b61257284828501612507565b91505092915050565b5f602082840312156125905761258f61214f565b5b5f61259d84828501612366565b91505092915050565b6125af8161229a565b82525050565b5f6020820190506125c85f8301846125a6565b92915050565b5f80fd5b5f80fd5b5f606082840312156125eb576125ea6125ce565b5b6125f5606061246e565b90505f82013567ffffffffffffffff811115612614576126136125d2565b5b61262084828501612507565b5f83015250602082013567ffffffffffffffff811115612643576126426125d2565b5b61264f84828501612507565b602083015250604082013567ffffffffffffffff811115612673576126726125d2565b5b61267f84828501612507565b60408301525092915050565b5f819050919050565b61269d8161268b565b81146126a7575f80fd5b50565b5f813590506126b881612694565b92915050565b5f63ffffffff82169050919050565b6126d6816126be565b81146126e0575f80fd5b50565b5f813590506126f1816126cd565b92915050565b5f6080828403121561270c5761270b6125ce565b5b612716608061246e565b90505f612725848285016126aa565b5f83015250602061273884828501612366565b602083015250604061274c848285016126e3565b6040830152506060612760848285016126e3565b60608301525092915050565b5f67ffffffffffffffff82111561278657612785612410565b5b602082029050602081019050919050565b5f80fd5b5f67ffffffffffffffff8211156127b5576127b4612410565b5b6127be82612232565b9050602081019050919050565b5f6127dd6127d88461279b565b61246e565b9050828152602081018484840111156127f9576127f861240c565b5b6128048482856124b8565b509392505050565b5f82601f8301126128205761281f612408565b5b81356128308482602086016127cb565b91505092915050565b5f61284b6128468461276c565b61246e565b9050808382526020820190506020840283018581111561286e5761286d612797565b5b835b818110156128b557803567ffffffffffffffff81111561289357612892612408565b5b8086016128a0898261280c565b85526020850194505050602081019050612870565b5050509392505050565b5f82601f8301126128d3576128d2612408565b5b81356128e3848260208601612839565b91505092915050565b5f60a08284031215612901576129006125ce565b5b61290b604061246e565b90505f61291a848285016126f7565b5f83015250608082013567ffffffffffffffff81111561293d5761293c6125d2565b5b612949848285016128bf565b60208301525092915050565b5f6040828403121561296a576129696125ce565b5b612974604061246e565b90505f82013567ffffffffffffffff811115612993576129926125d2565b5b61299f848285016125d6565b5f83015250602082013567ffffffffffffffff8111156129c2576129c16125d2565b5b6129ce848285016128ec565b60208301525092915050565b5f602082840312156129ef576129ee61214f565b5b5f82013567ffffffffffffffff811115612a0c57612a0b612153565b5b612a1884828501612955565b91505092915050565b612a2a816121d7565b8114612a34575f80fd5b50565b5f81359050612a4581612a21565b92915050565b5f8060408385031215612a6157612a6061214f565b5b5f612a6e85828601612366565b9250506020612a7f85828601612a37565b9150509250929050565b5f805f8060808587031215612aa157612aa061214f565b5b5f612aae87828801612366565b9450506020612abf87828801612366565b9350506040612ad0878288016122b9565b925050606085013567ffffffffffffffff811115612af157612af0612153565b5b612afd8782880161280c565b91505092959194509250565b5f8060408385031215612b1f57612b1e61214f565b5b5f612b2c85828601612366565b9250506020612b3d85828601612366565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f6002820490506001821680612b8b57607f821691505b602082108103612b9e57612b9d612b47565b5b50919050565b5f606082019050612bb75f830186612328565b612bc460208301856125a6565b612bd16040830184612328565b949350505050565b5f82825260208201905092915050565b5f612bf38261220a565b612bfd8185612bd9565b9350612c0d818560208601612224565b612c1681612232565b840191505092915050565b5f606083015f8301518482035f860152612c3b8282612be9565b91505060208301518482036020860152612c558282612be9565b91505060408301518482036040860152612c6f8282612be9565b9150508091505092915050565b612c858161268b565b82525050565b612c9481612317565b82525050565b612ca3816126be565b82525050565b608082015f820151612cbd5f850182612c7c565b506020820151612cd06020850182612c8b565b506040820151612ce36040850182612c9a565b506060820151612cf66060850182612c9a565b50505050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b5f81519050919050565b5f82825260208201905092915050565b5f612d4982612d25565b612d538185612d2f565b9350612d63818560208601612224565b612d6c81612232565b840191505092915050565b5f612d828383612d3f565b905092915050565b5f602082019050919050565b5f612da082612cfc565b612daa8185612d06565b935083602082028501612dbc85612d16565b805f5b85811015612df75784840389528151612dd88582612d77565b9450612de383612d8a565b925060208a01995050600181019050612dbf565b50829750879550505050505092915050565b5f60a083015f830151612e1e5f860182612ca9565b5060208301518482036080860152612e368282612d96565b9150508091505092915050565b5f604083015f8301518482035f860152612e5d8282612c21565b91505060208301518482036020860152612e778282612e09565b9150508091505092915050565b5f6020820190508181035f830152612e9c8184612e43565b905092915050565b7f50726f6f6620766572696669636174696f6e206661696c6564000000000000005f82015250565b5f612ed8601983612214565b9150612ee382612ea4565b602082019050919050565b5f6020820190508181035f830152612f0581612ecc565b9050919050565b7f436f75727365204944206973206e6f74203700000000000000000000000000005f82015250565b5f612f40601283612214565b9150612f4b82612f0c565b602082019050919050565b5f6020820190508181035f830152612f6d81612f34565b9050919050565b5f81905092915050565b5f612f888261220a565b612f928185612f74565b9350612fa2818560208601612224565b80840191505092915050565b5f612fb98284612f7e565b915081905092915050565b7f5472616e73616374696f6e20494420616c7265616479207573656400000000005f82015250565b5f612ff8601b83612214565b915061300382612fc4565b602082019050919050565b5f6020820190508181035f83015261302581612fec565b9050919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f600883026130887fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8261304d565b613092868361304d565b95508019841693508086168417925050509392505050565b5f819050919050565b5f6130cd6130c86130c38461229a565b6130aa565b61229a565b9050919050565b5f819050919050565b6130e6836130b3565b6130fa6130f2826130d4565b848454613059565b825550505050565b5f90565b61310e613102565b6131198184846130dd565b505050565b5b8181101561313c576131315f82613106565b60018101905061311f565b5050565b601f821115613181576131528161302c565b61315b8461303e565b8101602085101561316a578190505b61317e6131768561303e565b83018261311e565b50505b505050565b5f82821c905092915050565b5f6131a15f1984600802613186565b1980831691505092915050565b5f6131b98383613192565b9150826002028217905092915050565b6131d28261220a565b67ffffffffffffffff8111156131eb576131ea612410565b5b6131f58254612b74565b613200828285613140565b5f60209050601f831160018114613231575f841561321f578287015190505b61322985826131ae565b865550613290565b601f19841661323f8661302c565b5f5b8281101561326657848901518255600182019150602085019450602081019050613241565b86831015613283578489015161327f601f891682613192565b8355505b6001600288020188555050505b505050505050565b7f4552433732314d657461646174613a2055524920717565727920666f72206e6f5f8201527f6e6578697374656e7420746f6b656e0000000000000000000000000000000000602082015250565b5f6132f2602f83612214565b91506132fd82613298565b604082019050919050565b5f6020820190508181035f83015261331f816132e6565b9050919050565b7f3c73766720786d6c6e733d22687474703a2f2f7777772e77332e6f72672f32305f8201527f30302f737667222076696577426f783d2230203020353030203530302220737460208201527f796c653d226261636b67726f756e642d636f6c6f723a236638663866383b223e604082015250565b5f6133a6606083612f74565b91506133b182613326565b606082019050919050565b7f3c7465787420783d223530252220793d223330252220646f6d696e616e742d625f8201527f6173656c696e653d226d6964646c652220746578742d616e63686f723d226d6960208201527f64646c652220666f6e742d66616d696c793d22417269616c2220666f6e742d7360408201527f697a653d223234222066696c6c3d2223303030223e0000000000000000000000606082015250565b5f613462607583612f74565b915061346d826133bc565b607582019050919050565b7f31303078446576730000000000000000000000000000000000000000000000005f82015250565b5f6134ac600883612f74565b91506134b782613478565b600882019050919050565b7f3c2f746578743e000000000000000000000000000000000000000000000000005f82015250565b5f6134f6600783612f74565b9150613501826134c2565b600782019050919050565b7f3c7465787420783d223530252220793d223530252220646f6d696e616e742d625f8201527f6173656c696e653d226d6964646c652220746578742d616e63686f723d226d6960208201527f64646c652220666f6e742d66616d696c793d22417269616c2220666f6e742d7360408201527f697a653d223138222066696c6c3d2223353535223e0000000000000000000000606082015250565b5f6135b2607583612f74565b91506135bd8261350c565b607582019050919050565b7f3c2f7376673e00000000000000000000000000000000000000000000000000005f82015250565b5f6135fc600683612f74565b9150613607826135c8565b600682019050919050565b5f61361c8261339a565b915061362782613456565b9150613632826134a0565b915061363d826134ea565b9150613648826135a6565b91506136548284612f7e565b915061365f826134ea565b915061366a826135f0565b915081905092915050565b7f7b226e616d65223a22446576436f686f72744e465420230000000000000000005f82015250565b5f6136a9601783612f74565b91506136b482613675565b601782019050919050565b7f222c20226465736372697074696f6e223a22446576436f686f72744e465420665f8201527f6f72203130307844657673207061727469636970616e7473222c2022696d616760208201527f65223a22646174613a696d6167652f7376672b786d6c3b6261736536342c0000604082015250565b5f61373f605e83612f74565b915061374a826136bf565b605e82019050919050565b7f227d0000000000000000000000000000000000000000000000000000000000005f82015250565b5f613789600283612f74565b915061379482613755565b600282019050919050565b5f6137a98261369d565b91506137b58285612f7e565b91506137c082613733565b91506137cc8284612f7e565b91506137d78261377d565b91508190509392505050565b7f646174613a6170706c69636174696f6e2f6a736f6e3b6261736536342c0000005f82015250565b5f613817601d83612f74565b9150613822826137e3565b601d82019050919050565b5f6138378261380b565b91506138438284612f7e565b915081905092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b7f496e76616c6964206368617261637465720000000000000000000000000000005f82015250565b5f6138af601183612214565b91506138ba8261387b565b602082019050919050565b5f6020820190508181035f8301526138dc816138a3565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f61391a8261229a565b91506139258361229a565b925082820390508181111561393d5761393c6138e3565b5b92915050565b5f61394d8261229a565b91506139588361229a565b92508282026139668161229a565b9150828204841483151761397d5761397c6138e3565b5b5092915050565b5f61398e8261229a565b91506139998361229a565b92508282019050808211156139b1576139b06138e3565b5b92915050565b5f82825260208201905092915050565b5f6139d182612d25565b6139db81856139b7565b93506139eb818560208601612224565b6139f481612232565b840191505092915050565b5f608082019050613a125f830187612328565b613a1f6020830186612328565b613a2c60408301856125a6565b8181036060830152613a3e81846139c7565b905095945050505050565b5f81519050613a5781612182565b92915050565b5f60208284031215613a7257613a7161214f565b5b5f613a7f84828501613a49565b91505092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f604082019050613ac85f830185612328565b613ad560208301846125a6565b9392505050565b7f746172676574206973206c6f6e676572207468616e20646174610000000000005f82015250565b5f613b10601a83612214565b9150613b1b82613adc565b602082019050919050565b5f6020820190508181035f830152613b3d81613b04565b9050919050565b5f613b4e8261229a565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203613b8057613b7f6138e3565b5b600182019050919050565b5f613b958261229a565b9150613ba08361229a565b925082613bb057613baf613a88565b5b82820490509291505056fe4142434445464748494a4b4c4d4e4f505152535455565758595a6162636465666768696a6b6c6d6e6f707172737475767778797a303132333435363738392b2fa2646970667358221220d741de40ff07dddd4ae6d7052e0252e2a98917aca18e58ce72404767b1fd7f2064736f6c634300081a0033000000000000000000000000f90085f5fd1a3beb8678623409b3811ecec5f6a5