From 7291f1ac621c84342b7146e5664487c02f1c7d49 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EC=9D=B4=EA=B2=BD=EB=AF=BC?= Date: Thu, 19 Mar 2026 13:15:40 +0900 Subject: [PATCH] Upload converters/pipeline/fmt_gpd_report.py --- 03.Code/geulbeot_업로드용/converters/pipeline/fmt_gpd_report.py | 1 + 1 file changed, 1 insertion(+) create mode 100644 03.Code/geulbeot_업로드용/converters/pipeline/fmt_gpd_report.py diff --git a/03.Code/geulbeot_업로드용/converters/pipeline/fmt_gpd_report.py b/03.Code/geulbeot_업로드용/converters/pipeline/fmt_gpd_report.py new file mode 100644 index 0000000..17e7366 --- /dev/null +++ b/03.Code/geulbeot_업로드용/converters/pipeline/fmt_gpd_report.py @@ -0,0 +1 @@ +IyAtKi0gY29kaW5nOiB1dGYtOCAtKi0KIiIiCmZtdF9ncGRfcmVwb3J0LnB5IOKAlCBHUEQg67O06rOg7ISc7ZiVIO2VuOuTpOufrAotIOyhsOqxtDog7Zek642UIO2MqO2EtCAy6rCcIOydtOyDgSBPUiDqs7XrsLEg6riw67CYIOuTpOyXrOyTsOq4sAotIO2KueynlTogdGFnL3RpdGxlL3NlY3Rpb24vYnVsbGV0L3N1Yi9ub3RlL2V4YW1wbGVfYm94L2NvZGVfYmxvY2sKLSDqs7XrsLEg7Iuc7J6RIOu4lOuhneycvOuhnCDqs4TsuLUg7YyQ64uoCiIiIgoKaW1wb3J0IHJlCmZyb20gZm10X2Jhc2UgaW1wb3J0ICgKICAgIGxvZywgTEFCRUxfUEFUVEVSTiwgU09MVVRJT05fUEFUVEVSTiwgQk9UVE9NX1BBVFRFUk4sCiAgICBDT0RFX0RFTElNX1BBVFRFUk4sIE5PVEVfUEFUVEVSTiwgRVhBTVBMRV9OT1RFX1BBVFRFUk4sCiAgICBTRUNUSU9OX1NZTUJPTFMsIFpXX1BBVFRFUk4sCiAgICBpc19rb3JlYW5fZW5kLCBjYWxjX2xpbmVfZ2FwX3RocmVzaG9sZCwKICAgIGV4dHJhY3RfdGFibGVzX2Zyb21fcGFnZSwgY2xhc3NpZnlfcGFyYV93aXRoX2FpLAogICAgcmVuZGVyX3BhZ2VfaHRtbAopCgoKZGVmIGV4dHJhY3RfcGFnZShwYWdlLCBoZWFkZXJfcGF0dGVybnMsIGZvb3Rlcl9wYXR0ZXJucyk6CiAgICBwaCA9IHBhZ2UucmVjdC5oZWlnaHQKICAgIHRiID0gcGggKiAwLjg1CiAgICBnYXBfdGhyZXNob2xkID0gY2FsY19saW5lX2dhcF90aHJlc2hvbGQocGFnZSwgaGVhZGVyX3BhdHRlcm5zKQoKICAgIG5vcm1hbF90YWJsZXMsIHNvbHV0aW9uX2JveGVzLCBib3R0b21fYm94ZXMgPSBleHRyYWN0X3RhYmxlc19mcm9tX3BhZ2UocGFnZSkKICAgIGFsbF90YWJsZV9yZWN0cyA9IFt0WydyZWN0J10gZm9yIHQgaW4gbm9ybWFsX3RhYmxlc10gKyBcCiAgICAgICAgICAgICAgICAgICAgICBbdW5pdFsncmVjdCddIGZvciBzYiBpbiBzb2x1dGlvbl9ib3hlcytib3R0b21fYm94ZXMgaWYgJ3JlY3QnIGluIHNiIGZvciB1bml0IGluIFtzYl1dCgoICAgIGRlZiBpbl90YWJsZSh4MCx5MCx4MSx5MSk6CiAgICAgICAgZm9yIHR4MCx0eTAsdHgxLHR5MSBpbiBhbGxfdGFibGVfcmVjdHM6CiAgICAgICAgICAgIGlmIHgwPj10eDAtNSBhbmQgeTA+PXR5MC01IGFuZCB4MTw9dHgxKzUgYW5kIHkxPD10eTErNTogcmV0dXJuIFRydWUKICAgICAgICByZXR1cm4gRmFsc2UKCiAgICByYXdfYmxvY2tzID0gW10KICAgIGZvciBiIGluIHBhZ2UuZ2V0X3RleHQoImJsb2NrcyIpOgogICAgICAgIHgwLHkwLHgxLHkxID0gYlswXSxiWzVdLmJbMl0sYlszXQogICAgICAgIHJhd190ZXh0LCB0ZXh0ID0gYls0XSwgYls0XS5zdHJpcCgpCiAgICAgICAgaWYgbm90IHRleHQgb3IgdGV4dCBpbiBoZWFkZXJfcGF0dGVybnMgb3IgdGV4dCBpbiBmb290ZXJfcGF0dGVybnM6IGNvbnRpbnVlCiAgICAgICAgaWYgeTAgPj0gdGIgb3IgaW5fdGFibGUoeDAseTAseDEseTEpOiBjb250aW51ZQogICAgICAgIHJhd19ibG9ja3MuYXBwZW5kKHsncmF3JzpyYXdfdGV4dCwndGV4dCc6dGV4dCwgeTAnOnkwLCd5MSc6eTF9KQogICAgcmF3X2Jsb2Nrcy5zb3J0KGtleT1sYW1iZGEgYjogYlsneTAnXSkKCiAgICAjIOKUgOKUgCDshLzsGjSruOunoyAruJTroZ0g7J207Ja067aZ7J206riwIOKUgOKUgAogICAgbWVyZ2VkID0gW10KICAgIGZvciByYiBpbiByYXdfYmxvY2tzOgogICAgICAgIGlmIG1lcmdlZDoKICAgICAgICAgICAgcHJldiA9IG1lcmdlZFstMV0KICAgICAgICAgICAgZ2FwID0gcmJbJ3kwJ10gLSBwcmV2Wyd5MSddCiAgICAgICAgICAgIGN1cl9yYXcsIGN1cl90ZXh0ID0gcmJbJ3JhdyddLCByYlsndGV4dCddCiAgICAgICAgICAgIGlzX2NvZGVfZGVsaW0gPSBib29sKENPREVfREVMSU1fUEFUVEVSTi5tYXRjaChjdXJfdGV4dCkpCiAgICAgICAgICAgIGlmIG5vdCBjdXJfcmF3WzA6MV09PScgJyBhbmQgZ2FwPGdhcF90aHJlc2hvbGQgYW5kIGdhcD49MCBhbmQgbm90IGlzX2NvZGVfZGVsaW06CiAgICAgICAgICAgICAgICBzZXAgPSAnJyBpZiBpc19rb3JlYW5fZW5kKHByZXZbJ3RleHQnXSkgZWxzZSAnICcKICAgICAgICAgICAgICAgIHByZXZbJ3RleHQnXSArPSBzZXAgKyByYlsndGV4dCddCiAgICAgICAgICAgICAgICBwcmV2Wyd5MSddID0gcmJbJ3kxJ10KICAgICAgICAgICAgICAgIGNvbnRpbnVlCiAgICAgICAgbWVyZ2VkLmFwcGVuZChkaWN0KHJiKSkKCiAgICAjIOKUgOKUgCDqs7XrsLEg7Yyo7YS0IOu2hOulmCDilIDilIAKICAgIGNsYXNzaWZpZWQgPSBbXQogICAgaW5fY29kZV9ibG9jayA9IEZhbHNlCiAgICBjb2RlX2xpbmVzICAgID0gW10KICAgIGFmdGVyX3RhZyAgICAgPSBGYWxzZQoKICAgIGZvciByYiBpbiBtZXJnZWQ6CiAgICAgICAgdGV4dCwgcmF3ID0gcmJbJ3RleHQnXSwgcmJbJ3JhdyddCiAgICAgICAgaWYgTEFCRUxfUEFUVEVSTi5tYXRjaCh0ZXh0KToKICAgICAgICAgICAgY2xhc3NpZmllZC5hcHBlbmQoeyd0eXBlJzoncGFnZV9sYWJlbCcsJ3RleHQnOnRleHQsJ3knOnJiWyd5MCddfSk7IGNvbnRpbnVlCiAgICAgICAgaWYgQ09ERV9ERUxJTV9QQVRURVJOLm1hdGNoKHRleHQpOgogICAgICAgICAgICBpZiBub3QgaW5fY29kZV9ibG9jazogaW5fY29kZV9ibG9jaz1UcnVlOyBjb2RlX2xpbmVzPVtdCiAgICAgICAgICAgIGVsc2U6CiAgICAgICAgICAgICAgICBpbl9jb2RlX2Jsb2NrPUZhbHNlCiAgICAgICAgICAgICAgICBjbGFzc2lmaWVkLmFwcGVuZCh7J3R5cGUnOidjb2RlX2Jsb2NrJywnbGluZXMnOmNvZGVfbGluZXMsJ3knOnJiWyd5MCddfSk7IGNvZGVfbGluZXM9W10KICAgICAgICAgICAgY29udGludWUKICAgICAgICBpZiBpbl9jb2RlX2Jsb2NrOiBjb2RlX2xpbmVzLmFwcGVuZCh0ZXh0KTsgY29udGludWUKICAgICAgICBpZiBOT1RFX1BBVFRFUk4ubWF0Y2godGV4dCk6CiAgICAgICAgICAgIGlzX2V4ID0gYm9vbChFWEFNUExFX05PVEVfUEFUVEVSTi5tYXRjaCh0ZXh0KSkKICAgICAgICAgICAgY2xhc3NpZmllZC5hcHBlbmQoeyd0eXBlJzonZXhhbXBsZV9ub3RlJyBpZiBpc19leCBlbHNlICdub3RlJywndGV4dCc6dGV4dFsxOl0uc3RyaXAoKSwneSc6cmJbJ3kwJ119KTsgY29udGludWUKICAgICAgICBpZiByYXcgYW5kIHJhd1swXT09JyAnOgogICAgICAgICAgICBpZiBsZW4ocmF3KT49MyBhbmQgcmF3WzFdPT0nLScgYW5kIHJhd1syXT09JyAnOgogICAgICAgICAgICAgICAgc3RyaXBwZWQgPSB0ZXh0WzE6XS5zdHJpcCgpIGlmIHRleHQuc3RhcnRzd2l0aCgnLScpIGVsc2UgdGV4dAogICAgICAgICAgICAgICAgY2xhc3NpZmllZC5hcHBlbmQoeyd0eXBlJzonZXhhbXBsZV9pdGVtJywndGV4dCc6c3RyaXBwZWQsJ3knOnJiWyd5MCddfSk7IGNvbnRpbnVlCiAgICAgICAgICAgIHN0cmlwcGVkID0gdGV4dAogICAgICAgICAgICBpZiBsZW4ocmF3KT49MiBhbmQgcmF3WzFdPT0nICc6CiAgICAgICAgICAgICAgICBpZiBzdHJpcHBlZC5zdGFydHN3aXRoKCctJyk6IHN0cmlwcGVkID0gc3RyaXBwZWRbMTpdLnN0cmlwKCkKICAgICAgICAgICAgICAgIGNsYXNzaWZpZWQuYXBwZW5kKHsndHlwZSc6J3N1YicsJ3RleHQnOnN0cmlwcGVkLCd5JzpyYlsneTAnXX0pCiAgICAgICAgICAgIGVsc2U6CiAgICAgICAgICAgICAgICBpZiBMQUJFTF9QQVRURVJOLm1hdGNoKHN0cmlwcGVkKToKICAgICAgICAgICAgICAgICAgICBjbGFzc2lmaWVkLmFwcGVuZCh7J3R5cGUnOidwYXJlX2xhYmVsJywndGV4dCc6c3RyaXBwZWQsJ3knOnJiWyd5MCddfSkKICAgICAgICAgICAgICAgIGVsaWYgc3RyaXBwZWQuc3RhcnRzd2l0aCgnWycpIGFuZCAnXScgaW4gc3RyaXBwZWQgYW5kIGxlbihzdHJpcHBlZCk8MjA6CiAgICAgICAgICAgICAgICAgICAgY2xhc3NpZmllZC5hcHBlbmQoeyd0eXBlJzondGFnJywndGV4dCc6c3RyaXBwZWQsJ3knOnJiWyd5MCddfSk7IGFmdGVyX3RhZz1UcnVlCiAgICAgICAgICAgICAgICBlbGlmIGxlbihzdHJpcHBlZCk8PTE1IGFuZCBub3QgYW55KGMgaW4gc3RyaXBwZWQgZm9yIGMgaW4gWycoJywn4pGgJywn4pGhJywn4pGiJywnIyddKToKICAgICAgICAgICAgICAgICAgICBmb3Igc3ltIGluIFNFQ1RJT05fU1lNQk9MUzoKICAgICAgICAgICAgICAgICAgICAgICAgaWYgc3RyaXBwZWQuc3RhcnRzd2l0aChzeW0pOiBzdHJpcHBlZD1zdHJpcHBlZFtsZW4oc3ltKTpdLnN0cmlwKCk7IGJyZWFrCiAgICAgICAgICAgICAgICAgICAgY2xhc3NpZmllZC5hcHBlbmQoeyd0eXBlJzonc2VjdGlvbicsJ3RleHQnOnN0cmlwcGVkLCd5JzpyYlsneTAnXX0pCiAgICAgICAgICAgICAgICBlbHNlOgogICAgICAgICAgICAgICAgICAgIGZvciBzeW0gaW4gU0VDVElPTl9TWU1CT0xTOgogICAgICAgICAgICAgICAgICAgICAgICBpZiBzdHJpcHBlZC5zdGFydHN3aXRoKHN5bSk6CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzc2lmaWVkLmFwcGVuZCh7J3R5cGUnOidzZWN0aW9uJywndGV4dCc6c3RyaXBwZWRbbGVuKHN5bSk6XS5zdHJpcCgpLCd5JzpyYlsneTAnXX0pOyBicmVhawogICAgICAgICAgICAgICAgICAgIGVsc2U6CiAgICAgICAgICAgICAgICAgICAgICAgIGlmIGFmdGVyX3RhZzoKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzaWZpZWQuYXBwZW5kKHsndHlwZSc6J3RpdGxlJywndGV4dCc6c3RyaXBwZWQsJ3knOnJiWyd5MCddfSk7IGFmdGVyX3RhZz1GYWxzZQogICAgICAgICAgICAgICAgICAgICAgICBlbHNlOgogICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3NpZmllZC5hcHBlbmQoeyd0eXBlJzonYnVsbGV0JywndGV4dCc6c3RyaXBwZWQsJ3knOnJiWyd5MCddfSkKICAgICAgICBlbHNlOgogICAgICAgICAgICBmb3VuZCA9IEZhbHNlCiAgICAgICAgICAgIGZvciBzeW0gaW4gU0VDVElPTl9TWU1CT0xTOgogICAgICAgICAgICAgICAgaWYgdGV4dC5zdGFydHN3aXRoKHN5bSk6CiAgICAgICAgICAgICAgICAgICAgY2xhc3NpZmllZC5hcHBlbmQoeyd0eXBlJzonc2VjdGlvbicsJ3RleHQnOnRleHRbbGVuKHN5bSk6XS5zdHJpcCgpLCd5JzpyYlsneTAnXX0pOyBmb3VuZD1UcnVlOyBicmVhawogICAgICAgICAgICBpZiBub3QgZm91bmQ6IGNsYXNzaWZpZWQuYXBwZW5kKHsndHlwZSc6J3BhcmEnLCd0ZXh0Jzp0ZXh0LCd5JzpyYlsneTAnXX0pCiAgICAgICAgICAgIGFmdGVyX3RhZz1GYWxzZQoKICAgICMg4pSA4pSAIGV4YW1wbGVfbm90ZSDihpIgZXhhbXBsZV9ib3gg66y26riwIOKUgOKUgAogICAgZ3JvdXBlZCwgaSA9IFtdLCAwCiAgICB3aGlsZSBpIDwgbGVuKGNsYXNzaWZpZWQpOgogICAgICAgIGl0ZW0gPSBjbGFzc2lmaWVkW2ldCiAgICAgICAgaWYgaXRlbVsndHlwZSddPT0nZXhhbXBsZV9ub3RlJzoKICAgICAgICAgICAgaXRlbXMsIGogPSBbXSwgaSsxCiAgICAgICAgICAgIHdoaWxlIGo8bGVuKGNsYXNzaWZpZWQpIGFuZCBjbGFzc2lmaWVkW2pdWyd0eXBlJ10gaW4gKCdleGFtcGxlX2l0ZW0nLCdzdWInKToKICAgICAgICAgICAgICAgIHRfaiwgdGV4dF9qID0gY2xhc3NpZmllZFtqXVsndHlwZSddLCBjbGFzc2lmaWVkW2pdWyd0ZXh0J10KICAgICAgICAgICAgICAgIGlmIHRfaj09J3N1YicgYW5kIGl0ZW1zOiBpdGVtc1stMV0gKz0gJyAvICcrdGV4dF9qCiAgICAgICAgICAgICAgICBlbHNlOiBpdGVtcy5hcHBlbmQodGV4dF9qKQogICAgICAgICAgICAgICAgaiArPSAxCiAgICAgICAgICAgIGdyb3VwZWQuYXBwZW5kKHsndHlwZSc6J2V4YW1wbGVfYm94Jywnbm90ZV90ZXh0JzppdGVtWyd0ZXh0J10sJ2l0ZW1zJzppdGVtcywneSc6aXRlbVsneSddfSk7IGk9agogICAgICAgIGVsc2U6IGdyb3VwZWQuYXBwZW5kKGl0ZW0pOyBpKz0xCgogICAgYWxsX2VsZW1lbnRzID0gZ3JvdXBlZCArIHNvbHV0aW9uX2JveGVzICsgYm90dG9tX2JveGVzICsgbm9ybWFsX3RhYmxlcwogICAgYWxsX2VsZW1lbnRzLnNvcnQoa2V5PWxhbWJkYSBlOiBlWyd5J10pCiAgICBwYWdlX2xhYmVsLCBmaW5hbF9lbGVtZW50cyA9IE5vbmUsIFtdCiAgICBmb3IgZWwgaW4gYWxsX2VsZW1lbnRzOgogICAgICAgIGlmIGVsWyd0eXBlJ109PSdwYWdlX2xhYmVsJyBhbmQgcGFnZV9sYWJlbCBpcyBOb25lOiBwYWdlX2xhYmVsPWVsWyd0ZXh0J10KICAgICAgICBlbHNlOiBmaW5hbF9lbGVtZW50cy5hcHBlbmQoZWwpCiAgICByZXR1cm4geydwYWdlX2xhYmVsJzpwYWdlX2xhYmVsLCdlbGVtZW50cyc6ZmluYWxfZWxlbWVudHN9CgoKZGVmIHByb2Nlc3MoZG9jLCBoZWFkZXJfcGF0dGVybnMsIGZvb3Rlcl9wYXR0ZXJucywgbWV0YSk6CiAgICBwYWdlc19odG1sID0gW10KICAgIGZvciBwYWdlX251bSBpbiByYW5nZShsZW4oZG9jKSk6CiAgICAgICAgcGFnZSA9IGRvY1twYWdlX251bV0KICAgICAgICBsb2coZiIgIHtwYWdlX251bSsxfXAgW0dQROuztOqzoOyEnO2YlV0g7LKY66asIOykkS4uLiIpCiAgICAgICAgY29udGVudCA9IGV4dHJhY3RfcGFnZShwYWdlLCBoZWFkZXJfcGF0dGVybnMsIGZvb3Rlcl9wYXR0ZXJucykKICAgICAgICBpZiBub3QgY29udGVudFsnZWxlbWVudHMnXTogY29udGludWUKICAgICAgICBjb250ZW50WydlbGVtZW50cyddID0gY2xhc3NpZnlfcGFyYV93aXRoX2FpKGNvbnRlbnRbJ2VsZW1lbnRzJ10sIHBhZ2VfbnVtKzEpCiAgICAgICAgcGFnZXNfaHRtbC5hcHBlbmQocmVuZGVyX3BhZ2VfaHRtbChjb250ZW50LCBwYWdlX251bSsxLCBtZXRhLCBwYWdlX251bT09MCkpCiAgICByZXR1cm4gcGFnZXNfaHRtbAo= \ No newline at end of file