diff --git a/copyFiles.py b/copyFiles.py
index 5948846..46a45e3 100644
--- a/copyFiles.py
+++ b/copyFiles.py
@@ -28,8 +28,8 @@ def copy_dic_subdirs(source_root, target_root_b, target_root_c):
print(f"Skipping {dir_name} under {parent_dir}, as it doesn't match '2교시' or '3교시'.")
# 사용법
-source_directory = "/Users/waterdrw/Nextcloud/Development/KAIT/검정데이터/제2501회 정기/답안파일/제2501회 디지털정보활용능력_정기_답안파일/" # 원본 디렉토리 경로
-target_directory_b = "./output/B" # '2교시'의 타겟 경로
-target_directory_c = "./output/C" # '3교시'의 타겟 경로
+source_directory = r"C:\Users\dra\project\data\제2501회 정기\답안파일\제2501회 디지털정보활용능력_정기_답안파일\경기남부" # 원본 디렉토리 경로
+target_directory_b = r".\output\B" # '2교시'의 타겟 경로
+target_directory_c = r".\output\C" # '3교시'의 타겟 경로
copy_dic_subdirs(source_directory, target_directory_b, target_directory_c)
diff --git a/package-lock.json b/package-lock.json
new file mode 100644
index 0000000..2312f75
--- /dev/null
+++ b/package-lock.json
@@ -0,0 +1,410 @@
+{
+ "name": "psd-test",
+ "version": "1.0.0",
+ "lockfileVersion": 3,
+ "requires": true,
+ "packages": {
+ "": {
+ "name": "psd-test",
+ "version": "1.0.0",
+ "license": "ISC",
+ "dependencies": {
+ "jsonpath": "^1.1.1",
+ "psd": "^3.4.0",
+ "xlsx": "^0.18.5",
+ "xmldom": "^0.6.0",
+ "xpath": "^0.0.34"
+ }
+ },
+ "node_modules/adler-32": {
+ "version": "1.3.1",
+ "resolved": "https://registry.npmjs.org/adler-32/-/adler-32-1.3.1.tgz",
+ "integrity": "sha512-ynZ4w/nUUv5rrsR8UUGoe1VC9hZj6V5hU9Qw1HlMDJGEJw5S7TfTErWTjMys6M7vr0YWcPqs3qAr4ss0nDfP+A==",
+ "license": "Apache-2.0",
+ "engines": {
+ "node": ">=0.8"
+ }
+ },
+ "node_modules/cfb": {
+ "version": "1.2.2",
+ "resolved": "https://registry.npmjs.org/cfb/-/cfb-1.2.2.tgz",
+ "integrity": "sha512-KfdUZsSOw19/ObEWasvBP/Ac4reZvAGauZhs6S/gqNhXhI7cKwvlH7ulj+dOEYnca4bm4SGo8C1bTAQvnTjgQA==",
+ "license": "Apache-2.0",
+ "dependencies": {
+ "adler-32": "~1.3.0",
+ "crc-32": "~1.2.0"
+ },
+ "engines": {
+ "node": ">=0.8"
+ }
+ },
+ "node_modules/codepage": {
+ "version": "1.15.0",
+ "resolved": "https://registry.npmjs.org/codepage/-/codepage-1.15.0.tgz",
+ "integrity": "sha512-3g6NUTPd/YtuuGrhMnOMRjFc+LJw/bnMp3+0r/Wcz3IXUuCosKRJvMphm5+Q+bvTVGcJJuRvVLuYba+WojaFaA==",
+ "license": "Apache-2.0",
+ "engines": {
+ "node": ">=0.8"
+ }
+ },
+ "node_modules/coffee-script": {
+ "version": "1.7.1",
+ "resolved": "https://registry.npmjs.org/coffee-script/-/coffee-script-1.7.1.tgz",
+ "integrity": "sha512-W3s+SROY73OmrSGtPTTW/2wp2rmW5vuh0/tUuCK1NvTuyzLOVPccIP9whmhZ4cYWcr2NJPNENZIFaAMkTD5G3w==",
+ "deprecated": "CoffeeScript on NPM has moved to \"coffeescript\" (no hyphen)",
+ "license": "MIT",
+ "dependencies": {
+ "mkdirp": "~0.3.5"
+ },
+ "bin": {
+ "cake": "bin/cake",
+ "coffee": "bin/coffee"
+ },
+ "engines": {
+ "node": ">=0.8.0"
+ }
+ },
+ "node_modules/coffeescript-module": {
+ "version": "0.2.1",
+ "resolved": "https://registry.npmjs.org/coffeescript-module/-/coffeescript-module-0.2.1.tgz",
+ "integrity": "sha512-xVLuaDltmc5OnwvGd7/82U/kwQ0me09b66Ywg/N/KynmE41XTWbsl2+dCySOs3ixnjsy5xXOdM5BjIpjNUAQSg=="
+ },
+ "node_modules/crc-32": {
+ "version": "1.2.2",
+ "resolved": "https://registry.npmjs.org/crc-32/-/crc-32-1.2.2.tgz",
+ "integrity": "sha512-ROmzCKrTnOwybPcJApAA6WBWij23HVfGVNKqqrZpuyZOHqK2CwHSvpGuyt/UNNvaIjEd8X5IFGp4Mh+Ie1IHJQ==",
+ "license": "Apache-2.0",
+ "bin": {
+ "crc32": "bin/crc32.njs"
+ },
+ "engines": {
+ "node": ">=0.8"
+ }
+ },
+ "node_modules/deep-is": {
+ "version": "0.1.4",
+ "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz",
+ "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==",
+ "license": "MIT"
+ },
+ "node_modules/escodegen": {
+ "version": "1.14.3",
+ "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-1.14.3.tgz",
+ "integrity": "sha512-qFcX0XJkdg+PB3xjZZG/wKSuT1PnQWx57+TVSjIMmILd2yC/6ByYElPwJnslDsuWuSAp4AwJGumarAAmJch5Kw==",
+ "license": "BSD-2-Clause",
+ "dependencies": {
+ "esprima": "^4.0.1",
+ "estraverse": "^4.2.0",
+ "esutils": "^2.0.2",
+ "optionator": "^0.8.1"
+ },
+ "bin": {
+ "escodegen": "bin/escodegen.js",
+ "esgenerate": "bin/esgenerate.js"
+ },
+ "engines": {
+ "node": ">=4.0"
+ },
+ "optionalDependencies": {
+ "source-map": "~0.6.1"
+ }
+ },
+ "node_modules/escodegen/node_modules/esprima": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz",
+ "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==",
+ "license": "BSD-2-Clause",
+ "bin": {
+ "esparse": "bin/esparse.js",
+ "esvalidate": "bin/esvalidate.js"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/esprima": {
+ "version": "1.2.2",
+ "resolved": "https://registry.npmjs.org/esprima/-/esprima-1.2.2.tgz",
+ "integrity": "sha512-+JpPZam9w5DuJ3Q67SqsMGtiHKENSMRVoxvArfJZK01/BfLEObtZ6orJa/MtoGNR/rfMgp5837T41PAmTwAv/A==",
+ "bin": {
+ "esparse": "bin/esparse.js",
+ "esvalidate": "bin/esvalidate.js"
+ },
+ "engines": {
+ "node": ">=0.4.0"
+ }
+ },
+ "node_modules/estraverse": {
+ "version": "4.3.0",
+ "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz",
+ "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==",
+ "license": "BSD-2-Clause",
+ "engines": {
+ "node": ">=4.0"
+ }
+ },
+ "node_modules/esutils": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz",
+ "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==",
+ "license": "BSD-2-Clause",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/fast-levenshtein": {
+ "version": "2.0.6",
+ "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz",
+ "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==",
+ "license": "MIT"
+ },
+ "node_modules/frac": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/frac/-/frac-1.1.2.tgz",
+ "integrity": "sha512-w/XBfkibaTl3YDqASwfDUqkna4Z2p9cFSr1aHDt0WoMTECnRfBOv2WArlZILlqgWlmdIlALXGpM2AOhEk5W3IA==",
+ "license": "Apache-2.0",
+ "engines": {
+ "node": ">=0.8"
+ }
+ },
+ "node_modules/iconv-lite": {
+ "version": "0.4.24",
+ "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz",
+ "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==",
+ "license": "MIT",
+ "dependencies": {
+ "safer-buffer": ">= 2.1.2 < 3"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/jsonpath": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/jsonpath/-/jsonpath-1.1.1.tgz",
+ "integrity": "sha512-l6Cg7jRpixfbgoWgkrl77dgEj8RPvND0wMH6TwQmi9Qs4TFfS9u5cUFnbeKTwj5ga5Y3BTGGNI28k117LJ009w==",
+ "license": "MIT",
+ "dependencies": {
+ "esprima": "1.2.2",
+ "static-eval": "2.0.2",
+ "underscore": "1.12.1"
+ }
+ },
+ "node_modules/jspack": {
+ "version": "0.0.4",
+ "resolved": "https://registry.npmjs.org/jspack/-/jspack-0.0.4.tgz",
+ "integrity": "sha512-DC/lSTXYDDdYWzyY/9A1kMzp6Ov9mCRhZQ1cGg4te2w3y4/aKZTSspvbYN4LUsvSzMCb/H8z4TV9mYYW/bs3PQ=="
+ },
+ "node_modules/levn": {
+ "version": "0.3.0",
+ "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz",
+ "integrity": "sha512-0OO4y2iOHix2W6ujICbKIaEQXvFQHue65vUG3pb5EUomzPI90z9hsA1VsO/dbIIpC53J8gxM9Q4Oho0jrCM/yA==",
+ "license": "MIT",
+ "dependencies": {
+ "prelude-ls": "~1.1.2",
+ "type-check": "~0.3.2"
+ },
+ "engines": {
+ "node": ">= 0.8.0"
+ }
+ },
+ "node_modules/lodash": {
+ "version": "4.17.21",
+ "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz",
+ "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==",
+ "license": "MIT"
+ },
+ "node_modules/mkdirp": {
+ "version": "0.3.5",
+ "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.3.5.tgz",
+ "integrity": "sha512-8OCq0De/h9ZxseqzCH8Kw/Filf5pF/vMI6+BH7Lu0jXz2pqYCjTAQRolSxRIi+Ax+oCCjlxoJMP0YQ4XlrQNHg==",
+ "deprecated": "Legacy versions of mkdirp are no longer supported. Please update to mkdirp 1.x. (Note that the API surface has changed to use Promises in 1.x.)",
+ "license": "MIT"
+ },
+ "node_modules/optionator": {
+ "version": "0.8.3",
+ "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.3.tgz",
+ "integrity": "sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==",
+ "license": "MIT",
+ "dependencies": {
+ "deep-is": "~0.1.3",
+ "fast-levenshtein": "~2.0.6",
+ "levn": "~0.3.0",
+ "prelude-ls": "~1.1.2",
+ "type-check": "~0.3.2",
+ "word-wrap": "~1.2.3"
+ },
+ "engines": {
+ "node": ">= 0.8.0"
+ }
+ },
+ "node_modules/parse-engine-data": {
+ "version": "0.1.2",
+ "resolved": "https://registry.npmjs.org/parse-engine-data/-/parse-engine-data-0.1.2.tgz",
+ "integrity": "sha512-V3SuNul7Rd+8g2XDykqz1X/OJYD+VWmueHPza3fvEXdXbUqm6ohny0d7u5U8xcBrwkr7VpJc4FncP2vSpNt5vg==",
+ "license": "MIT",
+ "dependencies": {
+ "iconv-lite": "^0.4.4"
+ }
+ },
+ "node_modules/pngjs": {
+ "version": "3.2.0",
+ "resolved": "https://registry.npmjs.org/pngjs/-/pngjs-3.2.0.tgz",
+ "integrity": "sha512-MCRe3RYxSIqrYgJjgo0DrYcsgN8oaMvR6RmBGo75rZQnQIYLisvvcP7eESsWHY9b7TcZPc9jtOWWwDrCQ6xc2A==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=4.0.0"
+ }
+ },
+ "node_modules/prelude-ls": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz",
+ "integrity": "sha512-ESF23V4SKG6lVSGZgYNpbsiaAkdab6ZgOxe52p7+Kid3W3u3bxR4Vfd/o21dmN7jSt0IwgZ4v5MUd26FEtXE9w==",
+ "engines": {
+ "node": ">= 0.8.0"
+ }
+ },
+ "node_modules/psd": {
+ "version": "3.4.0",
+ "resolved": "https://registry.npmjs.org/psd/-/psd-3.4.0.tgz",
+ "integrity": "sha512-LCPskSzQopgwOgFFaYbKgEzm8yOid0cT/GoA46yCnP1ZYTdmkm6cSQNa3x/3GcDX9IUatV+gRrf6RHskLGAdHQ==",
+ "dependencies": {
+ "coffee-script": "~ 1.7.1",
+ "coffeescript-module": "~ 0.2.1",
+ "iconv-lite": "~ 0.4.4",
+ "jspack": "~ 0.0.3",
+ "lodash": "~4.17.21",
+ "parse-engine-data": "~ 0.1",
+ "pngjs": "3.2.0",
+ "rsvp": "~ 3.0.6"
+ }
+ },
+ "node_modules/rsvp": {
+ "version": "3.0.21",
+ "resolved": "https://registry.npmjs.org/rsvp/-/rsvp-3.0.21.tgz",
+ "integrity": "sha512-D+v2iA91GqQ2C6E5StYdg1EN/FCFR27/3MoTa3A/yF2xwzU95o85MTgzReYhl82YnLK0eZwRHvyVEWeXjqbydQ==",
+ "license": "MIT"
+ },
+ "node_modules/safer-buffer": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz",
+ "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==",
+ "license": "MIT"
+ },
+ "node_modules/source-map": {
+ "version": "0.6.1",
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
+ "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
+ "license": "BSD-3-Clause",
+ "optional": true,
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/ssf": {
+ "version": "0.11.2",
+ "resolved": "https://registry.npmjs.org/ssf/-/ssf-0.11.2.tgz",
+ "integrity": "sha512-+idbmIXoYET47hH+d7dfm2epdOMUDjqcB4648sTZ+t2JwoyBFL/insLfB/racrDmsKB3diwsDA696pZMieAC5g==",
+ "license": "Apache-2.0",
+ "dependencies": {
+ "frac": "~1.1.2"
+ },
+ "engines": {
+ "node": ">=0.8"
+ }
+ },
+ "node_modules/static-eval": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/static-eval/-/static-eval-2.0.2.tgz",
+ "integrity": "sha512-N/D219Hcr2bPjLxPiV+TQE++Tsmrady7TqAJugLy7Xk1EumfDWS/f5dtBbkRCGE7wKKXuYockQoj8Rm2/pVKyg==",
+ "license": "MIT",
+ "dependencies": {
+ "escodegen": "^1.8.1"
+ }
+ },
+ "node_modules/type-check": {
+ "version": "0.3.2",
+ "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz",
+ "integrity": "sha512-ZCmOJdvOWDBYJlzAoFkC+Q0+bUyEOS1ltgp1MGU03fqHG+dbi9tBFU2Rd9QKiDZFAYrhPh2JUf7rZRIuHRKtOg==",
+ "license": "MIT",
+ "dependencies": {
+ "prelude-ls": "~1.1.2"
+ },
+ "engines": {
+ "node": ">= 0.8.0"
+ }
+ },
+ "node_modules/underscore": {
+ "version": "1.12.1",
+ "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.12.1.tgz",
+ "integrity": "sha512-hEQt0+ZLDVUMhebKxL4x1BTtDY7bavVofhZ9KZ4aI26X9SRaE+Y3m83XUL1UP2jn8ynjndwCCpEHdUG+9pP1Tw==",
+ "license": "MIT"
+ },
+ "node_modules/wmf": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/wmf/-/wmf-1.0.2.tgz",
+ "integrity": "sha512-/p9K7bEh0Dj6WbXg4JG0xvLQmIadrner1bi45VMJTfnbVHsc7yIajZyoSoK60/dtVBs12Fm6WkUI5/3WAVsNMw==",
+ "license": "Apache-2.0",
+ "engines": {
+ "node": ">=0.8"
+ }
+ },
+ "node_modules/word": {
+ "version": "0.3.0",
+ "resolved": "https://registry.npmjs.org/word/-/word-0.3.0.tgz",
+ "integrity": "sha512-OELeY0Q61OXpdUfTp+oweA/vtLVg5VDOXh+3he3PNzLGG/y0oylSOC1xRVj0+l4vQ3tj/bB1HVHv1ocXkQceFA==",
+ "license": "Apache-2.0",
+ "engines": {
+ "node": ">=0.8"
+ }
+ },
+ "node_modules/word-wrap": {
+ "version": "1.2.5",
+ "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.5.tgz",
+ "integrity": "sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/xlsx": {
+ "version": "0.18.5",
+ "resolved": "https://registry.npmjs.org/xlsx/-/xlsx-0.18.5.tgz",
+ "integrity": "sha512-dmg3LCjBPHZnQp5/F/+nnTa+miPJxUXB6vtk42YjBBKayDNagxGEeIdWApkYPOf3Z3pm3k62Knjzp7lMeTEtFQ==",
+ "license": "Apache-2.0",
+ "dependencies": {
+ "adler-32": "~1.3.0",
+ "cfb": "~1.2.1",
+ "codepage": "~1.15.0",
+ "crc-32": "~1.2.1",
+ "ssf": "~0.11.2",
+ "wmf": "~1.0.1",
+ "word": "~0.3.0"
+ },
+ "bin": {
+ "xlsx": "bin/xlsx.njs"
+ },
+ "engines": {
+ "node": ">=0.8"
+ }
+ },
+ "node_modules/xmldom": {
+ "version": "0.6.0",
+ "resolved": "https://registry.npmjs.org/xmldom/-/xmldom-0.6.0.tgz",
+ "integrity": "sha512-iAcin401y58LckRZ0TkI4k0VSM1Qg0KGSc3i8rU+xrxe19A/BN1zHyVSJY7uoutVlaTSzYyk/v5AmkewAP7jtg==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=10.0.0"
+ }
+ },
+ "node_modules/xpath": {
+ "version": "0.0.34",
+ "resolved": "https://registry.npmjs.org/xpath/-/xpath-0.0.34.tgz",
+ "integrity": "sha512-FxF6+rkr1rNSQrhUNYrAFJpRXNzlDoMxeXN5qI84939ylEv3qqPFKa85Oxr6tDaJKqwW6KKyo2v26TSv3k6LeA==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=0.6.0"
+ }
+ }
+ }
+}
diff --git a/package.json b/package.json
index bde97a0..dbf3725 100644
--- a/package.json
+++ b/package.json
@@ -9,5 +9,12 @@
},
"keywords": [],
"author": "",
- "license": "ISC"
+ "license": "ISC",
+ "dependencies": {
+ "jsonpath": "^1.1.1",
+ "psd": "^3.4.0",
+ "xlsx": "^0.18.5",
+ "xmldom": "^0.6.0",
+ "xpath": "^0.0.34"
+ }
}
diff --git a/psdExport.js b/psdExport.js
index e15c2f8..bc8a951 100644
--- a/psdExport.js
+++ b/psdExport.js
@@ -7,11 +7,11 @@ const xpath = require('xpath');
const { DOMParser } = require('xmldom');
-const sampleDir = './output/C/DIC';
+const sampleDir = './output/C/DIC/';
const students = fs.readdirSync(sampleDir);
// 기준표 파일 읽기
-const scoring = require('./scoring.json');
+const scoring = require('./제2501회 정기 DIC C형.json');
const psdData = [];
const gradingResults = [];
@@ -94,7 +94,7 @@ function getGmepScore(gmepData, scoring, index) {
const value = scoringData[key].value;
const point = scoringData[key].point;
const type = scoringData[key].type;
-
+ console.log(`example number: ${key}`);
if (ele === 'none') {
gradingResult[key] = "확인필요";
continue;
@@ -259,12 +259,12 @@ function getGmepScore(gmepData, scoring, index) {
continue;
}
if (unitOrderNode.value === value) {
- console.log(`${unitOrderNode.value} === ${value}`);
+ console.log(`unit: ${unitOrderNode.value} === ${value}`);
gradingResult[key] = point;
totalScore += point;
}
else if (unitOrderNode === value) {
- console.log(`${unitOrderNode} === ${value}`);
+ console.log(`unitValue: ${unitOrderNode} === ${value}`);
gradingResult[key] = point;
totalScore += point;
}
@@ -278,17 +278,34 @@ function getGmepScore(gmepData, scoring, index) {
}
}
else {
- console.log('Unknown type:', type);
- const result = xpath.select(ele, doc);
+ const ele2 = scoringData[key].ele2;
+ console.log('Unknown type:', ele);
+ let result = xpath.select(ele, doc);
+ let result2 = null;
+ let isCheck = false;
+
if (result.length == 0) {
- gradingResult[key] = 0;
- continue;
+ isCheck = true;
}
+ if (isCheck && ele2) {
+ result2 = xpath.select(ele2, doc);
+
+ if (result2.length == 0) {
+ gradingResult[key] = 0;
+ continue;
+ }
+
+ result = result2;
+ console.log(`1st isChecked: ${isCheck}, result: ${result}`)
+ }
+
// console.log(`result: ${result[0].value}`);
// value와 result[0].value를 비교하여 같으면 점수 point 부여
- totalScore += result.length > 0 && value === result[0].value ? point : 0;
- gradingResult[key] = result.length > 0 && value === result[0].value ? point : 0;
+ // console.log(`${(value === result[0].value)}, ${result.length > 0 && value === result[0].value} `)
+ console.log(`2nd isChecked: ${isCheck}, result: ${result}`)
+ totalScore += result.length > 0 ? point : 0;
+ gradingResult[key] = result.length > 0 ? point : 0;
}
}
@@ -323,50 +340,54 @@ function getScore(psdData, scoring, index) {
continue;
}
-
- const result = jsonPath.query(psdTree, ele);
- console.log(`ele: ${ele}, value: ${value} result: ${result}`);
- if (result.length == 0) {
- gradingResult[key] = 0;
- continue;
- }
- if (type == "boolean") {
+ try {
+ const result = jsonPath.query(psdTree, ele);
+ console.log(`ele: ${ele}, value: ${value} result: ${result}`);
+ if (result.length == 0) {
+ gradingResult[key] = 0;
+ continue;
+ }
+ if (type == "boolean") {
// console.log(`result ${result.length}`);
- gradingResult[key] = result.length > 0 ? point : 0;
- }
- // value가 color code인 경우 R,G,B를 16진수로 변환하여 비교하고 같다면 점수 부여
- // value: "ffa200"
- // result: [255,162,0,255]
- // 255,162,0,255 -> ffa200
- else if (type == "color") {
- // console.log(`result ${result}`); // result 255,162,0,255
- const temp = result[0].slice(0, 3).join(','); // 255,162,0
- color = temp.split(',').map(v => parseInt(v).toString(16)).join(''); // ffa20
- // ffa20 -> ffa200
- if (color.length == 5) {
- color = color + '0';
+ gradingResult[key] = result.length > 0 ? point : 0;
}
+ // value가 color code인 경우 R,G,B를 16진수로 변환하여 비교하고 같다면 점수 부여
+ // value: "ffa200"
+ // result: [255,162,0,255]
+ // 255,162,0,255 -> ffa200
+ else if (type == "color") {
+ // console.log(`result ${result}`); // result 255,162,0,255
+ const temp = result[0].slice(0, 3).join(','); // 255,162,0
+ color = temp.split(',').map(v => parseInt(v).toString(16)).join(''); // ffa20
+ // ffa20 -> ffa200
+ if (color.length == 5) {
+ color = color + '0';
+ }
// console.log(`color: ${color}`);
- gradingResult[key] = result.length > 0 && value === color ? point : 0;
- }
+ gradingResult[key] = result.length > 0 && value === color ? point : 0;
+ }
- // type이 font인 경우 font의 이름만 추출하여 비교
- // value: "Arial"
- // result: ["Arial-BoldItalicMT"]
- else if (type == "font") {
+ // type이 font인 경우 font의 이름만 추출하여 비교
+ // value: "Arial"
+ // result: ["Arial-BoldItalicMT"]
+ else if (type == "font") {
// console.log(`result ${result}`);
- const font = result[0].split('-')[0];
+ const font = result[0].split('-')[0];
// console.log(`font: ${font}`);
- gradingResult[key] = result.length > 0 && value === font ? point : 0;
- }
+ gradingResult[key] = result.length > 0 && value === font ? point : 0;
+ }
- else if (result[0] === value) {
- gradingResult[key] = point;
- totalScore += point;
- } else {
+ else if (result[0] === value) {
+ gradingResult[key] = point;
+ totalScore += point;
+ } else {
+ gradingResult[key] = 0;
+ }
+ } catch (error) {
+ console.error(`Error processing JSONPath query for ele: ${ele}`, error);
gradingResult[key] = 0;
}
}
diff --git a/sample/멀티미디어-000199-김승효/멀티미디어_01-000199-김승효.jpg b/sample/멀티미디어-000199-김승효/멀티미디어_01-000199-김승효.jpg
new file mode 100755
index 0000000..8d0c82f
Binary files /dev/null and b/sample/멀티미디어-000199-김승효/멀티미디어_01-000199-김승효.jpg differ
diff --git a/sample/멀티미디어-000199-김승효/멀티미디어_01-000199-김승효.psd b/sample/멀티미디어-000199-김승효/멀티미디어_01-000199-김승효.psd
new file mode 100755
index 0000000..de1ef68
Binary files /dev/null and b/sample/멀티미디어-000199-김승효/멀티미디어_01-000199-김승효.psd differ
diff --git a/sample/멀티미디어-000199-김승효/멀티미디어_02-000199-김승효.jpg b/sample/멀티미디어-000199-김승효/멀티미디어_02-000199-김승효.jpg
new file mode 100755
index 0000000..41cbe20
Binary files /dev/null and b/sample/멀티미디어-000199-김승효/멀티미디어_02-000199-김승효.jpg differ
diff --git a/sample/멀티미디어-000199-김승효/멀티미디어_02-000199-김승효.psd b/sample/멀티미디어-000199-김승효/멀티미디어_02-000199-김승효.psd
new file mode 100755
index 0000000..ad68d82
Binary files /dev/null and b/sample/멀티미디어-000199-김승효/멀티미디어_02-000199-김승효.psd differ
diff --git a/sample/멀티미디어-000199-김승효/멀티미디어_03-2501-000199-김승효.gmep b/sample/멀티미디어-000199-김승효/멀티미디어_03-2501-000199-김승효.gmep
new file mode 100755
index 0000000..3038832
--- /dev/null
+++ b/sample/멀티미디어-000199-김승효/멀티미디어_03-2501-000199-김승효.gmep
@@ -0,0 +1,156 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/sample/멀티미디어-003000-김나윤/멀티미디어_01-003000-김나윤.psd b/sample/멀티미디어-003000-김나윤/멀티미디어_01-003000-김나윤.psd
new file mode 100755
index 0000000..28b6126
Binary files /dev/null and b/sample/멀티미디어-003000-김나윤/멀티미디어_01-003000-김나윤.psd differ
diff --git a/sample/멀티미디어-003000-김나윤/멀티미디어_01-003000.jpg b/sample/멀티미디어-003000-김나윤/멀티미디어_01-003000.jpg
new file mode 100755
index 0000000..82ccae5
Binary files /dev/null and b/sample/멀티미디어-003000-김나윤/멀티미디어_01-003000.jpg differ
diff --git a/sample/멀티미디어-003000-김나윤/멀티미디어_02-003000-김나윤.jpg b/sample/멀티미디어-003000-김나윤/멀티미디어_02-003000-김나윤.jpg
new file mode 100755
index 0000000..ef44f22
Binary files /dev/null and b/sample/멀티미디어-003000-김나윤/멀티미디어_02-003000-김나윤.jpg differ
diff --git a/sample/멀티미디어-003000-김나윤/멀티미디어_02-003000-김나윤.psd b/sample/멀티미디어-003000-김나윤/멀티미디어_02-003000-김나윤.psd
new file mode 100755
index 0000000..16587c4
Binary files /dev/null and b/sample/멀티미디어-003000-김나윤/멀티미디어_02-003000-김나윤.psd differ
diff --git a/sample/멀티미디어-003000-김나윤/멀티미디어_03-003000-김나윤.gmep b/sample/멀티미디어-003000-김나윤/멀티미디어_03-003000-김나윤.gmep
new file mode 100755
index 0000000..cb697fc
--- /dev/null
+++ b/sample/멀티미디어-003000-김나윤/멀티미디어_03-003000-김나윤.gmep
@@ -0,0 +1,156 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/scoring.json b/scoring.json
index 2dfe075..271cc2a 100644
--- a/scoring.json
+++ b/scoring.json
@@ -48,7 +48,7 @@
"point": 0
},
"4": {
- "ele": "$.children[?(@.name=='Amusement Park')]",
+ "ele": "$.children[?(@.name=='동네쉼터')]",
"type": "boolean",
"point": 10
},
@@ -57,30 +57,30 @@
"point": 0
},
"6": {
- "ele": "$.children[?(@.name=='Amusement Park')].name",
- "value": "Amusement Park",
+ "ele": "$.children[?(@.name=='Neighborhood Friends')].name",
+ "value": "Neighborhood Friends",
"point": 10
},
"7": {
- "ele": "$.children[?(@.name=='Amusement Park')].text.font.names[0]",
+ "ele": "$.children[?(@.name=='Neighborhood Friends')].text.font.names[0]",
"type": "font",
"value": "Arial",
"point": 10
},
"8": {
- "ele": "$.children[?(@.name=='Amusement Park')].text.font.names[0]",
+ "ele": "$.children[?(@.name=='Neighborhood Friends')].text.font.names[0]",
"value": "Arial-BoldItalicMT",
"point": 10
},
"9": {
- "ele": "$.children[?(@.name=='Amusement Park')].text.font.sizes[0]",
+ "ele": "$.children[?(@.name=='Neighborhood Friends')].text.font.sizes[0]",
"value": 48,
"point": 10
},
"10": {
- "ele": "$.children[?(@.name=='Amusement Park')].text.font.colors[0]",
+ "ele": "$.children[?(@.name=='Neighborhood Friends')].text.font.colors[0]",
"type": "color",
- "value": "aaaaaa",
+ "value": "ffa200",
"point": 10
},
"11": {
@@ -96,25 +96,25 @@
"point": 0
},
"14": {
- "ele": "$.children[?(@.name=='가오슝 놀이공원 가요')].name",
- "value": "가오슝 놀이공원 가요",
+ "ele": "$.children[?(@.name=='동네 친구들')].name",
+ "value": "동네 친구들",
"point": 10
},
"15": {
- "ele": "$.children[?(@.name=='가오슝 놀이공원 가요')].text.font.names[0]",
+ "ele": "$.children[?(@.name=='동네 친구들')].text.font.names[0]",
"type": "font",
- "value": "DotumChe",
+ "value": "GungsuhChe",
"point": 10
},
"16": {
- "ele": "$.children[?(@.name=='가오슝 놀이공원 가요')].text.font.sizes[0]",
+ "ele": "$.children[?(@.name=='동네 친구들')].text.font.sizes[0]",
"value": 36,
"point": 10
},
"17": {
- "ele": "$.children[?(@.name=='가오슝 놀이공원 가요')].text.font.colors[0]",
+ "ele": "$.children[?(@.name=='동네 친구들')].text.font.colors[0]",
"type": "color",
- "value": "261795",
+ "value": "27d6dc",
"point": 10
},
"18": {
@@ -134,7 +134,7 @@
"point": 0
},
"22": {
- "ele": "$.children[?(@.name=='드롭존')]",
+ "ele": "$.children[?(@.name=='동네쉼터')]",
"type": "boolean",
"point": 10
},
@@ -170,59 +170,60 @@
},
"2": {
"ele": "/CROASTERP/CRTrackArr[1]/CRVideoTrackArr[1]/CRTrackList[1]/CRTrackClip[1]/@Speed",
- "value": "150",
+ "value": "140",
"point": 2
},
"3": {
"ele": "count(//CRClip[@Path='동영상.mp4']/preceding-sibling::*)",
"type": "startend",
"start": "0",
- "end": "230",
+ "end": "340",
"point": 2
},
"4": {
- "ele": "//CRTrackList[@Name='비디오1']/CRTrackClip[@ClipIndex=count(//CRClip[@Path='동영상.mp4']/preceding-sibling::*)]//CRFilter[@ID='43'][@VID100='5'][@VID103='0.89999998']",
+ "ele": "//CRTrackList[@Name='비디오1']/CRTrackClip[@ClipIndex=count(//CRClip[@Path='동영상.mp4']/preceding-sibling::*)]//CRFilter[@ID='52'][@VID100='10'][@VID103='0.80000001']",
"point": 3
},
"5": {
- "ele": "//GPString[@VID7='재미있는 놀이공원']/@VID7",
+ "ele": "//GPString[@VID7='추억의 말뚝박기 놀이']/@VID7",
"type": "subtitle",
"length": 1,
"point": 3
},
"6": {
- "ele": "//CRCUnitArr[@Name='재미있는 놀이공원']//GCUnitPool[@Type='1']/GCUnit[@VID102='바탕체']",
+ "ele": "//CRCUnitArr[@Name='추억의 말뚝박기 놀이']//GCUnitPool[@Type='1']/GCUnit[@VID102='바탕체']",
+ "ele2": "//CRCUnitArr[1]//GCUnitPool[@Type='1']/GCUnit[@VID102='바탕체']",
"point": 2
},
"7": {
- "ele": "//CRCUnitArr[@Name='재미있는 놀이공원']//GCUnitPool[@Type='1']/GCUnit[@VID101='130']",
+ "ele": "//CRCUnitArr[@Name='추억의 말뚝박기 놀이']//GCUnitPool[@Type='1']/GCUnit[@VID101='110']",
"point": 2
},
"8": {
- "ele": "//CRCUnitArr[@Name='재미있는 놀이공원']//GCUnitPool/GCUnit[@Type='4']/@VID100",
+ "ele": "//CRCUnitArr[@Name='추억의 말뚝박기 놀이']//GCUnitPool/GCUnit[@Type='4']/@VID100",
"type": "color",
- "value": "-6742488",
+ "value": "-270661",
"point": 2
},
"9": {
- "ele": "//CRCUnitArr[@Name='재미있는 놀이공원']/@VID600 | //CRCUnitArr[@Name='재미있는 놀이공원']/@VID601",
+ "ele": "//CRCUnitArr[@Name='추억의 말뚝박기 놀이']/@VID600 | //CRCUnitArr[@Name='추억의 말뚝박기 놀이']/@VID601",
"type": "multi",
"value": [
- 0.291,
- 0.914
+ 0.292,
+ 0.929
],
"point": 2
},
"10": {
- "existEle": "//CRCUnitArr[@Name='재미있는 놀이공원']",
- "ele": "sum(//CRTrackList[@Name='텍스트']/CRTrackClip[not(@ClipIndex=count(//CROwneUnit[.//CRCUnitArr[@Name='재미있는 놀이공원']]/preceding::CROwneUnit))]/@Length)",
+ "existEle": "//CRCUnitArr[@Name='추억의 말뚝박기 놀이']",
+ "ele": "sum(//CRTrackList[@Name='텍스트']/CRTrackClip[not(@ClipIndex=count(//CROwneUnit[.//CRCUnitArr[@Name='추억의 말뚝박기 놀이']]/preceding::CROwneUnit))]/@Length)",
"type": "searchIndex",
- "value": 150,
+ "value": 160,
"point": 2
},
"11": {
- "existEle": "//CRCUnitArr[@Name='재미있는 놀이공원']",
- "ele": "//CRTrackList[@Name='텍스트']/CRTrackClip[@ClipIndex=count(//CROwneUnit[.//CRCUnitArr[@Name='재미있는 놀이공원']]/preceding::CROwneUnit)]/@Length",
+ "existEle": "//CRCUnitArr[@Name='추억의 말뚝박기 놀이']",
+ "ele": "//CRTrackList[@Name='텍스트']/CRTrackClip[@ClipIndex=count(//CROwneUnit[.//CRCUnitArr[@Name='추억의 말뚝박기 놀이']]/preceding::CROwneUnit)]/@Length",
"type": "searchIndex",
"value": "120",
"point": 2
@@ -238,15 +239,15 @@
"existEle": "//CRClip[@Path='이미지1.jpg']",
"ele": "//CRTrackList[@Name='비디오1']/CRTrackClip[@ClipIndex=count(//CRClip[@Path='이미지1.jpg']/preceding-sibling::*)]/@Length",
"type": "searchIndex",
- "value": "150",
+ "value": "180",
"point": 2
},
"14": {
"type": "multi",
"ele": "//CRTrackList[@Name='비디오1']/CRTrackClip[@ClipIndex=count(//CRClip[@Path='이미지1.jpg']/preceding-sibling::*)]//CRFilter/@ID |//CRTrackList[@Name='비디오1']/CRTrackClip[@ClipIndex=count(//CRClip[@Path='이미지1.jpg']/preceding-sibling::*)]//CRFilter/@VID100",
"value": [
- "102",
- "2"
+ "99",
+ "65"
],
"point": 2
},
@@ -254,8 +255,8 @@
"type": "multi",
"ele": "//CRTransFilter[@ClipIndex=count(//CRTrackList/CRTrackClip[@ClipIndex=count(//CRClip[@Path='이미지1.jpg']/preceding-sibling::*)]/preceding-sibling::CRTrackClip)]/@ID|//CRTransFilter[@ClipIndex=count(//CRTrackList/CRTrackClip[@ClipIndex=count(//CRClip[@Path='이미지1.jpg']/preceding-sibling::*)]/preceding-sibling::CRTrackClip)]/@Range|//CRTransFilter[@ClipIndex=count(//CRTrackList/CRTrackClip[@ClipIndex=count(//CRClip[@Path='이미지1.jpg']/preceding-sibling::*)]/preceding-sibling::CRTrackClip)]/@Type",
"value": [
- "11",
- "320:380",
+ "19",
+ "460:520",
"2"
],
"point": 2
@@ -264,7 +265,7 @@
"existEle": "//CRClip[@Path='이미지3.jpg']",
"ele": "//CRTrackList[@Name='비디오1']/CRTrackClip[@ClipIndex=count(//CRClip[@Path='이미지3.jpg']/preceding-sibling::*)]/@Length",
"type": "searchIndex",
- "value": "180",
+ "value": "150",
"point": 2
},
"17": {
@@ -280,8 +281,8 @@
"type": "multi",
"ele": "//CRTransFilter[@ClipIndex=count(//CRTrackList/CRTrackClip[@ClipIndex=count(//CRClip[@Path='이미지3.jpg']/preceding-sibling::*)]/preceding-sibling::CRTrackClip)]/@ID|//CRTransFilter[@ClipIndex=count(//CRTrackList/CRTrackClip[@ClipIndex=count(//CRClip[@Path='이미지3.jpg']/preceding-sibling::*)]/preceding-sibling::CRTrackClip)]/@Range|//CRTransFilter[@ClipIndex=count(//CRTrackList/CRTrackClip[@ClipIndex=count(//CRClip[@Path='이미지3.jpg']/preceding-sibling::*)]/preceding-sibling::CRTrackClip)]/@Type",
"value": [
- "8",
- "500:560",
+ "10",
+ "640:670",
"2"
],
"point": 2
@@ -290,15 +291,15 @@
"existEle": "//CRClip[@Path='이미지2.jpg']",
"ele": "//CRTrackList[@Name='비디오1']/CRTrackClip[@ClipIndex=count(//CRClip[@Path='이미지2.jpg']/preceding-sibling::*)]/@Length",
"type": "searchIndex",
- "value": "180",
+ "value": "150",
"point": 2
},
"20": {
"type": "multi",
"ele": "//CRTrackList[@Name='비디오1']/CRTrackClip[@ClipIndex=count(//CRClip[@Path='이미지2.jpg']/preceding-sibling::*)]//CRFilter/@ID |//CRTrackList[@Name='비디오1']/CRTrackClip[@ClipIndex=count(//CRClip[@Path='이미지2.jpg']/preceding-sibling::*)]//CRFilter/@VID100",
"value": [
- "67",
- "4"
+ "184",
+ "20"
],
"point": 2
},
@@ -306,50 +307,50 @@
"type": "multi",
"ele": "//CRTransFilter[@ClipIndex=count(//CRTrackList/CRTrackClip[@ClipIndex=count(//CRClip[@Path='이미지2.jpg']/preceding-sibling::*)]/preceding-sibling::CRTrackClip)]/@ID|//CRTransFilter[@ClipIndex=count(//CRTrackList/CRTrackClip[@ClipIndex=count(//CRClip[@Path='이미지2.jpg']/preceding-sibling::*)]/preceding-sibling::CRTrackClip)]/@Range|//CRTransFilter[@ClipIndex=count(//CRTrackList/CRTrackClip[@ClipIndex=count(//CRClip[@Path='이미지2.jpg']/preceding-sibling::*)]/preceding-sibling::CRTrackClip)]/@Type",
"value": [
- "19",
- "710:740",
+ "0",
+ "760:820",
"2"
],
"point": 2
},
"22": {
- "ele": "//GPString[@VID7='자동차 레이싱 코스' or @VID7='(A Car Racing Course)']/@VID7",
+ "ele": "//GPString[@VID7='동네 풍경' or @VID7='(Neighborhood Scene)']/@VID7",
"type": "subtitle",
"length": 2,
"point": 3
},
"23": {
- "ele": "//CRCUnitArr[@Name='자동차 레이싱 코스 (A Car Racing Course)']//GCUnitPool[@Type='1']/GCUnit[@VID102='돋움체']",
+ "ele": "//CRCUnitArr[@Name='동네 풍경 (Neighborhood Scene)']//GCUnitPool[@Type='1']/GCUnit[@VID102='궁서체']",
"point": 2
},
"24": {
- "ele": "//CRCUnitArr[@Name='자동차 레이싱 코스 (A Car Racing Course)']//GCUnitPool[@Type='1']/GCUnit[@VID101='150']",
+ "ele": "//CRCUnitArr[@Name='동네 풍경 (Neighborhood Scene)']//GCUnitPool[@Type='1']/GCUnit[@VID101='160']",
"point": 2
},
"25": {
- "ele": "//CRCUnitArr[@Name='자동차 레이싱 코스 (A Car Racing Course)']//GCUnitPool/GCUnit[@Type='4']/@VID100",
+ "ele": "//CRCUnitArr[@Name='동네 풍경 (Neighborhood Scene)']//GCUnitPool/GCUnit[@Type='4']/@VID100",
"type": "color",
- "value": "-8036654",
+ "value": "-1589535",
"point": 2
},
"26": {
- "ele": "//CRCUnitArr[@Name='자동차 레이싱 코스 (A Car Racing Course)']//GCUnitPool/GCUnit[@Type='2'][@VID100='0.30000001'][@VID101='-16777216']",
+ "ele": "//CRCUnitArr[@Name='동네 풍경 (Neighborhood Scene)']//GCUnitPool/GCUnit[@Type='2'][@VID100='0.2'][@VID101='-8510694']",
"point": 2
},
"27": {
- "ele": "//CRCUnitArr[@Name='자동차 레이싱 코스 (A Car Racing Course)'][@VID505='1'][@VID507='2']",
+ "ele": "//CRCUnitArr[@Name='동네 풍경 (Neighborhood Scene)'][@VID505='18'][@VID507='2']",
"point": 3
},
"28": {
- "existEle": "//CRCUnitArr[@Name='자동차 레이싱 코스 (A Car Racing Course)']",
- "ele": "//CRTrackList[@Name='텍스트']/CRTrackClip[@ClipIndex=count(//CROwneUnit[.//CRCUnitArr[@Name='재미있는 놀이공원']]/preceding::CROwneUnit)]/@Pos",
+ "existEle": "//CRCUnitArr[@Name='동네 풍경 (Neighborhood Scene)']",
+ "ele": "//CRTrackList[@Name='텍스트']/CRTrackClip[@ClipIndex=count(//CROwneUnit[.//CRCUnitArr[@Name='추억의 말뚝박기 놀이']]/preceding::CROwneUnit)]/@Pos",
"type": "searchIndex",
"value": "0",
"point": 2
},
"29": {
- "existEle": "//CRCUnitArr[@Name='자동차 레이싱 코스 (A Car Racing Course)']",
- "ele": "//CRTrackList[@Name='텍스트']/CRTrackClip[(@ClipIndex=count(//CROwneUnit[.//CRCUnitArr[@Name='자동차 레이싱 코스 (A Car Racing Course)']]/preceding::CROwneUnit))]/@Length",
+ "existEle": "//CRCUnitArr[@Name='동네 풍경 (Neighborhood Scene)']",
+ "ele": "//CRTrackList[@Name='텍스트']/CRTrackClip[(@ClipIndex=count(//CROwneUnit[.//CRCUnitArr[@Name='동네 풍경 (Neighborhood Scene)']]/preceding::CROwneUnit))]/@Length",
"type": "searchIndex",
"value": "120",
"point": 2
@@ -359,11 +360,11 @@
"point": 2
},
"31":{
- "ele": "//CRTrackArr/CRAudioTrackArr/CRTrackList[@Name='오디오1']/CRTrackClip[@Length='720']",
+ "ele": "//CRTrackArr/CRAudioTrackArr/CRTrackList[@Name='오디오1']/CRTrackClip[@Length='810']",
"point": 2
},
"32":{
- "ele": "//CRTrackArr/CRAudioTrackArr/CRTrackList[@Name='오디오1']//CRFilter[@Type='2'][@ID='1'][@VID8='90']",
+ "ele": "//CRTrackArr/CRAudioTrackArr/CRTrackList[@Name='오디오1']//CRFilter[@Type='2'][@ID='1'][@VID8='60']",
"point": 2
}
diff --git a/~$output.xlsx b/~$output.xlsx
new file mode 100644
index 0000000..7412e05
Binary files /dev/null and b/~$output.xlsx differ
diff --git a/~$제2501회 정기 DIC C형.xlsx b/~$제2501회 정기 DIC C형.xlsx
new file mode 100644
index 0000000..7412e05
Binary files /dev/null and b/~$제2501회 정기 DIC C형.xlsx differ
diff --git a/제2501회 정기 DIC B형.json b/제2501회 정기 DIC B형.json
index 7f251c6..e97c7eb 100644
--- a/제2501회 정기 DIC B형.json
+++ b/제2501회 정기 DIC B형.json
@@ -169,8 +169,7 @@
"point": 4
},
"2": {
- "ele": "/CROASTERP/CRTrackArr[1]/CRVideoTrackArr[1]/CRTrackList[1]/CRTrackClip[1]/@Speed",
- "value": "140",
+ "ele": "/CROASTERP/CRTrackArr[1]/CRVideoTrackArr[1]/CRTrackList[1]/CRTrackClip[1][@Speed='140']",
"point": 2
},
"3": {
@@ -192,20 +191,22 @@
},
"6": {
"ele": "//CRCUnitArr[@Name='추억의 말뚝박기 놀이']//GCUnitPool[@Type='1']/GCUnit[@VID102='바탕체']",
+ "ele2": "//CROwneUnit[1]/CRCUnitArr//GCUnitPool[@Type='1']/GCUnit[@VID102='바탕체']",
"point": 2
},
"7": {
"ele": "//CRCUnitArr[@Name='추억의 말뚝박기 놀이']//GCUnitPool[@Type='1']/GCUnit[@VID101='110']",
+ "ele2": "//CROwneUnit[1]/CRCUnitArr//GCUnitPool[@Type='1']/GCUnit[@VID101='110']",
"point": 2
},
"8": {
- "ele": "//CRCUnitArr[@Name='추억의 말뚝박기 놀이']//GCUnitPool/GCUnit[@Type='4']/@VID100",
- "type": "color",
- "value": "-270661",
+ "ele": "//CRCUnitArr[@Name='추억의 말뚝박기 놀이']//GCUnitPool/GCUnit[@Type='4'][@VID100='-270661']",
+ "ele2": "//CROwneUnit[1]/CRCUnitArr//GCUnitPool/GCUnit[@Type='4'][@VID100='-270661']",
"point": 2
},
"9": {
"ele": "//CRCUnitArr[@Name='추억의 말뚝박기 놀이']/@VID600 | //CRCUnitArr[@Name='추억의 말뚝박기 놀이']/@VID601",
+ "ele2": "//CROwneUnit[1]/CRCUnitArr/@VID600 | //CROwneUnit[1]/CRCUnitArr/@VID601",
"type": "multi",
"value": [
0.292,
@@ -215,16 +216,14 @@
},
"10": {
"existEle": "//CRCUnitArr[@Name='추억의 말뚝박기 놀이']",
- "ele": "sum(//CRTrackList[@Name='텍스트']/CRTrackClip[not(@ClipIndex=count(//CROwneUnit[.//CRCUnitArr[@Name='추억의 말뚝박기 놀이']]/preceding::CROwneUnit))]/@Length)",
+ "ele": "sum(//CRTrackList[@Name='텍스트']/CRTrackClip[not(@ClipIndex=count(//CROwneUnit[1]/CRCUnitArr/preceding::CROwneUnit))]/@Length)",
"type": "searchIndex",
"value": 160,
"point": 2
},
"11": {
- "existEle": "//CRCUnitArr[@Name='추억의 말뚝박기 놀이']",
- "ele": "//CRTrackList[@Name='텍스트']/CRTrackClip[@ClipIndex=count(//CROwneUnit[.//CRCUnitArr[@Name='추억의 말뚝박기 놀이']]/preceding::CROwneUnit)]/@Length",
- "type": "searchIndex",
- "value": "120",
+ "ele": "//CRTrackList[@Name='텍스트']/CRTrackClip[(@ClipIndex=count(//CROwneUnit[.//CRCUnitArr[@Name='재미있는 놀이공원']/preceding::CROwneUnit))][@Length='120']",
+ "ele2": "//CRTrackList[@Name='텍스트']/CRTrackClip[(@ClipIndex=count(//CROwneUnit[1]/CRCUnitArr/preceding::CROwneUnit))][@Length='120']",
"point": 2
},
"12": {
@@ -320,52 +319,50 @@
},
"23": {
"ele": "//CRCUnitArr[@Name='동네 풍경 (Neighborhood Scene)']//GCUnitPool[@Type='1']/GCUnit[@VID102='궁서체']",
+ "ele2": "//CROwneUnit[2]/CRCUnitArr//GCUnitPool[@Type='1']/GCUnit[@VID102='궁서체']",
"point": 2
},
"24": {
"ele": "//CRCUnitArr[@Name='동네 풍경 (Neighborhood Scene)']//GCUnitPool[@Type='1']/GCUnit[@VID101='160']",
+ "ele2": "//CROwneUnit[2]/CRCUnitArr//GCUnitPool[@Type='1']/GCUnit[@VID101='160']",
"point": 2
},
"25": {
- "ele": "//CRCUnitArr[@Name='동네 풍경 (Neighborhood Scene)']//GCUnitPool/GCUnit[@Type='4']/@VID100",
- "type": "color",
- "value": "-1589535",
+ "ele": "//CRCUnitArr[@Name='동네 풍경 (Neighborhood Scene)']//GCUnitPool/GCUnit[@Type='4'][@VID100='-1589535']",
+ "ele2": "//CROwneUnit[2]/CRCUnitArr//GCUnitPool/GCUnit[@Type='4'][@VID100='-1589535']",
"point": 2
},
"26": {
- "ele": "//CRCUnitArr[@Name='동네 풍경 (Neighborhood Scene)']//GCUnitPool/GCUnit[@Type='2'][@VID100='0.2'][@VID101='-8510694']",
+ "ele": "//CRCUnitArr[@Name='동네 풍경 (Neighborhood Scene)']//GCUnitPool/GCUnit[@Type='2'][@VID100='0.2'][@VID101='-8510694']",
+ "ele2": "//CROwneUnit[2]/CRCUnitArr//GCUnitPool/GCUnit[@Type='2'][@VID100='0.2'][@VID101='-8510694']",
"point": 2
},
"27": {
"ele": "//CRCUnitArr[@Name='동네 풍경 (Neighborhood Scene)'][@VID505='18'][@VID507='2']",
+ "ele2": "//CROwneUnit[2]/CRCUnitArr[@VID505='18'][@VID507='2']",
"point": 3
},
"28": {
- "existEle": "//CRCUnitArr[@Name='동네 풍경 (Neighborhood Scene)']",
- "ele": "//CRTrackList[@Name='텍스트']/CRTrackClip[@ClipIndex=count(//CROwneUnit[.//CRCUnitArr[@Name='추억의 말뚝박기 놀이']]/preceding::CROwneUnit)]/@Pos",
- "type": "searchIndex",
- "value": "0",
+ "ele": "//CRTrackList[@Name='텍스트']/CRTrackClip[@ClipIndex=count(//CROwneUnit[.//CRCUnitArr[@Name='동네 풍경 (Neighborhood Scene)']]/preceding::CROwneUnit)][@Pos='0']",
+ "ele2": "//CRTrackList[@Name='텍스트']/CRTrackClip[@ClipIndex=count(//CROwneUnit[2]/CRCUnitArr/preceding::CROwneUnit)][@Pos='0']",
"point": 2
},
"29": {
- "existEle": "//CRCUnitArr[@Name='동네 풍경 (Neighborhood Scene)']",
- "ele": "//CRTrackList[@Name='텍스트']/CRTrackClip[(@ClipIndex=count(//CROwneUnit[.//CRCUnitArr[@Name='동네 풍경 (Neighborhood Scene)']]/preceding::CROwneUnit))]/@Length",
- "type": "searchIndex",
- "value": "120",
+ "ele": "//CRTrackList[@Name='텍스트']/CRTrackClip[(@ClipIndex=count(//CROwneUnit[.//CRCUnitArr[@Name='동네 풍경 (Neighborhood Scene)']]/preceding::CROwneUnit))][@Length='120']",
+ "ele2": "//CRTrackList[@Name='텍스트']/CRTrackClip[@ClipIndex=count(//CROwneUnit[2]/CRCUnitArr/preceding::CROwneUnit)][@Length='120']",
"point": 2
},
- "30":{
+ "30": {
"ele": "//CRTrackArr/CRAudioTrackArr/CRTrackList[@Name='오디오1']/CRTrackClip[@Pos='0']",
"point": 2
},
- "31":{
- "ele": "//CRTrackArr/CRAudioTrackArr/CRTrackList[@Name='오디오1']/CRTrackClip[@Length='810']",
+ "31": {
+ "ele": "//CRTrackArr/CRAudioTrackArr/CRTrackList[@Name='오디오1']/CRTrackClip[@Length='810']",
"point": 2
},
- "32":{
- "ele": "//CRTrackArr/CRAudioTrackArr/CRTrackList[@Name='오디오1']//CRFilter[@Type='2'][@ID='1'][@VID8='60']",
+ "32": {
+ "ele": "//CRTrackArr/CRAudioTrackArr/CRTrackList[@Name='오디오1']//CRFilter[@Type='2'][@ID='1'][@VID8='60']",
"point": 2
}
-
}
}
\ No newline at end of file
diff --git a/제2501회 정기 DIC B형_250204.xlsx b/제2501회 정기 DIC B형_250204.xlsx
new file mode 100644
index 0000000..0a66779
Binary files /dev/null and b/제2501회 정기 DIC B형_250204.xlsx differ
diff --git a/제2501회 정기 DIC C형.json b/제2501회 정기 DIC C형.json
new file mode 100644
index 0000000..1468d65
--- /dev/null
+++ b/제2501회 정기 DIC C형.json
@@ -0,0 +1,368 @@
+{
+ "0": {
+ "1": {
+ "ele": "none",
+ "point": 0
+ },
+ "2": {
+ "ele": "none",
+ "point": 0
+ },
+ "3": {
+ "ele": "none",
+ "point": 0
+ },
+ "4": {
+ "ele": "none",
+ "point": 0
+ },
+ "5": {
+ "ele": "none",
+ "point": 0
+ },
+ "6": {
+ "ele": "none",
+ "point": 0
+ },
+ "7": {
+ "ele": "none",
+ "point": 0
+ },
+ "8": {
+ "ele": "$[?(@.width == 65 && @.height == 45)]",
+ "type": "boolean",
+ "point": 10
+ }
+ },
+ "1": {
+ "1": {
+ "ele": "none",
+ "point": 0
+ },
+ "2": {
+ "ele": "none",
+ "point": 0
+ },
+ "3": {
+ "ele": "none",
+ "point": 0
+ },
+ "4": {
+ "ele": "$.children[?(@.name=='Amusement Park')]",
+ "type": "boolean",
+ "point": 10
+ },
+ "5": {
+ "ele": "none",
+ "point": 0
+ },
+ "6": {
+ "ele": "$.children[?(@.name=='Amusement Park')].name",
+ "value": "Amusement Park",
+ "point": 10
+ },
+ "7": {
+ "ele": "$.children[?(@.name=='Amusement Park')].text.font.names[0]",
+ "type": "font",
+ "value": "Arial",
+ "point": 10
+ },
+ "8": {
+ "ele": "$.children[?(@.name=='Amusement Park')].text.font.names[0]",
+ "value": "Arial-BoldItalicMT",
+ "point": 10
+ },
+ "9": {
+ "ele": "$.children[?(@.name=='Amusement Park')].text.font.sizes[0]",
+ "value": 48,
+ "point": 10
+ },
+ "10": {
+ "ele": "$.children[?(@.name=='Amusement Park')].text.font.colors[0]",
+ "type": "color",
+ "value": "aaaaaa",
+ "point": 10
+ },
+ "11": {
+ "ele": "none",
+ "point": 0
+ },
+ "12": {
+ "ele": "none",
+ "point": 0
+ },
+ "13": {
+ "ele": "none",
+ "point": 0
+ },
+ "14": {
+ "ele": "$.children[?(@.name=='가오슝 놀이공원 가요')].name",
+ "value": "가오슝 놀이공원 가요",
+ "point": 10
+ },
+ "15": {
+ "ele": "$.children[?(@.name=='가오슝 놀이공원 가요')].text.font.names[0]",
+ "type": "font",
+ "value": "DotumChe",
+ "point": 10
+ },
+ "16": {
+ "ele": "$.children[?(@.name=='가오슝 놀이공원 가요')].text.font.sizes[0]",
+ "value": 36,
+ "point": 10
+ },
+ "17": {
+ "ele": "$.children[?(@.name=='가오슝 놀이공원 가요')].text.font.colors[0]",
+ "type": "color",
+ "value": "261795",
+ "point": 10
+ },
+ "18": {
+ "ele": "none",
+ "point": 0
+ },
+ "19": {
+ "ele": "none",
+ "point": 0
+ },
+ "20": {
+ "ele": "none",
+ "point": 0
+ },
+ "21": {
+ "ele": "none",
+ "point": 0
+ },
+ "22": {
+ "ele": "$.children[?(@.name=='드롭존')]",
+ "type": "boolean",
+ "point": 10
+ },
+ "23": {
+ "ele": "none",
+ "point": 0
+ },
+ "24": {
+ "ele": "none",
+ "point": 0
+ },
+ "25": {
+ "ele": "none",
+ "point": 0
+ },
+ "26": {
+ "ele": "$[?(@.width == 65 && @.height == 35)]",
+ "type": "boolean",
+ "point": 10
+ }
+ },
+ "2": {
+ "1": {
+ "ele": "//CRClipArr/CRClip[position() = //CRTrackList[1]/CRTrackClip/@ClipIndex]/@Path",
+ "type": "array",
+ "value": [
+ "동영상.mp4",
+ "이미지1.jpg",
+ "이미지3.jpg",
+ "이미지2.jpg"
+ ],
+ "point": 4
+ },
+ "2": {
+ "ele": "/CROASTERP/CRTrackArr[1]/CRVideoTrackArr[1]/CRTrackList[1]/CRTrackClip[1][@Speed='150']",
+ "point": 2
+ },
+ "3": {
+ "ele": "count(//CRClip[@Path='동영상.mp4']/preceding-sibling::*)",
+ "type": "startend",
+ "start": "0",
+ "end": "230",
+ "point": 2
+ },
+ "4": {
+ "ele": "//CRTrackList[@Name='비디오1']/CRTrackClip[@ClipIndex=count(//CRClip[@Path='동영상.mp4']/preceding-sibling::*)]//CRFilter[@ID='43'][@VID100='5'][@VID103='0.89999998']",
+ "point": 3
+ },
+ "5": {
+ "ele": "//GPString[@VID7='재미있는 놀이공원']/@VID7",
+ "type": "subtitle",
+ "length": 1,
+ "point": 3
+ },
+ "6": {
+ "ele": "//CRCUnitArr[@Name='재미있는 놀이공원']//GCUnitPool[@Type='1']/GCUnit[@VID102='바탕체']",
+ "ele2": "//CROwneUnit[1]/CRCUnitArr//GCUnitPool[@Type='1']/GCUnit[@VID102='바탕체']",
+ "point": 2
+ },
+ "7": {
+ "ele": "//CRCUnitArr[@Name='재미있는 놀이공원']//GCUnitPool[@Type='1']/GCUnit[@VID101='130']",
+ "ele2": "//CROwneUnit[1]/CRCUnitArr//GCUnitPool[@Type='1']/GCUnit[@VID101='130']",
+ "point": 2
+ },
+ "8": {
+ "ele": "//CRCUnitArr[@Name='재미있는 놀이공원']//GCUnitPool/GCUnit[@Type='4'][@VID100='-6742488']",
+ "ele2": "//CROwneUnit[1]/CRCUnitArr//GCUnitPool/GCUnit[@Type='4'][@VID100='-6742488']",
+ "point": 2
+ },
+ "9": {
+ "ele": "//CRCUnitArr[@Name='재미있는 놀이공원']/@VID600 | //CRCUnitArr[@Name='재미있는 놀이공원']/@VID601",
+ "ele2": "//CROwneUnit[1]/CRCUnitArr/@VID600 | //CROwneUnit[1]/CRCUnitArr/@VID601",
+ "type": "multi",
+ "value": [
+ 0.291,
+ 0.914
+ ],
+ "point": 2
+ },
+ "10": {
+ "existEle": "//CRCUnitArr[@Name='재미있는 놀이공원']",
+ "ele": "sum(//CRTrackList[@Name='텍스트']/CRTrackClip[not(@ClipIndex=count(//CROwneUnit[.//CRCUnitArr[@Name='재미있는 놀이공원']]/preceding::CROwneUnit))]/@Length)",
+ "type": "searchIndex",
+ "value": 150,
+ "point": 2
+ },
+ "11": {
+ "ele": "//CRTrackList[@Name='텍스트']/CRTrackClip[(@ClipIndex=count(//CROwneUnit[.//CRCUnitArr[@Name='재미있는 놀이공원']]/preceding::CROwneUnit))][@Length='120']",
+ "ele2": "//CRTrackList[@Name='텍스트']/CRTrackClip[(@ClipIndex=count(//CROwneUnit[1]/CRCUnitArr/preceding::CROwneUnit))][@Length='120']",
+ "point": 2
+ },
+ "12": {
+ "existEle": "//CRClip[@Path='동영상.mp4']",
+ "ele": "//CRTrackList[@Name='비디오1']/CRTrackClip[@ClipIndex=count(//CRClip[@Path='동영상.mp4']/preceding-sibling::*)]/@Mute",
+ "type": "searchIndex",
+ "value": "1",
+ "point": 2
+ },
+ "13": {
+ "existEle": "//CRClip[@Path='이미지1.jpg']",
+ "ele": "//CRTrackList[@Name='비디오1']/CRTrackClip[@ClipIndex=count(//CRClip[@Path='이미지1.jpg']/preceding-sibling::*)]/@Length",
+ "type": "searchIndex",
+ "value": "150",
+ "point": 2
+ },
+ "14": {
+ "type": "multi",
+ "ele": "//CRTrackList[@Name='비디오1']/CRTrackClip[@ClipIndex=count(//CRClip[@Path='이미지1.jpg']/preceding-sibling::*)]//CRFilter/@ID |//CRTrackList[@Name='비디오1']/CRTrackClip[@ClipIndex=count(//CRClip[@Path='이미지1.jpg']/preceding-sibling::*)]//CRFilter/@VID100",
+ "value": [
+ "102",
+ "2"
+ ],
+ "point": 2
+ },
+ "15": {
+ "type": "multi",
+ "ele": "//CRTransFilter[@ClipIndex=count(//CRTrackList/CRTrackClip[@ClipIndex=count(//CRClip[@Path='이미지1.jpg']/preceding-sibling::*)]/preceding-sibling::CRTrackClip)]/@ID|//CRTransFilter[@ClipIndex=count(//CRTrackList/CRTrackClip[@ClipIndex=count(//CRClip[@Path='이미지1.jpg']/preceding-sibling::*)]/preceding-sibling::CRTrackClip)]/@Range|//CRTransFilter[@ClipIndex=count(//CRTrackList/CRTrackClip[@ClipIndex=count(//CRClip[@Path='이미지1.jpg']/preceding-sibling::*)]/preceding-sibling::CRTrackClip)]/@Type",
+ "value": [
+ "11",
+ "320:380",
+ "2"
+ ],
+ "point": 2
+ },
+ "16": {
+ "existEle": "//CRClip[@Path='이미지3.jpg']",
+ "ele": "//CRTrackList[@Name='비디오1']/CRTrackClip[@ClipIndex=count(//CRClip[@Path='이미지3.jpg']/preceding-sibling::*)]/@Length",
+ "type": "searchIndex",
+ "value": "180",
+ "point": 2
+ },
+ "17": {
+ "type": "multi",
+ "ele": "//CRTrackList[@Name='비디오1']/CRTrackClip[@ClipIndex=count(//CRClip[@Path='이미지3.jpg']/preceding-sibling::*)]//CRFilter/@ID |//CRTrackList[@Name='비디오1']/CRTrackClip[@ClipIndex=count(//CRClip[@Path='이미지3.jpg']/preceding-sibling::*)]//CRFilter/@VID101",
+ "value": [
+ "103",
+ "10"
+ ],
+ "point": 2
+ },
+ "18": {
+ "type": "multi",
+ "ele": "//CRTransFilter[@ClipIndex=count(//CRTrackList/CRTrackClip[@ClipIndex=count(//CRClip[@Path='이미지3.jpg']/preceding-sibling::*)]/preceding-sibling::CRTrackClip)]/@ID|//CRTransFilter[@ClipIndex=count(//CRTrackList/CRTrackClip[@ClipIndex=count(//CRClip[@Path='이미지3.jpg']/preceding-sibling::*)]/preceding-sibling::CRTrackClip)]/@Range|//CRTransFilter[@ClipIndex=count(//CRTrackList/CRTrackClip[@ClipIndex=count(//CRClip[@Path='이미지3.jpg']/preceding-sibling::*)]/preceding-sibling::CRTrackClip)]/@Type",
+ "value": [
+ "8",
+ "500:560",
+ "2"
+ ],
+ "point": 2
+ },
+ "19": {
+ "existEle": "//CRClip[@Path='이미지2.jpg']",
+ "ele": "//CRTrackList[@Name='비디오1']/CRTrackClip[@ClipIndex=count(//CRClip[@Path='이미지2.jpg']/preceding-sibling::*)]/@Length",
+ "type": "searchIndex",
+ "value": "180",
+ "point": 2
+ },
+ "20": {
+ "type": "multi",
+ "ele": "//CRTrackList[@Name='비디오1']/CRTrackClip[@ClipIndex=count(//CRClip[@Path='이미지2.jpg']/preceding-sibling::*)]//CRFilter/@ID |//CRTrackList[@Name='비디오1']/CRTrackClip[@ClipIndex=count(//CRClip[@Path='이미지2.jpg']/preceding-sibling::*)]//CRFilter/@VID100",
+ "value": [
+ "67",
+ "4"
+ ],
+ "point": 2
+ },
+ "21": {
+ "type": "multi",
+ "ele": "//CRTransFilter[@ClipIndex=count(//CRTrackList/CRTrackClip[@ClipIndex=count(//CRClip[@Path='이미지2.jpg']/preceding-sibling::*)]/preceding-sibling::CRTrackClip)]/@ID|//CRTransFilter[@ClipIndex=count(//CRTrackList/CRTrackClip[@ClipIndex=count(//CRClip[@Path='이미지2.jpg']/preceding-sibling::*)]/preceding-sibling::CRTrackClip)]/@Range|//CRTransFilter[@ClipIndex=count(//CRTrackList/CRTrackClip[@ClipIndex=count(//CRClip[@Path='이미지2.jpg']/preceding-sibling::*)]/preceding-sibling::CRTrackClip)]/@Type",
+ "value": [
+ "19",
+ "710:740",
+ "2"
+ ],
+ "point": 2
+ },
+ "22": {
+ "ele": "//GPString[@VID7='자동차 레이싱 코스' or @VID7='(A Car Racing Course)']/@VID7",
+ "type": "subtitle",
+ "length": 2,
+ "point": 3
+ },
+ "23": {
+ "ele": "//CRCUnitArr[@Name='자동차 레이싱 코스 (A Car Racing Course)']//GCUnitPool[@Type='1']/GCUnit[@VID102='돋움체']",
+ "ele2": "//CROwneUnit[2]/CRCUnitArr//GCUnitPool[@Type='1']/GCUnit[@VID102='돋움체']",
+ "point": 2
+ },
+ "24": {
+ "ele": "//CRCUnitArr[@Name='자동차 레이싱 코스 (A Car Racing Course)']//GCUnitPool[@Type='1']/GCUnit[@VID101='150']",
+ "ele2": "//CROwneUnit[2]/CRCUnitArr//GCUnitPool[@Type='1']/GCUnit[@VID101='150']",
+ "point": 2
+ },
+ "25": {
+ "ele": "//CRCUnitArr[@Name='자동차 레이싱 코스 (A Car Racing Course)']//GCUnitPool/GCUnit[@Type='4'][@VID100='-8036654']",
+ "ele2": "//CROwneUnit[2]/CRCUnitArr//GCUnitPool/GCUnit[@Type='4'][@VID100='-8036654']",
+ "point": 2
+ },
+ "26": {
+ "ele": "//CRCUnitArr[@Name='자동차 레이싱 코스 (A Car Racing Course)']//GCUnitPool/GCUnit[@Type='2'][@VID100='0.30000001'][@VID101='-16777216']",
+ "ele2": "//CROwneUnit[2]/CRCUnitArr//GCUnitPool/GCUnit[@Type='2'][@VID100='0.30000001'][@VID101='-16777216']",
+ "point": 2
+ },
+ "27": {
+ "ele": "//CRCUnitArr[@Name='자동차 레이싱 코스 (A Car Racing Course)'][@VID505='1'][@VID507='2']",
+ "ele2": "//CROwneUnit[2]/CRCUnitArr[@VID505='1'][@VID507='2']",
+ "point": 3
+ },
+ "28": {
+ "ele": "//CRTrackList[@Name='텍스트']/CRTrackClip[@ClipIndex=count(//CROwneUnit[.//CRCUnitArr[@Name='자동차 레이싱 코스 (A Car Racing Course)']]/preceding::CROwneUnit)][@Pos='0']",
+ "ele2": "//CRTrackList[@Name='텍스트']/CRTrackClip[@ClipIndex=count(//CROwneUnit[2]/CRCUnitArr/preceding::CROwneUnit)][@Pos='0']",
+ "point": 2
+ },
+ "29": {
+ "ele": "//CRTrackList[@Name='텍스트']/CRTrackClip[(@ClipIndex=count(//CROwneUnit[.//CRCUnitArr[@Name='자동차 레이싱 코스 (A Car Racing Course)']]/preceding::CROwneUnit))][@Length='120']",
+ "ele2": "//CRTrackList[@Name='텍스트']/CRTrackClip[@ClipIndex=count(//CROwneUnit[2]/CRCUnitArr/preceding::CROwneUnit)][@Length='120']",
+ "point": 2
+ },
+ "30": {
+ "ele": "//CRTrackArr/CRAudioTrackArr/CRTrackList[@Name='오디오1']/CRTrackClip[@Pos='0']",
+ "point": 2
+ },
+ "31": {
+ "ele": "//CRTrackArr/CRAudioTrackArr/CRTrackList[@Name='오디오1']/CRTrackClip[@Length='720']",
+ "point": 2
+ },
+ "32": {
+ "ele": "//CRTrackArr/CRAudioTrackArr/CRTrackList[@Name='오디오1']//CRFilter[@Type='2'][@ID='1'][@VID8='90']",
+ "point": 2
+ }
+ }
+}
\ No newline at end of file
diff --git a/output.xlsx b/제2501회 정기 DIC C형_250204.xlsx
similarity index 96%
rename from output.xlsx
rename to 제2501회 정기 DIC C형_250204.xlsx
index a2076ea..86c1580 100644
Binary files a/output.xlsx and b/제2501회 정기 DIC C형_250204.xlsx differ