6080604052600560095f6101000a81548160ff021916908360ff1602179055503480156200002b575f80fd5b506040518060400160405280600781526020017f426561684e4654000000000000000000000000000000000000000000000000008152506040518060400160405280600481526020017f424e4654000000000000000000000000000000000000000000000000000000008152508160029081620000a99190620003b0565b508060039081620000bb9190620003b0565b50620000cc6200011960201b60201c565b5f81905550620000e16200011960201b60201c565b620000f16200011d60201b60201c565b101562000111576200011063fed8210f60e01b6200014460201b60201c565b5b505062000494565b5f90565b5f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff905090565b805f5260045ffd5b5f81519050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f6002820490506001821680620001c857607f821691505b602082108103620001de57620001dd62000183565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f60088302620002427fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8262000205565b6200024e868362000205565b95508019841693508086168417925050509392505050565b5f819050919050565b5f819050919050565b5f62000298620002926200028c8462000266565b6200026f565b62000266565b9050919050565b5f819050919050565b620002b38362000278565b620002cb620002c2826200029f565b84845462000211565b825550505050565b5f90565b620002e1620002d3565b620002ee818484620002a8565b505050565b5b818110156200031557620003095f82620002d7565b600181019050620002f4565b5050565b601f82111562000364576200032e81620001e4565b6200033984620001f6565b8101602085101562000349578190505b620003616200035885620001f6565b830182620002f3565b50505b505050565b5f82821c905092915050565b5f620003865f198460080262000369565b1980831691505092915050565b5f620003a0838362000375565b9150826002028217905092915050565b620003bb826200014c565b67ffffffffffffffff811115620003d757620003d662000156565b5b620003e38254620001b0565b620003f082828562000319565b5f60209050601f83116001811462000426575f841562000411578287015190505b6200041d858262000393565b8655506200048c565b601f1984166200043686620001e4565b5f5b828110156200045f5784890151825560018201915060208501945060208101905062000438565b868310156200047f57848901516200047b601f89168262000375565b8355505b6001600288020188555050505b505050505050565b611cf280620004a25f395ff3fe6080604052600436106100fd575f3560e01c806370a0823111610094578063b88d4fde11610063578063b88d4fde14610315578063c87b56dd14610331578063d5abeb011461036d578063da863ed614610397578063e985e9c5146103b3576100fd565b806370a082311461025d578063953637311461029957806395d89b41146102c3578063a22cb465146102ed576100fd565b806318160ddd116100d057806318160ddd146101bf57806323b872dd146101e957806342842e0e146102055780636352211e14610221576100fd565b806301ffc9a71461010157806306fdde031461013d578063081812fc14610167578063095ea7b3146101a3575b5f80fd5b34801561010c575f80fd5b50610127600480360381019061012291906114c8565b6103ef565b604051610134919061150d565b60405180910390f35b348015610148575f80fd5b50610151610480565b60405161015e91906115b0565b60405180910390f35b348015610172575f80fd5b5061018d60048036038101906101889190611603565b610510565b60405161019a919061166d565b60405180910390f35b6101bd60048036038101906101b891906116b0565b610569565b005b3480156101ca575f80fd5b506101d3610579565b6040516101e091906116fd565b60405180910390f35b61020360048036038101906101fe9190611716565b6105c4565b005b61021f600480360381019061021a9190611716565b61086f565b005b34801561022c575f80fd5b5061024760048036038101906102429190611603565b61088e565b604051610254919061166d565b60405180910390f35b348015610268575f80fd5b50610283600480360381019061027e9190611766565b61089f565b60405161029091906116fd565b60405180910390f35b3480156102a4575f80fd5b506102ad6108b0565b6040516102ba91906115b0565b60405180910390f35b3480156102ce575f80fd5b506102d76108ed565b6040516102e491906115b0565b60405180910390f35b3480156102f8575f80fd5b50610313600480360381019061030e91906117bb565b61097d565b005b61032f600480360381019061032a9190611925565b610a83565b005b34801561033c575f80fd5b5061035760048036038101906103529190611603565b610ad4565b60405161036491906115b0565b60405180910390f35b348015610378575f80fd5b50610381610b4e565b60405161038e91906119c0565b60405180910390f35b6103b160048036038101906103ac9190611a03565b610b60565b005b3480156103be575f80fd5b506103d960048036038101906103d49190611a2e565b610b70565b6040516103e6919061150d565b60405180910390f35b5f6301ffc9a760e01b827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916148061044957506380ac58cd60e01b827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b806104795750635b5e139f60e01b827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b9050919050565b60606002805461048f90611a99565b80601f01602080910402602001604051908101604052809291908181526020018280546104bb90611a99565b80156105065780601f106104dd57610100808354040283529160200191610506565b820191905f5260205f20905b8154815290600101906020018083116104e957829003601f168201915b5050505050905090565b5f61051a82610bfe565b61052f5761052e63cf4700e460e01b610ca1565b5b60065f8381526020019081526020015f205f015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b61057582826001610ca9565b5050565b5f610582610dd3565b6001545f54030390507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6105b4610dd7565b146105c157600854810190505b90565b5f6105ce82610dfe565b905073ffffffffffffffffffffffffffffffffffffffff8473ffffffffffffffffffffffffffffffffffffffff161693508373ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16146106435761064263a114810060e01b610ca1565b5b5f8061064e84610f0d565b91509150610664818761065f610f30565b610f37565b61068f5761067986610674610f30565b610b70565b61068e5761068d6359c896be60e01b610ca1565b5b5b61069c8686866001610f7a565b80156106a6575f82555b60055f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8154600190039190508190555060055f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f81546001019190508190555061076e8561074a888887610f80565b7c020000000000000000000000000000000000000000000000000000000017610fa7565b60045f8681526020019081526020015f20819055505f7c02000000000000000000000000000000000000000000000000000000008416036107ea575f6001850190505f60045f8381526020019081526020015f2054036107e8575f5481146107e7578360045f8381526020019081526020015f20819055505b5b505b5f73ffffffffffffffffffffffffffffffffffffffff8673ffffffffffffffffffffffffffffffffffffffff161690508481887fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef5f80a45f81036108595761085863ea553b3460e01b610ca1565b5b6108668787876001610fd1565b50505050505050565b61088983838360405180602001604052805f815250610a83565b505050565b5f61089882610dfe565b9050919050565b5f6108a982610fd7565b9050919050565b60606040518060400160405280601981526020017f414920496e73706972656420436f7563682044657369676e7300000000000000815250905090565b6060600380546108fc90611a99565b80601f016020809104026020016040519081016040528092919081815260200182805461092890611a99565b80156109735780601f1061094a57610100808354040283529160200191610973565b820191905f5260205f20905b81548152906001019060200180831161095657829003601f168201915b5050505050905090565b8060075f610989610f30565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff16610a32610f30565b73ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c3183604051610a77919061150d565b60405180910390a35050565b610a8e8484846105c4565b5f8373ffffffffffffffffffffffffffffffffffffffff163b14610ace57610ab88484848461106b565b610acd57610acc63d1a57ed660e01b610ca1565b5b5b50505050565b6060610adf82610bfe565b610af457610af363a14c4b5060e01b610ca1565b5b5f610afd611195565b90505f815103610b1b5760405180602001604052805f815250610b46565b80610b25846111b5565b604051602001610b36929190611b03565b6040516020818303038152906040525b915050919050565b60095f9054906101000a900460ff1681565b610b6d338260ff16611204565b50565b5f60075f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16905092915050565b5f81610c08610dd3565b11610c9b57610c15610dd7565b821115610c3d57610c3660045f8481526020019081526020015f2054611221565b9050610c9c565b5f54821015610c9a575f5b5f60045f8581526020019081526020015f205491508103610c745782610c6d90611b53565b9250610c48565b5f7c01000000000000000000000000000000000000000000000000000000008216149150505b5b5b919050565b805f5260045ffd5b5f610cb38361088e565b9050818015610cf557508073ffffffffffffffffffffffffffffffffffffffff16610cdc610f30565b73ffffffffffffffffffffffffffffffffffffffff1614155b15610d2157610d0b81610d06610f30565b610b70565b610d2057610d1f63cfb3b94260e01b610ca1565b5b5b8360065f8581526020019081526020015f205f015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550828473ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a450505050565b5f90565b5f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff905090565b5f81610e08610dd3565b11610ef75760045f8381526020019081526020015f20549050610e29610dd7565b821115610e4e57610e3981611221565b610f0857610e4d63df2d9b4260e01b610ca1565b5b5f8103610ecf575f548210610e6e57610e6d63df2d9b4260e01b610ca1565b5b5b60045f836001900393508381526020019081526020015f205490505f810315610eca575f7c010000000000000000000000000000000000000000000000000000000082160315610f0857610ec963df2d9b4260e01b610ca1565b5b610e6f565b5f7c010000000000000000000000000000000000000000000000000000000082160315610f08575b610f0763df2d9b4260e01b610ca1565b5b919050565b5f805f60065f8581526020019081526020015f2090508092508254915050915091565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff8316925073ffffffffffffffffffffffffffffffffffffffff821691508382148383141790509392505050565b50505050565b5f8060e883901c905060e8610f96868684611261565b62ffffff16901b9150509392505050565b5f73ffffffffffffffffffffffffffffffffffffffff83169250814260a01b178317905092915050565b50505050565b5f8073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361101c5761101b638f4eb60460e01b610ca1565b5b67ffffffffffffffff60055f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054169050919050565b5f8373ffffffffffffffffffffffffffffffffffffffff1663150b7a02611090610f30565b8786866040518563ffffffff1660e01b81526004016110b29493929190611bcc565b6020604051808303815f875af19250505080156110ed57506040513d601f19601f820116820180604052508101906110ea9190611c2a565b60015b611142573d805f811461111b576040519150601f19603f3d011682016040523d82523d5f602084013e611120565b606091505b505f81510361113a5761113963d1a57ed660e01b610ca1565b5b805181602001fd5b63150b7a0260e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614915050949350505050565b60606040518060a0016040528060678152602001611c5660679139905090565b606060a060405101806040526020810391505f825281835b6001156111ef57600184039350600a81066030018453600a81049050806111cd575b50828103602084039350808452505050919050565b61121d828260405180602001604052805f815250611269565b5050565b5f7c0100000000000000000000000000000000000000000000000000000000821673ffffffffffffffffffffffffffffffffffffffff8316119050919050565b5f9392505050565b61127383836112df565b5f8373ffffffffffffffffffffffffffffffffffffffff163b146112da575f805490505f83820390505b6112af5f86838060010194508661106b565b6112c4576112c363d1a57ed660e01b610ca1565b5b81811061129d57815f54146112d7575f80fd5b50505b505050565b5f805490505f82036112fc576112fb63b562e8dd60e01b610ca1565b5b6113085f848385610f7a565b611326836113175f865f610f80565b61132085611453565b17610fa7565b60045f8381526020019081526020015f2081905550600160406001901b17820260055f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825401925050819055505f73ffffffffffffffffffffffffffffffffffffffff8473ffffffffffffffffffffffffffffffffffffffff161690505f81036113d7576113d6632e07630060e01b610ca1565b5b5f83830190505f8390506113e9610dd7565b600183031115611404576114036381647e3a60e01b610ca1565b5b5b80835f7fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef5f80a481816001019150810361140557815f8190555050505061144e5f848385610fd1565b505050565b5f6001821460e11b9050919050565b5f604051905090565b5f80fd5b5f80fd5b5f7fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b6114a781611473565b81146114b1575f80fd5b50565b5f813590506114c28161149e565b92915050565b5f602082840312156114dd576114dc61146b565b5b5f6114ea848285016114b4565b91505092915050565b5f8115159050919050565b611507816114f3565b82525050565b5f6020820190506115205f8301846114fe565b92915050565b5f81519050919050565b5f82825260208201905092915050565b5f5b8381101561155d578082015181840152602081019050611542565b5f8484015250505050565b5f601f19601f8301169050919050565b5f61158282611526565b61158c8185611530565b935061159c818560208601611540565b6115a581611568565b840191505092915050565b5f6020820190508181035f8301526115c88184611578565b905092915050565b5f819050919050565b6115e2816115d0565b81146115ec575f80fd5b50565b5f813590506115fd816115d9565b92915050565b5f602082840312156116185761161761146b565b5b5f611625848285016115ef565b91505092915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6116578261162e565b9050919050565b6116678161164d565b82525050565b5f6020820190506116805f83018461165e565b92915050565b61168f8161164d565b8114611699575f80fd5b50565b5f813590506116aa81611686565b92915050565b5f80604083850312156116c6576116c561146b565b5b5f6116d38582860161169c565b92505060206116e4858286016115ef565b9150509250929050565b6116f7816115d0565b82525050565b5f6020820190506117105f8301846116ee565b92915050565b5f805f6060848603121561172d5761172c61146b565b5b5f61173a8682870161169c565b935050602061174b8682870161169c565b925050604061175c868287016115ef565b9150509250925092565b5f6020828403121561177b5761177a61146b565b5b5f6117888482850161169c565b91505092915050565b61179a816114f3565b81146117a4575f80fd5b50565b5f813590506117b581611791565b92915050565b5f80604083850312156117d1576117d061146b565b5b5f6117de8582860161169c565b92505060206117ef858286016117a7565b9150509250929050565b5f80fd5b5f80fd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b61183782611568565b810181811067ffffffffffffffff8211171561185657611855611801565b5b80604052505050565b5f611868611462565b9050611874828261182e565b919050565b5f67ffffffffffffffff82111561189357611892611801565b5b61189c82611568565b9050602081019050919050565b828183375f83830152505050565b5f6118c96118c484611879565b61185f565b9050828152602081018484840111156118e5576118e46117fd565b5b6118f08482856118a9565b509392505050565b5f82601f83011261190c5761190b6117f9565b5b813561191c8482602086016118b7565b91505092915050565b5f805f806080858703121561193d5761193c61146b565b5b5f61194a8782880161169c565b945050602061195b8782880161169c565b935050604061196c878288016115ef565b925050606085013567ffffffffffffffff81111561198d5761198c61146f565b5b611999878288016118f8565b91505092959194509250565b5f60ff82169050919050565b6119ba816119a5565b82525050565b5f6020820190506119d35f8301846119b1565b92915050565b6119e2816119a5565b81146119ec575f80fd5b50565b5f813590506119fd816119d9565b92915050565b5f60208284031215611a1857611a1761146b565b5b5f611a25848285016119ef565b91505092915050565b5f8060408385031215611a4457611a4361146b565b5b5f611a518582860161169c565b9250506020611a628582860161169c565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f6002820490506001821680611ab057607f821691505b602082108103611ac357611ac2611a6c565b5b50919050565b5f81905092915050565b5f611add82611526565b611ae78185611ac9565b9350611af7818560208601611540565b80840191505092915050565b5f611b0e8285611ad3565b9150611b1a8284611ad3565b91508190509392505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f611b5d826115d0565b91505f8203611b6f57611b6e611b26565b5b600182039050919050565b5f81519050919050565b5f82825260208201905092915050565b5f611b9e82611b7a565b611ba88185611b84565b9350611bb8818560208601611540565b611bc181611568565b840191505092915050565b5f608082019050611bdf5f83018761165e565b611bec602083018661165e565b611bf960408301856116ee565b8181036060830152611c0b8184611b94565b905095945050505050565b5f81519050611c248161149e565b92915050565b5f60208284031215611c3f57611c3e61146b565b5b5f611c4c84828501611c16565b9150509291505056fe68747470733a2f2f667563687369612d6c61626f75722d61726d6164696c6c6f2d34322e6d7970696e6174612e636c6f75642f697066732f516d56336d426a377650446d6f386b46385758756a4d6a70733635414242727563595275656779584d53574744472fa26469706673582212207c767c710b5a54d12c71275be8f4254077e5b0cd73c53ec72b9928ac6c9ff74b64736f6c63430008140033