diff --git a/03.Code/geulbeot_업로드용/converters/pipeline/fmt_outline.py b/03.Code/geulbeot_업로드용/converters/pipeline/fmt_outline.py new file mode 100644 index 0000000..aeb0158 --- /dev/null +++ b/03.Code/geulbeot_업로드용/converters/pipeline/fmt_outline.py @@ -0,0 +1 @@ +IyAtKi0gY29kaW5nOiB1dGYtOCAtKi0KIiIiCmZtdF9vdXRsaW5lLnB5IOKAlCDrqqnssKgv6rCc7JqU7ZiVIO2VuOuTpOufrAotIOyhsOqxtDog67KI7Zi4L+q4sO2YuCDtjKjthLQg67mE7JyoID49IDAuNCAoMS4gMi4gLyBhLiBiLiAvIOKFoC4g4oWhLiAvIC0g65OxKQotIO2KueynlTogeOyijO2RnCDquLDrsJgg7KSEIOuLqOychCDrtoTrpZgsIOuyiO2YuCDsoJzqsbAg7ZuEIHNlY3Rpb24vYnVsbGV0L3N1YgoiIiIKCmltcG9ydCByZQpmcm9tIGZtdF9iYXNlIGltcG9ydCAoCiAgICBsb2csIFpXX1BBVFRFUk4sIE5VTV9TRUNUSU9OX1BBVCwgQUxQSEFfQlVMTEVUX1BBVCwgQUxQSEFfT05MWV9QQVQsIERBU0hfU1VCX1BBVCwKICAgIGV4dHJhY3RfdGFibGVzX2Zyb21fcGFnZSwgY2xhc3NpZnlfcGFyYV93aXRoX2FpLAogICAgcmVuZGVyX3BhZ2VfaHRtbAopCgoKZGVmIGNsdXN0ZXJfeHMoeHMsIHRvbD04KToKICAgIGNsdXN0ZXJzID0gW10KICAgIGZvciB4IGluIHNvcnRlZChzZXQoeHMpKToKICAgICAgICBpZiBub3QgY2x1c3RlcnMgb3IgeC1jbHVzdGVyc1stMV0+dG9sOiBjbHVzdGVycy5hcHBlbmQoeCkKICAgIGRlZiBnZXRfbGV2ZWwoeCk6CiAgICAgICAgZm9yIGksIGMgaW4gZW51bWVyYXRlKGNsdXN0ZXJzKToKICAgICAgICAgICAgaWYgYWJzKHgtYykgPD0gdG9sOiByZXR1cm4gaQogICAgICAgIHJldHVybiBsZW4oY2x1c3RlcnMpLTEKICAgIHJldHVybiBnZXRfbGV2ZWwKCgpkZWYgY2xhc3NpZnlfcGFnZShwYWdlLCBmb290ZXJfcGF0dGVybnMsIHRhYmxlX3JlY3RzPU5vbmUpOgogICAgcGggPSBwYWdlLnJlY3QuaGVpZ2h0CiAgICB0YiA9IHBoICogMC44NQoKICAgIGRlZiBpbl90YWJsZSh4LCB5KToKICAgICAgICBpZiBub3QgdGFibGVfcmVjdHM6IHJldHVybiBGYWxzZQogICAgICAgIGZvciB0eDAsdHkwLHR4MSx0eTEgaW4gdGFibGVfcmVjdHM6CiAgICAgICAgICAgIGlmIHR4MC01PD14PD10eDErNSBhbmQgdHkwLTU8PXk8PXR5MSs1OiByZXR1cm4gVHJ1ZQogICAgICAgIHJldHVybiBGYWxzZQoKICAgIGxpbmVfaXRlbXMsIHkwID0gW10sIDAKICAgIGZvciBiIGluIHBhZ2UuZ2V0X3RleHQoImRpY3QiKVsiYmxvY2tzIl06CiAgICAgICAgaWYgYi5nZXQoInR5cGUiKSAhPSAwOiBjb250aW51ZQogICAgICAgIGZvciBsaW5lIGluIGIuZ2V0KCJsaW5lcyIsW10pOgogICAgICAgICAgICBzcGFucyA9IGxpbmUuZ2V0KCJzcGFucyIsW10pCiAgICAgICAgICAgIHgsIHBhcnRzID0gTm9uZSwgW10KICAgICAgICAgICAgZm9yIHMgaW4gc3BhbnM6CiAgICAgICAgICAgICAgICB0ID0gWldfUEFUVEVSTi5zdWIoJycsIHMuZ2V0KCJ0ZXh0IiwiIikpCiAgICAgICAgICAgICAgICBpZiB0LnN0cmlwKCkgYW5kIHggaXMgTm9uZTogeCA9IHNbImJib3giXVswXQogICAgICAgICAgICAgICAgcGFydHMuYXBwZW5kKHQpCiAgICAgICAgICAgIHRleHQgPSAnJy5qb2luKHBhcnRzKS5zdHJpcCgpCiAgICAgICAgICAgIHkwID0gbGluZVsnYmJveCddWzFdCiAgICAgICAgICAgIGlmIHRleHQgYW5kIHggaXMgbm90IE5vbmUgYW5kIHkwPHRiOgogICAgICAgICAgICAgICAgaWYgdGV4dCBub3QgaW4gZm9vdGVyX3BhdHRlcm5zIGFuZCBub3AgaW5fdGFibGUoeCwgeTApOgogICAgICAgICAgICAgICAgICAgIGxpbmVfaXRlbXMuYXBwZW5kKHsneCc6eCwneSc6eTAsJ3RleHQnOnRleHR9KQoKICAgIGlmIG5vdCBsaW5lX2l0ZW1zOiByZXR1cm4gW10KICAgIGdldF9sZXZlbCA9IGNsdXN0ZXJfeHMoW2xpWyd4J10gZm9yIGxpIGluIGxpbmVfaXRlbXNdKQogICAgY2xhc3NpZmllZCA9IFtdCiAgICBwZW5kaW5nX2FscGhhID0gTm9uZQoKICAgIGZvciBsaSBpbiBsaW5lX2l0ZW1zOgogICAgICAgIHRleHQgPSBsaVsndGV4dCddCiAgICAgICAgaWYgQUxQSEFfT05MWV9QQVQubWF0Y2godGV4dCk6CiAgICAgICAgICAgIHBlbmRpbmdfYWxwaGEgPSByZS5zdWIocidXKFthLXpdW1wuXHVmZjBlXSlccyokJywgclswXSArICcgJywgdGV4dCk7IGNvbnRpbnVlCiAgICAgICAgaWYgcGVuZGluZ19hbHBoYToKICAgICAgICAgICAgdGV4dCA9IHBlbmRpbmdfYWxwaGEgKyB0ZXh0OyBwZW5kaW5nX2FscGhhID0gTm9uZQogICAgICAgIGxldmVsID0gZ2V0X2xldmVsKGxpWyd4J10pCiAgICAgICAgaWYgTlVNX1NFQ1RJT05fUEFULm1hdGNoKHRleHQpOgogICAgICAgICAgICBjbGVhbiA9IHJlLnN1YihyJ15cZCtbXC5cdWZmMGVdXHMqPicsJycsdGV4dCkKICAgICAgICAgICAgY2xhc3NpZmllZC5hcHBlbmQoeyd0eXBlJzonc2VjdGlvbicsJ3RleHQnOmNsZWFuLCd5JzpsaVsneSddfSkKICAgICAgICBlbGlmIEFMUEhBX0JVTExFVF9QQVQubWF0Y2godGV4dCk6CiAgICAgICAgICAgIGNsZWFuID0gcmUuc3ViKHInXlthLXpdW1wuXHVmZjBlXVxzKicsJycsdGV4dCkKICAgICAgICAgICAgY2xhc3NpZmllZC5hcHBlbmQoeyd0eXBlJzonYnVsbGV0JywndGV4dCc6Y2xlYW4sJ3knOmxpWyd5J119KQogICAgICAgIGVsaWYgREFTSF9TVUJfUEFULm1hdGNoKHRleHQpOgogICAgICAgICAgICBjbGVhbiA9IHJlLnN1YihyJ14tXHMqJywnJyx0ZXh0KQogICAgICAgICAgICBjbGFzc2lmaWVkLmFwcGVuZCh7J3R5cGUnOidzdWInLCd0ZXh0JzpjbGVhbiwneSc6bGlbJ3knXX0pCiAgICAgICAgZWxzZToKICAgICAgICAgICAgaWYgbGV2ZWw9PTA6IGNsYXNzaWZpZWQuYXBwZW5kKHsndHlwZSc6J3NlY3Rpb24nLCd0ZXh0Jzp0ZXh0LCd5JzpsaVsneSddfSkKICAgICAgICAgICAgZWxpZiBsZXZlbDw9MTogY2xhc3NpZmllZC5hcHBlbmQoeyd0eXBlJzonYnVsbGV0JywndGV4dCc6dGV4dCwneSc6bGlbJ3knXX0pCiAgICAgICAgICAgIGVsc2U6IGNsYXNzaWZpZWQuYXBwZW5kKHsndHlwZSc6J3BhcmEnLCd0ZXh0Jzp0ZXh0LCd5JzpsaVsneSddfSkKICAgIHJldHVybiBjbGFzc2lmaWVkCgoKZGVmIGV4dHJhY3RfcGFnZShwYWdlLCBoZWFkZXJfcGF0dGVybnMsIGZvb3Rlcl9wYXR0ZXJucyk6CiAgICBub3JtYWxfdGFibGVzLCBzb2x1dGlvbl9ib3hlcywgYm90dG9tX2JveGVzID0gZXh0cmFjdF90YWJsZXNfZnJvbV9wYWdlKHBhZ2UpCiAgICBhbGxfdGFibGVfcmVjdHMgPSBbdFsncmVjdCddIGZvciB0IGluIG5vcm1hbF90YWJsZXNdICsgXAogICAgICAgICAgICAgICAgICAgICAgW3VuaXRbJ3JlY3QnXSBmb3Igc2IgaW4gc29sdXRpb25fYm94ZXMrYm90dG9tX2JveGVzIGlmICdyZWN0JyBpbiBzYiBmb3IgdW5pdCBpbiBbU2JdXQogICAgeGNvb3JkX2VsZW1lbnRzID0gY2xhc3NpZnlfcGFnZShwYWdlLCBmb290ZXJfcGF0dGVybnMsIHRhYmxlX3JlY3RzPWFsbF90YWJsZV9yZWN0cykKICAgIGFsbF9lbGVtZW50cyA9IHhjb29yZF9lbGVtZW50cyArIHNvbHV0aW9uX2JveGVzICsgYm90dG9tX2JveGVzICsgbm9ybWFsX3RhYmxlcwogICAgYWxsX2VsZW1lbnRzLnNvcnQoa2V5PWxhbWJkYSBlOiBlWyd5J10pCiAgICBwYWdlX2xhYmVsLCBmaW5hbF9lbGVtZW50cyA9IE5vbmUsIFtdCiAgICBmb3IgZWwgaW4gYWxsX2VsZW1lbnRzOgogICAgICAgIGlmIGVsWyd0eXBlJ109PSdwYWdlX2xhYmVsJyBhbmQgcGFnZV9sYWJlbCBpcyBOb25lOiBwYWdlX2xhYmVsPWVsWyd0ZXh0J10KICAgICAgICBlbHNlOiBmaW5hbF9lbGVtZW50cy5hcHBlbmQoZWwpCiAgICByZXR1cm4geydwYWdlX2xhYmVsJzpwYWdlX2xhYmVsLCdlbGVtZW50cyc6ZmluYWxfZWxlbWVudHN9CgoKZGVmIHByb2Nlc3MoZG9jLCBoZWFkZXJfcGF0dGVybnMsIGZvb3Rlcl9wYXR0ZXJucywgbWV0YSk6CiAgICBwYWdlc19odG1sID0gW10KICAgIGZvciBwYWdlX251bSBpbiByYW5nZShsZW4oZG9jKSk6CiAgICAgICAgcGFnZSA9IGRvY1twYWdlX251bV0KICAgICAgICBsb2coZiIgIHtwYWdlX251bSsxfXAgW+urqeKAmC7qsJzbj+KAmV0g7LKY66asIOykkS4uLiIpCiAgICAgICAgY29udGVudCA9IGV4dHJhY3RfcGFnZShwYWdlLCBoZWFkZXJfcGF0dGVybnMsIGZvb3Rlcl9wYXR0ZXJucykKICAgICAgICBpZiBub3QgY29udGVudFsnZWxlbWVudHMnXTogY29udGludWUKICAgICAgICBjb250ZW50WydlbGVtZW50cyddID0gY2xhc3NpZnlfcGFyYV93aXRoX2FpKGNvbnRlbnRbJ2VsZW1lbnRzJ10sIHBhZ2VfbnVtKzEpCiAgICAgICAgcGFnZXNfaHRtbC5hcHBlbmQocmVuZGVyX3BhZ2VfaHRtbChjb250ZW50LCBwYWdlX251bSsxLCBtZXRhLCBwYWdlX251bT09MCkpCiAgICByZXR1cm4gcGFnZXNfaHRtbAo= \ No newline at end of file