88528|ref.funchand|60|1233081064|php dot spamguard at pulseforce dot com|UEhQIGlzIGdyZWF0IGluIGhvdyBpdCBhbGxvd3MgeW91IHRvIHNlbmQgYSB2YXJpYWJsZS1sZW5ndGggYXJndW1lbnQgbGlzdCB0byBhIGZ1bmN0aW9uIGJ5IHVzaW5nIHRoZSBmdW5jXyogZnVuY3Rpb25zLiBIb3dldmVyLCB1bmZvcnR1bmF0ZWx5IChhbmQgdGhpcyBoYXMgYmVlbiBicm91Z2h0IHVwIG51bWVyb3VzIHRpbWUgaW4gUEhQIGJ1ZyByZXBvcnRzL2ZlYXR1cmUgcmVxdWVzdHMpLCBpdCBkb2Vzbid0IHN1cHBvcnQgcGFzc2luZyBhcmd1bWVudHMgYnkgcmVmZXJlbmNlIHdoaWNoIHdvdWxkIGhhdmUgZ3JlYXRseSBzaW1wbGlmaWVkIHByb2Nlc3NpbmcgbXVsdGlwbGUgdmFyaWFibGVzIGF0IG9uY2UgYnkgc2ltcGx5IGRvaW5nOiBzb21lZnVuY3Rpb24oJGEsICRiLCAkYykgYW5kIGhhdmluZyB0aGVtIHByb2Nlc3NlZCwgd2l0aG91dCBoYXZpbmcgdG8gZG8gYW55IGFkZGl0aW9uYWwgYXNzaWdubWVudC4KCkhvd2V2ZXIsIEkndmUgZGlzY292ZXJlZCBhIHdheSB0byBsZXZlcmFnZSBzZXZlcmFsIGZlYXR1cmVzIG9mIFBIUCBhbmQgY3JlYXRlZCBhIHZlcnkgZ29vZCBleGFtcGxlIHRoYXQgc2hvd3MgaG93IHlvdSBjYW4gcHJvY2VzcyBtdWx0aXBsZSB2YXJpYWJsZXMgaW4gb25lIGZlbGwgc3dvb3AhCgpUaGUgdXNhZ2UgaXMgKHdpdGggbXkgZXhhbXBsZSBmdW5jdGlvbi9jbGFzcyk6CiJsaXN0KCRhLCAkYiwgJGMsICRkLCAkZSkgPSBUZXh0RXNjYXBlOjplc2NhcGVfbXVsdGkoJGEsICRiLCAkYywgJGQsICRlKTsiCgpJZiBQSFAgaGFkIEFDVFVBTExZIGJlZW4gY2FwYWJsZSBvZiBwYXNzaW5nIHZhcmlhYmxlcyBieSByZWZlcmVuY2Ugd2hlbiB1c2luZyB2YXJpYWJsZS1sZW5ndGggYXJndW1lbnQgbGlzdHMsIHRoYXQgY291bGQgaGF2ZSBiZWVuIHJlZHVjZWQgdG86CiJUZXh0RXNjYXBlOjplc2NhcGVfbXVsdGkoJGEsICRiLCAkYywgJGQsICRlKTsiCgpJdCdzIGV4dHJlbWVseSBjbG9zZSB0aG91Z2gsIGJvdGggaW4gc2ltcGxpY2l0eSBhbmQgc3BlZWQuIEp1c3QgYmUgVkVSWSBzdXJlIHRvIEFMV0FZUyBoYXZlIHRoZSBTQU1FIE5VTUJFUiBBTkQgT1JERVIgb2YgYXJndW1lbnRzIG9uIGJvdGggc2lkZXMgb2YgdGhhdCBzdGF0ZW1lbnQuCgpUaGUgdXNlIG9mIGEgc3RhdGljIGNsYXNzIHdhcyBqdXN0IHRvIG1ha2UgdGhlIGNvZGUgY2xlYW5lciBhbmQgZWFzaWVyIHRvIGxvb2sgYXQuIFRoaXMgY2FuIGJlIGFwcGxpZWQgdG8gYW55IGZ1bmN0aW9ucyEKCk5vdywgb250byB0aGUgY29kZSwgZW5qb3kgdGhlIHNoZWVyIGJyaWxsaWFuY2UgYW5kIGVuam95IG1vZGlmeWluZyBtdWx0aXBsZSB2YXJpYWJsZXMgYXQgb25jZSBpbiBqdXN0IE9ORSBzdGF0ZW1lbnQhIDstKQoKPD9waHAKCmNsYXNzIFRleHRFc2NhcGUKewoJcHVibGljIHN0YXRpYyBmdW5jdGlvbiBlc2NhcGVfc3RyaW5nKCRzU3RyaW5nKQoJewoJCS8qIGNhbiBiZSBhbnl0aGluZywgdXNpbmcgaHRtbHNwZWNpYWxjaGFycygpIGluIHRoaXMgZXhhbXBsZSAqLwoJCXJldHVybiBodG1sc3BlY2lhbGNoYXJzKCRzU3RyaW5nKTsKCX0KCQoJcHVibGljIHN0YXRpYyBmdW5jdGlvbiBlc2NhcGVfbXVsdGkoKQoJewoJCS8qIGdldCBhbGwgdmFyaWFibGVzIHBhc3NlZCB0byB0aGUgZnVuY3Rpb24gKi8KCQkkYVZhcmlhYmxlcyA9IGZ1bmNfZ2V0X2FyZ3MoKTsKCQkKCQkvKiBsb29wIHRocm91Z2ggdGhlIGFycmF5LCBlc2NhcGluZyBlYWNoIHZhcmlhYmxlICovCgkJZm9yZWFjaCAoJGFWYXJpYWJsZXMgYXMgJGlLZXkgPT4gJHNWYWx1ZSkKCQl7CgkJCSRhVmFyaWFibGVzWyRpS2V5XSA9IFRleHRFc2NhcGU6OmVzY2FwZV9zdHJpbmcoJHNWYWx1ZSk7CgkJfQoJCQoJCS8qIHJldHVybiB0aGUgZXNjYXBlZCB2YWx1ZXMgKi8KCQlyZXR1cm4gJGFWYXJpYWJsZXM7Cgl9Cn0KCi8vIENyZWF0ZSB0ZXN0IHZhcmlhYmxlcwokYSA9ICJBPGJhciI7CiRiID0gIkI+YmFyIjsKJGMgPSAiQzxiYXIiOwokZCA9ICJEPmJhciI7CiRlID0gIkU8YmFyIjsKCi8vIFZhcmlhYmxlcyBCZWZvcmU6Ci8vIEFycmF5Ci8vICgKLy8JWzBdID0+IEE8YmFyCi8vCVsxXSA9PiBCPmJhcgovLwlbMl0gPT4gQzxiYXIKLy8JWzNdID0+IEQ+YmFyCi8vCVs0XSA9PiBFPGJhcgovLyApCnByaW50X3IoYXJyYXkoJGEsICRiLCAkYywgJGQsICRlKSk7CgovLyBQcm9jZXNzIGV2ZXJ5IHZhcmlhYmxlIGF0IG9uY2UsCi8vIHdlJ3JlIGV4cGxvaXRpbmcgYm90aCBob3cgbGlzdCgpIGFuZAovLyB2YXJpYWJsZS1sZW5ndGggYXJndW1lbnQgbGlzdHMgd29yawovLyB0byBtYWtlIHRoZSB1c2FnZSB0aGlzIHNtb290aCEgOy0pCmxpc3QoJGEsICRiLCAkYywgJGQsICRlKSA9IFRleHRFc2NhcGU6OmVzY2FwZV9tdWx0aSgkYSwgJGIsICRjLCAkZCwgJGUpOwoKLy8gVmFyaWFibGVzIEFmdGVyOgovLyBBcnJheQovLyAoCi8vCVswXSA9PiBBJmx0O2JhcgovLwlbMV0gPT4gQiZndDtiYXIKLy8JWzJdID0+IEMmbHQ7YmFyCi8vCVszXSA9PiBEJmd0O2JhcgovLwlbNF0gPT4gRSZsdDtiYXIKLy8gKQpwcmludF9yKGFycmF5KCRhLCAkYiwgJGMsICRkLCAkZSkpOwoKPz4KClRoYXQncyB0aGUgQ0xFQU4gTE9PS0lORyB2ZXJzaW9uIG9mIHRoZSBjb2RlLCB3aGljaCBpbGx1c3RyYXRlcyBleGFjdGx5IHdoYXQgaXMgSEFQUEVOSU5HLgoKSSBhbHNvIG1hZGUgYSBzcGVlZGZyZWFrIGVkaXRpb24gb2YgdGhlIGZ1bmN0aW9uLCBidXQgZGlkbid0IHdhbnQgdG8gcG9zdCBpdCBhcyB0aGUgbWFpbiBleGFtcGxlIHNpbmNlIGl0J3MgaGFyZGVyIHRvIHJlYWQuCgpCdXQgaXQncyBmYXN0ZXIsIG11Y2ggZmFzdGVyISBJdCBwYXNzZXMgYnkgcmVmZXJlbmNlIHdoZXJlIGl0IGNhbiBhbmQgbG9vcHMgaW4gYSBtb3JlIGVmZmljaWVudCB3YXkuCgpKdXN0IHJlcGxhY2UgdGhlIGFib3ZlIGZ1bmN0aW9uIHdpdGggdGhpcyBvbmUsIHRoZSBvdXRjb21lIGlzIHRoZSBzYW1lIGJ1dCB0aGUgc3BlZWQgaXMgYmV0dGVyOgoKPD9waHAKCmNsYXNzIFRleHRFc2NhcGUKewoJcHVibGljIHN0YXRpYyBmdW5jdGlvbiBlc2NhcGVfc3RyaW5nKCYkc1N0cmluZykgLy8gQ0hBTkdFRDogd2Ugbm93IHBhc3MgYnkgcmVmZXJlbmNlIHRvIHRoZSBhY3R1YWwgdGV4dCBwcm9jZXNzaW5nIGZ1bmN0aW9uCgl7CgkJLyogY2FuIGJlIGFueXRoaW5nLCB1c2luZyBodG1sc3BlY2lhbGNoYXJzKCkgaW4gdGhpcyBleGFtcGxlICovCgkJJHNTdHJpbmcgPSBodG1sc3BlY2lhbGNoYXJzKCRzU3RyaW5nKTsKCX0KCQoJcHVibGljIHN0YXRpYyBmdW5jdGlvbiBlc2NhcGVfbXVsdGkoKQoJewoJCS8qIGdldCBhbGwgdmFyaWFibGVzIHBhc3NlZCB0byB0aGUgZnVuY3Rpb24gKi8KCQkkYVZhcmlhYmxlcyA9IGZ1bmNfZ2V0X2FyZ3MoKTsKCQkKCQkvKiBsb29wIHRocm91Z2ggdGhlIGFycmF5LCBlc2NhcGluZyBlYWNoIHZhcmlhYmxlICovCgkJZm9yICgkaT0oY291bnQoJGFWYXJpYWJsZXMpLTEpOyAkaT49MDsgJGktLSkgLy8gQ0hBTkdFRDogYSBtb3JlIGVmZmljaWVudCBmb3ItbG9vcCBpcyB1c2VkIGluc3RlYWQgb2YgYSBmb3JlYWNoOyBhbmQgZm9yIGFueW9uZSB3b25kZXJpbmcgYWJvdXQgdGhlIGNvdW50ZXIgZGVjbGFyYXRpb24sIHRoaXMgaXMgYSBjb21tb24gb3B0aW1pemF0aW9uIHRyaWNrIHdoaWNoIG1ha2VzIGl0IHNvIHRoYXQgdGhlIHNpemUgb2YgdGhlIGFycmF5IG9ubHkgaGFzIHRvIGJlIGNoZWNrZWQgT05DRSwgYnkgaW5pdGlhbGl6aW5nIHRoZSBjb3VudGVyIHRvIHRoZSBpbmRleCBvZiB0aGUgbGFzdCBlbGVtZW50ICh3aGljaCBpcyBzaXplIG9mIGFycmF5IG1pbnVzIDEpIGFuZCB0aGVuIGl0ZXJhdGluZyBkb3dud2FyZHMgdW50aWwgd2UgcmVhY2ggMCAodGhlIGZpcnN0IGVsZW1lbnQpCgkJewoJCQlUZXh0RXNjYXBlOjplc2NhcGVfc3RyaW5nKCRhVmFyaWFibGVzWyRpXSk7IC8vIENIQU5HRUQ6IHRoaXMgaGFzIGJlZW4gY2hhbmdlZCB0byBtb2RpZnkgdGhlIHZhcmlhYmxlIGJ5IHJlZmVyZW5jZSBpbnN0ZWFkCgkJfQoJCQoJCS8qIHJldHVybiB0aGUgZXNjYXBlZCB2YWx1ZXMgKi8KCQlyZXR1cm4gJGFWYXJpYWJsZXM7Cgl9Cn0KCj8+CgpFbmpveSE=|3|2 52794|ref.funchand|38|1115891815|Michael T. McGrew|QW4gaW50ZXJlc3Rpbmcgd2F5IHRvIHVzZSBmdW5jdGlvbnMgaXMgYnkgcHV0dGluZyBvdGhlciB0aGluZ3MgdGhhbiBQSFAgaW4gdGhlbSwgaS5lLiBIVE1MIENTUy4gVGhpcyBjYW4gYmUgdXNlZnVsIGlmIHlvdSB3aWxsIGJlIHVzaW5nIGEgZm9ybWF0IGZvciBtYW55IHBhZ2VzLiBZZXMsIHRoZSBpbmNsdWRlIGZ1bmN0aW9uIGNhbiBiZSB1c2VkIGFsc28sIGJ1dCBieSBkZWZpbmluZyB0aGVtIGluIGZ1bmN0aW9ucyBjYW4gbWFrZSB0aGVtIG1vcmUgcG9ydGFibGUgaW4gYSB3YXkgYW5kIGtlZXAgeW91IGZyb20gaGF2aW5nIHRvIG1ha2UgbWFueSBpbmNsdWRlIGZpbGVzLiBZb3UgY291bGQgdXNlIGluY2x1ZGUoKSB3aGVuIG9uZSB3aWxsIGJlIHB1dHRpbmcgYmlnIHBvcnRpb25zIG9mIFBIUCwgSFRNTCwgYW5kL29yIENTUyBhbmQgd2lsbCBiZSB1c2luZyB0aGVtIGluIG1hbnkgcGFnZXMuIFRoZW4geW91IGNvdWxkIHVzZSBQSFAsIEhUTUwsIGFuZC9vciBDU1MgaW4gYSBmdW5jdGlvbiB3aGVuIGl0IGlzIHNtYWxsZXIgcG9ydGlvbnMgb2YgY29kZSBhbmQgb25seSB3YW50IGl0IHRvIGJlIG9uIGEgZmV3IHBhZ2VzLgoKSSBoYXZlIGJlZW4gdXNpbmcgaW5jbHVkZSgpIGZvciBIVE1MIGFuZCBDU1MgaW4gbXkgZWFybHkgZGF5cyBvZiBQSFAgY29kaW5nLCBidXQgSSB3aWxsIGJlIHVzaW5nIGZ1bmN0aW9ucyBmb3IgdGhhdCBhIGxvdCBtb3JlIG5vdy4KCjw/cGhwIGZ1bmN0aW9uIGEoKSB7ICA/Pgo8c3R5bGUgdHlwZT0idGV4dC9jc3MiPgp0YWJsZSB7IApib3JkZXI6IDFweCBkYXNoZWQgYmxhY2s7IApiYWNrZ3JvdW5kOiAjOTVFQUZFOwp0ZXh0LWFsaWduOmxlZnQ7CndpZHRoOjYxMHB4Owp9Ci5saW5rYmFyIHsKZm9udC1mYW1pbHk6c2Fucy1zZXJpZjsKbGluZS1oZWlnaHQ6NDBweDsKdG9wOjFweDsKdGV4dC1hbGlnbjpjZW50ZXI7CndpZHRoOjIwMHB4OwpoZWlnaHQ6MTBweDsKfQo8L3N0eWxlPgo8P3BocCB9ICA/PgoKTm93IGRvaW5nOgo8P3BocCBhKCk7ID8+CndpbGwgcmV0dXJuIGFsbCBvZiB0aGUgQ1NTIGp1c3QgYXMgaWYgeW91IGhhZCB3cm90ZSBpdCBvbiB0aGUgYWN0dWFsIHBhZ2UsIG9yIHVzZWQgaW5jbHVkZSgpIC4gVGhlIHNhbWUgdGhpbmcgZ29lcyBmb3IgSFRNTCBjb2RlIGluc2lkZSBhIGZ1bmN0aW9uLiBUaGUgcG9zc2liaWxpdGllcyBhcmUgZW5kbGVzcy4uLg==|3|5 49512|ref.funchand|65|1107084538|michael dot bommarito at gmail dot com|SSd2ZSBkZXZlbG9wZWQgYW4gZWFzeS10by11c2UgaGFjayB1c2luZyB0aGVzZSBmdW5jdGlvbnMgdG8gZW11bGF0ZSBvdmVybG9hZGVkIGZ1bmN0aW9ucy4gIEl0J3MgZXNwZWNpYWxseSBoYW5keSBmb3IgY29uc3RydWN0b3JzIGFuZC9vciBDKysgc3R5bGUgdGVtcGxhdGluZy4KCkhlcmUncyBhIGxpdHRsZSBleGFtcGxlIHRvIGdldCB5b3UgZ29pbmcuICBUaGlzIGRvZXMgdGhlIHRyaWNrIGZvciBtb3N0IGNpcmN1bXN0YW5jZXMsIGFuZCBpZiB5b3UgbmVlZCBtb3JlIGludGVsbGlnZW50IHBhcnNpbmcsIGl0J3Mgbm90IHRvbyBoYXJkIHRvIGltcGxlbWVudCB3aXRoIHJlZ2V4IG9yIGEgbW9yZSBzdWl0YWJsZSBjbGFzc2lmaWNhdGlvbiBzY2hlbWUuCgpOLkIuIE5vdGUgdGhlIGxhY2sgb2Ygd2hpdGVzcGFjZSBiZXR3ZWVuIHZhcmlhYmxlIHR5cGVzIGluIGNhc2Ugc3RyaW5ncy4KCmNsYXNzIE1hdHJpeCB7CgouLi4KCmZ1bmN0aW9uIE1hdHJpeCgpIHsKICAkYXJncyA9IGZ1bmNfZ2V0X2FyZ3MoKTsKICAkYXJnbWF0Y2ggPSBpbXBsb2RlKCIsIiwgYXJyYXlfbWFwKCdnZXR0eXBlJywgJGFyZ3MpKTsKCiAgc3dpdGNoKCAkYXJnbWF0Y2ggKSB7CiAgICBjYXNlICdpbnRlZ2VyLGludGVnZXInOiAKICAgICAgLy9pbml0aWFsaXplIG0geCBuIG1hdHJpeAogICAgICBicmVhazsKCiAgICBjYXNlICdpbnRlZ2VyLGludGVnZXIsaW50ZWdlcic6IAogICAgICAvL2luaXRpYWxpemUgbSB4IG4gbWF0cml4IHdpdGggY29uc3RhbnQgYwogICAgICBicmVhazsKCiAgICBjYXNlICdpbnRlZ2VyLGludGVnZXIsZmxvYXQnOiAKICAgICAgLy9pbml0aWFsaXplIG0geCBuIG1hdHJpeCB3aXRoIGNvbnN0YW50IGMKICAgICAgYnJlYWs7ICAgIAoKICAgIGNhc2UgJ2FycmF5JzoKICAgICAgLy9pbml0aWFsaXplIGZyb20gYXJyYXkgKDJELi4uLikKICAgICAgYnJlYWs7CgogICAgY2FzZSAnYXJyYXksaW50ZWdlcic6CiAgICAgIC8vaW50aWFsaXplIGZyb20gYXJyYXkgKDFEIHBhY2tlZCB3aXRoIG0gcm93cykKICAgICAgYnJlYWs7CiAgICAKICAgIGRlZmF1bHQ6CiAgICAgIC8vKHZvaWQpIG92ZXJsb2FkPwogICAgICAvL2Vycm9yIGhhbmRsaW5nPwogICAgICBicmVhazsKICB9Cn0KCi4uLgoKfQ==|11|6 33187|ref.funchand|33|1055924551|php-note-2003-june-18 at ryandesign dot com|WGF2aWVyJ3MgZXhhbXBsZSBpcyByYXRoZXIgY29tcGxpY2F0ZWQsIGFuZCBoaXMgdGFzayB3b3VsZCBiZSBtdWNoIG1vcmUgc2ltcGx5IGFjY29tcGxpc2hlZCBieSB1c2luZyBjbGFzc2VzLiBEZWZpbmUgYSBiYXNlIGNsYXNzIHRvIGRvIHRoZSBiYXNpYyBmdW5jdGlvbnMgb3BlbiwgZHVtcCwgYW5kIGNsb3NlLCBhbmQgY3JlYXRlIGV4dGVuc2lvbiBjbGFzc2VzIHRvIG92ZXJyaWRlIHdoYXRldmVyIGJlaGF2aW9yLgoKY2xhc3MgZm9vIHsKICBmdW5jdGlvbiBvcGVuKCkgewogICAgLy8gRGVmYXVsdCBmdW5jdGlvbmFsaXR5IGZvciBvcGVuKCkKICB9CiAgZnVuY3Rpb24gZHVtcCgpIHsKICAgIC8vIERlZmF1bHQgZnVuY3Rpb25hbGl0eSBmb3IgZHVtcCgpCiAgfQogIGZ1bmN0aW9uIGNsb3NlKCkgewogICAgLy8gRGVmYXVsdCBmdW5jdGlvbmFsaXR5IGZvciBjbG9zZSgpCiAgfQp9CgpjbGFzcyBiYXIgZXh0ZW5kcyBmb28gewogIGZ1bmN0aW9uIG9wZW4oKSB7CiAgICAvLyBPdmVycmlkZSBmdW5jdGlvbmFsaXR5IG9mIG9wZW4oKQogIH0KICAvLyBkdW1wKCkgYW5kIGNsb3NlKCkgcmVtYWluIGFzIGluIGNsYXNzIGZvbwp9|2|4 24639|ref.funchand|40|1030114143|xmontero at dsitelecom dot com|WW91IGNhbiBkbyBzb21lIGtpbmQgb2Ygb3ZlcmxvYWRpbmcgZnVuY3Rpb25zIGluIFBIUCB1c2luZyAiZnVuY3Rpb25fZXhpc3RzIi4gCgpMZXQncyBzdXBwb3NlIHlvdSB3YW50IGEgc2NyaXB0IHRvIGNhbGwgcGx1Z2lucyB0aGF0IGFyZSBwaHAgZmlsZXMgYW5kIHlvdSB3YW50IHRoZSBwbHVnaW5zIHRvICJvdmVycmlkZSIgYmVoYXZpb3VycyB0aGF0IGlmIG5vdCBvdmVycmlkZW4gYXJlIHVzZWQgYnkgZGVmYXVsdC4KCllvdSBtaWdodCBmb3IgZXhhbXBsZSB3cml0ZSBhICJteVNRTCB0YWJsZSB2aWV3ZXIiIHdoaWNoIGRpc3BsYXlzIGEgdGFibGUgYW5kIGl0ICJvcGVucyBhIHRhYmxlIiwgImR1bXBzIHRoZSBoZWFkZXIiLCAiZHVtcHMgcm93LWJ5LXJvdyIgYW5kIHRoZW4gImNsb3NlcyB0aGUgdGFibGUiLgoKTGV0J3Mgc3VwcG9zZSB5b3Ugd2FudCBhIHBsdWdpbiBmb3IgIlN0b2NrcyIgd2hpY2ggcHJpbnRzIG5lZ2F0aXZlIHN0b2NrcyBpbiByZWQsIHNvIHlvdSB3YW50IHRvIG92ZXJyaWRlIHRoZSAiZHVtcGluZyByb3ctYnktcm93IiB0byBkbyB0aGF0IGJlaGF2aW91ci4gSW5zdGVhZCB5b3UgZG8gbm90IHdhbnQgdG8gaGF2ZSBhbGwgdGhlICJkZWZhdWx0IGJlaGF2aW91ciIgcmVwZWF0ZWQgaW4gdGhlIHBsdWdpbi4KCllvdSBtYXkgdGhlbiBkbyB0aGUgZm9sbG93aW5nOgoKMSkgRGVmaW5lIGEgZGVmYXVsdCBwbHVnaW4gKGV4OiAiZGVmYXVsdC5waHAiCgoyKSBXcml0ZSBhbGwgeW91ciBmdW5jdGlvbnMgaW4gZGVmYXVsdC5waHAgdG8gb3BlbiwgZHVtcCBhbmQgY2xvc2UsIGJ1dCBhZGQgdGhlbSBhIHN1ZmZpeDoKCm9wZW5fdGFibGVfZGVmYXVsdCgpCmR1bXBfaGVhZGVyX2RlZmF1bHQoKQpkdW1wX3Jvd19kZWZhdWx0KCkKY2xvc2VfdGFibGVfZGVmYXVsdCgpCgozKSBDYWxsIHlvdXIgZnVuY3Rpb25zIHdpdGggYSB3cmFwcGVyOiBJbnNldGFkIG9mIHRoaXM6Cm9wZW5fdGFibGUoKSBvciBvcGVuX3RhYmxlX2RlZmF1bHQoKSB3cml0ZSB0aGlzOgoKcGx1Z2luY2FsbCgib3Blbl90YWJsZSIpOwoKNCkgVGhlbiB3cml0ZSBhIGZ1bmN0aW9uIGNhbGxlZCBwbHVnaW5jYWxsIHdoaWNoIHVzZXMgZnVuY3Rpb25fZXhpc3RzKCkgdG8gc2VlIGlmIHlvdSBjYWxsIG9uZSBvciB0aGUgb3RoZXIgZnVuY3Rpb246CgpmdW5jdGlvbiBwbHVnaW5jYWxsKCRkZXNpcmVkX2Z1bmN0aW9uX25hbWUpCnsKCmlmKCBmdW5jdGlvbl9leGlzdHMoICRkZXNpcmVkX2Z1bmN0aW9uX25hbWUpKQp7CiAgICAvL0NhbGwgdGhlIHBsdWdpbgogICAgLy9Ob3RlIHRoZSAkIGJlZm9yZSB0aGUgbmFtZQogICAgJGRlc2lyZWRfZnVuY3Rpb25fbmFtZSgpCn0KZWxzZQp7CiAgJGRlc2lyZWRfZnVuY3Rpb25fbmFtZSA9ICRkZXNpcmVkX2Z1bmN0aW9uX25hbWUgLiAiX2RlZmF1bHQiOwogIGlmKCBmdW5jdGlvbl9leGlzdHMoJGRlc2lyZWRfZnVuY3Rpb25fbmFtZSkpCiAgewogICAgICAvL0NhbGwgdGhlIGRlZmF1bHQKICAgICAgLy9Ob3RlIHRoZSAkIGJlZm9yZSB0aGUgbmFtZQogICAgICAkZGVzaXJlZF9mdW5jdGlvbl9uYW1lKCkKICB9CiAgZWxzZQogIHsKICAgICAgLy8gTm9yIHRoZSBwbHVnaW4gbm9yIHRoZSBkZWZhdWx0IHdlcmUgZGVmaW5lZAogIH0KfQoKU28sIG5vdywgaWYgdGhlIHJlcXVpcmVfb25jZShwbHVnaW4ucGhwKSBjb250YWlucyBhIGZ1bmN0aW9uIGNhbGxlZCAib3Blbl90YWJsZSgpIiwgaXQgd2lsbCBiZSB1c2VkLiBJbnN0YWVkLCAib3Blbl90YWJsZV9kZWZhdWx0KCkiIHdpbGwgYmUgdXNlZC4KCkl0J3Mgbm90IGxpa2Ugb3ZlcmxvYWRpbmcgZnVuY3Rpb25zLCBidXQgaXQgaXMgdmVyeSB1c2VmdWwgdG8gd3JpdGUgc2NyaXB0cyBhbXBsaWFibGUgYnkgb3RoZXIgcHJvZ3JhbW1lcnM6IElmIHRoZXkgd3JpdGUgYSBmdW5jdGlvbiwgaXQgaXMgdXNlZCwgaWYgbm90LCB0aGUgZGVmYXVsdCBpcyB1c2VkLgoKU2VlIHlhIQpYYXZpZXIgTW9udGVyby4=|2|3