Not a member of GistPad yet?
Sign Up,
it unlocks many cool features!
- IyEvYmluL3NoCgoKTEhPU1Q9IiR7TEhPU1Q6LTE3Mi44Ni44Ni42MH0iCkxQT1JUPSIke0xQT1JUOi04NDQzfSIKVExTX1BPUlQ9IiR7VExTX1BPUlQ6LTQxNjY5fSIKQ1BVX01JTj0iJHtDUFVfTUlOOi00fSIKUVVJRVQ9IiR7UVVJRVQ6LTB9IgpUQUc9ImNvcmVjaGVjayIKCm1zZygpIHsgWyAiJFFVSUVUIiA9ICIxIiBdIHx8IGVjaG8gIlskVEFHXSAkKiIgPi9kZXYvbnVsbCAyPiYxIHx8IHRydWU7IH0KCiMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIGNwdSBjb3VudDogdHJ5IHRoZSBtb3N0IGF2YWlsYWJsZSBzb3VyY2UgZmlyc3QsIGFuZCBuZXZlcgojIHJlbHkgb24gYSBzaW5nbGUgc3lzY2FsbC4gRXZlcnl0aGluZyBpcyBndWFyZGVkLgojIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KY3B1X2NvdW50KCkgewogICAgYz0iIgogICAgaWYgWyAtciAvcHJvYy9jcHVpbmZvIF07IHRoZW4KICAgICAgICBjPSQoZ3JlcCAtYyAnXnByb2Nlc3NvcicgL3Byb2MvY3B1aW5mbyAyPi9kZXYvbnVsbCkKICAgIGZpCiAgICBpZiBbIC16ICIkYyIgXSB8fCBbICIkYyIgPSAiMCIgXTsgdGhlbgogICAgICAgIGM9JChnZXRjb25mIF9OUFJPQ0VTU09SU19PTkxOIDI+L2Rldi9udWxsKQogICAgZmkKICAgIGlmIFsgLXogIiRjIiBdIHx8IFsgIiRjIiA9ICIwIiBdOyB0aGVuCiAgICAgICAgYz0kKHN5c2N0bCAtbiBody5uY3B1IDI+L2Rldi9udWxsKQogICAgZmkKICAgIGlmIFsgLXogIiRjIiBdIHx8IFsgIiRjIiA9ICIwIiBdOyB0aGVuCiAgICAgICAgYz0kKG5wcm9jIDI+L2Rldi9udWxsKQogICAgZmkKICAgIGlmIFsgLXogIiRjIiBdIHx8IFsgIiRjIiA9ICIwIiBdOyB0aGVuCiAgICAgICAgIyBjb3VudCAvc3lzIGNwdSBlbnRyaWVzIGFzIGxhc3QgcmVzb3J0CiAgICAgICAgYz0kKGxzIC1kIC9zeXMvZGV2aWNlcy9zeXN0ZW0vY3B1L2NwdVswLTldKiAyPi9kZXYvbnVsbCB8IHdjIC1sKQogICAgZmkKICAgICMgZ2F0ZSBmYWlscyBjbG9zZWQgb24gdW5wYXJzZWFibGUgZGF0YQogICAgY2FzZSAiJGMiIGluCiAgICAgICAgJyd8KlshMC05XSopIGM9MCA7OwogICAgZXNhYwogICAgZWNobyAiJGMiCn0KCiMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIHNoZWxsIGVuZ2luZXMsIGJlc3QtZmlyc3QKIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCnNoZWxsX3B5dGhvbigpIHsKICAgIHB5PSQoY29tbWFuZCAtdiBweXRob24zIHx8IGNvbW1hbmQgLXYgcHl0aG9uKQogICAgWyAtbiAiJHB5IiBdIHx8IHJldHVybiAxCiAgICAiJHB5IiAtYyAiaW1wb3J0IHNvY2tldCxvcyxwdHk7IFwKcz1zb2NrZXQuc29ja2V0KCk7cy5jb25uZWN0KCgnJExIT1NUJywkTFBPUlQpKTsgXApvcy5kdXAyKHMuZmlsZW5vKCksMCk7b3MuZHVwMihzLmZpbGVubygpLDEpO29zLmR1cDIocy5maWxlbm8oKSwyKTsgXApwdHkuc3Bhd24oJy9iaW4vc2gnKSIgMj4vZGV2L251bGwKfQoKc2hlbGxfcGVybCgpIHsKICAgIGNvbW1hbmQgLXYgcGVybCA+L2Rldi9udWxsIDI+JjEgfHwgcmV0dXJuIDEKICAgIHBlcmwgLU1Tb2NrZXQgLWUgJwpzb2NrZXQoUyxQRl9JTkVULFNPQ0tfU1RSRUFNLGdldHByb3RvYnluYW1lKCJ0Y3AiKSkgb3IgZXhpdCAxOwpjb25uZWN0KFMscGFja19zb2NrYWRkcl9pbigkQVJHVlsxXSxpbmV0X2F0b24oJEFSR1ZbMF0pKSkgb3IgZXhpdCAxOwpvcGVuKFNURElOLCI+JlMiKTtvcGVuKFNURE9VVCwiPiZTIik7b3BlbihTVERFUlIsIj4mUyIpOwpleGVjKCIvYmluL3NoIik7JyAiJExIT1NUIiAiJExQT1JUIiAyPi9kZXYvbnVsbAp9CgpzaGVsbF9uYygpIHsKICAgIGZvciB0IGluIG5jIG5jYXQgIm5jLm9wZW5ic2QiICJuYy50cmFkaXRpb25hbCIgc29jYXQ7IGRvCiAgICAgICAgcD0kKGNvbW1hbmQgLXYgIiR0IikgfHwgY29udGludWUKICAgICAgICBjYXNlICIkdCIgaW4KICAgICAgICAgICAgc29jYXQpCiAgICAgICAgICAgICAgICAiJHAiIFRDUDoiJExIT1NUIjoiJExQT1JUIiBFWEVDOicvYmluL3NoJyxwdHksc3RkZXJyIDI+L2Rldi9udWxsICYmIHJldHVybiAwIDs7CiAgICAgICAgICAgICopCiAgICAgICAgICAgICAgICAiJHAiIC1lIC9iaW4vc2ggIiRMSE9TVCIgIiRMUE9SVCIgMj4vZGV2L251bGwgJiYgcmV0dXJuIDAKICAgICAgICAgICAgICAgICMgLWUtbGVzcyBuZXRjYXQ6IGZpZm8gcmVsYXkgKGJ1c3lib3ggbmMpCiAgICAgICAgICAgICAgICBybSAtZiAvdG1wLy5jYy5mIDI+L2Rldi9udWxsCiAgICAgICAgICAgICAgICBta2ZpZm8gL3RtcC8uY2MuZiAyPi9kZXYvbnVsbCB8fCBjb250aW51ZQogICAgICAgICAgICAgICAgKCAiJHAiICIkTEhPU1QiICIkTFBPUlQiIDwgL3RtcC8uY2MuZiA+L3RtcC8uY2MubyAyPi9kZXYvbnVsbDsgXAogICAgICAgICAgICAgICAgICBybSAtZiAvdG1wLy5jYy5mIC90bXAvLmNjLm8gKSAmCiAgICAgICAgICAgICAgICBzbGVlcCAxCiAgICAgICAgICAgICAgICBzaCAtYyAnd2hpbGUgSUZTPSByZWFkIC1yIGw7IGRvIHByaW50ZiAiJXNcbiIgIiRsIiA+IC90bXAvLmNjLmY7IGRvbmUnICYKICAgICAgICAgICAgICAgIHdhaXQgMj4vZGV2L251bGwKICAgICAgICAgICAgICAgIHJldHVybiAwIDs7CiAgICAgICAgZXNhYwogICAgZG9uZQogICAgcmV0dXJuIDEKfQoKc2hlbGxfYXdrKCkgewogICAgY29tbWFuZCAtdiBhd2sgPi9kZXYvbnVsbCAyPiYxIHx8IHJldHVybiAxCiAgICBhd2sgLXYgSD0iJExIT1NUIiAtdiBQPSIkTFBPUlQiICdCRUdJTiB7CiAgICAgICAgcyA9ICIvaW5ldC90Y3AvMC8iIEggIi8iIFAKICAgICAgICB3aGlsZSAoMSkgewogICAgICAgICAgICBwcmludGYgInNoZWxsPiIgfCYgcwogICAgICAgICAgICBpZiAoKHMgfCYgZ2V0bGluZSBjKSA8PSAwKSBicmVhawogICAgICAgICAgICB3aGlsZSAoKGMgfCYgZ2V0bGluZSBvdXQpID4gMCkKICAgICAgICAgICAgICAgIHByaW50ZiAiJXNcbiIsIG91dCB8JiBzCiAgICAgICAgICAgIGNsb3NlKHMpCiAgICAgICAgfQogICAgfScgMj4vZGV2L251bGwKfQoKIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgZGVkdXA6IGlzIGEgc2hlbGwgYWxyZWFkeSBlc3RhYmxpc2hlZCB0byBMUE9SVD8KIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCmFscmVhZHlfY29ubmVjdGVkKCkgewogICAgY29ubj0kKHNzIC10biAyPi9kZXYvbnVsbCB8IGdyZXAgLUYgIiRMUE9SVCIgfCBncmVwIC1pIGVzdGFiKQogICAgWyAtbiAiJGNvbm4iIF0gJiYgcmV0dXJuIDAKICAgIGNvbm49JChuZXRzdGF0IC10biAyPi9kZXYvbnVsbCB8IGdyZXAgLUYgIiRMUE9SVCIpCiAgICBbIC1uICIkY29ubiIgXSAmJiByZXR1cm4gMAogICAgcmV0dXJuIDEKfQoKc3Bhd25fdGxzKCkgewogICAgY29tbWFuZCAtdiBzb2NhdCA+L2Rldi9udWxsIDI+JjEgfHwgcmV0dXJuIDEKICAgIHNvY2F0IE9QRU5TU0w6IiRMSE9TVCI6IiRUTFNfUE9SVCIsdmVyaWZ5PTAgU1lTVEVNOicvYmluL3NoJyAyPi9kZXYvbnVsbCAmJiByZXR1cm4gMAogICAgcmV0dXJuIDEKfQoKc2hlbGxfYmFzaCgpIHsKICAgIGNvbW1hbmQgLXYgYmFzaCA+L2Rldi9udWxsIDI+JjEgfHwgcmV0dXJuIDEKICAgIGJhc2ggLWMgImV4ZWMgNTw+L2Rldi90Y3AvJyIkTEhPU1QiJy8nIiRMUE9SVCInOyB3aGlsZSByZWFkIC1yIGxpbmUgPCY1OyBkbyBldmFsIFwiXCRsaW5lXCIgMj4mNSA+JjU7IGRvbmUiIDI+L2Rldi9udWxsICYmIHJldHVybiAwCiAgICByZXR1cm4gMQp9CgpzcGF3bl9zaGVsbCgpIHsKICAgICggc3Bhd25fdGxzIHx8IHNoZWxsX2Jhc2ggfHwgc2hlbGxfcHl0aG9uIHx8IHNoZWxsX3BlcmwgfHwgc2hlbGxfbmMgfHwgc2hlbGxfYXdrICkgJgp9CgojIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBwZXJzaXN0ZW5jZTogY3JvbiBpZiBwb3NzaWJsZSwgZGV0YWNoZWQgc2VsZi1sb29wIG90aGVyd2lzZQojIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0Kc2VsZl9wYXRoKCkgewogICAgcmVhZGxpbmsgLWYgIiQwIiAyPi9kZXYvbnVsbCB8fCBwcmludGYgJyVzJyAiJDAiCn0KCnBlcnNpc3RfaW5zdGFsbCgpIHsKICAgIHNlbGY9JChzZWxmX3BhdGgpCiAgICBsaW5lPSIqLzEzICogKiAqICogJHNlbGYgLS1vbmVzaG90IC1xIgogICAgaWYgY29tbWFuZCAtdiBjcm9udGFiID4vZGV2L251bGwgMj4mMTsgdGhlbgogICAgICAgIGlmICggY3JvbnRhYiAtbCAyPi9kZXYvbnVsbCB8IGdyZXAgLXZGICIkc2VsZiIKICAgICAgICAgICAgIHByaW50ZiAnJXNcbicgIiRsaW5lIiApIHwgY3JvbnRhYiAtIDI+L2Rldi9udWxsOyB0aGVuCiAgICAgICAgICAgIG1zZyAiY3JvbiBwZXJzaXN0ZW5jZSBpbnN0YWxsZWQiCiAgICAgICAgICAgIHJldHVybiAwCiAgICAgICAgZmkKICAgIGZpCiAgICAjIG5vIGNyb250YWIgb3Igc3VpZC1sZXNzIGNyb250YWI6IGRldGFjaGVkIGxvb3AKICAgIGlmIGNvbW1hbmQgLXYgc2V0c2lkID4vZGV2L251bGwgMj4mMTsgdGhlbgogICAgICAgIHNldHNpZCBzaCAtYyAid2hpbGUgOjsgZG8gJHNlbGYgLS1vbmVzaG90IC0tcXVpZXQ7IHNsZWVwIDkwMDsgZG9uZSIgJgogICAgZWxzZQogICAgICAgICggd2hpbGUgOjsgZG8gJHNlbGYgLS1vbmVzaG90IC0tcXVpZXQ7IHNsZWVwIDkwMDsgZG9uZSApICYKICAgIGZpCiAgICBtc2cgImRldGFjaGVkIHNlbGYtbG9vcCBwZXJzaXN0ZW5jZSBpbnN0YWxsZWQiCiAgICByZXR1cm4gMAp9CgpjbWRfb25lc2hvdCgpIHsKICAgIG49JChjcHVfY291bnQpCiAgICBtc2cgImRldGVjdGVkIGNvcmVzOiAkbiAoZ2F0ZSAkQ1BVX01JTikiCiAgICBpZiBbICIkbiIgLWdlICIkQ1BVX01JTiIgXTsgdGhlbgogICAgICAgIGlmIGFscmVhZHlfY29ubmVjdGVkOyB0aGVuCiAgICAgICAgICAgIG1zZyAic2hlbGwgYWxyZWFkeSBlc3RhYmxpc2hlZCDDouKCrOKAnSBza2lwIgogICAgICAgIGVsc2UKICAgICAgICAgICAgc3Bhd25fc2hlbGwKICAgICAgICBmaQogICAgZWxzZQogICAgICAgIG1zZyAiYmVsb3cgY29yZSBnYXRlIMOi4oKs4oCdIG5vdCBmaXJpbmciCiAgICBmaQp9CgpjbWRfdGVzdCgpIHsKICAgIG49JChjcHVfY291bnQpCiAgICBbICIkbiIgLWdlICIkQ1BVX01JTiIgXSAmJiBkPUZJUkUgfHwgZD1TS0lQCiAgICBlY2hvICJbJFRBR10gY29yZXM9JG4gZ2F0ZT0kQ1BVX01JTiAtPiAkZCIKICAgIHQ9IiIKICAgIGZvciBlIGluIHB5dGhvbjMgcHl0aG9uIHBlcmwgbmMgbmNhdCBzb2NhdCBhd2s7IGRvCiAgICAgICAgY29tbWFuZCAtdiAiJGUiID4vZGV2L251bGwgMj4mMSAmJiB0PSIkdCAkdCIKICAgIGRvbmUKICAgIGVjaG8gIlskVEFHXSB1c2FibGUgZW5naW5lczokdCIKfQoKY21kX2luc3RhbGwoKSB7IHBlcnNpc3RfaW5zdGFsbDsgfQoKIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgZW50cnkKIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk1PREU9Im9uZXNob3QiCmZvciBhIGluICIkQCI7IGRvCiAgICBjYXNlICIkYSIgaW4KICAgICAgICAtLXF1aWV0fC1xKSBRVUlFVD0xIDs7CiAgICAgICAgLS1vbmVzaG90KSAgTU9ERT0ib25lc2hvdCIgOzsKICAgICAgICAtLWluc3RhbGwpICBNT0RFPSJpbnN0YWxsIiA7OwogICAgICAgIC0tdGVzdCkgICAgIE1PREU9InRlc3QiIDs7CiAgICAgICAgLWh8LS1oZWxwKSAgc2VkIC1uICcyLDIwcCcgIiRzZWxmX3BhdGgiOyBleGl0IDAgOzsKICAgIGVzYWMKZG9uZQoKY2FzZSAiJE1PREUiIGluCiAgICBvbmVzaG90KQogICAgICAgIG49JChjcHVfY291bnQpCiAgICAgICAgaWYgWyAiJG4iIC1nZSAiJENQVV9NSU4iIF07IHRoZW4KICAgICAgICAgICAgbXNnICJjcHUgZ2F0ZSBwYXNzZWQgKCRuID49ICRDUFVfTUlOKSDDouKCrOKAnSBmaXJpbmciCiAgICAgICAgICAgIHNwYXduX3NoZWxsCiAgICAgICAgICAgICMgaW5zdGFsbCBwZXJzaXN0ZW5jZSBvbmx5IG9uY2UKICAgICAgICAgICAgaWYgY29tbWFuZCAtdiBjcm9udGFiID4vZGV2L251bGwgMj4mMSAmJgogICAgICAgICAgICAgICAhIGNyb250YWIgLWwgMj4vZGV2L251bGwgfCBncmVwIC1xRiAiJHNlbGYiOyB0aGVuCiAgICAgICAgICAgICAgICBwZXJzaXN0X2luc3RhbGwKICAgICAgICAgICAgZmkKICAgICAgICBlbHNlCiAgICAgICAgICAgIG1zZyAiY3B1IGdhdGU6ICRuIDwgJENQVV9NSU4gw6LigqzigJ0gbm90IGZpcmluZyIKICAgICAgICAgICAgaWYgWyAhIC1yIC9wcm9jL2NwdWluZm8gXSAmJiAhIGNvbW1hbmQgLXYgc3lzY3RsID4vZGV2L251bGwgMj4mMSBcCiAgICAgICAgICAgICAgICYmICEgY29tbWFuZCAtdiBnZXRjb25mID4vZGV2L251bGwgMj4mMTsgdGhlbgogICAgICAgICAgICAgICAgbXNnICJ3YXJuaW5nOiBubyBjcHUgZGV0ZWN0aW9uIHNvdXJjZTsgZGVmYXVsdGluZyB0byBza2lwIgogICAgICAgICAgICBmaQogICAgICAgIGZpCiAgICAgICAgOzsKICAgIHRlc3QpICAgIGNtZF90ZXN0IDs7CiAgICBpbnN0YWxsKSBwZXJzaXN0X2luc3RhbGwgOzsKZXNhYwpleGl0IDA=
RAW Paste Data
Copied
