
FGO のお正月イベント【雀のお宿の活動日誌~閻魔亭繁盛記~】で、自身のイベント進行状況がひと目でわかる進捗グラフ付きのチェックシートです。
閻魔亭繁盛記
チェックシート
Ly89PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCihmdW5jdGlvbigkKXsgLy/jgqvjg5fjgrvjg6vljJYNCi8vPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQoNCg0KLy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioNCi8vIOWIneacn+ioreWumg0KLy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioNCi8v44Kv44OD44Kt44O85L+d5a2Y5pyf6ZaTKO+9nuaXpemWkykNCnZhciBDb29raWVfZXhwID0gMzY1Ow0KDQovL+OCpOODmeODs+ODiOacn+mWkw0KdmFyIEV2ZW50X3N0YXJ0ID0gbmV3IERhdGUoICcyMDE5LzEvMSAwMDowMCcgKTsNCnZhciBFdmVudF9lbmQgICA9IG5ldyBEYXRlKCAnMjAxOS8xLzE1IDEyOjU5JyApOw0KDQovL+Wliee0jeODneOCpOODs+ODiCDliJ3mnJ/oqK3lrpoNCnZhciBwb2ludF9wcmVzZXQgID0gWzAsNTAwMDAwMF0NCi8v5pyA57WC5aWJ57SN5pel5pmCDQp2YXIgT2ZmZXJpbmdfZW5kID0gbmV3IERhdGUoICcyMDE5LzEvMTUgMTA6MDAnICk7DQoNCi8v44GK5a6i5qeY5rqA6Laz5bqmDQp2YXIgU2F0aXMgPSBbNTAwLDEwMDAsMTUwMCwzMDAwLCAgMCwyNTAwMCwxMDAwMCw1MDAwLDcwMDAsMTQwMDAsMTgwMDAsMzAwMDAsNjUwMDAsNTAwMDAsNDUwMDAsNjAwMDAsODAwMDAsMzUwMDAsNDAwMDAsMTAwMDBdOw0KLy/jgrnjgq7jga7mnZDmnKgNCnZhciBNYXQwICA9IFsgMzAsICA0MCwgICAwLCAgNDAsMTEwLCAgICAwLCAgICAwLCAgNDAsICA5MCwgIDEwMCwgICAgMCwgICAgMCwgICAgMCwgICAgMCwgIDMwMCwgIDE4MCwgIDIwMCwgIDE4MCwgICAgMCwgICAgMF07DQovL+ODkuODjuOCreOBruadkOacqA0KdmFyIE1hdDEgID0gWyAzMCwgICAwLCAgNDAsICA0MCwxNDAsICAgIDAsICAgNTAsICA4MCwgICAwLCAgIDAsICAgMTAwLCAgIDcwLCAgMTYwLCAgMzEwLCAgICAwLCAgMTgwLCAgICAwLCAgMTAwLCAgICAwLCAgICAwXTsNCi8v44Kx44Ok44Kt44Gu5p2Q5pyoDQp2YXIgTWF0MiAgPSBbICAwLCAgMzAsICA0MCwgICAwLCAgMCwgICAgMCwgIDExMCwgICAwLCAgNTAsICAxMDAsICAxMzAsICAxODAsICAyMjAsICAgIDAsICAgIDAsICAgIDAsICAyMDAsICAgIDAsICAyOTAsICAgIDBdOw0KDQovL+S6pOaPm+OCouOCpOODhuODoCDpoIXnm67mlbANCnZhciBUcmFkZV9jdW50ID0gNjsNCg0KLy/kuqTmj5swICjjgrHjg6Tjgq3jga7mnKjmnZApDQp2YXIgVHJhZGUwMF9zdG9jayA9IFsgIDJdOyAvL+WcqOW6qw0KdmFyIFRyYWRlMDBfY29zdCAgPSBbMzAwXTsgLy/osrvnlKgNCg0KLy/kuqTmj5sxICjjg5Ljg47jgq3jga7mnKjmnZApDQp2YXIgVHJhZGUwMV9zdG9jayA9IFsgIDEsICAxXTsgLy/lnKjluqsNCnZhciBUcmFkZTAxX2Nvc3QgID0gWzMwMCwzMDBdOyAvL+iyu+eUqA0KDQovL+S6pOaPmzIgKOOCueOCruOBruacqOadkCkNCnZhciBUcmFkZTAyX3N0b2NrID0gWyAgMl07IC8v5Zyo5bqrDQp2YXIgVHJhZGUwMl9jb3N0ICA9IFszMDBdOyAvL+iyu+eUqA0KDQovL+S6pOaPmzMgKOmbgOOBruW5uCkNCnZhciBUcmFkZTAzX3N0b2NrID0gWyAgMiwgIDEsMTAsMTAsMjAsMjAsMjAsMjBdOyAvL+WcqOW6qw0KdmFyIFRyYWRlMDNfY29zdCAgPSBbMjAwLDIwMCw0MCw0MCwyMCwyMCwyMCwyMF07IC8v6LK755SoDQoNCi8v5Lqk5o+bNCAo5bed44Gu5bm4KQ0KdmFyIFRyYWRlMDRfc3RvY2sgPSBbICAxLCAgMSwyMCwyMCwyMCwyMCwyMCwyMF07IC8v5Zyo5bqrDQp2YXIgVHJhZGUwNF9jb3N0ICA9IFsyMDAsMjAwLDMwLDIwLDIwLDIwLDIwLDIwXTsgLy/osrvnlKgNCg0KLy/kuqTmj5s1ICjlsbHjga7lubgpDQp2YXIgVHJhZGUwNV9zdG9jayA9IFsgIDEsICAxLDIwLDIwLDEwMCwxMDAsMjAsMzAsMzBdOyAvL+WcqOW6qw0KdmFyIFRyYWRlMDVfY29zdCAgPSBbMjAwLDIwMCwyMCwyMCwgIDYsICAzLDIwLDE1LDE1XTsgLy/osrvnlKgNCg0KDQovL+e3j+WQiOmAsuihjOW6pumbhuioiA0KdmFyIEdyYXBoX3MgPSAyOyAvLyDplovlp4vjgrDjg6njg5UNCnZhciBHcmFwaF9lID0gMTE7IC8vIOe1guS6huOCsOODqeODlQ0KDQovLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKg0KDQoNCi8vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqDQokKGZ1bmN0aW9uKCl7IC8vIOODoeOCpOODs+mWi+Wniw0KLy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioNCi8vPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCi8vIOODmuODvOOCuOiqreOBv+i+vOOBv+aZgg0KLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KDQogIGNvb2tpZV9sb2FkKCk7DQogIGV2ZW50X3BlcmlvZCgpOw0KDQogIHJlbm92YXRpb25faW5wdXQoKTsNCiAgcG9pbnRfaW5wdXQoKTsNCiAgcXVlc3QwMF9pbnB1dCgpOw0KICBxdWVzdDAxX2lucHV0KCk7DQogIHRyYWRlX2lucHV0KCk7DQoNCiAgdG90YWxfcHJvZ3Jlc3MoKTsNCg0KDQovLz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQoNCg0KLy89PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KLy8g44CQ5L+d5a2Y44CR44Oc44K/44Oz5Yem55CGDQovLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQokKCIjZXZlbnRfY2hlY2tfc2hlZXQgLmJ0bl9zYXZlIikuY2xpY2soZnVuY3Rpb24oKXsNCg0KICBjb29raWVfc2F2ZSgpOw0KDQogIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KICAvLyDkv53lrZjjg4DjgqTjgqLjg63jgrDooajnpLoNCiAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQogIHZhciBFdm50X3BvcyA9ICQoJyNldmVudF9jaGVja19zaGVldCcpLm9mZnNldCgpOw0KICB2YXIgU2F2ZV9wb3MgPSAkKHRoaXMpLm9mZnNldCgpOw0KICB2YXIgUG9zVG9wICAgPSAoU2F2ZV9wb3MudG9wIC0gRXZudF9wb3MudG9wIC0gODUpICsgJ3B4JzsNCiAgdmFyIFBvc0xlZnQgID0gKFNhdmVfcG9zLmxlZnQgLSBFdm50X3Bvcy5sZWZ0ICsgNSkgKyAncHgnOw0KICAkKCcjc2F2ZV9kaWFsb2cnKS5jc3Moeyd0b3AnOlBvc1RvcCwnbGVmdCc6UG9zTGVmdH0pLmZhZGVJbigzMDApLmRlbGF5KDYwMCkuZmFkZU91dCg2MDApOw0KDQp9KTsNCi8vPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCg0KDQovLz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQovLyDjgJDliJ3mnJ/ljJbjgJHjg5zjgr/jg7Plh6bnkIYNCi8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCiQoIiNldmVudF9jaGVja19zaGVldCAuYnRuX3Jlc2V0IikuY2xpY2soZnVuY3Rpb24oKXsNCmlmKHdpbmRvdy5jb25maXJtKCfliJ3mnJ/ljJbjgZfjgb7jgZnjgYvvvJ8nKSl7DQoNCiAgY29va2llX2RlbGV0ZSgpOw0KICBjb29raWVfbG9hZCgpOw0KICBldmVudF9wZXJpb2QoKTsNCg0KICByZW5vdmF0aW9uX2lucHV0KCk7DQogIHBvaW50X2lucHV0KCk7DQogIHF1ZXN0MDBfaW5wdXQoKTsNCiAgcXVlc3QwMV9pbnB1dCgpOw0KICB0cmFkZV9pbnB1dCgpOw0KDQogIHRvdGFsX3Byb2dyZXNzKCk7DQoNCn07DQoNCn0pOw0KLy89PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KDQoNCg0KLy89PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KLy8g5aWJ57SN44Od44Kk44Oz44OIIOWFpeWKm+aZgg0KLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KJCgiI2V2ZW50X3BvaW50cyBpbnB1dCIpLm9uKCdjaGFuZ2UnLCAoZnVuY3Rpb24oKXsNCg0KICBwb2ludF9pbnB1dCgpOw0KICByZWFjdGlvbigkKHRoaXMpLCdhY3Rfa2FpdGVuX3gnLDUwMCk7DQogIHJlYWN0aW9uKCQoJyNwcm9zcGVjdGl2ZScpLCdhY3Rfa2FpdGVuX3gnLDUwMCk7DQoNCiAgZXZlbnRfcGVyaW9kKCk7DQogIHRvdGFsX3Byb2dyZXNzKCk7DQp9KSk7DQovLz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQoNCg0KLy89PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KLy8g5pS556+J44Kv44Ko44K544OI5YWl5Yqb5pmCDQovLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQokKCIjZXZlbnRfcmVub3ZhdGlvbiBpbnB1dCIpLm9uKCdjaGFuZ2UnLCAoZnVuY3Rpb24oKXsNCiAgcmVub3ZhdGlvbl9pbnB1dCgpOw0KICByZWFjdGlvbigkKHRoaXMpLnBhcmVudHMoImxpIiksJ2FjdF9rYWl0ZW5feCcsNTAwKTsNCiAgcmVhY3Rpb24oJCgnI3Byb3NwZWN0aXZlLCNzYXRpc2ZhY3Rpb25fbm93Miwjc2F0aXNmYWN0aW9uX25vdywjc2F0aXNmYWN0aW9uX3RhcmdldCwjbWF0Ml9ub3csI21hdDJfdGFyZ2V0LCNtYXQxX25vdywjbWF0MV90YXJnZXQsI21hdDBfbm93LCNtYXQwX3RhcmdldCcpLCdhY3Rfa2FpdGVuX3gnLDUwMCk7DQoNCiAgZXZlbnRfcGVyaW9kKCk7DQogIHBvaW50X2lucHV0KCk7DQogIHRyYWRlX2lucHV0KCk7DQogIHRvdGFsX3Byb2dyZXNzKCk7DQp9KSk7DQovLz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQoNCg0KLy89PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KLy8g44Oh44Kk44Oz44Kv44Ko44K544OI5YWl5Yqb5pmCDQovLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQokKCIjZXZlbnRfcXVlc3QwMCBpbnB1dCIpLm9uKCdjaGFuZ2UnLCAoZnVuY3Rpb24oKXsNCiAgcXVlc3QwMF9pbnB1dCgpOw0KICByZWFjdGlvbigkKHRoaXMpLnBhcmVudHMoImxpIiksJ2FjdF9rYWl0ZW5feCcsNTAwKTsNCiAgcmVhY3Rpb24oJCh0aGlzKS5wYXJlbnRzKCJ1bCIpLmZpbmQoIi50b3RhbCBwIiksJ2FjdF9rYWl0ZW5feCcsNTAwKTsNCg0KICBldmVudF9wZXJpb2QoKTsNCiAgdG90YWxfcHJvZ3Jlc3MoKTsNCn0pKTsNCi8vPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCg0KDQovLz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQovLyDjgZ3jga7ku5bjgq/jgqjjgrnjg4jlhaXlipvmmYINCi8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCiQoIiNldmVudF9xdWVzdDAxIGlucHV0Iikub24oJ2NoYW5nZScsIChmdW5jdGlvbigpew0KICBxdWVzdDAxX2lucHV0KCk7DQogIHJlYWN0aW9uKCQodGhpcykucGFyZW50cygibGkiKSwnYWN0X2thaXRlbl94Jyw1MDApOw0KICByZWFjdGlvbigkKHRoaXMpLnBhcmVudHMoInVsIikuZmluZCgiLnRvdGFsIHAiKSwnYWN0X2thaXRlbl94Jyw1MDApOw0KDQogIGV2ZW50X3BlcmlvZCgpOw0KICB0b3RhbF9wcm9ncmVzcygpOw0KfSkpOw0KLy89PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KDQoNCg0KDQovLz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQovLyDkuqTmj5vjgqLjgqTjg4bjg6DlhaXlipvmmYINCi8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCiQoIiNldmVudF90cmFkZSBzZWxlY3QsICNldmVudF90cmFkZSBpbnB1dCIpLm9uKCdjaGFuZ2UnLCAoZnVuY3Rpb24oKXsNCg0KICB0cmFkZV9pbnB1dCgpOw0KICByZWFjdGlvbigkKHRoaXMpLnBhcmVudHMoImxpIiksJ2FjdF9rYWl0ZW5feCcsNTAwKTsNCiAgcmVhY3Rpb24oJCh0aGlzKS5wYXJlbnRzKCJ1bCIpLmZpbmQoIi50b3RhbCBwIiksJ2FjdF9rYWl0ZW5feCcsNTAwKTsNCg0KICBldmVudF9wZXJpb2QoKTsNCiAgdG90YWxfcHJvZ3Jlc3MoKTsNCg0KfSkpOw0KLy89PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KDQoNCg0KLy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioNCn0pIC8v44Oh44Kk44Oz57WC5LqGDQovLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKg0KDQoNCg0KLy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioNCi8vIOmWouaVsOWumue+qQ0KLy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioNCi8vPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCi8vIOODquOCouOCr+OCt+ODp+ODs+WHpueQhiAo44Kv44Op44K55LuY5LiO77yG5LiA5a6a5pmC6ZaT5b6M44Gr5YmK6ZmkKQ0KZnVuY3Rpb24gcmVhY3Rpb24oU2VsZWN0b3IsIENsYXNzLCBEZWxheSl7DQovLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQogIFNlbGVjdG9yLmFkZENsYXNzKENsYXNzKS5kZWxheShEZWxheSkucXVldWUoZnVuY3Rpb24obmV4dCkgew0KICAgICQodGhpcykucmVtb3ZlQ2xhc3MoQ2xhc3MpOw0KICAgIG5leHQoKTsNCiAgfSk7DQp9OyAvLz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQoNCg0KLy89PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KLy8g44Kk44OZ44Oz44OI5pyf6ZaT44Gu6KiI566XDQpmdW5jdGlvbiBldmVudF9wZXJpb2QoKSB7DQovLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQp2YXIgRXZlbnRfbm93ID0gbmV3IERhdGUoKTsNCnZhciBJbmZvID0gJyc7DQp2YXIgUGVyYyA9ICcnOw0KDQovL+OCpOODmeacn+mWk+W+jA0KaWYgKEV2ZW50X25vdyA+PSBFdmVudF9lbmQpIHsNCiAgUGVyYyA9ICIxMDAuMCUiOw0KICBJbmZvID0gJyjntYLkuoYpJw0KLy/jgqTjg5nmnJ/plpPliY0NCn0gZWxzZSBpZiAoRXZlbnRfbm93IDw9IEV2ZW50X3N0YXJ0KSB7DQogIFBlcmMgPSAiMC4wJSI7DQogIEluZm8gPSAiKOmWi+Wni+OBvuOBpyAiICsgcmVtYWluaW5nVGltZShFdmVudF9zdGFydCxFdmVudF9ub3cpICsgIikiOw0KLy/jgqTjg5nmnJ/plpPkuK0NCn0gZWxzZSB7DQogIHZhciBFdmVudF9kYXlzID0gRXZlbnRfZW5kIC0gRXZlbnRfc3RhcnQ7DQogIHZhciBFdmVudF90ZGF5ID0gRXZlbnRfbm93IC0gRXZlbnRfc3RhcnQ7DQogIFBlcmMgPSBudW1lcmFsKEV2ZW50X3RkYXkgLyBFdmVudF9kYXlzKS5mb3JtYXQoJzAuMCUnKTsNCiAgSW5mbyA9ICIo5q6L44KKICIgKyByZW1haW5pbmdUaW1lKEV2ZW50X2VuZCxFdmVudF9ub3cpICsgIikiOw0KfQ0KLy/jgrDjg6njg5XooajnpLoNCiQoJyNncmFwaF9wZXJpb2QnKS5jc3MoJ3dpZHRoJywgUGVyYyk7DQpkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiZ3JhcGhfcGVyaW9kX3BlcmMiKS50ZXh0Q29udGVudCA9IFBlcmM7DQpkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiZ3JhcGhfcGVyaW9kX2luZm8iKS50ZXh0Q29udGVudCA9IEluZm87DQoNCn07IC8vPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCg0KDQovLz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQovLyDjgrDjg6zjg7zjgqLjgqbjg4gg44OB44Kn44OD44Kv44Oc44OD44Kv44K544Oq44K544OI55SoDQpmdW5jdGlvbiBncmF5b3V0X2NoZWNrYm94KExvb3BDb3VudCxTZWxlY3RvcjEsU2VsZWN0b3IyLENoZWNrQXJ5LEFkZENsYXNzKSB7DQovLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQpmb3IgKHZhciBpPTA7IGk8TG9vcENvdW50OyBpKyspIHsNCiAgdmFyIGogPSAoJzAwJytpKS5zbGljZSgtMik7DQogIHZhciBsaXN0X3h4ID0gU2VsZWN0b3IxK2orU2VsZWN0b3IyOw0KICBpZiAoQ2hlY2tBcnkuaW5kZXhPZihqKSA+PSAwKSB7DQogICAgJChsaXN0X3h4KS5hZGRDbGFzcyhBZGRDbGFzcykNCiAgfSBlbHNlIHsNCiAgICAkKGxpc3RfeHgpLnJlbW92ZUNsYXNzKEFkZENsYXNzKQ0KICB9DQp9DQoNCn07IC8vPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCg0KDQovLz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQovLyDjgq/jg4Pjgq3jg7zoqq3jgb/ovrzjgb/vvIbjg5Xjgqnjg7zjg6DoqK3lrpoNCmZ1bmN0aW9uIGNvb2tpZV9sb2FkKCl7DQovLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQoNCi8v5aWJ57SN44Od44Kk44Oz44OIDQovLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCmNvb2tpZV9sb2FkX3RyYWRlbGVmdCgicG9pbnQiLCAicG9pbnQiLCBwb2ludF9wcmVzZXQpOw0KDQovL+aUueevieOCr+OCqOOCueODiA0KLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQpjb29raWVfbG9hZF9jaGVja2JveCgncmVub3ZhdGlvbl9nZXQnKTsNCi8v5LiN6KaB44OB44Kn44OD44KvDQpjb29raWVfbG9hZF9jaGVja2JveCgncmVub3ZhdGlvbl9wYXNzJyk7DQoNCi8v44Oh44Kk44Oz44Kv44Ko44K544OIDQovLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCmNvb2tpZV9sb2FkX2NoZWNrYm94KCdxdWVzdDAwX2dldCcpOw0KLy/kuI3opoHjg4Hjgqfjg4Pjgq8NCmNvb2tpZV9sb2FkX2NoZWNrYm94KCdxdWVzdDAwX3Bhc3MnKTsNCg0KLy/jgZ3jga7ku5bjgq/jgqjjgrnjg4gNCi8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KY29va2llX2xvYWRfY2hlY2tib3goJ3F1ZXN0MDFfZ2V0Jyk7DQovL+S4jeimgeODgeOCp+ODg+OCrw0KY29va2llX2xvYWRfY2hlY2tib3goJ3F1ZXN0MDFfcGFzcycpOw0KDQovL+S6pOaPm+OCouOCpOODhuODoA0KLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQpmb3IgKHZhciBpPTA7IGk8VHJhZGVfY3VudDsgaSsrKSB7DQogIHZhciBqID0gKCcwMCcraSkuc2xpY2UoLTIpOw0KICB2YXIgTGVmdCAgPSAndHJhZGUnK2orJ19sZWZ0JzsNCiAgdmFyIFRyYWRlID0gJ3RyYWRlJytqOw0KICB2YXIgU3RvY2sgPSBldmFsKCdUcmFkZScraisnX3N0b2NrJyk7DQogIHZhciBQYXNzICA9ICd0cmFkZScraisnX3Bhc3MnOw0KDQogIC8v5Zyo5bqr5pWwDQogIGNvb2tpZV9sb2FkX3RyYWRlbGVmdChMZWZ0LCBUcmFkZSwgU3RvY2spOw0KICAvL+S4jeimgeODgeOCp+ODg+OCrw0KICBjb29raWVfbG9hZF9jaGVja2JveChQYXNzKTsNCn0NCg0KfTsNCg0KLy89PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KLy8g44Kv44OD44Kt44O86Kqt44G/6L6844G/77yG5Yid5pyf5YCk6Kit5a6aICjjg4Hjgqfjg4Pjgq/jg5zjg4Pjgq/jgrnkuIDmi6wpDQpmdW5jdGlvbiBjb29raWVfbG9hZF9jaGVja2JveChDb29raWVOYW1lKXsNCi8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCmlmKCQuY29va2llKENvb2tpZU5hbWUpKXsNCiAgdmFyIENvb2tpZUxvYWQgPSAkLmNvb2tpZShDb29raWVOYW1lKS5zcGxpdCgiOiIpOw0KICBmb3IodmFyIGk9MDsgaTxDb29raWVMb2FkLmxlbmd0aDsgKytpKXsNCiAgICBDb29raWVMb2FkW2ldID0gZGVjb2RlVVJJQ29tcG9uZW50KENvb2tpZUxvYWRbaV0pOw0KICB9DQogICQoImlucHV0W3R5cGU9Y2hlY2tib3hdW25hbWU9IitDb29raWVOYW1lKyJdIikuZWFjaChmdW5jdGlvbigpew0KICAgIHRoaXMuY2hlY2tlZCA9ICQuaW5BcnJheSh0aGlzLnZhbHVlLCBDb29raWVMb2FkKSAhPSAtMTsNCiAgfSk7DQp9IGVsc2Ugew0KICAgICQoImlucHV0W3R5cGU9Y2hlY2tib3hdW25hbWU9IitDb29raWVOYW1lKyJdIikucHJvcCgnY2hlY2tlZCcsZmFsc2UpOw0KfQ0KfTsgLy89PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KDQoNCi8vPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCi8vIOOCr+ODg+OCreODvOiqreOBv+i+vOOBv++8huWIneacn+WApOioreWumiDkuqTmj5vjgqLjgqTjg4bjg6AgKOOCr+ODg+OCreODvOWQjSwg44OI44Os44O844OJ55Wq5Y+3LCDlnKjluqtb6YWN5YiXXSkNCmZ1bmN0aW9uIGNvb2tpZV9sb2FkX3RyYWRlbGVmdChDb29raWVOYW1lLCBUcmFkZU5hbWUsIFN0b2NrKXsNCi8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCmlmKCQuY29va2llKENvb2tpZU5hbWUpKXsNCiAgdmFyIFRyYWRlX2xlZnRfbG9hZCA9ICQuY29va2llKENvb2tpZU5hbWUpLnNwbGl0KCI6Iik7DQogIGZvciAodmFyIGk9MDsgaTxTdG9jay5sZW5ndGg7IGkrKykgew0KICAgIFRyYWRlX2xlZnRfbG9hZFtpXSA9IGRlY29kZVVSSUNvbXBvbmVudChUcmFkZV9sZWZ0X2xvYWRbaV0pOw0KICAgIHZhciBqID0gKCcwMCcraSkuc2xpY2UoLTIpOw0KICAgIHZhciB0cmFkZXh4ID0gIiMiK1RyYWRlTmFtZSsiXyIrajsNCiAgICAvL+W+jOS7mOOBkeeUqOWtmOWcqOWIpOWumg0KICAgIGlmKFRyYWRlX2xlZnRfbG9hZFtpXSAhPT0gJ3VuZGVmaW5lZCcpew0KICAgICAgLy8g44GC44KL5aC05ZCIDQogICAgICAkKHRyYWRleHgpLnZhbChUcmFkZV9sZWZ0X2xvYWRbaV0pOw0KICAgIH0gZWxzZSB7DQogICAgICAvLyDjgarjgYTloLTlkIgNCiAgICAgICQodHJhZGV4eCkudmFsKFN0b2NrW2ldKTsNCiAgICB9DQogIH0NCn0gZWxzZSB7DQogIGZvciAodmFyIGk9MDsgaTxTdG9jay5sZW5ndGg7IGkrKykgew0KICAgIHZhciBqID0gKCcwMCcraSkuc2xpY2UoLTIpOw0KICAgIHZhciB0cmFkZXh4ID0gIiMiK1RyYWRlTmFtZSsiXyIrajsNCiAgICAkKHRyYWRleHgpLnZhbChTdG9ja1tpXSk7DQogIH0NCn0NCn07IC8vPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCg0KDQoNCg0KLy89PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KLy8g44Kv44OD44Kt44O85L+d5a2YDQpmdW5jdGlvbiBjb29raWVfc2F2ZSgpew0KLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KDQovL+Wliee0jeODneOCpOODs+ODiA0KLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQpjb29raWVfc2F2ZV9udW1iZXIoJ3BvaW50Jyk7DQoNCi8v5pS556+J44Kv44Ko44K544OIDQovLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCmNvb2tpZV9zYXZlX2NoZWNrYm94KCdyZW5vdmF0aW9uX2dldCcpOw0KLy/kuI3opoHjg4Hjgqfjg4Pjgq8NCmNvb2tpZV9zYXZlX2NoZWNrYm94KCdyZW5vdmF0aW9uX3Bhc3MnKTsNCg0KLy/jg6HjgqTjg7Pjgq/jgqjjgrnjg4gNCi8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KY29va2llX3NhdmVfY2hlY2tib3goJ3F1ZXN0MDBfZ2V0Jyk7DQovL+S4jeimgeODgeOCp+ODg+OCrw0KY29va2llX3NhdmVfY2hlY2tib3goJ3F1ZXN0MDBfcGFzcycpOw0KDQovL+OBneOBruS7luOCr+OCqOOCueODiA0KLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQpjb29raWVfc2F2ZV9jaGVja2JveCgncXVlc3QwMV9nZXQnKTsNCi8v5LiN6KaB44OB44Kn44OD44KvDQpjb29raWVfc2F2ZV9jaGVja2JveCgncXVlc3QwMV9wYXNzJyk7DQoNCi8v5Lqk5o+b44Ki44Kk44OG44OgDQovLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCmZvciAodmFyIGk9MDsgaTxUcmFkZV9jdW50OyBpKyspIHsNCiAgdmFyIGogPSAoJzAwJytpKS5zbGljZSgtMik7DQogIHZhciBMZWZ0ICA9ICd0cmFkZScraisnX2xlZnQnOw0KICB2YXIgVHJhZGUgPSAndHJhZGUnK2o7DQogIHZhciBTdG9jayA9IGV2YWwoJ1RyYWRlJytqKydfc3RvY2snKTsNCiAgdmFyIFBhc3MgID0gJ3RyYWRlJytqKydfcGFzcyc7DQoNCiAgLy/lnKjluqvmlbANCiAgY29va2llX3NhdmVfdHJhZGVsZWZ0KExlZnQsIFRyYWRlLCBTdG9jayk7DQogIC8v5LiN6KaB44OB44Kn44OD44KvDQogIGNvb2tpZV9zYXZlX2NoZWNrYm94KFBhc3MpOw0KfTsNCg0KDQovLz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQovLyDjgq/jg4Pjgq3jg7zkv53lrZggKOaVsOWApOmgheebrueUqCkNCmZ1bmN0aW9uIGNvb2tpZV9zYXZlX251bWJlcihOYW1lKXsNCi8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCnZhciBQcmVzZXQgPSBldmFsKE5hbWUgKyAnX3ByZXNldCcpOw0KdmFyIENvb2tpZV9udW1iZXJfc2F2ZSA9IFtdOw0KZm9yICh2YXIgaT0wOyBpPFByZXNldC5sZW5ndGg7IGkrKykgew0KICBqID0gKCcwMCcraSkuc2xpY2UoIC0yICk7DQogIHZhciBDb29raWVfeHggPSBOYW1lKydfJytqOw0KICBDb29raWVfbnVtYmVyX3NhdmUucHVzaChkb2N1bWVudC5nZXRFbGVtZW50QnlJZChDb29raWVfeHgpLnZhbHVlKTsNCn07DQokLmNvb2tpZShOYW1lLCBDb29raWVfbnVtYmVyX3NhdmUuam9pbigiOiIpLHtleHBpcmVzOkNvb2tpZV9leHB9KTsNCn07IC8vPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCg0KDQovLz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQovLyDjgq/jg4Pjgq3jg7zkv53lrZggKOODgeOCp+ODg+OCr+ODnOODg+OCr+OCueS4gOaLrCkNCmZ1bmN0aW9uIGNvb2tpZV9zYXZlX2NoZWNrYm94KENvb2tpZU5hbWUpew0KLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KdmFyIENvb2tpZV9jaGVja19zYXZlID0gW107DQokKCJpbnB1dFt0eXBlPWNoZWNrYm94XVtuYW1lPSIrQ29va2llTmFtZSsiXSIpLmVhY2goZnVuY3Rpb24oKXsNCiAgdGhpcy5jaGVja2VkICYmIENvb2tpZV9jaGVja19zYXZlLnB1c2goZW5jb2RlVVJJQ29tcG9uZW50KHRoaXMudmFsdWUpKTsNCn0pOw0KJC5jb29raWUoQ29va2llTmFtZSwgQ29va2llX2NoZWNrX3NhdmUuam9pbigiOiIpLHtleHBpcmVzOkNvb2tpZV9leHB9KTsNCn07IC8vPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCg0KDQovLz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQovLyDjgq/jg4Pjgq3jg7zkv53lrZggKOS6pOaPm+OCouOCpOODhuODoOWcqOW6q+aVsCkNCmZ1bmN0aW9uIGNvb2tpZV9zYXZlX3RyYWRlbGVmdChDb29raWVOYW1lLCBUcmFkZU5hbWUsIFN0b2NrKXsNCi8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCnZhciBUcmFkZV9sZWZ0X3NhdmUgPSBbXTsNCmZvciAodmFyIGk9MDsgaTxTdG9jay5sZW5ndGg7IGkrKykgew0KICBpID0gKCcwMCcraSkuc2xpY2UoIC0yICk7DQogIHZhciB0cmFkZXh4X3h4ID0gVHJhZGVOYW1lKyJfIitpOw0KICBUcmFkZV9sZWZ0X3NhdmUucHVzaChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCh0cmFkZXh4X3h4KS52YWx1ZSk7DQp9Ow0KJC5jb29raWUoQ29va2llTmFtZSwgVHJhZGVfbGVmdF9zYXZlLmpvaW4oIjoiKSx7ZXhwaXJlczpDb29raWVfZXhwfSk7DQp9OyAvLz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQoNCn07IC8vPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCg0KDQovLz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQovLyDjg6rjgrvjg4Pjg4ggKOOCr+ODg+OCreODvOa2iOWOuykNCmZ1bmN0aW9uIGNvb2tpZV9kZWxldGUoKXsNCi8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCi8v5aWJ57SN44Od44Kk44Oz44OIDQokLnJlbW92ZUNvb2tpZSgicG9pbnQiKTsNCi8v5pS556+J44Kv44Ko44K544OIDQokLnJlbW92ZUNvb2tpZSgicmVub3ZhdGlvbl9nZXQiKTsNCiQucmVtb3ZlQ29va2llKCJyZW5vdmF0aW9uX3Bhc3MiKTsNCi8v44Oh44Kk44Oz44Kv44Ko44K544OIDQokLnJlbW92ZUNvb2tpZSgicXVlc3QwMF9nZXQiKTsNCiQucmVtb3ZlQ29va2llKCJxdWVzdDAwX3Bhc3MiKTsNCi8v44Gd44Gu5LuW44Kv44Ko44K544OIDQokLnJlbW92ZUNvb2tpZSgicXVlc3QwMV9nZXQiKTsNCiQucmVtb3ZlQ29va2llKCJxdWVzdDAxX3Bhc3MiKTsNCi8v5Lqk5o+b44Ki44Kk44OG44OgDQpmb3IgKHZhciBpPTA7IGk8VHJhZGVfY3VudDsgaSsrKSB7DQogIHZhciBqID0gKCcwMCcraSkuc2xpY2UoLTIpOw0KICB2YXIgdHJhZGV4eCA9ICJ0cmFkZSIraisiXyI7DQogICQucmVtb3ZlQ29va2llKHRyYWRleHgrImxlZnQiKTsNCiAgJC5yZW1vdmVDb29raWUodHJhZGV4eCsicGFzcyIpOw0KfTsNCg0KfTsgLy89PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KDQoNCi8vPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCi8vIOOCsOODqeODleioiOeul++8huihqOekuiAo77yF77yM54++5YCkLCDnm67mqJksIOOCsOODqeODlUlELCDmjqXpoK3oqp4sIOaOpeWwvuiqniwg5q6L44KK5qGB5pWwLCDmrovjgorooajnpLrmm7jlvI8pDQpmdW5jdGlvbiBncmFwaF9kaXNwbGF5KFBlcixOdW0sVGd0LEdycCxQcmUsQWZ0LERpZyxGb3JtYXQpew0KLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KaWYoIUZvcm1hdCl7DQogIEZvcm1hdCA9ICcwLDAnOw0KfQ0KdmFyIEluZm8gPSAnJzsNCmlmIChQZXIgPT0gMSkgew0KICBpZiAoUHJlID09ICdMdicpIHsNCiAgICBJbmZvID0gJyjlrozmiJApJzsNCiAgfSBlbHNlIHsNCiAgICBJbmZvID0gJyjlrozkuoYpJzsNCiAgfQ0KfSBlbHNlIGlmIChQZXIgPiAxKSB7DQogIFBlciA9IDE7DQogIEluZm8gPSAnKOOCquODvOODkOODvCknOw0KfSBlbHNlIHsNCiAgaWYgKFByZSA9PSAnTHYnKSB7DQogICAgSW5mbyA9ICcoTHYgJytOdW0rJyDvvI8gJytUZ3QrQWZ0KycpJzsNCiAgfSBlbHNlIHsNCiAgICB2YXIgRGlnX1ByZSA9ICcnOw0KICAgIHZhciBEaWdfQWZ0ID0gJyc7DQogICAgaWYgKCBEaWcgIT0gJycpIHsgLy/moYHmlbDmjIflrprjgYzjgYLjgovloLTlkIgNCiAgICAgIERpZ19QcmUgPSAnPHNwYW4gc3R5bGU9IndpZHRoOicrRGlnKydlbTsiPic7DQogICAgICBEaWdfQWZ0ID0gJzwvc3Bhbj4nOw0KICAgIH0NCiAgICBJbmZvID0gJyjmrovjgoogJytEaWdfUHJlK251bWVyYWwoVGd0IC0gTnVtKS5mb3JtYXQoRm9ybWF0KStEaWdfQWZ0K0FmdCsnKSc7DQogIH0NCn0NClBlciA9IG51bWVyYWwoUGVyKS5mb3JtYXQoJzAuMCUnLE1hdGguZmxvb3IpOw0KDQovL+WFqOODkeOCueOBruWgtOWQiA0KdmFyIEJhciA9ICcnOw0KdmFyIEZsZyA9IDA7DQppZiAoUHJlID09ICdMdicpIHsNCiAgaWYgKFRndCA9PSAxICYmIE51bSA9PSAxKSB7DQogICAgRmxnID0gMTsNCiAgfQ0KfSBlbHNlIHsNCiAgaWYgKFRndCA9PSAwICYmIE51bSA9PSAwKSB7DQogICAgRmxnID0gMTsNCiAgfQ0KfQ0KaWYgKEZsZyA9PT0gMSkgew0KICAgIFBlciA9ICcnOw0KICAgIEluZm8gPSAnKO+8je+8jSknOw0KICAgIEJhciA9ICfvvI3vvI0nOw0KfQ0KDQovL+OCsOODqeODleihqOekug0KJCgnIycrR3JwKS5jc3MoJ3dpZHRoJywgUGVyKTsNCmRvY3VtZW50LmdldEVsZW1lbnRCeUlkKEdycCsiX3BlcmMiKS50ZXh0Q29udGVudCA9IFBlcitCYXI7DQpkb2N1bWVudC5nZXRFbGVtZW50QnlJZChHcnArIl9pbmZvIikuaW5uZXJIVE1MID0gSW5mbzsNCmlmICggQmFyID09ICfvvI3vvI0nKSB7DQogICQoJyMnK0dycCsnX3BlcmMnKS5jc3MoJ3BhZGRpbmctcmlnaHQnLCAnMWVtJyk7DQp9IGVsc2Ugew0KICAkKCcjJytHcnArJ19wZXJjJykuY3NzKCdwYWRkaW5nLXJpZ2h0JywgJzAnKTsNCn0NCg0KfTsgLy89PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KDQoNCi8vPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCi8vIOWliee0jeODneOCpOODs+ODiOOBruWFpeWKm+WHpueQhg0KZnVuY3Rpb24gcG9pbnRfaW5wdXQoKXsNCi8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCi8v5ZCE5YCk44Gu5Y+W5b6XDQp2YXIgUF9Ob3cgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgncG9pbnRfMDAnKS52YWx1ZSoxOw0KdmFyIFBUYXJnID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3BvaW50XzAxJykudmFsdWUqMTsNCnZhciBTYXRpcyA9IGRlbEZpZ3VyZSgkKCIjc2F0aXNmYWN0aW9uX25vdzIiKS50ZXh0KCkpKjE7DQoNCi8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQovL+aui+OCiuWliee0jeWbnuaVsA0KdmFyIEV2ZW50X25vdyA9IG5ldyBEYXRlKCk7DQp2YXIgTGVmdFRpbWUgPSBNYXRoLmNlaWwoKE9mZmVyaW5nX2VuZCAtIEV2ZW50X25vdykgLyAoIDYwICogNjAgKjI0KSAvIDEwMDApOw0KaWYgKExlZnRUaW1lIDwgMCkgew0KCUxlZnRUaW1lID0gMDsNCn0NCg0KLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCi8v5pyA57WC6KaL6L6844G/DQp2YXIgTGFzdFBvaW50cyA9IChTYXRpcyAqIExlZnRUaW1lKSArIFBfTm93Ow0KDQovLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KLy/ooajnpLoNCmRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJwcm9zcGVjdGl2ZSIpLnRleHRDb250ZW50ID0gbnVtZXJhbChMYXN0UG9pbnRzKS5mb3JtYXQoJzAsMCcpOw0KZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm9mZmVyaW5nX3RpbWUiKS50ZXh0Q29udGVudCA9IG51bWVyYWwoTGVmdFRpbWUpLmZvcm1hdCgnMCwwJykgKycg5ZueJzsNCg0KLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCi8v55uu5qiZ6YGU5oiQ546HDQp2YXIgUGVyYyA9IExhc3RQb2ludHMgLyBQVGFyZzsNCi8v44Kw44Op44OV6KGo56S6DQpncmFwaF9kaXNwbGF5KFBlcmMsIExhc3RQb2ludHMsIFBUYXJnLCAnZ3JhcGhfcG9pbnQnLCfmrovjgoonLCAnJywgJycsJycpOw0KDQoNCg0KfTsgLy89PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KDQoNCi8vPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCi8vIOaUueevieOCr+OCqOOCueODiOOBruWFpeWKm+WHpueQhg0KZnVuY3Rpb24gcmVub3ZhdGlvbl9pbnB1dCgpew0KLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KDQovLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCi8v44OV44Kp44O844Og44GL44KJ44Kv44Oq44KiKOODgeOCp+ODg+OCrynjgpLlj5blvpcNCnZhciBHZXRDaGVja2VkID0gW107DQokKCdbbmFtZT0icmVub3ZhdGlvbl9nZXQiXTpjaGVja2VkJykuZWFjaChmdW5jdGlvbigpew0KICBHZXRDaGVja2VkLnB1c2goJCh0aGlzKS52YWwoKSk7DQp9KTsNCi8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KLy/jg5Xjgqnjg7zjg6DjgYvjgonjg5Hjgrko44OB44Kn44OD44KvKeOCkuWPluW+lw0KdmFyIFBhc3NDaGVja2VkID0gW107DQokKCdbbmFtZT0icmVub3ZhdGlvbl9wYXNzIl06Y2hlY2tlZCcpLmVhY2goZnVuY3Rpb24oKXsNCiAgUGFzc0NoZWNrZWQucHVzaCgkKHRoaXMpLnZhbCgpKTsNCn0pOw0KDQovLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCi8v5ZCE5ZCI6KiI44KS6KiI566XDQpTYXRpc1RvdGFsID0gTWF0ZXJpYWxUb3RhbChTYXRpcyxQYXNzQ2hlY2tlZCk7DQpNYXQwX1RvdGFsID0gTWF0ZXJpYWxUb3RhbChNYXQwLFBhc3NDaGVja2VkKTsNCk1hdDFfVG90YWwgPSBNYXRlcmlhbFRvdGFsKE1hdDEsUGFzc0NoZWNrZWQpOw0KTWF0Ml9Ub3RhbCA9IE1hdGVyaWFsVG90YWwoTWF0MixQYXNzQ2hlY2tlZCk7DQoNClNhdGlzTm93ID0gTWF0ZXJpYWxUb3RhbChTYXRpcyxHZXRDaGVja2VkKTsNCk1hdDBfTm93ID0gTWF0ZXJpYWxUb3RhbChNYXQwLEdldENoZWNrZWQpOw0KTWF0MV9Ob3cgPSBNYXRlcmlhbFRvdGFsKE1hdDEsR2V0Q2hlY2tlZCk7DQpNYXQyX05vdyA9IE1hdGVyaWFsVG90YWwoTWF0MixHZXRDaGVja2VkKTsNCg0KZnVuY3Rpb24gTWF0ZXJpYWxUb3RhbChBcnksQ2hlY2spew0KICB2YXIgVG90YWxBcnkgPSBbXTsNCiAgZm9yICh2YXIgaT0wOyBpPEFyeS5sZW5ndGg7IGkrKykgew0KICAgIHZhciBpaSA9ICgnMDAnK2kpLnNsaWNlKC0yKTsNCiAgICBpZihDaGVjayA9PSBQYXNzQ2hlY2tlZCl7DQogICAgICBpZiAoQ2hlY2suaW5kZXhPZihpaSkgPT0gLTEpIHsNCiAgICAgICAgVG90YWxBcnkucHVzaChBcnlbaV0pOw0KICAgICAgfQ0KICAgIH0gZWxzZSB7DQogICAgICBpZiAoQ2hlY2suaW5kZXhPZihpaSkgPj0gMCkgew0KICAgICAgICBUb3RhbEFyeS5wdXNoKEFyeVtpXSk7DQogICAgICB9DQogICAgfQ0KICB9DQogIHJldHVybiBjYWxjX3N1bShUb3RhbEFyeSk7DQp9DQoNCi8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KLy/lkITlkIjoqIjjgpLooajnpLoNCmRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzYXRpc2ZhY3Rpb25fbm93IikudGV4dENvbnRlbnQgICAgPSBudW1lcmFsKFNhdGlzTm93KS5mb3JtYXQoJzAsMCcpOw0KZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInNhdGlzZmFjdGlvbl9ub3cyIikudGV4dENvbnRlbnQgICA9IG51bWVyYWwoU2F0aXNOb3cpLmZvcm1hdCgnMCwwJyk7DQpkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgic2F0aXNmYWN0aW9uX3RhcmdldCIpLnRleHRDb250ZW50ID0gbnVtZXJhbChTYXRpc1RvdGFsKS5mb3JtYXQoJzAsMCcpOw0KZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm1hdDBfbm93IikudGV4dENvbnRlbnQgICAgPSBudW1lcmFsKE1hdDBfTm93KS5mb3JtYXQoJzAsMCcpOw0KZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm1hdDBfdGFyZ2V0IikudGV4dENvbnRlbnQgPSBudW1lcmFsKE1hdDBfVG90YWwpLmZvcm1hdCgnMCwwJyk7DQpkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgibWF0MF9ub3cyIikudGV4dENvbnRlbnQgICAgPSBudW1lcmFsKE1hdDBfTm93KS5mb3JtYXQoJzAsMCcpOw0KZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm1hdDBfdGFyZ2V0MiIpLnRleHRDb250ZW50ID0gbnVtZXJhbChNYXQwX1RvdGFsKS5mb3JtYXQoJzAsMCcpOw0KZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm1hdDFfbm93IikudGV4dENvbnRlbnQgICAgPSBudW1lcmFsKE1hdDFfTm93KS5mb3JtYXQoJzAsMCcpOw0KZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm1hdDFfdGFyZ2V0IikudGV4dENvbnRlbnQgPSBudW1lcmFsKE1hdDFfVG90YWwpLmZvcm1hdCgnMCwwJyk7DQpkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgibWF0MV9ub3cyIikudGV4dENvbnRlbnQgICAgPSBudW1lcmFsKE1hdDFfTm93KS5mb3JtYXQoJzAsMCcpOw0KZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm1hdDFfdGFyZ2V0MiIpLnRleHRDb250ZW50ID0gbnVtZXJhbChNYXQxX1RvdGFsKS5mb3JtYXQoJzAsMCcpOw0KZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm1hdDJfbm93IikudGV4dENvbnRlbnQgICAgPSBudW1lcmFsKE1hdDJfTm93KS5mb3JtYXQoJzAsMCcpOw0KZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm1hdDJfdGFyZ2V0IikudGV4dENvbnRlbnQgPSBudW1lcmFsKE1hdDJfVG90YWwpLmZvcm1hdCgnMCwwJyk7DQpkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgibWF0Ml9ub3cyIikudGV4dENvbnRlbnQgICAgPSBudW1lcmFsKE1hdDJfTm93KS5mb3JtYXQoJzAsMCcpOw0KZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm1hdDJfdGFyZ2V0MiIpLnRleHRDb250ZW50ID0gbnVtZXJhbChNYXQyX1RvdGFsKS5mb3JtYXQoJzAsMCcpOw0KDQovLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCi8v44Kw44Os44O844Ki44Km44OIDQpncmF5b3V0X2NoZWNrYm94KFNhdGlzLmxlbmd0aCwiI2V2ZW50X3Jlbm92YXRpb24gLmxpc3RfIiwiIHVsIixHZXRDaGVja2VkLCJnZXQiKTsNCmdyYXlvdXRfY2hlY2tib3goU2F0aXMubGVuZ3RoLCIjZXZlbnRfcmVub3ZhdGlvbiAubGlzdF8iLCIgdWwiLFBhc3NDaGVja2VkLCJwYXNzIik7DQoNCi8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KLy/jgq/jg6rjgqLnjofjgajjgrDjg6njg5XooajnpLoNCnZhciBQZXJjID0gU2F0aXNOb3cgLyBTYXRpc1RvdGFsOw0KZ3JhcGhfZGlzcGxheShQZXJjLCBTYXRpc05vdywgU2F0aXNUb3RhbCwgJ2dyYXBoX3Jlbm92YXRpb24nLCfmrovjgoonLCAnJywgJycpOw0KDQp9OyAvLz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQoNCg0KLy89PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KLy8g44Oh44Kk44Oz44Kv44Ko44K544OI44Gu5YWl5Yqb5Yem55CGDQpmdW5jdGlvbiBxdWVzdDAwX2lucHV0KCl7DQovLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQpRdWVzdFNlcnZhbnQoJ3F1ZXN0MDAnKTsNCn07IC8vPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCg0KLy89PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KLy8g44Gd44Gu5LuW44Kv44Ko44K544OI44Gu5YWl5Yqb5Yem55CGDQpmdW5jdGlvbiBxdWVzdDAxX2lucHV0KCl7DQovLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQpRdWVzdFNlcnZhbnQoJ3F1ZXN0MDEnKTsNCn07IC8vPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCg0KLy89PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KLy8g44Kv44Ko44K544OI44O744K144O844O044Kh44Oz44OI5Yem55CG6Zai5pWwICjjgq/jg4Pjgq3jg7zlkI0sKQ0KZnVuY3Rpb24gUXVlc3RTZXJ2YW50KE5hbWUpew0KLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KLy/jg5Xjgqnjg7zjg6DjgYvjgonjgq/jg6rjgqLliKTlrprjgpLlj5blvpcNCnZhciBDb29raWVHZXQgPSBOYW1lKydfZ2V0JzsNCnZhciBHZXRfY2hlY2tlZCA9IFtdOw0KJCgnW25hbWU9JytDb29raWVHZXQrJ106Y2hlY2tlZCcpLmVhY2goZnVuY3Rpb24oKXsNCiAgR2V0X2NoZWNrZWQucHVzaCgkKHRoaXMpLnZhbCgpKTsNCn0pOw0KLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQovL+ODleOCqeODvOODoOOBi+OCieS4jeimgSjjg4Hjgqfjg4Pjgq8p44KS5Y+W5b6XDQp2YXIgQ29va2llUGFzcyA9IE5hbWUrJ19wYXNzJzsNCnZhciBQYXNzX2NoZWNrZWQgPSBbXTsNCiQoJ1tuYW1lPScrQ29va2llUGFzcysnXTpjaGVja2VkJykuZWFjaChmdW5jdGlvbigpew0KICBQYXNzX2NoZWNrZWQucHVzaCgkKHRoaXMpLnZhbCgpKTsNCn0pOw0KLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQovL+mgheebruaVsOOCkuOCq+OCpuODs+ODiA0KdmFyIEl0ZW0gPSAkKCcjZXZlbnRfJytOYW1lKycgLmxpc3RfaXRlbScpLmxlbmd0aCAtMTsNCi8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KLy/jg5/jg4Pjgrfjg6fjg7PmrovmlbANCnZhciBUb3RhbCA9IEl0ZW0gLSBQYXNzX2NoZWNrZWQubGVuZ3RoOw0KdmFyIExlZnQgPSBUb3RhbCAtIEdldF9jaGVja2VkLmxlbmd0aDsNCmlmICggTGVmdCA8IDAgKSB7DQoJTGVmdCA9IDA7DQp9Ow0KLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQovL+OCr+ODquOCoueOh+OBqOOCsOODqeODleihqOekug0KdmFyIFBlcmMgPSBHZXRfY2hlY2tlZC5sZW5ndGggLyBUb3RhbDsNCmdyYXBoX2Rpc3BsYXkoUGVyYywgR2V0X2NoZWNrZWQubGVuZ3RoLCBUb3RhbCwgJ2dyYXBoXycrTmFtZSwn5q6L44KKJywgJycsICcnKTsNCg0KLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQovL+OCsOODrOODvOOCouOCpuODiA0KZ3JheW91dF9jaGVja2JveChJdGVtLCIjZXZlbnRfIitOYW1lKyIgLmxpc3RfIiwiIHVsIixHZXRfY2hlY2tlZCwiZ2V0Iik7DQpncmF5b3V0X2NoZWNrYm94KEl0ZW0sIiNldmVudF8iK05hbWUrIiAubGlzdF8iLCIgdWwiLFBhc3NfY2hlY2tlZCwicGFzcyIpOw0KLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQovL+aui+aVsOihqOekug0KZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoTmFtZSsiX2xlZnRudW0iKS50ZXh0Q29udGVudCA9ICLjgq/jg6rjgqLmlbAgKCAiK251bWVyYWwoR2V0X2NoZWNrZWQubGVuZ3RoKS5mb3JtYXQoJzAsMCcpKyIg77yPICIrbnVtZXJhbChUb3RhbCkuZm9ybWF0KCcwLDAnKSsiICkiOw0KfTsgLy89PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KDQoNCg0KLy89PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KLy8g5Lqk5o+b44Ki44Kk44OG44Og44Gu5Yem55CGDQpmdW5jdGlvbiB0cmFkZV9pbnB1dCgpew0KLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQovLyDjgqTjg5njg7Pjg4jjgqLjgqTjg4bjg6Ag5Lqk5o+bDQovLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCmZvciAodmFyIGk9MDsgaTxUcmFkZV9jdW50OyBpKyspIHsNCiAgdmFyIGogPSAoJzAwJytpKS5zbGljZSgtMik7DQogIHZhciBUcmFkZSA9ICJ0cmFkZSIrajsNCiAgdmFyIENvc3QgID0gZXZhbCgnVHJhZGUnK2orJ19jb3N0Jyk7DQogIHZhciBTdG9jayA9IGV2YWwoJ1RyYWRlJytqKydfc3RvY2snKTsNCiAgdHJhZGVpdGVtX3Byb2Nlc3MoVHJhZGUsIENvc3QsIFN0b2NrKTsNCn07DQoNCi8vPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCi8vIOS6pOaPm+OCouOCpOODhuODoOOBruWHpueQhiAo5Zyo5bqr44O75LiN6KaB44O75ZCI6KiI44O744Kw44Op44OV6KGo56S6KQ0KZnVuY3Rpb24gdHJhZGVpdGVtX3Byb2Nlc3MoVHJhZGVOYW1lLCBDb3N0LCBTdG9jayl7DQovLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQovL+OAkOS+i+WkluWHpueQhuOAkeODleOCqeODvOODoOOBi+OCiemWu+mtlOS6reaUueevieiyu+OCkuWPluW+lw0KdmFyIFJlbm92Tm93ICAgPSAnJzsNCnZhciBSZW5vdlRvdGFsID0gJyc7DQppZiAoVHJhZGVOYW1lID09ICd0cmFkZTAwJykgew0KICBSZW5vdk5vdyAgID0gZGVsRmlndXJlKCQoIiNtYXQyX25vdzIiKS50ZXh0KCkpKjE7DQogIFJlbm92VG90YWwgPSBkZWxGaWd1cmUoJCgiI21hdDJfdGFyZ2V0MiIpLnRleHQoKSkqMTsNCn0gZWxzZSBpZiAoVHJhZGVOYW1lID09ICd0cmFkZTAxJykgew0KICBSZW5vdk5vdyAgID0gZGVsRmlndXJlKCQoIiNtYXQxX25vdzIiKS50ZXh0KCkpKjE7DQogIFJlbm92VG90YWwgPSBkZWxGaWd1cmUoJCgiI21hdDFfdGFyZ2V0MiIpLnRleHQoKSkqMTsNCn0gZWxzZSBpZiAoVHJhZGVOYW1lID09ICd0cmFkZTAyJykgew0KICBSZW5vdk5vdyAgID0gZGVsRmlndXJlKCQoIiNtYXQwX25vdzIiKS50ZXh0KCkpKjE7DQogIFJlbm92VG90YWwgPSBkZWxGaWd1cmUoJCgiI21hdDBfdGFyZ2V0MiIpLnRleHQoKSkqMTsNCn0NCg0KLy/jg5Xjgqnjg7zjg6DjgYvjgonlgKQo5Zyo5bqr5pWwKeOCkuWPluW+lw0KdmFyIExlZnQgPSBbXTsNCmZvciAodmFyIGk9MDsgaTxTdG9jay5sZW5ndGg7IGkrKykgew0KICB2YXIgaiA9ICgnMDAnK2kpLnNsaWNlKC0yKTsNCiAgdmFyIFRyYWRlWFhfWFggPSBUcmFkZU5hbWUrIl8iK2o7DQogIExlZnQucHVzaChkb2N1bWVudC5nZXRFbGVtZW50QnlJZChUcmFkZVhYX1hYKS52YWx1ZSk7DQp9DQovLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCi8v44OV44Kp44O844Og44GL44KJ5LiN6KaBKOODgeOCp+ODg+OCrynjgpLlj5blvpcNCnZhciBQYXNzX0NoZWNrZWQgPSBbXTsNCiQoJ1tuYW1lPSInK1RyYWRlTmFtZSsnX3Bhc3MiXTpjaGVja2VkJykuZWFjaChmdW5jdGlvbigpew0KICBQYXNzX0NoZWNrZWQucHVzaCgkKHRoaXMpLnZhbCgpKTsNCn0pOw0KDQovLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCi8v5ZCI6KiI6LK755So44KS6KiI566XDQp2YXIgTWF4Q29zdCA9IFtdOw0KZm9yICh2YXIgaT0wOyBpPFN0b2NrLmxlbmd0aDsgaSsrKSB7DQogIHZhciBqID0gKCcwMCcraSkuc2xpY2UoLTIpOw0KICBpZiAoUGFzc19DaGVja2VkLmluZGV4T2YoaikgPT0gLTEpIHsNCiAgICBNYXhDb3N0LnB1c2goQ29zdFtpXSpTdG9ja1tpXSk7DQogIH0NCn0NCnZhciBNYXhDb3N0ID0gY2FsY19zdW0oTWF4Q29zdCk7DQogIC8v44CQ5L6L5aSW5Yem55CG44CR6Za76a2U5Lqt44Gu5Yem55CGDQogIGlmIChUcmFkZU5hbWUgPT0gJ3RyYWRlMDAnIHx8IFRyYWRlTmFtZSA9PSAndHJhZGUwMScgfHwgVHJhZGVOYW1lID09ICd0cmFkZTAyJykgew0KICAgIE1heENvc3QgPSBNYXhDb3N0ICsgUmVub3ZUb3RhbDsNCiAgfQ0KDQovL+aui+OCiuiyu+eUqOOCkuioiOeulw0KLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQp2YXIgVG90YWxDb3N0ID0gW107DQpmb3IgKHZhciBpPTA7IGk8U3RvY2subGVuZ3RoOyBpKyspIHsNCiAgdmFyIGogPSAoJzAwJytpKS5zbGljZSgtMik7DQogIGlmIChQYXNzX0NoZWNrZWQuaW5kZXhPZihqKSA9PSAtMSkgew0KICAgIFRvdGFsQ29zdC5wdXNoKENvc3RbaV0qTGVmdFtpXSk7DQogIH0NCn0NClRvdGFsQ29zdCA9IGNhbGNfc3VtKFRvdGFsQ29zdCk7DQogIC8v44CQ5L6L5aSW5Yem55CG44CR6Za76a2U5Lqt44Gu5Yem55CGDQogIGlmIChUcmFkZU5hbWUgPT0gJ3RyYWRlMDAnIHx8IFRyYWRlTmFtZSA9PSAndHJhZGUwMScgfHwgVHJhZGVOYW1lID09ICd0cmFkZTAyJykgew0KICAgIFRvdGFsQ29zdCA9IFRvdGFsQ29zdCArIChSZW5vdlRvdGFsLVJlbm92Tm93KTsNCiAgfQ0KDQovLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCi8v5Zue5Y+O546H44KS6KiI566XDQp2YXIgUGVyYyA9IDA7DQppZiAoTWF4Q29zdCAhPSAwKSB7DQogIFBlcmMgPSAxLShUb3RhbENvc3QgLyBNYXhDb3N0KTsNCn0NCi8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KLy/lkIjoqIjosrvnlKjooajnpLoNCmRvY3VtZW50LmdldEVsZW1lbnRCeUlkKFRyYWRlTmFtZSsiX2xlZnRudW0iKS50ZXh0Q29udGVudCA9ICLlkIjoqIggKCAiK251bWVyYWwoTWF4Q29zdCAtIFRvdGFsQ29zdCkuZm9ybWF0KCcwLDAnKSsiIO+8jyAiK251bWVyYWwoTWF4Q29zdCkuZm9ybWF0KCcwLDAnKSsiICkiOw0KDQovLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCi8v44Kw44Os44O844Ki44Km44OIKOWcqOW6qzApDQpmb3IgKHZhciBpPTA7IGk8U3RvY2subGVuZ3RoOyBpKyspIHsNCiAgdmFyIGogPSAoJzAwJytpKS5zbGljZSgtMik7DQogIHZhciBJdGVtX1hYID0gIiMiK1RyYWRlTmFtZSsiIC5saXN0XyIraisiIC50cmFkZXNob3BfaXRlbSI7DQogIGlmIChMZWZ0W2ldPT0wKSB7DQogICAgJChJdGVtX1hYKS5hZGRDbGFzcygiZ2V0IikNCiAgfSBlbHNlIHsNCiAgICAkKEl0ZW1fWFgpLnJlbW92ZUNsYXNzKCJnZXQiKQ0KICB9DQp9DQovLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCi8v44Kw44Os44O844Ki44Km44OIKOS4jeimgeODgeOCp+ODg+OCrykNCmZvciAodmFyIGk9MDsgaTxTdG9jay5sZW5ndGg7IGkrKykgew0KICB2YXIgaiA9ICgnMDAnK2kpLnNsaWNlKC0yKTsNCiAgdmFyIEl0ZW1fWFggPSAiIyIrVHJhZGVOYW1lKyIgLmxpc3RfIitqKyIgLnRyYWRlc2hvcF9pdGVtIjsNCiAgaWYgKFBhc3NfQ2hlY2tlZC5pbmRleE9mKGopID49IDApIHsNCiAgICAkKEl0ZW1fWFgpLmFkZENsYXNzKCJwYXNzIikNCiAgfSBlbHNlIHsNCiAgICAkKEl0ZW1fWFgpLnJlbW92ZUNsYXNzKCJwYXNzIikNCiAgfQ0KfQ0KDQovLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCi8v44Kw44Op44OV6KGo56S6DQpncmFwaF9kaXNwbGF5KFBlcmMsIE1heENvc3QgLSBUb3RhbENvc3QsIE1heENvc3QsICdncmFwaF8nK1RyYWRlTmFtZSwn5q6L44KKJywgJycsICcnKTsNCg0KfTsgLy89PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KDQp9OyAvLz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQoNCg0KDQovLz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQovLyDnt4/lkIjpgLLooYzluqbjga7lh6bnkIYNCmZ1bmN0aW9uIHRvdGFsX3Byb2dyZXNzKCl7DQovLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQoNCi8v5ZCE6YCy6KGM5bqm44Gu5Y+W5b6XDQp2YXIgR3JwX3RvdGFsID0gW107DQp2YXIgTmVnQ291bnQgPSAwOw0KdmFyIEdyYXBoX2VuZCA9IEdyYXBoX2UgKyAxOw0KZm9yICh2YXIgaT1HcmFwaF9zOyBpPEdyYXBoX2VuZDsgaSsrKSB7DQogdmFyIGogPSAoJzAwJytpKS5zbGljZSgtMik7DQogdmFyIGdyYXBoX3h4ID0gIiNldmVudF9ncmFwaCAuZ3JhcGhfIitqKyIgZGQgc3BhbiI7DQogdmFyIEdycF9wcmMgPSAkKGdyYXBoX3h4KS50ZXh0KCk7DQogaWYgKEdycF9wcmMuaW5kZXhPZign77yNJykgIT0gLTEpIHsgLy/poIXnm67jgYzlhajkuI3opoHjga7loLTlkIgNCiAgIE5lZ0NvdW50Kys7DQogfWVsc2V7DQogICBHcnBfcHJjID0gcGFyc2VJbnQoR3JwX3ByYy5zdWJzdHIoMCxHcnBfcHJjLmluZGV4T2YoIiUiKSkpOw0KICAgaWYgKCBHcnBfcHJjID4gMTAwKSB7DQogICAgIEdycF9wcmMgPSAxMDA7DQogICB9DQogICBHcnBfdG90YWwucHVzaChHcnBfcHJjKTsNCiB9Ow0KfTsNCg0KLy/ooajnpLrliqDlt6UNCnZhciBQZXJjID0gY2FsY19zdW0oR3JwX3RvdGFsKSAvIDEwMCAvICgoR3JhcGhfZW5kIC0gR3JhcGhfcykgLSBOZWdDb3VudCk7DQp2YXIgSW5mbyA9ICcnOw0KaWYgKFBlcmMgPT0gMSkgew0KICBJbmZvID0gJyjlrozkuoYpJzsNCn0NClBlcmMgPSBudW1lcmFsKFBlcmMpLmZvcm1hdCgnMC4wJScsTWF0aC5mbG9vcik7DQoNCi8v44Kw44Op44OV6KGo56S6DQokKCcjZ3JhcGhfb3ZlcmFsbCcpLmNzcygnd2lkdGgnLCBQZXJjKTsNCmRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJncmFwaF9vdmVyYWxsX3BlcmMiKS50ZXh0Q29udGVudCA9IFBlcmM7DQpkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiZ3JhcGhfb3ZlcmFsbF9pbmZvIikudGV4dENvbnRlbnQgPSBJbmZvOw0KDQp9OyAvLz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQoNCg0KDQovLz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KfSkoalF1ZXJ5KTsgLy/jgqvjg5fjgrvjg6vljJYNCi8vPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQo=
使い方
進行状況グラフ

イベント期間
イベント開催期間の経過状況を表わしたグラフです。時間経過と共に増加し【100%】でイベント終了となります。
総合進行度
イベントクエストの進行度合いや、交換アイテムの回収率などを1つにまとめた総合的な進行状況です。
上記の【イベント期間】と照らし合わせることでイベントの進捗を計ることができます。
その他のグラフは、各項目の進行度や回収状況に加え、残りの必要数などを表示しています。
保存と初期化

保存
保存ボタンを押すと現在入力されている内容がブラウザの【Cookie】に保存され、このページを離れても登録した内容を維持することができます。どのボタンを押しても全ての項目が一度に保存されるので、項目毎に何度も押す必要はありません。
初期化
グラフの右下にある【初期化】ボタンを押すと、確認の後に保存されている内容がすべて削除され、各項目を初期値に戻すことができます。
奉納ポイントについて

奉納ポイントは【現在】と【目標】とする値を登録してください。
次項で設定する【お客様満足度】と、残りの【奉納回数】により【最終的な見込みポイント】を計算しグラフに反映します。
目標ポイント
目標ポイントの初期値は、最終報酬の【500万】(最短13日間)に設定されています。
イベントのメインクエストをクリアするだけなら【50万】(最短4日間)が目安となります。
最短奉納ポイント獲得の流れ
| 1日目 |
奉納:
0
満足:
6,000
|
| 2日目 |
奉納:
6,000
満足:
85,000
|
| 3日目 |
奉納:
91,000
満足:
490,000
|
4日目 クエスト完了 |
奉納:
581,000
満足:
500,000
|
| 5日目 |
奉納:
1,081,000
満足:
500,000
|
|
~
|
13日目 最終報酬達成 |
奉納:
5,081,000
満足:
500,000
|
改築クエスト(お客様満足度)について

クリアしたクエストに対応する項目の【クリア欄にチェック】(タップやクリック)をして下さい。

チェックしたクエストに応じた【お客様満足度】や、消費した【材木】の集計を一番下に表示します。
お客様満足度と材木
お客様満足度の値は、達成度がグラフに反映されるほか、前項の奉納ポイントの計算にも使用されます。
また、材木の必要数と消費数は、後の交換アイテムの項目にも使用されます。
メイン・その他クエストの入力

クリアしたクエストに対応する項目の【クリア欄にチェック】(タップやクリック)をして下さい。
チェック数に応じて達成度がグラフに反映されます。
イベント交換アイテムの登録

交換したアイテムの【残り回数】を、チェックシートの【在庫】欄に登録してください。
こちらの入力欄は選択式になっています。
各種、交換したアイテムに応じて、達成度がグラフに反映されます。
パス欄について

各クエストや交換アイテムの項目には【パス】欄を設けています。
この欄にチェックを入れると、その項目を集計から外すことができます。
戦力的に難しいクエストや、不要なアイテムなどにご利用ください。
また、パス欄のチェックを外せば、いつでもその項目を集計に戻すことができます。