PD9waHAKLyoqCiAqIFBsdWdpbiBOYW1lOiBIQ1cgUGljayBHcmFkZXIKICogRGVzY3JpcHRpb246IEF1dG8tZ3JhZGVzIHBlbmRpbmcgcGlja3MgbmlnaHRseSB2aWEgRVNQTiBBUEkuIEhhbmRsZXMgT3Zlci9VbmRlciwgU3ByZWFkLCBhbmQgTW9uZXlsaW5lIHBpY2tzLgogKiBWZXJzaW9uOiAxLjAKICovCgovLyDilIDilIAgU3BvcnQvbGVhZ3VlIHBhdGggbWFwcGluZyDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIAKZnVuY3Rpb24gaGN3X2dyYWRlX3Nwb3J0X3BhdGgoICRsZWFndWUgKSB7CiAgICAkbWFwID0gWwogICAgICAgICduZmwnICAgPT4gJ2Zvb3RiYWxsL25mbCcsCiAgICAgICAgJ25iYScgICA9PiAnYmFza2V0YmFsbC9uYmEnLAogICAgICAgICdtbGInICAgPT4gJ2Jhc2ViYWxsL21sYicsCiAgICAgICAgJ25obCcgICA9PiAnaG9ja2V5L25obCcsCiAgICAgICAgJ25jYWFmJyA9PiAnZm9vdGJhbGwvY29sbGVnZS1mb290YmFsbCcsCiAgICAgICAgJ25jYWFiJyA9PiAnYmFza2V0YmFsbC9tZW5zLWNvbGxlZ2UtYmFza2V0YmFsbCcsCiAgICAgICAgJ2NmbCcgICA9PiAnZm9vdGJhbGwvY2ZsJywKICAgICAgICAnd25iYScgID0+ICdiYXNrZXRiYWxsL3duYmEnLAogICAgXTsKICAgIHJldHVybiAkbWFwWyBzdHJ0b2xvd2VyKCB0cmltKCAkbGVhZ3VlICkgKSBdID8/IG51bGw7Cn0KCi8vIOKUgOKUgCBQYXJzZSBwaWNrIHNlbGVjdGlvbiBzdHJpbmcg4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSACi8vIFJldHVybnMgYXJyYXkgd2l0aCAndHlwZScgYW5kIHJlbGV2YW50IGZpZWxkcwpmdW5jdGlvbiBoY3dfZ3JhZGVfcGFyc2VfcGljayggJHNlbCApIHsKICAgICRzID0gdHJpbSggJHNlbCApOwoKICAgIC8vIE92ZXIvVW5kZXI6ICJUZWFtIE92ZXIgKDUuNSkiIG9yICJPdmVyIDUuNSIgb3IgIlVuZGVyICg4KSIKICAgIGlmICggcHJlZ19tYXRjaCggJy9cYihvdmVyfHVuZGVyKVxzKlwoPyhbXGQuXSspXCk/L2knLCAkcywgJG0gKSApIHsKICAgICAgICByZXR1cm4gWwogICAgICAgICAgICAndHlwZScgID0+IHN0cnRvbG93ZXIoICRtWzFdICksCiAgICAgICAgICAgICd0b3RhbCcgPT4gKGZsb2F0KSAkbVsyXSwKICAgICAgICBdOwogICAgfQoKICAgIC8vIFNwcmVhZDogIkNoaWNhZ28gQ3VicyAtMS41IiBvciAiUGF0cmlvdHMgKzMiCiAgICBpZiAoIHByZWdfbWF0Y2goICcvXiguKz8pXHMrKFsrLV1bXGQuXSspXHMqJC8nLCAkcywgJG0gKSApIHsKICAgICAgICByZXR1cm4gWwogICAgICAgICAgICAndHlwZScgICA9PiAnc3ByZWFkJywKICAgICAgICAgICAgJ3RlYW0nICAgPT4gdHJpbSggJG1bMV0gKSwKICAgICAgICAgICAgJ3NwcmVhZCcgPT4gKGZsb2F0KSAkbVsyXSwKICAgICAgICBdOwogICAgfQoKICAgIC8vIE1vbmV5bGluZToganVzdCBhIHRlYW0gbmFtZQogICAgcmV0dXJuIFsKICAgICAgICAndHlwZScgPT4gJ21vbmV5bGluZScsCiAgICAgICAgJ3RlYW0nID0+ICRzLAogICAgXTsKfQoKLy8g4pSA4pSAIEZ1enp5IHRlYW0gbmFtZSBtYXRjaCDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIAKZnVuY3Rpb24gaGN3X3RlYW1fbWF0Y2hlcyggJHBpY2tfdGVhbSwgJGVzcG5fdGVhbSApIHsKICAgICRhID0gc3RydG9sb3dlciggdHJpbSggJHBpY2tfdGVhbSApICk7CiAgICAkYiA9IHN0cnRvbG93ZXIoIHRyaW0oICRlc3BuX3RlYW0gKSApOwogICAgcmV0dXJuICggc3RycG9zKCAkYiwgJGEgKSAhPT0gZmFsc2UgfHwgc3RycG9zKCAkYSwgJGIgKSAhPT0gZmFsc2UgKTsKfQoKLy8g4pSA4pSAIENhbGN1bGF0ZSBncmFkZSDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIAKZnVuY3Rpb24gaGN3X2dyYWRlX2NhbGN1bGF0ZSggJHBhcnNlZCwgJGhvbWVfc2NvcmUsICRhd2F5X3Njb3JlLCAkaG9tZV90ZWFtLCAkYXdheV90ZWFtICkgewogICAgJHR5cGUgID0gJHBhcnNlZFsndHlwZSddOwogICAgJHRvdGFsID0gJGhvbWVfc2NvcmUgKyAkYXdheV9zY29yZTsKCiAgICBpZiAoICR0eXBlID09PSAnb3ZlcicgKSB7CiAgICAgICAgaWYgKCAkdG90YWwgPiAkcGFyc2VkWyd0b3RhbCddICkgcmV0dXJuICdXaW4nOwogICAgICAgIGlmICggJHRvdGFsIDwgJHBhcnNlZFsndG90YWwnXSApIHJldHVybiAnTG9zdCc7CiAgICAgICAgcmV0dXJuICdUaWUnOwogICAgfQoKICAgIGlmICggJHR5cGUgPT09ICd1bmRlcicgKSB7CiAgICAgICAgaWYgKCAkdG90YWwgPCAkcGFyc2VkWyd0b3RhbCddICkgcmV0dXJuICdXaW4nOwogICAgICAgIGlmICggJHRvdGFsID4gJHBhcnNlZFsndG90YWwnXSApIHJldHVybiAnTG9zdCc7CiAgICAgICAgcmV0dXJuICdUaWUnOwogICAgfQoKICAgIC8vIElkZW50aWZ5IHBpY2sgdGVhbQogICAgJHRlYW0gICAgICA9ICRwYXJzZWRbJ3RlYW0nXSA/PyAnJzsKICAgICRwaWNrX2hvbWUgPSBoY3dfdGVhbV9tYXRjaGVzKCAkdGVhbSwgJGhvbWVfdGVhbSApOwogICAgJHBpY2tfYXdheSA9IGhjd190ZWFtX21hdGNoZXMoICR0ZWFtLCAkYXdheV90ZWFtICk7CgogICAgaWYgKCAhICRwaWNrX2hvbWUgJiYgISAkcGlja19hd2F5ICkgcmV0dXJuIG51bGw7IC8vIENhbid0IGlkZW50aWZ5IHRlYW0KCiAgICBpZiAoICR0eXBlID09PSAnbW9uZXlsaW5lJyApIHsKICAgICAgICBpZiAoICRob21lX3Njb3JlID09PSAkYXdheV9zY29yZSApIHJldHVybiAnVGllJzsKICAgICAgICAkaG9tZV93aW5zID0gJGhvbWVfc2NvcmUgPiAkYXdheV9zY29yZTsKICAgICAgICBpZiAoICRwaWNrX2hvbWUgKSByZXR1cm4gJGhvbWVfd2lucyA/ICdXaW4nIDogJ0xvc3QnOwogICAgICAgIHJldHVybiAkaG9tZV93aW5zID8gJ0xvc3QnIDogJ1dpbic7CiAgICB9CgogICAgaWYgKCAkdHlwZSA9PT0gJ3NwcmVhZCcgKSB7CiAgICAgICAgJHNwcmVhZCA9ICRwYXJzZWRbJ3NwcmVhZCddOwogICAgICAgIGlmICggJHBpY2tfaG9tZSApIHsKICAgICAgICAgICAgJG1hcmdpbiA9ICggJGhvbWVfc2NvcmUgKyAkc3ByZWFkICkgLSAkYXdheV9zY29yZTsKICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAkbWFyZ2luID0gKCAkYXdheV9zY29yZSArICRzcHJlYWQgKSAtICRob21lX3Njb3JlOwogICAgICAgIH0KICAgICAgICBpZiAoICRtYXJnaW4gPiAwICkgcmV0dXJuICdXaW4nOwogICAgICAgIGlmICggJG1hcmdpbiA8IDAgKSByZXR1cm4gJ0xvc3QnOwogICAgICAgIHJldHVybiAnVGllJzsKICAgIH0KCiAgICByZXR1cm4gbnVsbDsKfQoKLy8g4pSA4pSAIE1haW4gZ3JhZGluZyBmdW5jdGlvbiDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIAKZnVuY3Rpb24gaGN3X3J1bl9ncmFkZV9jcm9uKCkgewogICAgZ2xvYmFsICR3cGRiOwoKICAgIC8vIEdldCBwZW5kaW5nIHBpY2tzIHdpdGggcGFzdCBnYW1lIGRhdGVzCiAgICAkcGVuZGluZyA9ICR3cGRiLT5nZXRfcmVzdWx0cygKICAgICAgICAiU0VMRUNUICogRlJPTSBjYXBwZXJfcGlja3MKICAgICAgICAgV0hFUkUgcGlja19zdGF0dXMgPSAncGVuZGluZycKICAgICAgICAgICBBTkQgZ2FtZV9kYXRlIDw9IERBVEVfU1VCKENVUkRBVEUoKSwgSU5URVJWQUwgMSBEQVkpCiAgICAgICAgICAgQU5EIGV2ZW50aWQgIT0gJycKICAgICAgICAgT1JERVIgQlkgZ2FtZV9kYXRlIEFTQwogICAgICAgICBMSU1JVCAxMDAiLAogICAgICAgIEFSUkFZX0EKICAgICk7CgogICAgaWYgKCAhICRwZW5kaW5nICkgewogICAgICAgIHVwZGF0ZV9vcHRpb24oICdoY3dfZ3JhZGVfbGFzdF9ydW4nLCBbCiAgICAgICAgICAgICd0aW1lJyAgID0+IGN1cnJlbnRfdGltZSggJ215c3FsJyApLAogICAgICAgICAgICAnZ3JhZGVkJyA9PiAwLAogICAgICAgICAgICAnc2tpcHBlZCc9PiAwLAogICAgICAgICAgICAnZXJyb3JzJyA9PiBbICdObyBwZW5kaW5nIHBpY2tzIHdpdGggcGFzdCBnYW1lIGRhdGVzIGZvdW5kLicgXSwKICAgICAgICBdICk7CiAgICAgICAgcmV0dXJuOwogICAgfQoKICAgICRncmFkZWQgID0gMDsKICAgICRza2lwcGVkID0gMDsKICAgICRlcnJvcnMgID0gW107CgogICAgZm9yZWFjaCAoICRwZW5kaW5nIGFzICRwaWNrICkgewogICAgICAgICRzcG9ydF9wYXRoID0gaGN3X2dyYWRlX3Nwb3J0X3BhdGgoICRwaWNrWydsZWFndWVuYW1lJ10gKTsKICAgICAgICBpZiAoICEgJHNwb3J0X3BhdGggKSB7CiAgICAgICAgICAgICRlcnJvcnNbXSA9ICJQaWNrICN7JHBpY2tbJ3BpY2tfaWQnXX06IFVua25vd24gbGVhZ3VlICd7JHBpY2tbJ2xlYWd1ZW5hbWUnXX0nIjsKICAgICAgICAgICAgJHNraXBwZWQrKzsKICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgfQoKICAgICAgICAvLyBFU1BOIHN1bW1hcnkgQVBJIGZvciB0aGlzIHNwZWNpZmljIGV2ZW50CiAgICAgICAgJHVybCAgPSAiaHR0cHM6Ly9zaXRlLmFwaS5lc3BuLmNvbS9hcGlzL3NpdGUvdjIvc3BvcnRzL3skc3BvcnRfcGF0aH0vc3VtbWFyeT9ldmVudD0iIC4gdXJsZW5jb2RlKCAkcGlja1snZXZlbnRpZCddICk7CiAgICAgICAgJHJlc3AgPSB3cF9yZW1vdGVfZ2V0KCAkdXJsLCBbICd0aW1lb3V0JyA9PiAxNSBdICk7CgogICAgICAgIGlmICggaXNfd3BfZXJyb3IoICRyZXNwICkgKSB7CiAgICAgICAgICAgICRlcnJvcnNbXSA9ICJQaWNrICN7JHBpY2tbJ3BpY2tfaWQnXX06IEVTUE4gQVBJIGVycm9yIOKAlCAiIC4gJHJlc3AtPmdldF9lcnJvcl9tZXNzYWdlKCk7CiAgICAgICAgICAgICRza2lwcGVkKys7CiAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgIH0KCiAgICAgICAgJGRhdGEgPSBqc29uX2RlY29kZSggd3BfcmVtb3RlX3JldHJpZXZlX2JvZHkoICRyZXNwICksIHRydWUgKTsKICAgICAgICAkY29tcCA9ICRkYXRhWydoZWFkZXInXVsnY29tcGV0aXRpb25zJ11bMF0gPz8gbnVsbDsKCiAgICAgICAgaWYgKCAhICRjb21wICkgewogICAgICAgICAgICAkZXJyb3JzW10gPSAiUGljayAjeyRwaWNrWydwaWNrX2lkJ119OiBObyBjb21wZXRpdGlvbiBkYXRhIGZyb20gRVNQTiAoZXZlbnRpZD17JHBpY2tbJ2V2ZW50aWQnXX0pIjsKICAgICAgICAgICAgJHNraXBwZWQrKzsKICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgfQoKICAgICAgICAvLyBNdXN0IGJlIGEgY29tcGxldGVkIGdhbWUKICAgICAgICBpZiAoIGVtcHR5KCAkY29tcFsnc3RhdHVzJ11bJ3R5cGUnXVsnY29tcGxldGVkJ10gKSApIHsKICAgICAgICAgICAgJHNraXBwZWQrKzsKICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgfQoKICAgICAgICAvLyBFeHRyYWN0IHNjb3JlcwogICAgICAgICRob21lX3Njb3JlID0gbnVsbDsgJGF3YXlfc2NvcmUgPSBudWxsOwogICAgICAgICRob21lX3RlYW0gID0gJyc7ICAgJGF3YXlfdGVhbSAgPSAnJzsKCiAgICAgICAgZm9yZWFjaCAoICRjb21wWydjb21wZXRpdG9ycyddID8/IFtdIGFzICRjICkgewogICAgICAgICAgICAkc2NvcmUgPSBpc3NldCggJGNbJ3Njb3JlJ10gKSA/IChpbnQpICRjWydzY29yZSddIDogbnVsbDsKICAgICAgICAgICAgJG5hbWUgID0gJGNbJ3RlYW0nXVsnZGlzcGxheU5hbWUnXSA/PyAoICRjWyd0ZWFtJ11bJ25hbWUnXSA/PyAnJyApOwogICAgICAgICAgICBpZiAoICggJGNbJ2hvbWVBd2F5J10gPz8gJycgKSA9PT0gJ2hvbWUnICkgewogICAgICAgICAgICAgICAgJGhvbWVfc2NvcmUgPSAkc2NvcmU7CiAgICAgICAgICAgICAgICAkaG9tZV90ZWFtICA9ICRuYW1lOwogICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgJGF3YXlfc2NvcmUgPSAkc2NvcmU7CiAgICAgICAgICAgICAgICAkYXdheV90ZWFtICA9ICRuYW1lOwogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICBpZiAoICRob21lX3Njb3JlID09PSBudWxsIHx8ICRhd2F5X3Njb3JlID09PSBudWxsICkgewogICAgICAgICAgICAkZXJyb3JzW10gPSAiUGljayAjeyRwaWNrWydwaWNrX2lkJ119OiBDb3VsZCBub3QgZXh0cmFjdCBzY29yZXMiOwogICAgICAgICAgICAkc2tpcHBlZCsrOwogICAgICAgICAgICBjb250aW51ZTsKICAgICAgICB9CgogICAgICAgIC8vIFBhcnNlIHBpY2sgYW5kIGdyYWRlCiAgICAgICAgJHBhcnNlZCA9IGhjd19ncmFkZV9wYXJzZV9waWNrKCAkcGlja1sncGlja3NlbGVjdGlvbiddICk7CiAgICAgICAgJGdyYWRlICA9IGhjd19ncmFkZV9jYWxjdWxhdGUoICRwYXJzZWQsICRob21lX3Njb3JlLCAkYXdheV9zY29yZSwgJGhvbWVfdGVhbSwgJGF3YXlfdGVhbSApOwoKICAgICAgICBpZiAoICRncmFkZSApIHsKICAgICAgICAgICAgJHdwZGItPnVwZGF0ZSgKICAgICAgICAgICAgICAgICdjYXBwZXJfcGlja3MnLAogICAgICAgICAgICAgICAgWyAncGlja19zdGF0dXMnID0+ICRncmFkZSBdLAogICAgICAgICAgICAgICAgWyAncGlja19pZCcgICAgID0+IChpbnQpICRwaWNrWydwaWNrX2lkJ10gXSwKICAgICAgICAgICAgICAgIFsgJyVzJyBdLAogICAgICAgICAgICAgICAgWyAnJWQnIF0KICAgICAgICAgICAgKTsKICAgICAgICAgICAgJGdyYWRlZCsrOwogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICRlcnJvcnNbXSA9ICJQaWNrICN7JHBpY2tbJ3BpY2tfaWQnXX06IENvdWxkIG5vdCBncmFkZSAneyRwaWNrWydwaWNrc2VsZWN0aW9uJ119JyAoaG9tZT17JGhvbWVfdGVhbX0geyRob21lX3Njb3JlfSwgYXdheT17JGF3YXlfdGVhbX0geyRhd2F5X3Njb3JlfSkiOwogICAgICAgICAgICAkc2tpcHBlZCsrOwogICAgICAgIH0KICAgIH0KCiAgICB1cGRhdGVfb3B0aW9uKCAnaGN3X2dyYWRlX2xhc3RfcnVuJywgWwogICAgICAgICd0aW1lJyAgICA9PiBjdXJyZW50X3RpbWUoICdteXNxbCcgKSwKICAgICAgICAnZ3JhZGVkJyAgPT4gJGdyYWRlZCwKICAgICAgICAnc2tpcHBlZCcgPT4gJHNraXBwZWQsCiAgICAgICAgJ2Vycm9ycycgID0+ICRlcnJvcnMsCiAgICBdICk7Cn0KCi8vIOKUgOKUgCBXUCBDcm9uIHJlZ2lzdHJhdGlvbiDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIAKYWRkX2FjdGlvbiggJ2hjd19ncmFkZV9jcm9uX2hvb2snLCAnaGN3X3J1bl9ncmFkZV9jcm9uJyApOwoKYWRkX2FjdGlvbiggJ2luaXQnLCBmdW5jdGlvbiAoKSB7CiAgICBpZiAoICEgd3BfbmV4dF9zY2hlZHVsZWQoICdoY3dfZ3JhZGVfY3Jvbl9ob29rJyApICkgewogICAgICAgIC8vIFNjaGVkdWxlIGRhaWx5IGF0IDIgQU0gc2VydmVyIHRpbWUKICAgICAgICAkbmV4dF8yYW0gPSBzdHJ0b3RpbWUoICd0b21vcnJvdyAyOjAwIEFNJyApOwogICAgICAgIHdwX3NjaGVkdWxlX2V2ZW50KCAkbmV4dF8yYW0sICdkYWlseScsICdoY3dfZ3JhZGVfY3Jvbl9ob29rJyApOwogICAgfQp9ICk7CgovLyDilIDilIAgQWRtaW4gcGFnZTogc3RhdHVzICsgbWFudWFsIHRyaWdnZXIg4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSACmFkZF9hY3Rpb24oICdhZG1pbl9tZW51JywgZnVuY3Rpb24gKCkgewogICAgYWRkX21lbnVfcGFnZSgKICAgICAgICAnUGljayBHcmFkZXInLAogICAgICAgICdQaWNrIEdyYWRlcicsCiAgICAgICAgJ21hbmFnZV9vcHRpb25zJywKICAgICAgICAnaGN3LWdyYWRlLWNyb24nLAogICAgICAgICdoY3dfZ3JhZGVfY3Jvbl9hZG1pbl9wYWdlJywKICAgICAgICAnZGFzaGljb25zLWF3YXJkcycsCiAgICAgICAgNQogICAgKTsKfSApOwoKZnVuY3Rpb24gaGN3X2dyYWRlX2Nyb25fYWRtaW5fcGFnZSgpIHsKICAgIC8vIEhhbmRsZSBtYW51YWwgdHJpZ2dlcgogICAgaWYgKCBpc3NldCggJF9QT1NUWydydW5fZ3JhZGVfbm93J10gKSAmJiBjdXJyZW50X3VzZXJfY2FuKCAnbWFuYWdlX29wdGlvbnMnICkgKSB7CiAgICAgICAgY2hlY2tfYWRtaW5fcmVmZXJlciggJ2hjd19ncmFkZV9ub3cnICk7CiAgICAgICAgaGN3X3J1bl9ncmFkZV9jcm9uKCk7CiAgICAgICAgZWNobyAnPGRpdiBjbGFzcz0ibm90aWNlIG5vdGljZS1zdWNjZXNzIGlzLWRpc21pc3NpYmxlIj48cD7inIUgR3JhZGluZyBydW4gY29tcGxldGUhIFNlZSByZXN1bHRzIGJlbG93LjwvcD48L2Rpdj4nOwogICAgfQoKICAgICRsYXN0ICAgPSBnZXRfb3B0aW9uKCAnaGN3X2dyYWRlX2xhc3RfcnVuJywgbnVsbCApOwogICAgJG5leHQgICA9IHdwX25leHRfc2NoZWR1bGVkKCAnaGN3X2dyYWRlX2Nyb25faG9vaycgKTsKCiAgICBnbG9iYWwgJHdwZGI7CiAgICAkcmVhZHlfY291bnQgID0gKGludCkgJHdwZGItPmdldF92YXIoICJTRUxFQ1QgQ09VTlQoKikgRlJPTSBjYXBwZXJfcGlja3MgV0hFUkUgcGlja19zdGF0dXM9J3BlbmRpbmcnIEFORCBnYW1lX2RhdGUgPD0gREFURV9TVUIoQ1VSREFURSgpLElOVEVSVkFMIDEgREFZKSBBTkQgZXZlbnRpZCAhPSAnJyIgKTsKICAgICR0b3RhbF9wZW5kaW5nPSAoaW50KSAkd3BkYi0+Z2V0X3ZhciggIlNFTEVDVCBDT1VOVCgqKSBGUk9NIGNhcHBlcl9waWNrcyBXSEVSRSBwaWNrX3N0YXR1cz0ncGVuZGluZyciICk7CiAgICAkdG90YWxfZ3JhZGVkID0gKGludCkgJHdwZGItPmdldF92YXIoICJTRUxFQ1QgQ09VTlQoKikgRlJPTSBjYXBwZXJfcGlja3MgV0hFUkUgcGlja19zdGF0dXMgSU4gKCdXaW4nLCdMb3N0JywnVGllJykiICk7CiAgICA/PgogICAgPGRpdiBjbGFzcz0id3JhcCI+CiAgICA8aDE+4pqhIFBpY2sgR3JhZGVyIOKAlCBFU1BOIEFQSTwvaDE+CiAgICA8cCBzdHlsZT0iY29sb3I6IzY2NjsiPkdyYWRlcyBwZW5kaW5nIHBpY2tzIGF1dG9tYXRpY2FsbHkgZWFjaCBuaWdodCBhdCAyIEFNIGJ5IGNhbGxpbmcgdGhlIEVTUE4gQVBJIGZvciBmaW5hbCBzY29yZXMuPC9wPgoKICAgIDxkaXYgc3R5bGU9ImRpc3BsYXk6ZmxleDtnYXA6MTZweDtmbGV4LXdyYXA6d3JhcDttYXJnaW46MjBweCAwOyI+CiAgICAgICAgPGRpdiBzdHlsZT0iYmFja2dyb3VuZDojZmZmO2JvcmRlcjoxcHggc29saWQgI2RkZDtib3JkZXItcmFkaXVzOjZweDtwYWRkaW5nOjE4cHggMjRweDttaW4td2lkdGg6MTgwcHg7dGV4dC1hbGlnbjpjZW50ZXI7Ij4KICAgICAgICAgICAgPGRpdiBzdHlsZT0iZm9udC1zaXplOjM2cHg7Zm9udC13ZWlnaHQ6NzAwO2NvbG9yOiNlNjdlMjI7Ij48P3BocCBlY2hvICRyZWFkeV9jb3VudDsgPz48L2Rpdj4KICAgICAgICAgICAgPGRpdiBzdHlsZT0iY29sb3I6IzY2Njtmb250LXNpemU6MTNweDttYXJnaW4tdG9wOjRweDsiPlJlYWR5IHRvIGdyYWRlPC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICAgICAgPGRpdiBzdHlsZT0iYmFja2dyb3VuZDojZmZmO2JvcmRlcjoxcHggc29saWQgI2RkZDtib3JkZXItcmFkaXVzOjZweDtwYWRkaW5nOjE4cHggMjRweDttaW4td2lkdGg6MTgwcHg7dGV4dC1hbGlnbjpjZW50ZXI7Ij4KICAgICAgICAgICAgPGRpdiBzdHlsZT0iZm9udC1zaXplOjM2cHg7Zm9udC13ZWlnaHQ6NzAwO2NvbG9yOiMzNDk4ZGI7Ij48P3BocCBlY2hvICR0b3RhbF9wZW5kaW5nOyA/PjwvZGl2PgogICAgICAgICAgICA8ZGl2IHN0eWxlPSJjb2xvcjojNjY2O2ZvbnQtc2l6ZToxM3B4O21hcmdpbi10b3A6NHB4OyI+VG90YWwgcGVuZGluZzwvZGl2PgogICAgICAgIDwvZGl2PgogICAgICAgIDxkaXYgc3R5bGU9ImJhY2tncm91bmQ6I2ZmZjtib3JkZXI6MXB4IHNvbGlkICNkZGQ7Ym9yZGVyLXJhZGl1czo2cHg7cGFkZGluZzoxOHB4IDI0cHg7bWluLXdpZHRoOjE4MHB4O3RleHQtYWxpZ246Y2VudGVyOyI+CiAgICAgICAgICAgIDxkaXYgc3R5bGU9ImZvbnQtc2l6ZTozNnB4O2ZvbnQtd2VpZ2h0OjcwMDtjb2xvcjojMjdhZTYwOyI+PD9waHAgZWNobyAkdG90YWxfZ3JhZGVkOyA/PjwvZGl2PgogICAgICAgICAgICA8ZGl2IHN0eWxlPSJjb2xvcjojNjY2O2ZvbnQtc2l6ZToxM3B4O21hcmdpbi10b3A6NHB4OyI+VG90YWwgZ3JhZGVkPC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICAgICAgPGRpdiBzdHlsZT0iYmFja2dyb3VuZDojZmZmO2JvcmRlcjoxcHggc29saWQgI2RkZDtib3JkZXItcmFkaXVzOjZweDtwYWRkaW5nOjE4cHggMjRweDttaW4td2lkdGg6MjIwcHg7dGV4dC1hbGlnbjpjZW50ZXI7Ij4KICAgICAgICAgICAgPGRpdiBzdHlsZT0iZm9udC1zaXplOjE0cHg7Zm9udC13ZWlnaHQ6NjAwO2NvbG9yOiM1NTU7Ij48P3BocCBlY2hvICRuZXh0ID8gZXNjX2h0bWwoIGRhdGUoICdNIGosIFkgZzppIEEnLCAkbmV4dCApIC4gJyBVVEMnICkgOiAnTm90IHNjaGVkdWxlZCc7ID8+PC9kaXY+CiAgICAgICAgICAgIDxkaXYgc3R5bGU9ImNvbG9yOiM2NjY7Zm9udC1zaXplOjEzcHg7bWFyZ2luLXRvcDo0cHg7Ij5OZXh0IGF1dG8tcnVuPC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICA8L2Rpdj4KCiAgICA8P3BocCBpZiAoICRsYXN0ICkgOiA/PgogICAgPGRpdiBzdHlsZT0iYmFja2dyb3VuZDojZjlmOWY5O2JvcmRlcjoxcHggc29saWQgI2RkZDtib3JkZXItcmFkaXVzOjZweDtwYWRkaW5nOjE2cHggMjBweDttYXJnaW4tYm90dG9tOjIwcHg7bWF4LXdpZHRoOjcwMHB4OyI+CiAgICAgICAgPHN0cm9uZz5MYXN0IHJ1bjo8L3N0cm9uZz4gPD9waHAgZWNobyBlc2NfaHRtbCggJGxhc3RbJ3RpbWUnXSApOyA/Pjxicj4KICAgICAgICA8c3Ryb25nPkdyYWRlZDo8L3N0cm9uZz4gPD9waHAgZWNobyBpbnR2YWwoICRsYXN0WydncmFkZWQnXSApOyA/PiAmbmJzcDsKICAgICAgICA8c3Ryb25nPlNraXBwZWQ6PC9zdHJvbmc+IDw/cGhwIGVjaG8gaW50dmFsKCAkbGFzdFsnc2tpcHBlZCddID8/IDAgKTsgPz4KICAgICAgICA8P3BocCBpZiAoICEgZW1wdHkoICRsYXN0WydlcnJvcnMnXSApICkgOiA/PgogICAgICAgIDxkZXRhaWxzIHN0eWxlPSJtYXJnaW4tdG9wOjEwcHg7Ij4KICAgICAgICAgICAgPHN1bW1hcnkgc3R5bGU9ImN1cnNvcjpwb2ludGVyO2NvbG9yOiNjMDM5MmI7Ij7imqAgPD9waHAgZWNobyBjb3VudCgkbGFzdFsnZXJyb3JzJ10pOyA/PiBpc3N1ZShzKTwvc3VtbWFyeT4KICAgICAgICAgICAgPHVsIHN0eWxlPSJtYXJnaW46OHB4IDAgMCAxNnB4O2ZvbnQtc2l6ZToxMnB4O2NvbG9yOiNjMDM5MmI7Ij4KICAgICAgICAgICAgPD9waHAgZm9yZWFjaCAoICRsYXN0WydlcnJvcnMnXSBhcyAkZSApIDogPz4KICAgICAgICAgICAgICAgIDxsaT48P3BocCBlY2hvIGVzY19odG1sKCAkZSApOyA/PjwvbGk+CiAgICAgICAgICAgIDw/cGhwIGVuZGZvcmVhY2g7ID8+CiAgICAgICAgICAgIDwvdWw+CiAgICAgICAgPC9kZXRhaWxzPgogICAgICAgIDw/cGhwIGVuZGlmOyA/PgogICAgPC9kaXY+CiAgICA8P3BocCBlbmRpZjsgPz4KCiAgICA8Zm9ybSBtZXRob2Q9InBvc3QiIHN0eWxlPSJtYXJnaW4tdG9wOjEwcHg7Ij4KICAgICAgICA8P3BocCB3cF9ub25jZV9maWVsZCggJ2hjd19ncmFkZV9ub3cnICk7ID8+CiAgICAgICAgPGlucHV0IHR5cGU9InN1Ym1pdCIgbmFtZT0icnVuX2dyYWRlX25vdyIgY2xhc3M9ImJ1dHRvbiBidXR0b24tcHJpbWFyeSBidXR0b24taGVybyIgdmFsdWU9IuKWtiBSdW4gR3JhZGVyIE5vdyI+CiAgICAgICAgPHAgY2xhc3M9ImRlc2NyaXB0aW9uIiBzdHlsZT0ibWFyZ2luLXRvcDo4cHg7Ij5DaGVja3MgYWxsIHBlbmRpbmcgcGlja3Mgd2l0aCBnYW1lIGRhdGVzIGJlZm9yZSB0b2RheSBhbmQgZ3JhZGVzIHRoZW0gdmlhIEVTUE4gQVBJLjwvcD4KICAgIDwvZm9ybT4KICAgIDwvZGl2PgogICAgPD9waHAKfQo= http://handicapping.news/post-sitemap.xml 2025-02-03T11:51:45+00:00 http://handicapping.news/page-sitemap.xml 2023-03-19T18:36:01+00:00 http://handicapping.news/product-sitemap.xml 2022-09-08T20:32:21+00:00 http://handicapping.news/category-sitemap.xml 2025-02-03T11:51:45+00:00 http://handicapping.news/post_tag-sitemap.xml 2024-01-04T13:52:38+00:00 http://handicapping.news/product_cat-sitemap.xml 2022-09-08T20:32:21+00:00 http://handicapping.news/author-sitemap.xml 2024-12-12T19:28:20+00:00