@jutge.org/toolkit 4.2.15 → 4.2.16
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.js +3 -3
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -446,7 +446,7 @@ jtk-*
|
|
|
446
446
|
a.out
|
|
447
447
|
__pycache__/
|
|
448
448
|
|
|
449
|
-
`)}var Gl1=r1.object({handler:r1.enum(["std","graphic","quiz","circuits","game"]).default("std"),solution:r1.string().default("C++"),source_modifier:r1.enum(["none","no_main","structs"]).default("none"),compilers:r1.string().optional(),game:r1.object({hide:r1.array(r1.string()).default([])}).optional()}),Tl1=r1.array(r1.object({part:r1.string(),prefix:r1.string(),points:r1.number().min(0)})),Vl1=r1.object({title:r1.string(),description:r1.string(),author:r1.string().default("Unknown"),email:r1.string().default("unknown"),golden_proglang:r1.string(),more_proglangs:r1.array(r1.string()),original_language:r1.string(),more_languages:r1.array(r1.string()),generators:r1.array(r1.string())}),Kx=r1.object({problem_nm:r1.string().default(""),email:r1.string().default(""),passcode:r1.string().default(""),created_at:r1.string().default(""),updated_at:r1.string().default("")}),DJ=r1.object({name:r1.string().min(1).default("John Doe"),email:r1.string().email().default("john.doe@example.com"),defaultModel:r1.string().default("google/gemini-2.5-flash-lite"),notifications:r1.boolean().default(!1),showPrompts:r1.boolean().default(!1),showAnswers:r1.boolean().default(!1),developer:r1.boolean().default(!1)}),tZ3=r1.object({title:r1.string().nonempty(),file:r1.string().nonempty(),score:r1.int().min(0)}),El=r1.object({title:r1.string().nonempty(),statement:r1.string(),shuffle:r1.boolean().default(!1),questions:r1.array(tZ3)}),sZ3=r1.object({type:r1.literal("FillIn"),text:r1.string(),context:r1.string(),items:r1.record(r1.string().nonempty(),r1.object({maxlength:r1.int(),placeholder:r1.string().optional(),correct:r1.union([r1.string(),r1.number()]),ignorecase:r1.boolean().default(!1),trim:r1.boolean().default(!0)}))}),eZ3=r1.object({type:r1.literal("Ordering"),text:r1.string(),label:r1.string().nonempty(),items:r1.array(r1.string().nonempty()),nota:r1.string().optional()}),fw3=r1.object({type:r1.literal("Matching"),text:r1.string(),labels:r1.array(r1.string().nonempty()),left:r1.array(r1.string().nonempty()),right:r1.array(r1.string().nonempty())}),$w3=r1.object({type:r1.literal("SingleChoice"),text:r1.string(),choices:r1.array(r1.object({text:r1.string(),correct:r1.boolean().optional().default(!1),hint:r1.string().optional()}))}),Zw3=r1.object({type:r1.literal("MultipleChoice"),text:r1.string(),choices:r1.array(r1.object({text:r1.string(),correct:r1.boolean().optional().default(!1),hint:r1.string().optional()}))}),ww3=r1.object({type:r1.literal("OpenQuestion"),text:r1.string(),placeholder:r1.string().default("")}),s71=r1.discriminatedUnion("type",[sZ3,eZ3,fw3,$w3,Zw3,ww3]);var dG=Y61("jutge",{suffix:"toolkit"});function ll(){return vw3(dG.config,"config.yml")}async function _w3(){await jl(dG.config,{recursive:!0}),await jl(dG.data,{recursive:!0}),await jl(dG.cache,{recursive:!0}),await jl(dG.log,{recursive:!0}),await jl(dG.temp,{recursive:!0})}async function Il(f){return await _w3(),f=DJ.parse(f),await hJ(ll(),f)}async function e71(){let f=await J_(ll());return DJ.parse(f)}async function Kw3(){if(!await Hw3()){let f=DJ.parse({});return f.name=await Dl1()||"John Doe",f.email=await Ol1()||"john.doe@example.com",await Il(f),f}else return await e71()}async function Hw3(){return await qw3(ll())}var j5=await Kw3();var F91=f4(MR1(),1);import{execSync as UA3}from"child_process";import{join as aA3}from"path";var $_3=Z$([R2(),K_({url:_3(R2()),email:_3(R2())})]),Z_3=Z$([R2(),K_({url:R2(),type:_3(R2())}),f8(Z$([R2(),K_({url:R2(),type:_3(R2())})]))]),D81=Z$([R2(),K_({name:R2(),email:_3(R2()),url:_3(R2())})]),w_3=Z$([R2(),K_({type:R2(),url:R2(),directory:_3(R2())})]),WR1=K_({name:R2(),version:_3(R2()),onFail:_3(mj(["ignore","warn","error"]))}),kl=Z$([WR1,f8(WR1)]),q_3=K_({cpu:_3(kl),os:_3(kl),libc:_3(kl),runtime:_3(kl),packageManager:_3(kl)}),O81=ey({name:R2(),version:R2(),description:_3(R2()),keywords:_3(f8(R2())),homepage:_3(R2()),bugs:_3($_3),license:_3(R2()),author:_3(D81),contributors:_3(f8(D81)),maintainers:_3(f8(D81)),funding:_3(Z_3),files:_3(f8(R2())),exports:_3(Z$([Sj(),R2(),f8(R2()),$8(R2(),sw())])),type:_3(mj(["module","commonjs"])),main:_3(R2()),browser:_3(Z$([R2(),$8(R2(),Z$([R2(),bK()]))])),bin:_3(Z$([R2(),$8(R2(),R2())])),man:_3(Z$([R2(),f8(R2())])),directories:_3($8(R2(),R2())),repository:_3(w_3),scripts:_3($8(R2(),R2())),config:_3($8(R2(),sw())),dependencies:_3($8(R2(),R2())),devDependencies:_3($8(R2(),R2())),peerDependencies:_3($8(R2(),R2())),peerDependenciesMeta:_3($8(R2(),K_({optional:bK()}))),bundleDependencies:_3(Z$([bK(),f8(R2())])),bundledDependencies:_3(Z$([bK(),f8(R2())])),optionalDependencies:_3($8(R2(),R2())),overrides:_3($8(R2(),sw())),engines:_3($8(R2(),R2())),os:_3(f8(R2())),cpu:_3(f8(R2())),libc:_3(R2()),devEngines:_3(q_3),private:_3(bK()),publishConfig:_3($8(R2(),sw())),workspaces:_3(f8(R2())),deprecated:_3(R2()),module:_3(R2()),types:_3(R2()),typings:_3(R2()),typesVersions:_3($8(R2(),$8(R2(),f8(R2())))),packageManager:_3(R2()),sideEffects:_3(Z$([bK(),f8(R2())])),imports:_3($8(R2(),sw()))});var WB=f4(cx1(),1);import vB from"process";function C91({onlyFirst:f=!1}={}){return new RegExp("(?:\\u001B\\][\\s\\S]*?(?:\\u0007|\\u001B\\u005C|\\u009C))|[\\u001B\\u009B][[\\]()#;?]*(?:\\d{1,4}(?:[;:]\\d{0,4})*)?[\\dA-PR-TZcf-nq-uy=><~]",f?void 0:"g")}var iO3=C91();function QY(f){if(typeof f!=="string")throw TypeError(`Expected a \`string\`, got \`${typeof f}\``);return f.replace(iO3,"")}function Lx1(f){return f===161||f===164||f===167||f===168||f===170||f===173||f===174||f>=176&&f<=180||f>=182&&f<=186||f>=188&&f<=191||f===198||f===208||f===215||f===216||f>=222&&f<=225||f===230||f>=232&&f<=234||f===236||f===237||f===240||f===242||f===243||f>=247&&f<=250||f===252||f===254||f===257||f===273||f===275||f===283||f===294||f===295||f===299||f>=305&&f<=307||f===312||f>=319&&f<=322||f===324||f>=328&&f<=331||f===333||f===338||f===339||f===358||f===359||f===363||f===462||f===464||f===466||f===468||f===470||f===472||f===474||f===476||f===593||f===609||f===708||f===711||f>=713&&f<=715||f===717||f===720||f>=728&&f<=731||f===733||f===735||f>=768&&f<=879||f>=913&&f<=929||f>=931&&f<=937||f>=945&&f<=961||f>=963&&f<=969||f===1025||f>=1040&&f<=1103||f===1105||f===8208||f>=8211&&f<=8214||f===8216||f===8217||f===8220||f===8221||f>=8224&&f<=8226||f>=8228&&f<=8231||f===8240||f===8242||f===8243||f===8245||f===8251||f===8254||f===8308||f===8319||f>=8321&&f<=8324||f===8364||f===8451||f===8453||f===8457||f===8467||f===8470||f===8481||f===8482||f===8486||f===8491||f===8531||f===8532||f>=8539&&f<=8542||f>=8544&&f<=8555||f>=8560&&f<=8569||f===8585||f>=8592&&f<=8601||f===8632||f===8633||f===8658||f===8660||f===8679||f===8704||f===8706||f===8707||f===8711||f===8712||f===8715||f===8719||f===8721||f===8725||f===8730||f>=8733&&f<=8736||f===8739||f===8741||f>=8743&&f<=8748||f===8750||f>=8756&&f<=8759||f===8764||f===8765||f===8776||f===8780||f===8786||f===8800||f===8801||f>=8804&&f<=8807||f===8810||f===8811||f===8814||f===8815||f===8834||f===8835||f===8838||f===8839||f===8853||f===8857||f===8869||f===8895||f===8978||f>=9312&&f<=9449||f>=9451&&f<=9547||f>=9552&&f<=9587||f>=9600&&f<=9615||f>=9618&&f<=9621||f===9632||f===9633||f>=9635&&f<=9641||f===9650||f===9651||f===9654||f===9655||f===9660||f===9661||f===9664||f===9665||f>=9670&&f<=9672||f===9675||f>=9678&&f<=9681||f>=9698&&f<=9701||f===9711||f===9733||f===9734||f===9737||f===9742||f===9743||f===9756||f===9758||f===9792||f===9794||f===9824||f===9825||f>=9827&&f<=9829||f>=9831&&f<=9834||f===9836||f===9837||f===9839||f===9886||f===9887||f===9919||f>=9926&&f<=9933||f>=9935&&f<=9939||f>=9941&&f<=9953||f===9955||f===9960||f===9961||f>=9963&&f<=9969||f===9972||f>=9974&&f<=9977||f===9979||f===9980||f===9982||f===9983||f===10045||f>=10102&&f<=10111||f>=11094&&f<=11097||f>=12872&&f<=12879||f>=57344&&f<=63743||f>=65024&&f<=65039||f===65533||f>=127232&&f<=127242||f>=127248&&f<=127277||f>=127280&&f<=127337||f>=127344&&f<=127373||f===127375||f===127376||f>=127387&&f<=127404||f>=917760&&f<=917999||f>=983040&&f<=1048573||f>=1048576&&f<=1114109}function gx1(f){return f===12288||f>=65281&&f<=65376||f>=65504&&f<=65510}function Sx1(f){return f>=4352&&f<=4447||f===8986||f===8987||f===9001||f===9002||f>=9193&&f<=9196||f===9200||f===9203||f===9725||f===9726||f===9748||f===9749||f>=9776&&f<=9783||f>=9800&&f<=9811||f===9855||f>=9866&&f<=9871||f===9875||f===9889||f===9898||f===9899||f===9917||f===9918||f===9924||f===9925||f===9934||f===9940||f===9962||f===9970||f===9971||f===9973||f===9978||f===9981||f===9989||f===9994||f===9995||f===10024||f===10060||f===10062||f>=10067&&f<=10069||f===10071||f>=10133&&f<=10135||f===10160||f===10175||f===11035||f===11036||f===11088||f===11093||f>=11904&&f<=11929||f>=11931&&f<=12019||f>=12032&&f<=12245||f>=12272&&f<=12287||f>=12289&&f<=12350||f>=12353&&f<=12438||f>=12441&&f<=12543||f>=12549&&f<=12591||f>=12593&&f<=12686||f>=12688&&f<=12773||f>=12783&&f<=12830||f>=12832&&f<=12871||f>=12880&&f<=42124||f>=42128&&f<=42182||f>=43360&&f<=43388||f>=44032&&f<=55203||f>=63744&&f<=64255||f>=65040&&f<=65049||f>=65072&&f<=65106||f>=65108&&f<=65126||f>=65128&&f<=65131||f>=94176&&f<=94180||f>=94192&&f<=94198||f>=94208&&f<=101589||f>=101631&&f<=101662||f>=101760&&f<=101874||f>=110576&&f<=110579||f>=110581&&f<=110587||f===110589||f===110590||f>=110592&&f<=110882||f===110898||f>=110928&&f<=110930||f===110933||f>=110948&&f<=110951||f>=110960&&f<=111355||f>=119552&&f<=119638||f>=119648&&f<=119670||f===126980||f===127183||f===127374||f>=127377&&f<=127386||f>=127488&&f<=127490||f>=127504&&f<=127547||f>=127552&&f<=127560||f===127568||f===127569||f>=127584&&f<=127589||f>=127744&&f<=127776||f>=127789&&f<=127797||f>=127799&&f<=127868||f>=127870&&f<=127891||f>=127904&&f<=127946||f>=127951&&f<=127955||f>=127968&&f<=127984||f===127988||f>=127992&&f<=128062||f===128064||f>=128066&&f<=128252||f>=128255&&f<=128317||f>=128331&&f<=128334||f>=128336&&f<=128359||f===128378||f===128405||f===128406||f===128420||f>=128507&&f<=128591||f>=128640&&f<=128709||f===128716||f>=128720&&f<=128722||f>=128725&&f<=128728||f>=128732&&f<=128735||f===128747||f===128748||f>=128756&&f<=128764||f>=128992&&f<=129003||f===129008||f>=129292&&f<=129338||f>=129340&&f<=129349||f>=129351&&f<=129535||f>=129648&&f<=129660||f>=129664&&f<=129674||f>=129678&&f<=129734||f===129736||f>=129741&&f<=129756||f>=129759&&f<=129770||f>=129775&&f<=129784||f>=131072&&f<=196605||f>=196608&&f<=262141}function QO3(f){if(!Number.isSafeInteger(f))throw TypeError(`Expected a code point, got \`${typeof f}\`.`)}function $I(f,{ambiguousAsWide:$=!1}={}){if(QO3(f),gx1(f)||Sx1(f)||$&&Lx1(f))return 2;return 1}var bx1=()=>{return/[#*0-9]\uFE0F?\u20E3|[\xA9\xAE\u203C\u2049\u2122\u2139\u2194-\u2199\u21A9\u21AA\u231A\u231B\u2328\u23CF\u23ED-\u23EF\u23F1\u23F2\u23F8-\u23FA\u24C2\u25AA\u25AB\u25B6\u25C0\u25FB\u25FC\u25FE\u2600-\u2604\u260E\u2611\u2614\u2615\u2618\u2620\u2622\u2623\u2626\u262A\u262E\u262F\u2638-\u263A\u2640\u2642\u2648-\u2653\u265F\u2660\u2663\u2665\u2666\u2668\u267B\u267E\u267F\u2692\u2694-\u2697\u2699\u269B\u269C\u26A0\u26A7\u26AA\u26B0\u26B1\u26BD\u26BE\u26C4\u26C8\u26CF\u26D1\u26E9\u26F0-\u26F5\u26F7\u26F8\u26FA\u2702\u2708\u2709\u270F\u2712\u2714\u2716\u271D\u2721\u2733\u2734\u2744\u2747\u2757\u2763\u27A1\u2934\u2935\u2B05-\u2B07\u2B1B\u2B1C\u2B55\u3030\u303D\u3297\u3299]\uFE0F?|[\u261D\u270C\u270D](?:\uD83C[\uDFFB-\uDFFF]|\uFE0F)?|[\u270A\u270B](?:\uD83C[\uDFFB-\uDFFF])?|[\u23E9-\u23EC\u23F0\u23F3\u25FD\u2693\u26A1\u26AB\u26C5\u26CE\u26D4\u26EA\u26FD\u2705\u2728\u274C\u274E\u2753-\u2755\u2795-\u2797\u27B0\u27BF\u2B50]|\u26D3\uFE0F?(?:\u200D\uD83D\uDCA5)?|\u26F9(?:\uD83C[\uDFFB-\uDFFF]|\uFE0F)?(?:\u200D[\u2640\u2642]\uFE0F?)?|\u2764\uFE0F?(?:\u200D(?:\uD83D\uDD25|\uD83E\uDE79))?|\uD83C(?:[\uDC04\uDD70\uDD71\uDD7E\uDD7F\uDE02\uDE37\uDF21\uDF24-\uDF2C\uDF36\uDF7D\uDF96\uDF97\uDF99-\uDF9B\uDF9E\uDF9F\uDFCD\uDFCE\uDFD4-\uDFDF\uDFF5\uDFF7]\uFE0F?|[\uDF85\uDFC2\uDFC7](?:\uD83C[\uDFFB-\uDFFF])?|[\uDFC4\uDFCA](?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D[\u2640\u2642]\uFE0F?)?|[\uDFCB\uDFCC](?:\uD83C[\uDFFB-\uDFFF]|\uFE0F)?(?:\u200D[\u2640\u2642]\uFE0F?)?|[\uDCCF\uDD8E\uDD91-\uDD9A\uDE01\uDE1A\uDE2F\uDE32-\uDE36\uDE38-\uDE3A\uDE50\uDE51\uDF00-\uDF20\uDF2D-\uDF35\uDF37-\uDF43\uDF45-\uDF4A\uDF4C-\uDF7C\uDF7E-\uDF84\uDF86-\uDF93\uDFA0-\uDFC1\uDFC5\uDFC6\uDFC8\uDFC9\uDFCF-\uDFD3\uDFE0-\uDFF0\uDFF8-\uDFFF]|\uDDE6\uD83C[\uDDE8-\uDDEC\uDDEE\uDDF1\uDDF2\uDDF4\uDDF6-\uDDFA\uDDFC\uDDFD\uDDFF]|\uDDE7\uD83C[\uDDE6\uDDE7\uDDE9-\uDDEF\uDDF1-\uDDF4\uDDF6-\uDDF9\uDDFB\uDDFC\uDDFE\uDDFF]|\uDDE8\uD83C[\uDDE6\uDDE8\uDDE9\uDDEB-\uDDEE\uDDF0-\uDDF7\uDDFA-\uDDFF]|\uDDE9\uD83C[\uDDEA\uDDEC\uDDEF\uDDF0\uDDF2\uDDF4\uDDFF]|\uDDEA\uD83C[\uDDE6\uDDE8\uDDEA\uDDEC\uDDED\uDDF7-\uDDFA]|\uDDEB\uD83C[\uDDEE-\uDDF0\uDDF2\uDDF4\uDDF7]|\uDDEC\uD83C[\uDDE6\uDDE7\uDDE9-\uDDEE\uDDF1-\uDDF3\uDDF5-\uDDFA\uDDFC\uDDFE]|\uDDED\uD83C[\uDDF0\uDDF2\uDDF3\uDDF7\uDDF9\uDDFA]|\uDDEE\uD83C[\uDDE8-\uDDEA\uDDF1-\uDDF4\uDDF6-\uDDF9]|\uDDEF\uD83C[\uDDEA\uDDF2\uDDF4\uDDF5]|\uDDF0\uD83C[\uDDEA\uDDEC-\uDDEE\uDDF2\uDDF3\uDDF5\uDDF7\uDDFC\uDDFE\uDDFF]|\uDDF1\uD83C[\uDDE6-\uDDE8\uDDEE\uDDF0\uDDF7-\uDDFB\uDDFE]|\uDDF2\uD83C[\uDDE6\uDDE8-\uDDED\uDDF0-\uDDFF]|\uDDF3\uD83C[\uDDE6\uDDE8\uDDEA-\uDDEC\uDDEE\uDDF1\uDDF4\uDDF5\uDDF7\uDDFA\uDDFF]|\uDDF4\uD83C\uDDF2|\uDDF5\uD83C[\uDDE6\uDDEA-\uDDED\uDDF0-\uDDF3\uDDF7-\uDDF9\uDDFC\uDDFE]|\uDDF6\uD83C\uDDE6|\uDDF7\uD83C[\uDDEA\uDDF4\uDDF8\uDDFA\uDDFC]|\uDDF8\uD83C[\uDDE6-\uDDEA\uDDEC-\uDDF4\uDDF7-\uDDF9\uDDFB\uDDFD-\uDDFF]|\uDDF9\uD83C[\uDDE6\uDDE8\uDDE9\uDDEB-\uDDED\uDDEF-\uDDF4\uDDF7\uDDF9\uDDFB\uDDFC\uDDFF]|\uDDFA\uD83C[\uDDE6\uDDEC\uDDF2\uDDF3\uDDF8\uDDFE\uDDFF]|\uDDFB\uD83C[\uDDE6\uDDE8\uDDEA\uDDEC\uDDEE\uDDF3\uDDFA]|\uDDFC\uD83C[\uDDEB\uDDF8]|\uDDFD\uD83C\uDDF0|\uDDFE\uD83C[\uDDEA\uDDF9]|\uDDFF\uD83C[\uDDE6\uDDF2\uDDFC]|\uDF44(?:\u200D\uD83D\uDFEB)?|\uDF4B(?:\u200D\uD83D\uDFE9)?|\uDFC3(?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D(?:[\u2640\u2642]\uFE0F?(?:\u200D\u27A1\uFE0F?)?|\u27A1\uFE0F?))?|\uDFF3\uFE0F?(?:\u200D(?:\u26A7\uFE0F?|\uD83C\uDF08))?|\uDFF4(?:\u200D\u2620\uFE0F?|\uDB40\uDC67\uDB40\uDC62\uDB40(?:\uDC65\uDB40\uDC6E\uDB40\uDC67|\uDC73\uDB40\uDC63\uDB40\uDC74|\uDC77\uDB40\uDC6C\uDB40\uDC73)\uDB40\uDC7F)?)|\uD83D(?:[\uDC3F\uDCFD\uDD49\uDD4A\uDD6F\uDD70\uDD73\uDD76-\uDD79\uDD87\uDD8A-\uDD8D\uDDA5\uDDA8\uDDB1\uDDB2\uDDBC\uDDC2-\uDDC4\uDDD1-\uDDD3\uDDDC-\uDDDE\uDDE1\uDDE3\uDDE8\uDDEF\uDDF3\uDDFA\uDECB\uDECD-\uDECF\uDEE0-\uDEE5\uDEE9\uDEF0\uDEF3]\uFE0F?|[\uDC42\uDC43\uDC46-\uDC50\uDC66\uDC67\uDC6B-\uDC6D\uDC72\uDC74-\uDC76\uDC78\uDC7C\uDC83\uDC85\uDC8F\uDC91\uDCAA\uDD7A\uDD95\uDD96\uDE4C\uDE4F\uDEC0\uDECC](?:\uD83C[\uDFFB-\uDFFF])?|[\uDC6E-\uDC71\uDC73\uDC77\uDC81\uDC82\uDC86\uDC87\uDE45-\uDE47\uDE4B\uDE4D\uDE4E\uDEA3\uDEB4\uDEB5](?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D[\u2640\u2642]\uFE0F?)?|[\uDD74\uDD90](?:\uD83C[\uDFFB-\uDFFF]|\uFE0F)?|[\uDC00-\uDC07\uDC09-\uDC14\uDC16-\uDC25\uDC27-\uDC3A\uDC3C-\uDC3E\uDC40\uDC44\uDC45\uDC51-\uDC65\uDC6A\uDC79-\uDC7B\uDC7D-\uDC80\uDC84\uDC88-\uDC8E\uDC90\uDC92-\uDCA9\uDCAB-\uDCFC\uDCFF-\uDD3D\uDD4B-\uDD4E\uDD50-\uDD67\uDDA4\uDDFB-\uDE2D\uDE2F-\uDE34\uDE37-\uDE41\uDE43\uDE44\uDE48-\uDE4A\uDE80-\uDEA2\uDEA4-\uDEB3\uDEB7-\uDEBF\uDEC1-\uDEC5\uDED0-\uDED2\uDED5-\uDED8\uDEDC-\uDEDF\uDEEB\uDEEC\uDEF4-\uDEFC\uDFE0-\uDFEB\uDFF0]|\uDC08(?:\u200D\u2B1B)?|\uDC15(?:\u200D\uD83E\uDDBA)?|\uDC26(?:\u200D(?:\u2B1B|\uD83D\uDD25))?|\uDC3B(?:\u200D\u2744\uFE0F?)?|\uDC41\uFE0F?(?:\u200D\uD83D\uDDE8\uFE0F?)?|\uDC68(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDC68\uDC69]\u200D\uD83D(?:\uDC66(?:\u200D\uD83D\uDC66)?|\uDC67(?:\u200D\uD83D[\uDC66\uDC67])?)|[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC66(?:\u200D\uD83D\uDC66)?|\uDC67(?:\u200D\uD83D[\uDC66\uDC67])?)|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]))|\uD83C(?:\uDFFB(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83D\uDC68\uD83C[\uDFFC-\uDFFF])|\uD83E(?:[\uDD1D\uDEEF]\u200D\uD83D\uDC68\uD83C[\uDFFC-\uDFFF]|[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3])))?|\uDFFC(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83D\uDC68\uD83C[\uDFFB\uDFFD-\uDFFF])|\uD83E(?:[\uDD1D\uDEEF]\u200D\uD83D\uDC68\uD83C[\uDFFB\uDFFD-\uDFFF]|[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3])))?|\uDFFD(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83D\uDC68\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])|\uD83E(?:[\uDD1D\uDEEF]\u200D\uD83D\uDC68\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF]|[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3])))?|\uDFFE(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83D\uDC68\uD83C[\uDFFB-\uDFFD\uDFFF])|\uD83E(?:[\uDD1D\uDEEF]\u200D\uD83D\uDC68\uD83C[\uDFFB-\uDFFD\uDFFF]|[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3])))?|\uDFFF(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83D\uDC68\uD83C[\uDFFB-\uDFFE])|\uD83E(?:[\uDD1D\uDEEF]\u200D\uD83D\uDC68\uD83C[\uDFFB-\uDFFE]|[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3])))?))?|\uDC69(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?[\uDC68\uDC69]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC66(?:\u200D\uD83D\uDC66)?|\uDC67(?:\u200D\uD83D[\uDC66\uDC67])?|\uDC69\u200D\uD83D(?:\uDC66(?:\u200D\uD83D\uDC66)?|\uDC67(?:\u200D\uD83D[\uDC66\uDC67])?))|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]))|\uD83C(?:\uDFFB(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:[\uDC68\uDC69]|\uDC8B\u200D\uD83D[\uDC68\uDC69])\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83D\uDC69\uD83C[\uDFFC-\uDFFF])|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D[\uDC68\uDC69]\uD83C[\uDFFC-\uDFFF]|\uDEEF\u200D\uD83D\uDC69\uD83C[\uDFFC-\uDFFF])))?|\uDFFC(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:[\uDC68\uDC69]|\uDC8B\u200D\uD83D[\uDC68\uDC69])\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83D\uDC69\uD83C[\uDFFB\uDFFD-\uDFFF])|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D[\uDC68\uDC69]\uD83C[\uDFFB\uDFFD-\uDFFF]|\uDEEF\u200D\uD83D\uDC69\uD83C[\uDFFB\uDFFD-\uDFFF])))?|\uDFFD(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:[\uDC68\uDC69]|\uDC8B\u200D\uD83D[\uDC68\uDC69])\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83D\uDC69\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D[\uDC68\uDC69]\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF]|\uDEEF\u200D\uD83D\uDC69\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])))?|\uDFFE(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:[\uDC68\uDC69]|\uDC8B\u200D\uD83D[\uDC68\uDC69])\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83D\uDC69\uD83C[\uDFFB-\uDFFD\uDFFF])|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D[\uDC68\uDC69]\uD83C[\uDFFB-\uDFFD\uDFFF]|\uDEEF\u200D\uD83D\uDC69\uD83C[\uDFFB-\uDFFD\uDFFF])))?|\uDFFF(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:[\uDC68\uDC69]|\uDC8B\u200D\uD83D[\uDC68\uDC69])\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83D\uDC69\uD83C[\uDFFB-\uDFFE])|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D[\uDC68\uDC69]\uD83C[\uDFFB-\uDFFE]|\uDEEF\u200D\uD83D\uDC69\uD83C[\uDFFB-\uDFFE])))?))?|\uDD75(?:\uD83C[\uDFFB-\uDFFF]|\uFE0F)?(?:\u200D[\u2640\u2642]\uFE0F?)?|\uDE2E(?:\u200D\uD83D\uDCA8)?|\uDE35(?:\u200D\uD83D\uDCAB)?|\uDE36(?:\u200D\uD83C\uDF2B\uFE0F?)?|\uDE42(?:\u200D[\u2194\u2195]\uFE0F?)?|\uDEB6(?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D(?:[\u2640\u2642]\uFE0F?(?:\u200D\u27A1\uFE0F?)?|\u27A1\uFE0F?))?)|\uD83E(?:[\uDD0C\uDD0F\uDD18-\uDD1F\uDD30-\uDD34\uDD36\uDD77\uDDB5\uDDB6\uDDBB\uDDD2\uDDD3\uDDD5\uDEC3-\uDEC5\uDEF0\uDEF2-\uDEF8](?:\uD83C[\uDFFB-\uDFFF])?|[\uDD26\uDD35\uDD37-\uDD39\uDD3C-\uDD3E\uDDB8\uDDB9\uDDCD\uDDCF\uDDD4\uDDD6-\uDDDD](?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D[\u2640\u2642]\uFE0F?)?|[\uDDDE\uDDDF](?:\u200D[\u2640\u2642]\uFE0F?)?|[\uDD0D\uDD0E\uDD10-\uDD17\uDD20-\uDD25\uDD27-\uDD2F\uDD3A\uDD3F-\uDD45\uDD47-\uDD76\uDD78-\uDDB4\uDDB7\uDDBA\uDDBC-\uDDCC\uDDD0\uDDE0-\uDDFF\uDE70-\uDE7C\uDE80-\uDE8A\uDE8E-\uDEC2\uDEC6\uDEC8\uDECD-\uDEDC\uDEDF-\uDEEA\uDEEF]|\uDDCE(?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D(?:[\u2640\u2642]\uFE0F?(?:\u200D\u27A1\uFE0F?)?|\u27A1\uFE0F?))?|\uDDD1(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3\uDE70]|\uDD1D\u200D\uD83E\uDDD1|\uDDD1\u200D\uD83E\uDDD2(?:\u200D\uD83E\uDDD2)?|\uDDD2(?:\u200D\uD83E\uDDD2)?))|\uD83C(?:\uDFFB(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1\uD83C[\uDFFC-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83E\uDDD1\uD83C[\uDFFC-\uDFFF])|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3\uDE70]|\uDD1D\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFF]|\uDEEF\u200D\uD83E\uDDD1\uD83C[\uDFFC-\uDFFF])))?|\uDFFC(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1\uD83C[\uDFFB\uDFFD-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83E\uDDD1\uD83C[\uDFFB\uDFFD-\uDFFF])|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3\uDE70]|\uDD1D\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFF]|\uDEEF\u200D\uD83E\uDDD1\uD83C[\uDFFB\uDFFD-\uDFFF])))?|\uDFFD(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83E\uDDD1\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3\uDE70]|\uDD1D\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFF]|\uDEEF\u200D\uD83E\uDDD1\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])))?|\uDFFE(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1\uD83C[\uDFFB-\uDFFD\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFD\uDFFF])|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3\uDE70]|\uDD1D\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFF]|\uDEEF\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFD\uDFFF])))?|\uDFFF(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1\uD83C[\uDFFB-\uDFFE]|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFE])|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3\uDE70]|\uDD1D\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFF]|\uDEEF\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFE])))?))?|\uDEF1(?:\uD83C(?:\uDFFB(?:\u200D\uD83E\uDEF2\uD83C[\uDFFC-\uDFFF])?|\uDFFC(?:\u200D\uD83E\uDEF2\uD83C[\uDFFB\uDFFD-\uDFFF])?|\uDFFD(?:\u200D\uD83E\uDEF2\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])?|\uDFFE(?:\u200D\uD83E\uDEF2\uD83C[\uDFFB-\uDFFD\uDFFF])?|\uDFFF(?:\u200D\uD83E\uDEF2\uD83C[\uDFFB-\uDFFE])?))?)/g};var nO3=new Intl.Segmenter,pO3=/^\p{Default_Ignorable_Code_Point}$/u;function FZ(f,$={}){if(typeof f!=="string"||f.length===0)return 0;let{ambiguousIsNarrow:Z=!0,countAnsiEscapeCodes:w=!1}=$;if(!w)f=QY(f);if(f.length===0)return 0;let q=0,v={ambiguousAsWide:!Z};for(let{segment:K}of nO3.segment(f)){let H=K.codePointAt(0);if(H<=31||H>=127&&H<=159)continue;if(H>=8203&&H<=8207||H===65279)continue;if(H>=768&&H<=879||H>=6832&&H<=6911||H>=7616&&H<=7679||H>=8400&&H<=8447||H>=65056&&H<=65071)continue;if(H>=55296&&H<=57343)continue;if(H>=65024&&H<=65039)continue;if(pO3.test(K))continue;if(bx1().test(K)){q+=2;continue}q+=$I(H,v)}return q}var ux1=(f=0)=>($)=>`\x1B[${$+f}m`,yx1=(f=0)=>($)=>`\x1B[${38+f};5;${$}m`,kx1=(f=0)=>($,Z,w)=>`\x1B[${38+f};2;${$};${Z};${w}m`,Y7={modifier:{reset:[0,0],bold:[1,22],dim:[2,22],italic:[3,23],underline:[4,24],overline:[53,55],inverse:[7,27],hidden:[8,28],strikethrough:[9,29]},color:{black:[30,39],red:[31,39],green:[32,39],yellow:[33,39],blue:[34,39],magenta:[35,39],cyan:[36,39],white:[37,39],blackBright:[90,39],gray:[90,39],grey:[90,39],redBright:[91,39],greenBright:[92,39],yellowBright:[93,39],blueBright:[94,39],magentaBright:[95,39],cyanBright:[96,39],whiteBright:[97,39]},bgColor:{bgBlack:[40,49],bgRed:[41,49],bgGreen:[42,49],bgYellow:[43,49],bgBlue:[44,49],bgMagenta:[45,49],bgCyan:[46,49],bgWhite:[47,49],bgBlackBright:[100,49],bgGray:[100,49],bgGrey:[100,49],bgRedBright:[101,49],bgGreenBright:[102,49],bgYellowBright:[103,49],bgBlueBright:[104,49],bgMagentaBright:[105,49],bgCyanBright:[106,49],bgWhiteBright:[107,49]}},KV5=Object.keys(Y7.modifier),rO3=Object.keys(Y7.color),oO3=Object.keys(Y7.bgColor),HV5=[...rO3,...oO3];function tO3(){let f=new Map;for(let[$,Z]of Object.entries(Y7)){for(let[w,q]of Object.entries(Z))Y7[w]={open:`\x1B[${q[0]}m`,close:`\x1B[${q[1]}m`},Z[w]=Y7[w],f.set(q[0],q[1]);Object.defineProperty(Y7,$,{value:Z,enumerable:!1})}return Object.defineProperty(Y7,"codes",{value:f,enumerable:!1}),Y7.color.close="\x1B[39m",Y7.bgColor.close="\x1B[49m",Y7.color.ansi=ux1(),Y7.color.ansi256=yx1(),Y7.color.ansi16m=kx1(),Y7.bgColor.ansi=ux1(10),Y7.bgColor.ansi256=yx1(10),Y7.bgColor.ansi16m=kx1(10),Object.defineProperties(Y7,{rgbToAnsi256:{value($,Z,w){if($===Z&&Z===w){if($<8)return 16;if($>248)return 231;return Math.round(($-8)/247*24)+232}return 16+36*Math.round($/255*5)+6*Math.round(Z/255*5)+Math.round(w/255*5)},enumerable:!1},hexToRgb:{value($){let Z=/[a-f\d]{6}|[a-f\d]{3}/i.exec($.toString(16));if(!Z)return[0,0,0];let[w]=Z;if(w.length===3)w=[...w].map((v)=>v+v).join("");let q=Number.parseInt(w,16);return[q>>16&255,q>>8&255,q&255]},enumerable:!1},hexToAnsi256:{value:($)=>Y7.rgbToAnsi256(...Y7.hexToRgb($)),enumerable:!1},ansi256ToAnsi:{value($){if($<8)return 30+$;if($<16)return 90+($-8);let Z,w,q;if($>=232)Z=(($-232)*10+8)/255,w=Z,q=Z;else{$-=16;let H=$%36;Z=Math.floor($/36)/5,w=Math.floor(H/6)/5,q=H%6/5}let v=Math.max(Z,w,q)*2;if(v===0)return 30;let K=30+(Math.round(q)<<2|Math.round(w)<<1|Math.round(Z));if(v===2)K+=60;return K},enumerable:!1},rgbToAnsi:{value:($,Z,w)=>Y7.ansi256ToAnsi(Y7.rgbToAnsi256($,Z,w)),enumerable:!1},hexToAnsi:{value:($)=>Y7.ansi256ToAnsi(Y7.hexToAnsi256($)),enumerable:!1}}),Y7}var sO3=tO3(),A_=sO3;import N91 from"process";import eO3 from"os";import mx1 from"tty";function rq(f,$=globalThis.Deno?globalThis.Deno.args:N91.argv){let Z=f.startsWith("-")?"":f.length===1?"-":"--",w=$.indexOf(Z+f),q=$.indexOf("--");return w!==-1&&(q===-1||w<q)}var{env:P7}=N91,fB;if(rq("no-color")||rq("no-colors")||rq("color=false")||rq("color=never"))fB=0;else if(rq("color")||rq("colors")||rq("color=true")||rq("color=always"))fB=1;function fz3(){if("FORCE_COLOR"in P7){if(P7.FORCE_COLOR==="true")return 1;if(P7.FORCE_COLOR==="false")return 0;return P7.FORCE_COLOR.length===0?1:Math.min(Number.parseInt(P7.FORCE_COLOR,10),3)}}function $z3(f){if(f===0)return!1;return{level:f,hasBasic:!0,has256:f>=2,has16m:f>=3}}function Zz3(f,{streamIsTTY:$,sniffFlags:Z=!0}={}){let w=fz3();if(w!==void 0)fB=w;let q=Z?fB:w;if(q===0)return 0;if(Z){if(rq("color=16m")||rq("color=full")||rq("color=truecolor"))return 3;if(rq("color=256"))return 2}if("TF_BUILD"in P7&&"AGENT_NAME"in P7)return 1;if(f&&!$&&q===void 0)return 0;let v=q||0;if(P7.TERM==="dumb")return v;if(N91.platform==="win32"){let K=eO3.release().split(".");if(Number(K[0])>=10&&Number(K[2])>=10586)return Number(K[2])>=14931?3:2;return 1}if("CI"in P7){if(["GITHUB_ACTIONS","GITEA_ACTIONS","CIRCLECI"].some((K)=>(K in P7)))return 3;if(["TRAVIS","APPVEYOR","GITLAB_CI","BUILDKITE","DRONE"].some((K)=>(K in P7))||P7.CI_NAME==="codeship")return 1;return v}if("TEAMCITY_VERSION"in P7)return/^(9\.(0*[1-9]\d*)\.|\d{2,}\.)/.test(P7.TEAMCITY_VERSION)?1:0;if(P7.COLORTERM==="truecolor")return 3;if(P7.TERM==="xterm-kitty")return 3;if(P7.TERM==="xterm-ghostty")return 3;if(P7.TERM==="wezterm")return 3;if("TERM_PROGRAM"in P7){let K=Number.parseInt((P7.TERM_PROGRAM_VERSION||"").split(".")[0],10);switch(P7.TERM_PROGRAM){case"iTerm.app":return K>=3?3:2;case"Apple_Terminal":return 2}}if(/-256(color)?$/i.test(P7.TERM))return 2;if(/^screen|^xterm|^vt100|^vt220|^rxvt|color|ansi|cygwin|linux/i.test(P7.TERM))return 1;if("COLORTERM"in P7)return 1;return v}function xx1(f,$={}){let Z=Zz3(f,{streamIsTTY:f&&f.isTTY,...$});return $z3(Z)}var wz3={stdout:xx1({isTTY:mx1.isatty(1)}),stderr:xx1({isTTY:mx1.isatty(2)})},Bx1=wz3;function dx1(f,$,Z){let w=f.indexOf($);if(w===-1)return f;let q=$.length,v=0,K="";do K+=f.slice(v,w)+$+Z,v=w+q,w=f.indexOf($,v);while(w!==-1);return K+=f.slice(v),K}function Fx1(f,$,Z,w){let q=0,v="";do{let K=f[w-1]==="\r";v+=f.slice(q,K?w-1:w)+$+(K?`\r
|
|
449
|
+
`)}var Gl1=r1.object({handler:r1.enum(["std","graphic","quiz","circuits","game"]).default("std"),solution:r1.string().default("C++"),source_modifier:r1.enum(["none","no_main","structs"]).default("none"),compilers:r1.string().optional(),game:r1.object({hide:r1.array(r1.string()).default([])}).optional()}),Tl1=r1.array(r1.object({part:r1.string(),prefix:r1.string(),points:r1.number().min(0)})),Vl1=r1.object({title:r1.string(),description:r1.string(),author:r1.string().default("Unknown"),email:r1.string().default("unknown"),golden_proglang:r1.string(),more_proglangs:r1.array(r1.string()),original_language:r1.string(),more_languages:r1.array(r1.string()),generators:r1.array(r1.string())}),Kx=r1.object({problem_nm:r1.string().default(""),email:r1.string().default(""),passcode:r1.string().default(""),created_at:r1.string().default(""),updated_at:r1.string().default("")}),DJ=r1.object({name:r1.string().min(1).default("John Doe"),email:r1.string().email().default("john.doe@example.com"),defaultModel:r1.string().default("google/gemini-2.5-flash-lite"),notifications:r1.boolean().default(!1),showPrompts:r1.boolean().default(!1),showAnswers:r1.boolean().default(!1),developer:r1.boolean().default(!1)}),tZ3=r1.object({title:r1.string().nonempty(),file:r1.string().nonempty(),score:r1.int().min(0)}),El=r1.object({title:r1.string().default("Untitled Quiz"),statement:r1.string(),shuffle:r1.boolean().default(!1),questions:r1.array(tZ3)}),sZ3=r1.object({type:r1.literal("FillIn"),text:r1.string(),context:r1.string(),items:r1.record(r1.string().nonempty(),r1.object({maxlength:r1.int(),placeholder:r1.string().optional(),correct:r1.union([r1.string(),r1.number()]),ignorecase:r1.boolean().default(!1),trim:r1.boolean().default(!0)}))}),eZ3=r1.object({type:r1.literal("Ordering"),text:r1.string(),label:r1.string().nonempty(),items:r1.array(r1.string().nonempty()),nota:r1.string().optional()}),fw3=r1.object({type:r1.literal("Matching"),text:r1.string(),labels:r1.array(r1.string().nonempty()),left:r1.array(r1.string().nonempty()),right:r1.array(r1.string().nonempty())}),$w3=r1.object({type:r1.literal("SingleChoice"),text:r1.string(),choices:r1.array(r1.object({text:r1.string(),correct:r1.boolean().optional().default(!1),hint:r1.string().optional()}))}),Zw3=r1.object({type:r1.literal("MultipleChoice"),text:r1.string(),choices:r1.array(r1.object({text:r1.string(),correct:r1.boolean().optional().default(!1),hint:r1.string().optional()}))}),ww3=r1.object({type:r1.literal("OpenQuestion"),text:r1.string(),placeholder:r1.string().default("")}),s71=r1.discriminatedUnion("type",[sZ3,eZ3,fw3,$w3,Zw3,ww3]);var dG=Y61("jutge",{suffix:"toolkit"});function ll(){return vw3(dG.config,"config.yml")}async function _w3(){await jl(dG.config,{recursive:!0}),await jl(dG.data,{recursive:!0}),await jl(dG.cache,{recursive:!0}),await jl(dG.log,{recursive:!0}),await jl(dG.temp,{recursive:!0})}async function Il(f){return await _w3(),f=DJ.parse(f),await hJ(ll(),f)}async function e71(){let f=await J_(ll());return DJ.parse(f)}async function Kw3(){if(!await Hw3()){let f=DJ.parse({});return f.name=await Dl1()||"John Doe",f.email=await Ol1()||"john.doe@example.com",await Il(f),f}else return await e71()}async function Hw3(){return await qw3(ll())}var j5=await Kw3();var F91=f4(MR1(),1);import{execSync as UA3}from"child_process";import{join as aA3}from"path";var $_3=Z$([R2(),K_({url:_3(R2()),email:_3(R2())})]),Z_3=Z$([R2(),K_({url:R2(),type:_3(R2())}),f8(Z$([R2(),K_({url:R2(),type:_3(R2())})]))]),D81=Z$([R2(),K_({name:R2(),email:_3(R2()),url:_3(R2())})]),w_3=Z$([R2(),K_({type:R2(),url:R2(),directory:_3(R2())})]),WR1=K_({name:R2(),version:_3(R2()),onFail:_3(mj(["ignore","warn","error"]))}),kl=Z$([WR1,f8(WR1)]),q_3=K_({cpu:_3(kl),os:_3(kl),libc:_3(kl),runtime:_3(kl),packageManager:_3(kl)}),O81=ey({name:R2(),version:R2(),description:_3(R2()),keywords:_3(f8(R2())),homepage:_3(R2()),bugs:_3($_3),license:_3(R2()),author:_3(D81),contributors:_3(f8(D81)),maintainers:_3(f8(D81)),funding:_3(Z_3),files:_3(f8(R2())),exports:_3(Z$([Sj(),R2(),f8(R2()),$8(R2(),sw())])),type:_3(mj(["module","commonjs"])),main:_3(R2()),browser:_3(Z$([R2(),$8(R2(),Z$([R2(),bK()]))])),bin:_3(Z$([R2(),$8(R2(),R2())])),man:_3(Z$([R2(),f8(R2())])),directories:_3($8(R2(),R2())),repository:_3(w_3),scripts:_3($8(R2(),R2())),config:_3($8(R2(),sw())),dependencies:_3($8(R2(),R2())),devDependencies:_3($8(R2(),R2())),peerDependencies:_3($8(R2(),R2())),peerDependenciesMeta:_3($8(R2(),K_({optional:bK()}))),bundleDependencies:_3(Z$([bK(),f8(R2())])),bundledDependencies:_3(Z$([bK(),f8(R2())])),optionalDependencies:_3($8(R2(),R2())),overrides:_3($8(R2(),sw())),engines:_3($8(R2(),R2())),os:_3(f8(R2())),cpu:_3(f8(R2())),libc:_3(R2()),devEngines:_3(q_3),private:_3(bK()),publishConfig:_3($8(R2(),sw())),workspaces:_3(f8(R2())),deprecated:_3(R2()),module:_3(R2()),types:_3(R2()),typings:_3(R2()),typesVersions:_3($8(R2(),$8(R2(),f8(R2())))),packageManager:_3(R2()),sideEffects:_3(Z$([bK(),f8(R2())])),imports:_3($8(R2(),sw()))});var WB=f4(cx1(),1);import vB from"process";function C91({onlyFirst:f=!1}={}){return new RegExp("(?:\\u001B\\][\\s\\S]*?(?:\\u0007|\\u001B\\u005C|\\u009C))|[\\u001B\\u009B][[\\]()#;?]*(?:\\d{1,4}(?:[;:]\\d{0,4})*)?[\\dA-PR-TZcf-nq-uy=><~]",f?void 0:"g")}var iO3=C91();function QY(f){if(typeof f!=="string")throw TypeError(`Expected a \`string\`, got \`${typeof f}\``);return f.replace(iO3,"")}function Lx1(f){return f===161||f===164||f===167||f===168||f===170||f===173||f===174||f>=176&&f<=180||f>=182&&f<=186||f>=188&&f<=191||f===198||f===208||f===215||f===216||f>=222&&f<=225||f===230||f>=232&&f<=234||f===236||f===237||f===240||f===242||f===243||f>=247&&f<=250||f===252||f===254||f===257||f===273||f===275||f===283||f===294||f===295||f===299||f>=305&&f<=307||f===312||f>=319&&f<=322||f===324||f>=328&&f<=331||f===333||f===338||f===339||f===358||f===359||f===363||f===462||f===464||f===466||f===468||f===470||f===472||f===474||f===476||f===593||f===609||f===708||f===711||f>=713&&f<=715||f===717||f===720||f>=728&&f<=731||f===733||f===735||f>=768&&f<=879||f>=913&&f<=929||f>=931&&f<=937||f>=945&&f<=961||f>=963&&f<=969||f===1025||f>=1040&&f<=1103||f===1105||f===8208||f>=8211&&f<=8214||f===8216||f===8217||f===8220||f===8221||f>=8224&&f<=8226||f>=8228&&f<=8231||f===8240||f===8242||f===8243||f===8245||f===8251||f===8254||f===8308||f===8319||f>=8321&&f<=8324||f===8364||f===8451||f===8453||f===8457||f===8467||f===8470||f===8481||f===8482||f===8486||f===8491||f===8531||f===8532||f>=8539&&f<=8542||f>=8544&&f<=8555||f>=8560&&f<=8569||f===8585||f>=8592&&f<=8601||f===8632||f===8633||f===8658||f===8660||f===8679||f===8704||f===8706||f===8707||f===8711||f===8712||f===8715||f===8719||f===8721||f===8725||f===8730||f>=8733&&f<=8736||f===8739||f===8741||f>=8743&&f<=8748||f===8750||f>=8756&&f<=8759||f===8764||f===8765||f===8776||f===8780||f===8786||f===8800||f===8801||f>=8804&&f<=8807||f===8810||f===8811||f===8814||f===8815||f===8834||f===8835||f===8838||f===8839||f===8853||f===8857||f===8869||f===8895||f===8978||f>=9312&&f<=9449||f>=9451&&f<=9547||f>=9552&&f<=9587||f>=9600&&f<=9615||f>=9618&&f<=9621||f===9632||f===9633||f>=9635&&f<=9641||f===9650||f===9651||f===9654||f===9655||f===9660||f===9661||f===9664||f===9665||f>=9670&&f<=9672||f===9675||f>=9678&&f<=9681||f>=9698&&f<=9701||f===9711||f===9733||f===9734||f===9737||f===9742||f===9743||f===9756||f===9758||f===9792||f===9794||f===9824||f===9825||f>=9827&&f<=9829||f>=9831&&f<=9834||f===9836||f===9837||f===9839||f===9886||f===9887||f===9919||f>=9926&&f<=9933||f>=9935&&f<=9939||f>=9941&&f<=9953||f===9955||f===9960||f===9961||f>=9963&&f<=9969||f===9972||f>=9974&&f<=9977||f===9979||f===9980||f===9982||f===9983||f===10045||f>=10102&&f<=10111||f>=11094&&f<=11097||f>=12872&&f<=12879||f>=57344&&f<=63743||f>=65024&&f<=65039||f===65533||f>=127232&&f<=127242||f>=127248&&f<=127277||f>=127280&&f<=127337||f>=127344&&f<=127373||f===127375||f===127376||f>=127387&&f<=127404||f>=917760&&f<=917999||f>=983040&&f<=1048573||f>=1048576&&f<=1114109}function gx1(f){return f===12288||f>=65281&&f<=65376||f>=65504&&f<=65510}function Sx1(f){return f>=4352&&f<=4447||f===8986||f===8987||f===9001||f===9002||f>=9193&&f<=9196||f===9200||f===9203||f===9725||f===9726||f===9748||f===9749||f>=9776&&f<=9783||f>=9800&&f<=9811||f===9855||f>=9866&&f<=9871||f===9875||f===9889||f===9898||f===9899||f===9917||f===9918||f===9924||f===9925||f===9934||f===9940||f===9962||f===9970||f===9971||f===9973||f===9978||f===9981||f===9989||f===9994||f===9995||f===10024||f===10060||f===10062||f>=10067&&f<=10069||f===10071||f>=10133&&f<=10135||f===10160||f===10175||f===11035||f===11036||f===11088||f===11093||f>=11904&&f<=11929||f>=11931&&f<=12019||f>=12032&&f<=12245||f>=12272&&f<=12287||f>=12289&&f<=12350||f>=12353&&f<=12438||f>=12441&&f<=12543||f>=12549&&f<=12591||f>=12593&&f<=12686||f>=12688&&f<=12773||f>=12783&&f<=12830||f>=12832&&f<=12871||f>=12880&&f<=42124||f>=42128&&f<=42182||f>=43360&&f<=43388||f>=44032&&f<=55203||f>=63744&&f<=64255||f>=65040&&f<=65049||f>=65072&&f<=65106||f>=65108&&f<=65126||f>=65128&&f<=65131||f>=94176&&f<=94180||f>=94192&&f<=94198||f>=94208&&f<=101589||f>=101631&&f<=101662||f>=101760&&f<=101874||f>=110576&&f<=110579||f>=110581&&f<=110587||f===110589||f===110590||f>=110592&&f<=110882||f===110898||f>=110928&&f<=110930||f===110933||f>=110948&&f<=110951||f>=110960&&f<=111355||f>=119552&&f<=119638||f>=119648&&f<=119670||f===126980||f===127183||f===127374||f>=127377&&f<=127386||f>=127488&&f<=127490||f>=127504&&f<=127547||f>=127552&&f<=127560||f===127568||f===127569||f>=127584&&f<=127589||f>=127744&&f<=127776||f>=127789&&f<=127797||f>=127799&&f<=127868||f>=127870&&f<=127891||f>=127904&&f<=127946||f>=127951&&f<=127955||f>=127968&&f<=127984||f===127988||f>=127992&&f<=128062||f===128064||f>=128066&&f<=128252||f>=128255&&f<=128317||f>=128331&&f<=128334||f>=128336&&f<=128359||f===128378||f===128405||f===128406||f===128420||f>=128507&&f<=128591||f>=128640&&f<=128709||f===128716||f>=128720&&f<=128722||f>=128725&&f<=128728||f>=128732&&f<=128735||f===128747||f===128748||f>=128756&&f<=128764||f>=128992&&f<=129003||f===129008||f>=129292&&f<=129338||f>=129340&&f<=129349||f>=129351&&f<=129535||f>=129648&&f<=129660||f>=129664&&f<=129674||f>=129678&&f<=129734||f===129736||f>=129741&&f<=129756||f>=129759&&f<=129770||f>=129775&&f<=129784||f>=131072&&f<=196605||f>=196608&&f<=262141}function QO3(f){if(!Number.isSafeInteger(f))throw TypeError(`Expected a code point, got \`${typeof f}\`.`)}function $I(f,{ambiguousAsWide:$=!1}={}){if(QO3(f),gx1(f)||Sx1(f)||$&&Lx1(f))return 2;return 1}var bx1=()=>{return/[#*0-9]\uFE0F?\u20E3|[\xA9\xAE\u203C\u2049\u2122\u2139\u2194-\u2199\u21A9\u21AA\u231A\u231B\u2328\u23CF\u23ED-\u23EF\u23F1\u23F2\u23F8-\u23FA\u24C2\u25AA\u25AB\u25B6\u25C0\u25FB\u25FC\u25FE\u2600-\u2604\u260E\u2611\u2614\u2615\u2618\u2620\u2622\u2623\u2626\u262A\u262E\u262F\u2638-\u263A\u2640\u2642\u2648-\u2653\u265F\u2660\u2663\u2665\u2666\u2668\u267B\u267E\u267F\u2692\u2694-\u2697\u2699\u269B\u269C\u26A0\u26A7\u26AA\u26B0\u26B1\u26BD\u26BE\u26C4\u26C8\u26CF\u26D1\u26E9\u26F0-\u26F5\u26F7\u26F8\u26FA\u2702\u2708\u2709\u270F\u2712\u2714\u2716\u271D\u2721\u2733\u2734\u2744\u2747\u2757\u2763\u27A1\u2934\u2935\u2B05-\u2B07\u2B1B\u2B1C\u2B55\u3030\u303D\u3297\u3299]\uFE0F?|[\u261D\u270C\u270D](?:\uD83C[\uDFFB-\uDFFF]|\uFE0F)?|[\u270A\u270B](?:\uD83C[\uDFFB-\uDFFF])?|[\u23E9-\u23EC\u23F0\u23F3\u25FD\u2693\u26A1\u26AB\u26C5\u26CE\u26D4\u26EA\u26FD\u2705\u2728\u274C\u274E\u2753-\u2755\u2795-\u2797\u27B0\u27BF\u2B50]|\u26D3\uFE0F?(?:\u200D\uD83D\uDCA5)?|\u26F9(?:\uD83C[\uDFFB-\uDFFF]|\uFE0F)?(?:\u200D[\u2640\u2642]\uFE0F?)?|\u2764\uFE0F?(?:\u200D(?:\uD83D\uDD25|\uD83E\uDE79))?|\uD83C(?:[\uDC04\uDD70\uDD71\uDD7E\uDD7F\uDE02\uDE37\uDF21\uDF24-\uDF2C\uDF36\uDF7D\uDF96\uDF97\uDF99-\uDF9B\uDF9E\uDF9F\uDFCD\uDFCE\uDFD4-\uDFDF\uDFF5\uDFF7]\uFE0F?|[\uDF85\uDFC2\uDFC7](?:\uD83C[\uDFFB-\uDFFF])?|[\uDFC4\uDFCA](?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D[\u2640\u2642]\uFE0F?)?|[\uDFCB\uDFCC](?:\uD83C[\uDFFB-\uDFFF]|\uFE0F)?(?:\u200D[\u2640\u2642]\uFE0F?)?|[\uDCCF\uDD8E\uDD91-\uDD9A\uDE01\uDE1A\uDE2F\uDE32-\uDE36\uDE38-\uDE3A\uDE50\uDE51\uDF00-\uDF20\uDF2D-\uDF35\uDF37-\uDF43\uDF45-\uDF4A\uDF4C-\uDF7C\uDF7E-\uDF84\uDF86-\uDF93\uDFA0-\uDFC1\uDFC5\uDFC6\uDFC8\uDFC9\uDFCF-\uDFD3\uDFE0-\uDFF0\uDFF8-\uDFFF]|\uDDE6\uD83C[\uDDE8-\uDDEC\uDDEE\uDDF1\uDDF2\uDDF4\uDDF6-\uDDFA\uDDFC\uDDFD\uDDFF]|\uDDE7\uD83C[\uDDE6\uDDE7\uDDE9-\uDDEF\uDDF1-\uDDF4\uDDF6-\uDDF9\uDDFB\uDDFC\uDDFE\uDDFF]|\uDDE8\uD83C[\uDDE6\uDDE8\uDDE9\uDDEB-\uDDEE\uDDF0-\uDDF7\uDDFA-\uDDFF]|\uDDE9\uD83C[\uDDEA\uDDEC\uDDEF\uDDF0\uDDF2\uDDF4\uDDFF]|\uDDEA\uD83C[\uDDE6\uDDE8\uDDEA\uDDEC\uDDED\uDDF7-\uDDFA]|\uDDEB\uD83C[\uDDEE-\uDDF0\uDDF2\uDDF4\uDDF7]|\uDDEC\uD83C[\uDDE6\uDDE7\uDDE9-\uDDEE\uDDF1-\uDDF3\uDDF5-\uDDFA\uDDFC\uDDFE]|\uDDED\uD83C[\uDDF0\uDDF2\uDDF3\uDDF7\uDDF9\uDDFA]|\uDDEE\uD83C[\uDDE8-\uDDEA\uDDF1-\uDDF4\uDDF6-\uDDF9]|\uDDEF\uD83C[\uDDEA\uDDF2\uDDF4\uDDF5]|\uDDF0\uD83C[\uDDEA\uDDEC-\uDDEE\uDDF2\uDDF3\uDDF5\uDDF7\uDDFC\uDDFE\uDDFF]|\uDDF1\uD83C[\uDDE6-\uDDE8\uDDEE\uDDF0\uDDF7-\uDDFB\uDDFE]|\uDDF2\uD83C[\uDDE6\uDDE8-\uDDED\uDDF0-\uDDFF]|\uDDF3\uD83C[\uDDE6\uDDE8\uDDEA-\uDDEC\uDDEE\uDDF1\uDDF4\uDDF5\uDDF7\uDDFA\uDDFF]|\uDDF4\uD83C\uDDF2|\uDDF5\uD83C[\uDDE6\uDDEA-\uDDED\uDDF0-\uDDF3\uDDF7-\uDDF9\uDDFC\uDDFE]|\uDDF6\uD83C\uDDE6|\uDDF7\uD83C[\uDDEA\uDDF4\uDDF8\uDDFA\uDDFC]|\uDDF8\uD83C[\uDDE6-\uDDEA\uDDEC-\uDDF4\uDDF7-\uDDF9\uDDFB\uDDFD-\uDDFF]|\uDDF9\uD83C[\uDDE6\uDDE8\uDDE9\uDDEB-\uDDED\uDDEF-\uDDF4\uDDF7\uDDF9\uDDFB\uDDFC\uDDFF]|\uDDFA\uD83C[\uDDE6\uDDEC\uDDF2\uDDF3\uDDF8\uDDFE\uDDFF]|\uDDFB\uD83C[\uDDE6\uDDE8\uDDEA\uDDEC\uDDEE\uDDF3\uDDFA]|\uDDFC\uD83C[\uDDEB\uDDF8]|\uDDFD\uD83C\uDDF0|\uDDFE\uD83C[\uDDEA\uDDF9]|\uDDFF\uD83C[\uDDE6\uDDF2\uDDFC]|\uDF44(?:\u200D\uD83D\uDFEB)?|\uDF4B(?:\u200D\uD83D\uDFE9)?|\uDFC3(?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D(?:[\u2640\u2642]\uFE0F?(?:\u200D\u27A1\uFE0F?)?|\u27A1\uFE0F?))?|\uDFF3\uFE0F?(?:\u200D(?:\u26A7\uFE0F?|\uD83C\uDF08))?|\uDFF4(?:\u200D\u2620\uFE0F?|\uDB40\uDC67\uDB40\uDC62\uDB40(?:\uDC65\uDB40\uDC6E\uDB40\uDC67|\uDC73\uDB40\uDC63\uDB40\uDC74|\uDC77\uDB40\uDC6C\uDB40\uDC73)\uDB40\uDC7F)?)|\uD83D(?:[\uDC3F\uDCFD\uDD49\uDD4A\uDD6F\uDD70\uDD73\uDD76-\uDD79\uDD87\uDD8A-\uDD8D\uDDA5\uDDA8\uDDB1\uDDB2\uDDBC\uDDC2-\uDDC4\uDDD1-\uDDD3\uDDDC-\uDDDE\uDDE1\uDDE3\uDDE8\uDDEF\uDDF3\uDDFA\uDECB\uDECD-\uDECF\uDEE0-\uDEE5\uDEE9\uDEF0\uDEF3]\uFE0F?|[\uDC42\uDC43\uDC46-\uDC50\uDC66\uDC67\uDC6B-\uDC6D\uDC72\uDC74-\uDC76\uDC78\uDC7C\uDC83\uDC85\uDC8F\uDC91\uDCAA\uDD7A\uDD95\uDD96\uDE4C\uDE4F\uDEC0\uDECC](?:\uD83C[\uDFFB-\uDFFF])?|[\uDC6E-\uDC71\uDC73\uDC77\uDC81\uDC82\uDC86\uDC87\uDE45-\uDE47\uDE4B\uDE4D\uDE4E\uDEA3\uDEB4\uDEB5](?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D[\u2640\u2642]\uFE0F?)?|[\uDD74\uDD90](?:\uD83C[\uDFFB-\uDFFF]|\uFE0F)?|[\uDC00-\uDC07\uDC09-\uDC14\uDC16-\uDC25\uDC27-\uDC3A\uDC3C-\uDC3E\uDC40\uDC44\uDC45\uDC51-\uDC65\uDC6A\uDC79-\uDC7B\uDC7D-\uDC80\uDC84\uDC88-\uDC8E\uDC90\uDC92-\uDCA9\uDCAB-\uDCFC\uDCFF-\uDD3D\uDD4B-\uDD4E\uDD50-\uDD67\uDDA4\uDDFB-\uDE2D\uDE2F-\uDE34\uDE37-\uDE41\uDE43\uDE44\uDE48-\uDE4A\uDE80-\uDEA2\uDEA4-\uDEB3\uDEB7-\uDEBF\uDEC1-\uDEC5\uDED0-\uDED2\uDED5-\uDED8\uDEDC-\uDEDF\uDEEB\uDEEC\uDEF4-\uDEFC\uDFE0-\uDFEB\uDFF0]|\uDC08(?:\u200D\u2B1B)?|\uDC15(?:\u200D\uD83E\uDDBA)?|\uDC26(?:\u200D(?:\u2B1B|\uD83D\uDD25))?|\uDC3B(?:\u200D\u2744\uFE0F?)?|\uDC41\uFE0F?(?:\u200D\uD83D\uDDE8\uFE0F?)?|\uDC68(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDC68\uDC69]\u200D\uD83D(?:\uDC66(?:\u200D\uD83D\uDC66)?|\uDC67(?:\u200D\uD83D[\uDC66\uDC67])?)|[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC66(?:\u200D\uD83D\uDC66)?|\uDC67(?:\u200D\uD83D[\uDC66\uDC67])?)|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]))|\uD83C(?:\uDFFB(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83D\uDC68\uD83C[\uDFFC-\uDFFF])|\uD83E(?:[\uDD1D\uDEEF]\u200D\uD83D\uDC68\uD83C[\uDFFC-\uDFFF]|[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3])))?|\uDFFC(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83D\uDC68\uD83C[\uDFFB\uDFFD-\uDFFF])|\uD83E(?:[\uDD1D\uDEEF]\u200D\uD83D\uDC68\uD83C[\uDFFB\uDFFD-\uDFFF]|[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3])))?|\uDFFD(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83D\uDC68\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])|\uD83E(?:[\uDD1D\uDEEF]\u200D\uD83D\uDC68\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF]|[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3])))?|\uDFFE(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83D\uDC68\uD83C[\uDFFB-\uDFFD\uDFFF])|\uD83E(?:[\uDD1D\uDEEF]\u200D\uD83D\uDC68\uD83C[\uDFFB-\uDFFD\uDFFF]|[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3])))?|\uDFFF(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83D\uDC68\uD83C[\uDFFB-\uDFFE])|\uD83E(?:[\uDD1D\uDEEF]\u200D\uD83D\uDC68\uD83C[\uDFFB-\uDFFE]|[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3])))?))?|\uDC69(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?[\uDC68\uDC69]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC66(?:\u200D\uD83D\uDC66)?|\uDC67(?:\u200D\uD83D[\uDC66\uDC67])?|\uDC69\u200D\uD83D(?:\uDC66(?:\u200D\uD83D\uDC66)?|\uDC67(?:\u200D\uD83D[\uDC66\uDC67])?))|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]))|\uD83C(?:\uDFFB(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:[\uDC68\uDC69]|\uDC8B\u200D\uD83D[\uDC68\uDC69])\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83D\uDC69\uD83C[\uDFFC-\uDFFF])|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D[\uDC68\uDC69]\uD83C[\uDFFC-\uDFFF]|\uDEEF\u200D\uD83D\uDC69\uD83C[\uDFFC-\uDFFF])))?|\uDFFC(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:[\uDC68\uDC69]|\uDC8B\u200D\uD83D[\uDC68\uDC69])\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83D\uDC69\uD83C[\uDFFB\uDFFD-\uDFFF])|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D[\uDC68\uDC69]\uD83C[\uDFFB\uDFFD-\uDFFF]|\uDEEF\u200D\uD83D\uDC69\uD83C[\uDFFB\uDFFD-\uDFFF])))?|\uDFFD(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:[\uDC68\uDC69]|\uDC8B\u200D\uD83D[\uDC68\uDC69])\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83D\uDC69\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D[\uDC68\uDC69]\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF]|\uDEEF\u200D\uD83D\uDC69\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])))?|\uDFFE(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:[\uDC68\uDC69]|\uDC8B\u200D\uD83D[\uDC68\uDC69])\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83D\uDC69\uD83C[\uDFFB-\uDFFD\uDFFF])|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D[\uDC68\uDC69]\uD83C[\uDFFB-\uDFFD\uDFFF]|\uDEEF\u200D\uD83D\uDC69\uD83C[\uDFFB-\uDFFD\uDFFF])))?|\uDFFF(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:[\uDC68\uDC69]|\uDC8B\u200D\uD83D[\uDC68\uDC69])\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83D\uDC69\uD83C[\uDFFB-\uDFFE])|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D[\uDC68\uDC69]\uD83C[\uDFFB-\uDFFE]|\uDEEF\u200D\uD83D\uDC69\uD83C[\uDFFB-\uDFFE])))?))?|\uDD75(?:\uD83C[\uDFFB-\uDFFF]|\uFE0F)?(?:\u200D[\u2640\u2642]\uFE0F?)?|\uDE2E(?:\u200D\uD83D\uDCA8)?|\uDE35(?:\u200D\uD83D\uDCAB)?|\uDE36(?:\u200D\uD83C\uDF2B\uFE0F?)?|\uDE42(?:\u200D[\u2194\u2195]\uFE0F?)?|\uDEB6(?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D(?:[\u2640\u2642]\uFE0F?(?:\u200D\u27A1\uFE0F?)?|\u27A1\uFE0F?))?)|\uD83E(?:[\uDD0C\uDD0F\uDD18-\uDD1F\uDD30-\uDD34\uDD36\uDD77\uDDB5\uDDB6\uDDBB\uDDD2\uDDD3\uDDD5\uDEC3-\uDEC5\uDEF0\uDEF2-\uDEF8](?:\uD83C[\uDFFB-\uDFFF])?|[\uDD26\uDD35\uDD37-\uDD39\uDD3C-\uDD3E\uDDB8\uDDB9\uDDCD\uDDCF\uDDD4\uDDD6-\uDDDD](?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D[\u2640\u2642]\uFE0F?)?|[\uDDDE\uDDDF](?:\u200D[\u2640\u2642]\uFE0F?)?|[\uDD0D\uDD0E\uDD10-\uDD17\uDD20-\uDD25\uDD27-\uDD2F\uDD3A\uDD3F-\uDD45\uDD47-\uDD76\uDD78-\uDDB4\uDDB7\uDDBA\uDDBC-\uDDCC\uDDD0\uDDE0-\uDDFF\uDE70-\uDE7C\uDE80-\uDE8A\uDE8E-\uDEC2\uDEC6\uDEC8\uDECD-\uDEDC\uDEDF-\uDEEA\uDEEF]|\uDDCE(?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D(?:[\u2640\u2642]\uFE0F?(?:\u200D\u27A1\uFE0F?)?|\u27A1\uFE0F?))?|\uDDD1(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3\uDE70]|\uDD1D\u200D\uD83E\uDDD1|\uDDD1\u200D\uD83E\uDDD2(?:\u200D\uD83E\uDDD2)?|\uDDD2(?:\u200D\uD83E\uDDD2)?))|\uD83C(?:\uDFFB(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1\uD83C[\uDFFC-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83E\uDDD1\uD83C[\uDFFC-\uDFFF])|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3\uDE70]|\uDD1D\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFF]|\uDEEF\u200D\uD83E\uDDD1\uD83C[\uDFFC-\uDFFF])))?|\uDFFC(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1\uD83C[\uDFFB\uDFFD-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83E\uDDD1\uD83C[\uDFFB\uDFFD-\uDFFF])|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3\uDE70]|\uDD1D\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFF]|\uDEEF\u200D\uD83E\uDDD1\uD83C[\uDFFB\uDFFD-\uDFFF])))?|\uDFFD(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83E\uDDD1\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3\uDE70]|\uDD1D\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFF]|\uDEEF\u200D\uD83E\uDDD1\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])))?|\uDFFE(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1\uD83C[\uDFFB-\uDFFD\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFD\uDFFF])|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3\uDE70]|\uDD1D\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFF]|\uDEEF\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFD\uDFFF])))?|\uDFFF(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1\uD83C[\uDFFB-\uDFFE]|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFE])|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3\uDE70]|\uDD1D\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFF]|\uDEEF\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFE])))?))?|\uDEF1(?:\uD83C(?:\uDFFB(?:\u200D\uD83E\uDEF2\uD83C[\uDFFC-\uDFFF])?|\uDFFC(?:\u200D\uD83E\uDEF2\uD83C[\uDFFB\uDFFD-\uDFFF])?|\uDFFD(?:\u200D\uD83E\uDEF2\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])?|\uDFFE(?:\u200D\uD83E\uDEF2\uD83C[\uDFFB-\uDFFD\uDFFF])?|\uDFFF(?:\u200D\uD83E\uDEF2\uD83C[\uDFFB-\uDFFE])?))?)/g};var nO3=new Intl.Segmenter,pO3=/^\p{Default_Ignorable_Code_Point}$/u;function FZ(f,$={}){if(typeof f!=="string"||f.length===0)return 0;let{ambiguousIsNarrow:Z=!0,countAnsiEscapeCodes:w=!1}=$;if(!w)f=QY(f);if(f.length===0)return 0;let q=0,v={ambiguousAsWide:!Z};for(let{segment:K}of nO3.segment(f)){let H=K.codePointAt(0);if(H<=31||H>=127&&H<=159)continue;if(H>=8203&&H<=8207||H===65279)continue;if(H>=768&&H<=879||H>=6832&&H<=6911||H>=7616&&H<=7679||H>=8400&&H<=8447||H>=65056&&H<=65071)continue;if(H>=55296&&H<=57343)continue;if(H>=65024&&H<=65039)continue;if(pO3.test(K))continue;if(bx1().test(K)){q+=2;continue}q+=$I(H,v)}return q}var ux1=(f=0)=>($)=>`\x1B[${$+f}m`,yx1=(f=0)=>($)=>`\x1B[${38+f};5;${$}m`,kx1=(f=0)=>($,Z,w)=>`\x1B[${38+f};2;${$};${Z};${w}m`,Y7={modifier:{reset:[0,0],bold:[1,22],dim:[2,22],italic:[3,23],underline:[4,24],overline:[53,55],inverse:[7,27],hidden:[8,28],strikethrough:[9,29]},color:{black:[30,39],red:[31,39],green:[32,39],yellow:[33,39],blue:[34,39],magenta:[35,39],cyan:[36,39],white:[37,39],blackBright:[90,39],gray:[90,39],grey:[90,39],redBright:[91,39],greenBright:[92,39],yellowBright:[93,39],blueBright:[94,39],magentaBright:[95,39],cyanBright:[96,39],whiteBright:[97,39]},bgColor:{bgBlack:[40,49],bgRed:[41,49],bgGreen:[42,49],bgYellow:[43,49],bgBlue:[44,49],bgMagenta:[45,49],bgCyan:[46,49],bgWhite:[47,49],bgBlackBright:[100,49],bgGray:[100,49],bgGrey:[100,49],bgRedBright:[101,49],bgGreenBright:[102,49],bgYellowBright:[103,49],bgBlueBright:[104,49],bgMagentaBright:[105,49],bgCyanBright:[106,49],bgWhiteBright:[107,49]}},KV5=Object.keys(Y7.modifier),rO3=Object.keys(Y7.color),oO3=Object.keys(Y7.bgColor),HV5=[...rO3,...oO3];function tO3(){let f=new Map;for(let[$,Z]of Object.entries(Y7)){for(let[w,q]of Object.entries(Z))Y7[w]={open:`\x1B[${q[0]}m`,close:`\x1B[${q[1]}m`},Z[w]=Y7[w],f.set(q[0],q[1]);Object.defineProperty(Y7,$,{value:Z,enumerable:!1})}return Object.defineProperty(Y7,"codes",{value:f,enumerable:!1}),Y7.color.close="\x1B[39m",Y7.bgColor.close="\x1B[49m",Y7.color.ansi=ux1(),Y7.color.ansi256=yx1(),Y7.color.ansi16m=kx1(),Y7.bgColor.ansi=ux1(10),Y7.bgColor.ansi256=yx1(10),Y7.bgColor.ansi16m=kx1(10),Object.defineProperties(Y7,{rgbToAnsi256:{value($,Z,w){if($===Z&&Z===w){if($<8)return 16;if($>248)return 231;return Math.round(($-8)/247*24)+232}return 16+36*Math.round($/255*5)+6*Math.round(Z/255*5)+Math.round(w/255*5)},enumerable:!1},hexToRgb:{value($){let Z=/[a-f\d]{6}|[a-f\d]{3}/i.exec($.toString(16));if(!Z)return[0,0,0];let[w]=Z;if(w.length===3)w=[...w].map((v)=>v+v).join("");let q=Number.parseInt(w,16);return[q>>16&255,q>>8&255,q&255]},enumerable:!1},hexToAnsi256:{value:($)=>Y7.rgbToAnsi256(...Y7.hexToRgb($)),enumerable:!1},ansi256ToAnsi:{value($){if($<8)return 30+$;if($<16)return 90+($-8);let Z,w,q;if($>=232)Z=(($-232)*10+8)/255,w=Z,q=Z;else{$-=16;let H=$%36;Z=Math.floor($/36)/5,w=Math.floor(H/6)/5,q=H%6/5}let v=Math.max(Z,w,q)*2;if(v===0)return 30;let K=30+(Math.round(q)<<2|Math.round(w)<<1|Math.round(Z));if(v===2)K+=60;return K},enumerable:!1},rgbToAnsi:{value:($,Z,w)=>Y7.ansi256ToAnsi(Y7.rgbToAnsi256($,Z,w)),enumerable:!1},hexToAnsi:{value:($)=>Y7.ansi256ToAnsi(Y7.hexToAnsi256($)),enumerable:!1}}),Y7}var sO3=tO3(),A_=sO3;import N91 from"process";import eO3 from"os";import mx1 from"tty";function rq(f,$=globalThis.Deno?globalThis.Deno.args:N91.argv){let Z=f.startsWith("-")?"":f.length===1?"-":"--",w=$.indexOf(Z+f),q=$.indexOf("--");return w!==-1&&(q===-1||w<q)}var{env:P7}=N91,fB;if(rq("no-color")||rq("no-colors")||rq("color=false")||rq("color=never"))fB=0;else if(rq("color")||rq("colors")||rq("color=true")||rq("color=always"))fB=1;function fz3(){if("FORCE_COLOR"in P7){if(P7.FORCE_COLOR==="true")return 1;if(P7.FORCE_COLOR==="false")return 0;return P7.FORCE_COLOR.length===0?1:Math.min(Number.parseInt(P7.FORCE_COLOR,10),3)}}function $z3(f){if(f===0)return!1;return{level:f,hasBasic:!0,has256:f>=2,has16m:f>=3}}function Zz3(f,{streamIsTTY:$,sniffFlags:Z=!0}={}){let w=fz3();if(w!==void 0)fB=w;let q=Z?fB:w;if(q===0)return 0;if(Z){if(rq("color=16m")||rq("color=full")||rq("color=truecolor"))return 3;if(rq("color=256"))return 2}if("TF_BUILD"in P7&&"AGENT_NAME"in P7)return 1;if(f&&!$&&q===void 0)return 0;let v=q||0;if(P7.TERM==="dumb")return v;if(N91.platform==="win32"){let K=eO3.release().split(".");if(Number(K[0])>=10&&Number(K[2])>=10586)return Number(K[2])>=14931?3:2;return 1}if("CI"in P7){if(["GITHUB_ACTIONS","GITEA_ACTIONS","CIRCLECI"].some((K)=>(K in P7)))return 3;if(["TRAVIS","APPVEYOR","GITLAB_CI","BUILDKITE","DRONE"].some((K)=>(K in P7))||P7.CI_NAME==="codeship")return 1;return v}if("TEAMCITY_VERSION"in P7)return/^(9\.(0*[1-9]\d*)\.|\d{2,}\.)/.test(P7.TEAMCITY_VERSION)?1:0;if(P7.COLORTERM==="truecolor")return 3;if(P7.TERM==="xterm-kitty")return 3;if(P7.TERM==="xterm-ghostty")return 3;if(P7.TERM==="wezterm")return 3;if("TERM_PROGRAM"in P7){let K=Number.parseInt((P7.TERM_PROGRAM_VERSION||"").split(".")[0],10);switch(P7.TERM_PROGRAM){case"iTerm.app":return K>=3?3:2;case"Apple_Terminal":return 2}}if(/-256(color)?$/i.test(P7.TERM))return 2;if(/^screen|^xterm|^vt100|^vt220|^rxvt|color|ansi|cygwin|linux/i.test(P7.TERM))return 1;if("COLORTERM"in P7)return 1;return v}function xx1(f,$={}){let Z=Zz3(f,{streamIsTTY:f&&f.isTTY,...$});return $z3(Z)}var wz3={stdout:xx1({isTTY:mx1.isatty(1)}),stderr:xx1({isTTY:mx1.isatty(2)})},Bx1=wz3;function dx1(f,$,Z){let w=f.indexOf($);if(w===-1)return f;let q=$.length,v=0,K="";do K+=f.slice(v,w)+$+Z,v=w+q,w=f.indexOf($,v);while(w!==-1);return K+=f.slice(v),K}function Fx1(f,$,Z,w){let q=0,v="";do{let K=f[w-1]==="\r";v+=f.slice(q,K?w-1:w)+$+(K?`\r
|
|
450
450
|
`:`
|
|
451
451
|
`)+Z,q=w+1,w=f.indexOf(`
|
|
452
452
|
`,q)}while(w!==-1);return v+=f.slice(q),v}var{stdout:Ux1,stderr:ax1}=Bx1,E91=Symbol("GENERATOR"),qT=Symbol("STYLER"),ZI=Symbol("IS_EMPTY"),ix1=["ansi","ansi","ansi256","ansi16m"],vT=Object.create(null),qz3=(f,$={})=>{if($.level&&!(Number.isInteger($.level)&&$.level>=0&&$.level<=3))throw Error("The `level` option should be an integer from 0 to 3");let Z=Ux1?Ux1.level:0;f.level=$.level===void 0?Z:$.level};var vz3=(f)=>{let $=(...Z)=>Z.join(" ");return qz3($,f),Object.setPrototypeOf($,wI.prototype),$};function wI(f){return vz3(f)}Object.setPrototypeOf(wI.prototype,Function.prototype);for(let[f,$]of Object.entries(A_))vT[f]={get(){let Z=$B(this,l91($.open,$.close,this[qT]),this[ZI]);return Object.defineProperty(this,f,{value:Z}),Z}};vT.visible={get(){let f=$B(this,this[qT],!0);return Object.defineProperty(this,"visible",{value:f}),f}};var j91=(f,$,Z,...w)=>{if(f==="rgb"){if($==="ansi16m")return A_[Z].ansi16m(...w);if($==="ansi256")return A_[Z].ansi256(A_.rgbToAnsi256(...w));return A_[Z].ansi(A_.rgbToAnsi(...w))}if(f==="hex")return j91("rgb",$,Z,...A_.hexToRgb(...w));return A_[Z][f](...w)},_z3=["rgb","hex","ansi256"];for(let f of _z3){vT[f]={get(){let{level:Z}=this;return function(...w){let q=l91(j91(f,ix1[Z],"color",...w),A_.color.close,this[qT]);return $B(this,q,this[ZI])}}};let $="bg"+f[0].toUpperCase()+f.slice(1);vT[$]={get(){let{level:Z}=this;return function(...w){let q=l91(j91(f,ix1[Z],"bgColor",...w),A_.bgColor.close,this[qT]);return $B(this,q,this[ZI])}}}}var Kz3=Object.defineProperties(()=>{},{...vT,level:{enumerable:!0,get(){return this[E91].level},set(f){this[E91].level=f}}}),l91=(f,$,Z)=>{let w,q;if(Z===void 0)w=f,q=$;else w=Z.openAll+f,q=$+Z.closeAll;return{open:f,close:$,openAll:w,closeAll:q,parent:Z}},$B=(f,$,Z)=>{let w=(...q)=>Hz3(w,q.length===1?""+q[0]:q.join(" "));return Object.setPrototypeOf(w,Kz3),w[E91]=f,w[qT]=$,w[ZI]=Z,w},Hz3=(f,$)=>{if(f.level<=0||!$)return f[ZI]?"":$;let Z=f[qT];if(Z===void 0)return $;let{openAll:w,closeAll:q}=Z;if($.includes("\x1B"))while(Z!==void 0)$=dx1($,Z.close,Z.open),Z=Z.parent;let v=$.indexOf(`
|
|
@@ -3893,7 +3893,7 @@ main = do
|
|
|
3893
3893
|
`+$:""),Y=Math.floor(w.length/v)-this.cursorPos.rows+($?GE2($):0);if(Y>0)K+=Eq(Y);K+=g$(this.cursorPos.cols),this.write(L$(this.extraLinesUnderPrompt)+S$(this.height)+K),this.extraLinesUnderPrompt=Y,this.height=GE2(K)}checkCursorPos(){let f=this.rl.getCursorPos();if(f.cols!==this.cursorPos.cols)this.write(g$(f.cols)),this.cursorPos=f}done({clearContent:f}){this.rl.setPrompt("");let $=L$(this.extraLinesUnderPrompt);$+=f?S$(this.height):`
|
|
3894
3894
|
`,$+=mv,this.write($),this.rl.close()}}class LM1 extends Promise{static withResolver(){let f,$;return{promise:new Promise((w,q)=>{f=w,$=q}),resolve:f,reject:$}}}function _a4(){let f=Error.prepareStackTrace,$=[];try{Error.prepareStackTrace=(Z,w)=>{let q=w.slice(1);return $=q,q},Error().stack}catch{return $}return Error.prepareStackTrace=f,$}function gM1(f){let $=_a4();return(w,q={})=>{let{input:v=process.stdin,signal:K}=q,H=new Set,Y=new VE2.default;Y.pipe(q.output??process.stdout);let P=TE2.createInterface({terminal:!0,input:v,output:Y}),M=new $o(P),{promise:W,resolve:J,reject:X}=LM1.withResolver(),O=()=>X(new NM1);if(K){let N=()=>X(new CM1({cause:K.reason}));if(K.aborted)return N(),Object.assign(W,{cancel:O});K.addEventListener("abort",N),H.add(()=>K.removeEventListener("abort",N))}H.add(G$((N,E)=>{X(new er(`User force closed the prompt with ${N} ${E}`))}));let G=()=>X(new er("User force closed the prompt with SIGINT"));P.on("SIGINT",G),H.add(()=>P.removeListener("SIGINT",G));let V=()=>M.checkCursorPos();return P.input.on("keypress",V),H.add(()=>P.input.removeListener("keypress",V)),YE2(P,(N)=>{let E=va4.bind(()=>Lz.clearAll());return P.on("close",E),H.add(()=>P.removeListener("close",E)),N(()=>{try{let j=f(w,(S)=>{setImmediate(()=>J(S))});if(j===void 0){let S=$[1]?.getFileName();throw Error(`Prompt functions must return a string.
|
|
3895
3895
|
at ${S}`)}let[g,k]=typeof j==="string"?[j]:j;M.render(g,k),Lz.run()}catch(j){X(j)}}),Object.assign(W.then((j)=>{return Lz.clearAll(),j},(j)=>{throw Lz.clearAll(),j}).finally(()=>{H.forEach((j)=>j()),M.done({clearContent:Boolean(q.clearPromptOnDone)}),Y.end()}).then(()=>W),{cancel:O})})}}import{styleText as Ka4}from"util";class wX{separator=Ka4("dim",Array.from({length:15}).join(cN.line));type="separator";constructor(f){if(f)this.separator=f}static isSeparator(f){return Boolean(f&&typeof f==="object"&&"type"in f&&f.type==="separator")}}import{styleText as GS}from"util";var Ha4={icon:{cursor:cN.pointer},style:{disabled:(f)=>GS("dim",`- ${f}`),description:(f)=>GS("cyan",f),keysHelpTip:(f)=>f.map(([$,Z])=>`${GS("bold",$)} ${GS("dim",Z)}`).join(GS("dim"," \u2022 "))},indexMode:"hidden",keybindings:[]};function LN(f){return!wX.isSeparator(f)&&!f.disabled}function Ya4(f){return f.map(($)=>{if(wX.isSeparator($))return $;if(typeof $!=="object"||$===null||!("value"in $)){let q=String($);return{value:$,name:q,short:q,disabled:!1}}let Z=$.name??String($.value),w={value:$.value,name:Z,short:$.short??Z,disabled:$.disabled??!1};if($.description)w.description=$.description;return w})}var bz=gM1((f,$)=>{let{loop:Z=!0,pageSize:w=7}=f,q=OS(Ha4,f.theme),{keybindings:v}=q,[K,H]=_W("idle"),Y=IM1({status:K,theme:q}),P=Sz(),M=!v.includes("vim"),W=zS(()=>Ya4(f.choices),[f.choices]),J=zS(()=>{let u=W.findIndex(LN),a=W.findLastIndex(LN);if(u===-1)throw new DS("[select prompt] No selectable choices. All choices are disabled.");return{first:u,last:a}},[W]),X=zS(()=>{if(!("default"in f))return-1;return W.findIndex((u)=>LN(u)&&u.value===f.default)},[f.default,W]),[O,G]=_W(X===-1?J.first:X),V=W[O];RM1((u,a)=>{if(clearTimeout(P.current),VM1(u))H("done"),$(V.value);else if(XS(u,v)||sr(u,v)){if(a.clearLine(0),Z||XS(u,v)&&O!==J.first||sr(u,v)&&O!==J.last){let I=XS(u,v)?-1:1,x=O;do x=(x+I+W.length)%W.length;while(!LN(W[x]));G(x)}}else if(TM1(u)&&!Number.isNaN(Number(a.line))){let I=Number(a.line)-1,x=-1,f1=W.findIndex((Z1)=>{if(wX.isSeparator(Z1))return!1;return x++,x===I}),e=W[f1];if(e!=null&&LN(e))G(f1);P.current=setTimeout(()=>{a.clearLine(0)},700)}else if(GM1(u))a.clearLine(0);else if(M){let I=a.line.toLowerCase(),x=W.findIndex((f1)=>{if(wX.isSeparator(f1)||!LN(f1))return!1;return f1.name.toLowerCase().startsWith(I)});if(x!==-1)G(x);P.current=setTimeout(()=>{a.clearLine(0)},700)}}),gz(()=>()=>{clearTimeout(P.current)},[]);let N=q.style.message(f.message,K),E=q.style.keysHelpTip([["\u2191\u2193","navigate"],["\u23CE","select"]]),j=0,g=cM1({items:W,active:O,renderItem({item:u,isActive:a,index:I}){if(wX.isSeparator(u))return j++,` ${u.separator}`;let x=q.indexMode==="number"?`${I+1-j}. `:"";if(u.disabled){let Z1=typeof u.disabled==="string"?u.disabled:"(disabled)";return q.style.disabled(`${x}${u.name} ${Z1}`)}let f1=a?q.style.highlight:(Z1)=>Z1,e=a?q.icon.cursor:" ";return f1(`${e} ${x}${u.name}`)},pageSize:w,loop:Z});if(K==="done")return[Y,N,q.style.answer(V.short)].filter(Boolean).join(" ");let{description:k}=V;return`${[[Y,N].filter(Boolean).join(" "),g," ",k?q.style.description(k):"",E].filter(Boolean).join(`
|
|
3896
|
-
`).trimEnd()}${eh}`});import{readdir as Wa4,rm as Ja4}from"fs/promises";async function CE2(f,$,Z){let w=[`^${o0()}-`,"\\.exe$","\\.out$","\\.pyc$","\\.class$","\\.o$","\\.hi$","~$","^a\\.out$","^__pycache__$"],q=["\\.cor$","^problem\\.[a-z][a-z]\\.ps$","^problem\\.[a-z][a-z]\\.md$","^problem\\.[a-z][a-z]\\.
|
|
3896
|
+
`).trimEnd()}${eh}`});import{readdir as Wa4,rm as Ja4}from"fs/promises";async function CE2(f,$,Z){let w=[`^${o0()}-`,"\\.exe$","\\.out$","\\.pyc$","\\.class$","\\.o$","\\.hi$","~$","^a\\.out$","^__pycache__$"],q=["\\.cor$","^problem\\.[a-z][a-z]\\.ps$","^problem\\.[a-z][a-z]\\.pdf$","^problem\\.[a-z][a-z]\\.md$","^problem\\.[a-z][a-z]\\.txt$","^problem\\.[a-z][a-z]\\.html$","^problem\\.[a-z][a-z]\\.short\\.md$","^problem\\.[a-z][a-z]\\.short\\.txt$","^problem\\.[a-z][a-z]\\.short\\.html$"];if($)w.push(...q);let v=new RegExp(w.join("|")),K=await Wa4(Z,{withFileTypes:!0}),H=[];for(let P of K){let M=Ma4.join(Z,P.name);if(v.test(P.name))H.push(M)}if(H.length===0){c.success("No entries to remove");return}c.warning(`The following ${H.length} entries will be removed:`);for(let P of H.sort())c.print(c.hyperlink(Z,P));if(!f){if(console.log(),!await $X({message:`Remove ${H.length} entries?`,default:!1}))return}let Y=0;for(let P of H)try{await Ja4(P,{recursive:!0,force:!0}),Y++}catch(M){c.error(`Could not remove entry ${P}`)}if(c.success(`Removed ${Y} entries`),!$)c.warning("You can use the --all option to remove generated statement and correct files as well")}import{exists as SM1}from"fs/promises";$W();import{join as bM1}from"path";import{normalize as NE2,resolve as EE2}from"path";function Zo(f){let $=/\\Problem\{(.*?)\}/,Z=f.match($);if(Z)return Z[1].trim();return null}async function TS(f){let $=bM1(I7(),"assets","prompts",`${f}.md`);if(await SM1($))return await V5($);else return""}async function KW(f){let $=[];for(let Z of f){if(Z===".")Z=NE2(EE2(process.cwd()));if(await SM1(bM1(Z,"handler.yml")))$.push(Z);else for(let w of Object.keys(m0).sort()){let q=bM1(Z,w,"handler.yml");if(await SM1(q))$.push(EE2(Z,w))}}return $.map((Z)=>NE2(Z)).sort()}var jE2=new g6("clean").description("Clean disposable files").option("-d, --directories <directories...>","problem directories",["."]).option("-a, --all","clean all disposable files (including generated statement and correct files",!1).addOption(new Xe("-f, --force","force removal").conflicts("dryRun")).addOption(new Xe("-n, --dry-run","show but do not remove files").conflicts("force")).action(async({directories:f,all:$,force:Z,dryRun:w})=>{let q=Z||!1;await c.section("Cleaning generated files",async()=>{let v=await KW(f);for(let K of v)await c.section(`Cleaning directory ${c.hyperlink(K)}`,async()=>{await CE2(q,$,K)})})});var wo=new g6("compilers").description("Query compiler information").action(async()=>{let f=await RT2();console.dir(f)});wo.command("list-defined").description("List all defined compiler names").action(async()=>{let f=await lT2();console.dir(f)});wo.command("list-available").description("List all available compiler names").action(async()=>{let f=await IT2();console.dir(f)});var uM1=f4(Nl(),1);var qX=new g6("config").summary("Manage configuration").description(`Manage configuration
|
|
3897
3897
|
|
|
3898
3898
|
The actual configuration file is stored at ${ll()}`).action(()=>{qX.help()});qX.command("show").alias("list").description("Show configuration options").action(async()=>{let f=await e71();c.yaml(f)});qX.command("get <key>").description("Get the value of a configuration option").action((f)=>{if(!(f in j5))throw Error(`Configuration key ${f} does not exist`);console.log(j5[f])});qX.command("set <key> <value>").description("Set the value of a configuration option").action(async(f,$)=>{if(!(f in j5))throw Error(`Configuration key ${f} does not exist`);let Z=vx($),w=DJ.parse({...j5,[f]:Z});await Il(w),c.success(`Configuration key ${f} updated successfully`)});qX.command("edit").description("Open an editor (uses $EDITOR or $VISUAL) to modify the configuration options").action(async()=>{let f=uM1.default.stringify(j5,null,4);while(!0){let $=await SP1({message:"Edit configuration",default:f,postfix:".yml",waitForUserInput:!1});try{let Z=DJ.parse(uM1.default.parse($));await Il(Z),c.success("Configuration options updated successfully");return}catch(Z){if(Z instanceof eW)console.error(tX(Z).toString());else console.error(Z);if(!await $X({message:"Edit again?",default:!0})){c.warning("No changes made to the configuration options");return}f=$}}});qX.command("reset").description("Reset configuration to default values").option("-f, --force","force reset without confirmation",!1).action(async({force:f})=>{if(!f){if(!await $X({message:"Are you sure you want to reset the configuration to default values?",default:!1})){c.warning("Reset cancelled");return}}let $=DJ.parse({});await Il($),c.success("Configuration reset to default values successfully")});Xz();var yM1=f4(qo(),1);import{cp as ca4,exists as xE2,glob as BE2}from"fs/promises";import VS from"path";var vo=VS.join(I7(),"assets","problems");async function La4(f){let $=[],Z=await Array.fromAsync(BE2("*",{cwd:vo}));Z.sort();for(let q of Z){$.push(new HK(KY1(q)));let v=await Array.fromAsync(BE2("*.pbm",{cwd:VS.join(vo,q)}));v.sort();for(let K of v)$.push({name:K,value:VS.join(q,K)})}let w=void 0;while(!0){w=await bz({message:"Select a template to clone:",choices:$,default:w});let q=VS.join(vo,w),v=await YZ(q,"README.md"),K=yM1.default(q,{allFiles:!0,dirsFirst:!1});if(console.log(),await c.markdown(v),console.log(K),await $X({message:`Clone template ${w} to ${f}?`,default:!0}))return w}}async function dE2(f,$){if(await xE2(f))throw Error(`Directory ${f} already exists`);if(!f.endsWith(".pbm"))throw Error("The output directory must end with .pbm");if(!$)$=await La4(f);let Z=VS.join(vo,$);if(!await xE2(Z))throw Error(`Template ${$} does not exist`);await ca4(Z,f,{recursive:!0}),await _x(f),c.success(`Created problem ${c.hyperlink(f)} from template ${$}`);let w=yM1.default(f,{allFiles:!0,dirsFirst:!1});console.log(w)}var FE2=new g6("clone").description("Clone a template into a new problem").argument("[template]","template to use (empty to interactive selection)").option("-d, --directory <path>","output directory","new-problem.pbm").action(async(f,{directory:$})=>{await dE2($,f)});var UE2=new g6("doctor").description("Diagnose status of the environment").action(async()=>{await c.section("Perform checks",async()=>{await c.section("Checking Python3 installation",hT2),await c.section("Checking C/C++ installation",XT2),await c.section("Checking Haskell installation",DT2),await c.section("Checking Clojure installation",OT2),await c.section("Checking Java installation",zT2),await c.section("Checking Rust installation",AT2),await c.section("Checking Verilog installation",GT2),await c.section("Checking CodeMetrics installation",VT2),await c.section("Checking XeLaTeX installation",CT2),await c.section("Checking PdfLaTeX installation",TT2),await c.section("Checking Pandoc installation",NT2),await c.section("Checking AI models",ET2),await c.section("Checking terminal",jT2)})});var Fj2=f4(_f1(),1);import{join as dj2}from"path";$W();var kM1=f4(tp(),1);import{join as aE2}from"path";$W();import{exists as ga4}from"fs/promises";async function iE2(f,$,Z){let w=$.originalLanguage;if(!w)throw Error("Original language not set, cannot generate translations");if(Z===w)throw Error(`Language ${Z} is the original language`);if($.languages.includes(Z))throw Error(`Language ${Z} already exists`);if(!og.includes(Z))throw Error(`Language ${Z} is not supported`);let q=await YZ($.directory,`problem.${w}.tex`);await c.section(`Translating from ${m0[w]} to ${m0[Z]}`,async()=>{let v=`
|
|
3899
3899
|
Translate the given problem statement to ${m0[Z]}.
|
|
@@ -4065,7 +4065,7 @@ User question: ${f}`,v=await wK($,Z,q);await c.markdown(v),c.warning(`This answe
|
|
|
4065
4065
|
*
|
|
4066
4066
|
* Code licensed under MIT (https://github.com/dicebear/dicebear/blob/v4/packages/initials/LICENSE)
|
|
4067
4067
|
* Copyright (c) 2024 Florian Körner
|
|
4068
|
-
*/var Zs={};KZ(Zs,{schema:()=>Fx2,meta:()=>bf5,create:()=>uf5});var lX1={};KZ(lX1,{ringTwo:()=>ux2,ringThree:()=>yx2,ringOne:()=>bx2,ringFour:()=>kx2,ringFive:()=>mx2,ring:()=>Sx2});var Sx2={container:(f,$)=>{var Z,w,q,v,K,H,Y,P,M,W,J,X,O,G,V,N,E,j,g,k;return`${(w=(Z=f.ringOne)===null||Z===void 0?void 0:Z.value(f,$))!==null&&w!==void 0?w:""}${(v=(q=f.ringTwo)===null||q===void 0?void 0:q.value(f,$))!==null&&v!==void 0?v:""}${(H=(K=f.ringThree)===null||K===void 0?void 0:K.value(f,$))!==null&&H!==void 0?H:""}${(P=(Y=f.ringFour)===null||Y===void 0?void 0:Y.value(f,$))!==null&&P!==void 0?P:""}${(W=(M=f.ringFive)===null||M===void 0?void 0:M.value(f,$))!==null&&W!==void 0?W:""}<g transform="matrix(1 0 0 -1 0 100)">${(X=(J=f.ringOne)===null||J===void 0?void 0:J.value(f,$))!==null&&X!==void 0?X:""}</g><g transform="matrix(1 0 0 -1 0 100)">${(G=(O=f.ringTwo)===null||O===void 0?void 0:O.value(f,$))!==null&&G!==void 0?G:""}</g><g transform="matrix(1 0 0 -1 0 100)">${(N=(V=f.ringThree)===null||V===void 0?void 0:V.value(f,$))!==null&&N!==void 0?N:""}</g><g transform="matrix(1 0 0 -1 0 100)">${(j=(E=f.ringFour)===null||E===void 0?void 0:E.value(f,$))!==null&&j!==void 0?j:""}</g><g transform="matrix(1 0 0 -1 0 100)">${(k=(g=f.ringFive)===null||g===void 0?void 0:g.value(f,$))!==null&&k!==void 0?k:""}</g><circle cx="50" cy="50" r="45" stroke="#fff" stroke-opacity=".25" stroke-width="10" style="mix-blend-mode:lighten"/><circle cx="50" cy="50" r="25" stroke="#fff" stroke-opacity=".25" stroke-width="10" style="mix-blend-mode:lighten"/><circle cx="50" cy="50" r="10" fill="#fff" fill-opacity=".25" style="mix-blend-mode:lighten"/>`}};var bx2={half:(f,$)=>`<path d="M90 50h10c0-27.614-22.386-50-50-50S0 22.386 0 50h10c0-22.091 17.909-40 40-40s40 17.909 40 40Z" fill="${x1.xml(`${$.ring}`)}"/>`,quarter:(f,$)=>`<path d="M50 10V0C22.386 0 0 22.386 0 50h10c0-22.091 17.909-40 40-40Z" fill="${x1.xml(`${$.ring}`)}"/>`,eighth:(f,$)=>`<path d="M21.716 21.716C14.477 28.954 10 38.954 10 50H0c0-13.807 5.596-26.307 14.645-35.355l7.07 7.07Z" fill="${x1.xml(`${$.ring}`)}"/>`,full:(f,$)=>`<circle cx="50" cy="50" r="45" stroke="${x1.xml(`${$.ring}`)}" stroke-width="10"/>`};var ux2={eighth:(f,$)=>`<path d="M20 50c0-8.284 3.358-15.784 8.787-21.213l-7.071-7.071C14.477 28.954 10 38.954 10 50h10Z" fill="${x1.xml(`${$.ring}`)}"/>`,quarter:(f,$)=>`<path d="M50 10c-22.091 0-40 17.909-40 40h10c0-16.569 13.431-30 30-30V10Z" fill="${x1.xml(`${$.ring}`)}"/>`,half:(f,$)=>`<path d="M90 50c0-22.091-17.909-40-40-40S10 27.909 10 50h10c0-16.569 13.431-30 30-30 16.569 0 30 13.431 30 30h10Z" fill="${x1.xml(`${$.ring}`)}"/>`,full:(f,$)=>`<circle cx="50" cy="50" r="35" stroke="${x1.xml(`${$.ring}`)}" stroke-width="10"/>`};var yx2={eighth:(f,$)=>`<path d="M30 50a19.937 19.937 0 0 1 5.858-14.142l-7.071-7.071C23.357 34.216 20 41.716 20 50h10Z" fill="${x1.xml(`${$.ring}`)}"/>`,quarter:(f,$)=>`<path d="M50 20c-16.569 0-30 13.431-30 30h10c0-11.046 8.954-20 20-20V20Z" fill="${x1.xml(`${$.ring}`)}"/>`,half:(f,$)=>`<path d="M80 50c0-16.569-13.431-30-30-30-16.569 0-30 13.431-30 30h10c0-11.046 8.954-20 20-20s20 8.954 20 20h10Z" fill="${x1.xml(`${$.ring}`)}"/>`,full:(f,$)=>`<circle cx="50" cy="50" r="25" stroke="${x1.xml(`${$.ring}`)}" stroke-width="10"/>`};var kx2={eighth:(f,$)=>`<path d="M40 50a9.97 9.97 0 0 1 2.929-7.071l-7.071-7.071A19.937 19.937 0 0 0 30 50h10Z" fill="${x1.xml(`${$.ring}`)}"/>`,quarter:(f,$)=>`<path d="M50 30c-11.046 0-20 8.954-20 20h10c0-5.523 4.477-10 10-10V30Z" fill="${x1.xml(`${$.ring}`)}"/>`,half:(f,$)=>`<path d="M70 50c0-11.046-8.954-20-20-20s-20 8.954-20 20h10c0-5.523 4.477-10 10-10s10 4.477 10 10h10Z" fill="${x1.xml(`${$.ring}`)}"/>`,full:(f,$)=>`<circle cx="50" cy="50" r="15" stroke="${x1.xml(`${$.ring}`)}" stroke-width="10"/>`};var mx2={eighth:(f,$)=>`<path d="m42.929 42.929 7.07 7.07H40a9.97 9.97 0 0 1 2.93-7.07Z" fill="${x1.xml(`${$.ring}`)}"/>`,quarter:(f,$)=>`<path d="M50 40v10H40c0-5.523 4.477-10 10-10Z" fill="${x1.xml(`${$.ring}`)}"/>`,half:(f,$)=>`<path d="M60 50c0-5.523-4.477-10-10-10s-10 4.477-10 10h20Z" fill="${x1.xml(`${$.ring}`)}"/>`,full:(f,$)=>`<circle cx="50" cy="50" r="10" fill="${x1.xml(`${$.ring}`)}"/>`};function HA({prng:f,group:$,width:Z,height:w,values:q=[],rotation:v,offsetX:K,offsetY:H}){let Y=lX1,P=f.pick(q),M=f.integer(Math.min(...v),Math.max(...v)),W=f.integer(Math.min(...K),Math.max(...K)),J=f.integer(Math.min(...H),Math.max(...H));if(P&&Y[$][P])return{name:P,value(X,O){var G,V,N;let E=Y[$][P](X,O);if(this.rotation||this.offsetX||this.offsetY)E=`<g transform="translate(${(G=this.offsetX)!==null&&G!==void 0?G:0}, ${(V=this.offsetY)!==null&&V!==void 0?V:0}) rotate(${(N=this.rotation)!==null&&N!==void 0?N:0} ${Z/2} ${w/2})">${E}</g>`;return E},rotation:M,offsetX:W,offsetY:J};else return}function xx2({prng:f,options:$}){var Z,w,q,v,K,H;let Y=HA({prng:f,group:"ring",values:$.ring,width:100,height:100,rotation:((Z=$.ringRotation)===null||Z===void 0?void 0:Z.length)?$.ringRotation:[0],offsetX:[0],offsetY:[0]}),P=HA({prng:f,group:"ringOne",values:$.ringOne,width:100,height:100,rotation:((w=$.ringOneRotation)===null||w===void 0?void 0:w.length)?$.ringOneRotation:[0],offsetX:[0],offsetY:[0]}),M=HA({prng:f,group:"ringTwo",values:$.ringTwo,width:100,height:100,rotation:((q=$.ringTwoRotation)===null||q===void 0?void 0:q.length)?$.ringTwoRotation:[0],offsetX:[0],offsetY:[0]}),W=HA({prng:f,group:"ringThree",values:$.ringThree,width:100,height:100,rotation:((v=$.ringThreeRotation)===null||v===void 0?void 0:v.length)?$.ringThreeRotation:[0],offsetX:[0],offsetY:[0]}),J=HA({prng:f,group:"ringFour",values:$.ringFour,width:100,height:100,rotation:((K=$.ringFourRotation)===null||K===void 0?void 0:K.length)?$.ringFourRotation:[0],offsetX:[0],offsetY:[0]}),X=HA({prng:f,group:"ringFive",values:$.ringFive,width:100,height:100,rotation:((H=$.ringFiveRotation)===null||H===void 0?void 0:H.length)?$.ringFiveRotation:[0],offsetX:[0],offsetY:[0]});return{ring:Y,ringOne:P,ringTwo:M,ringThree:W,ringFour:J,ringFive:X}}function Bx2(f){return f==="transparent"?f:`#${f}`}function dx2({prng:f,options:$}){var Z;return{ring:Bx2(f.pick((Z=$.ringColor)!==null&&Z!==void 0?Z:[],"transparent"))}}var Fx2={$schema:"http://json-schema.org/draft-07/schema#",properties:{ring:{type:"array",items:{type:"string",enum:["container"]},default:["container"]},ringColor:{type:"array",items:{type:"string",pattern:"^(transparent|[a-fA-F0-9]{6})$"},default:["ffd54f","64b5f6","4dd0e1","ff8a65","9575cd","81c784","7986cb","4fc3f7","aed581","dce775","ffb74d","f06292","ba68c8","e57373","4db6ac","fff176"]},ringFive:{type:"array",items:{type:"string",enum:["eighth","quarter","half","full"]},default:["full"]},ringFiveRotation:{type:"array",items:{type:"integer",minimum:-180,maximum:180},maxItems:2,default:[-180,180]},ringFour:{type:"array",items:{type:"string",enum:["eighth","quarter","half","full"]},default:["quarter","half"]},ringFourRotation:{type:"array",items:{type:"integer",minimum:-180,maximum:180},maxItems:2,default:[-180,180]},ringOne:{type:"array",items:{type:"string",enum:["half","quarter","eighth","full"]},default:["half","quarter"]},ringOneRotation:{type:"array",items:{type:"integer",minimum:-180,maximum:180},maxItems:2,default:[-180,180]},ringRotation:{type:"array",items:{type:"integer",minimum:-180,maximum:180},maxItems:2,default:[-180,180]},ringThree:{type:"array",items:{type:"string",enum:["eighth","quarter","half","full"]},default:["quarter","half"]},ringThreeRotation:{type:"array",items:{type:"integer",minimum:-180,maximum:180},maxItems:2,default:[-180,180]},ringTwo:{type:"array",items:{type:"string",enum:["eighth","quarter","half","full"]},default:["quarter","half"]},ringTwoRotation:{type:"array",items:{type:"integer",minimum:-180,maximum:180},maxItems:2,default:[-180,180]}}};var bf5={title:"Rings",creator:"DiceBear",source:"https://www.dicebear.com",homepage:"https://www.dicebear.com",license:{name:"CC0 1.0",url:"https://creativecommons.org/publicdomain/zero/1.0/"}},uf5=({prng:f,options:$})=>{var Z,w;let q=xx2({prng:f,options:$}),v=dx2({prng:f,options:$});return{attributes:{viewBox:"0 0 100 100",fill:"none","shape-rendering":"crispEdges"},body:`${(w=(Z=q.ring)===null||Z===void 0?void 0:Z.value(q,v))!==null&&w!==void 0?w:""}`,extra:()=>({...Object.entries(q).reduce((K,[H,Y])=>{return K[H]=Y===null||Y===void 0?void 0:Y.name,K},{}),...Object.entries(v).reduce((K,[H,Y])=>{return K[`${H}Color`]=Y,K},{})})}};var cX1=f4(Ux2(),1);Xz();var Qx2=f4(qo(),1);import{cp as cZ,exists as ws,glob as TK,mkdir as AW,rm as ax2,writeFile as Ff5}from"fs/promises";import CE from"os";import{join as x2}from"path";class LX1{directory;problem_nm;workspace;workDir;stagingDir;stagingDirLang="to-be-set";workDirLang="to-be-set";problem_id="to-be-set";languages=[];original_language="";problem_ymls={};handlers={};author="";author_email="";problem_type="std";constructor(f,$){this.directory=f,this.problem_nm=$,this.workspace=x2(f,o0()+"-stage",XD()),this.workDir=x2(this.workspace,"work"),this.stagingDir=x2(this.workspace,"stage",this.problem_nm)}async stage(){await c.section(`Staging problem at ${this.directory}`,async()=>{await this.createWorkspace(),await this.separateByLanguages(),await this.readMetadata();for(let f of this.languages)await c.section(`Staging language ${f}`,async()=>{if(await this.setLanguage(f),this.problem_type==="std")await this.stageLanguage_Std(f);else if(this.problem_type==="game")await this.stageLanguage_Game(f);else if(this.problem_type==="quiz")await this.stageLanguage_Quizz(f)});await this.stageFirstToSolve(),await this.stageInformationYml(),await this.stageReadMd()}),await c.section("Summary",async()=>{let f=x2(this.stagingDir,"README.md");c.success("README.md content:"),await c.markdown(await V5(f)),c.success("Staging tree:"),c.print(Qx2.default(this.stagingDir))}),c.success(`Problem successfully staged at directory ${c.hyperlink(this.stagingDir)}`)}async stageLanguage_Std(f){await this.prepareStatements_Std(f),await this.computeCodeMetrics(f),await this.stageProblemFiles_Std(f),await this.stageAwards(f),await this.stageStatements(f),await this.stageZip_Std(f)}async stageLanguage_Game(f){await this.prepareStatements_Game(f),await this.computeCodeMetrics(f),await this.stageProblemFiles_Game(f),await this.stageAwards(f),await this.stageStatements(f),await this.stageZip_Game(f),await this.stageViewer(f)}async stageLanguage_Quizz(f){await this.stageQuiz(f)}async setLanguage(f){this.workDirLang=x2(this.workDir,f),this.problem_id=`${this.problem_nm}_${f}`,this.stagingDirLang=x2(this.stagingDir,f),await AW(this.stagingDirLang,{recursive:!0})}async createWorkspace(){await c.section(`Creating workspace ${this.workspace}`,async()=>{if(await ws(this.workspace))throw Error(`Workspace directory ${this.workspace} already exists`);await AW(this.workspace,{recursive:!0}),await AW(this.workDir,{recursive:!0}),await AW(this.stagingDir,{recursive:!0}),c.directory(this.workspace)})}doNotCopy(f,$){if(f==="problem.yml")return!0;if(f.startsWith(o0()))return!0;let Z=f.match(/^problem\.([a-z][a-z])\.[a-z]*$/);if(Z&&Z[1]!==$)return!0;if(f===`problem.${$}.pdf`)return!0;return!1}async separateByLanguages(){await c.section("Detecting if there are language folders or not",async()=>{if((await Array.fromAsync(TK("handler.yml",{cwd:this.directory}))).length===0)await this.separateByLanguagesWithFolders();else await this.separateByLanguagesWithoutFolders()})}async separateByLanguagesWithoutFolders(){await c.section("Separating problem by languages without folders",async()=>{let $=(await Array.fromAsync(TK("problem.[a-z][a-z].yml",{cwd:this.directory}))).map((Z)=>{let w=Z.match(/^problem\.([a-z][a-z])\.yml$/);if(!w)throw Error(`Unexpected yml file name: ${Z}`);return w[1]});this.languages=$;for(let Z of $){let w=x2(this.workDir,Z);await AW(w,{recursive:!0});let q=await Array.fromAsync(TK("*",{cwd:this.directory}));for(let v of q){if(this.doNotCopy(v,Z))continue;await cZ(x2(this.directory,v),x2(w,v),{recursive:!0})}}c.success(`Found languages: ${$.join(", ")}`)})}async separateByLanguagesWithFolders(){await c.section("Separating problem by languages with folders",async()=>{let f=await Array.fromAsync(TK("[a-z][a-z]",{cwd:this.directory}));this.languages=f;for(let $ of f){let Z=x2(this.directory,$),w=x2(this.workDir,$);await AW(w,{recursive:!0});let q=await Array.fromAsync(TK("*",{cwd:Z}));for(let v of q){if(this.doNotCopy(v,$))continue;await cZ(x2(Z,v),x2(w,v),{recursive:!0})}}c.success(`Found languages: ${f.join(", ")}`)})}async readMetadata(){await c.section("Reading problem metadata",async()=>{for(let $ of this.languages){let Z=x2(this.workDir,$,`problem.${$}.yml`);this.problem_ymls[$]=await J_(Z)}for(let $ of this.languages){let Z=x2(this.workDir,$,"handler.yml");this.handlers[$]=await J_(Z)}for(let $ of this.languages){let Z=this.problem_ymls[$];if(Z.author)this.author=Z.author;if(Z.author)this.original_language=$;if(Z.email)this.author_email=Z.email}if(!this.original_language)throw Error("Original language not found in problem.<lang>.yml files");let f=this.handlers[this.original_language];if(f.handler==="game")this.problem_type="game";else if(f.handler==="quiz")this.problem_type="quiz";else this.problem_type="std";c.success(`Problem type: ${this.problem_type}`),c.success(`Original language: ${this.original_language}`),c.success(`Author: ${this.author} <${this.author_email}>`)})}async findGoldenSolution(f){return await c.section("Finding golden solution",async()=>{let $=this.handlers[f].handler,Z=this.handlers[f].compilers||"",w;if($==="circuits")w="solution.v";else if(Z==="RunPython")w="solution.py";else if(Z==="RunHaskell"||Z==="GHC")w="solution.hs";else if(Z==="RunClojure"||Z==="Clojure")w="solution.clj";else{let q=this.handlers[f].solution||"C++",v=Uf5[q];if(!v)throw Error(`Unknown programming language ${q} for solution`);let K=x2(this.workDir,f,`solution.${v}`);if(!await ws(K))throw Error(`Golden solution file ${K} not found`);w=`solution.${v}`}return c.success(`Golden solution: ${w}`),w})}async prepareStatements_Std(f){await c.section("Preparing standard statements",async()=>{let $=x2(this.workDir,f);c.command(`jtk make pdf html md txt --problem_nm ${this.problem_nm}`),await R3({cwd:$,stdout:"inherit",stderr:"inherit"})`jtk make pdf html md txt --problem_nm ${this.problem_nm}`,await ax2(x2($,"jtk-pdf"),{recursive:!0,force:!0}),await ax2(x2($,"jtk-text"),{recursive:!0,force:!0}),c.success("Generated statements")})}async prepareStatements_Game(f){await c.section("Preparing game statements",async()=>{let $=x2(this.workDirLang,"Doc");await c.section("Generating PDF with xelatex",async()=>{c.command("xelatex -interaction=nonstopmode -file-line-error main.tex"),await R3({cwd:$})`xelatex -interaction=nonstopmode -file-line-error main.tex`,await R3({cwd:$})`xelatex -interaction=nonstopmode -file-line-error main.tex`,await cZ(x2($,"main.pdf"),x2(this.workDirLang,`problem.${f}.pdf`)),c.success(`Generated ${c.hyperlink(this.workDirLang,`problem.${f}.pdf`)}`)}),await c.section("Generating TXT with pandoc",async()=>{c.command("pandoc --quiet main.tex --to plain --output main.txt"),await R3({cwd:$})`pandoc --quiet main.tex --to plain --output main.txt`,await cZ(x2($,"main.txt"),x2(this.workDirLang,`problem.${f}.txt`)),c.success(`Generated ${c.hyperlink(this.workDirLang,`problem.${f}.txt`)}`),await cZ(x2($,"main.txt"),x2(this.workDirLang,`problem.${f}.short.txt`)),c.success(`Generated ${c.hyperlink(this.workDirLang,`problem.${f}.short.txt`)}`)}),await c.section("Generating Markdown with pandoc",async()=>{c.command("pandoc --quiet main.tex --to markdown --to markdown-header_attributes --output main.md"),await R3({cwd:$})`pandoc --quiet main.tex --to markdown --to markdown-header_attributes --output main.md`,await cZ(x2($,"main.md"),x2(this.workDirLang,`problem.${f}.md`)),c.success(`Generated ${c.hyperlink(this.workDirLang,`problem.${f}.md`)}`),await cZ(x2($,"main.md"),x2(this.workDirLang,`problem.${f}.short.md`)),c.success(`Generated ${c.hyperlink(this.workDirLang,`problem.${f}.short.md`)}`)}),await c.section("Generating HTML with pandoc",async()=>{c.command("pandoc --quiet main.tex --to html --mathml --embed-resources --standalone --output main.html"),await R3({cwd:$})`pandoc --quiet main.tex --to html --mathml --embed-resources --standalone --output main.html`,await cZ(x2($,"main.html"),x2(this.workDirLang,`problem.${f}.html`)),c.success(`Generated ${c.hyperlink(this.workDirLang,`problem.${f}.html`)}`),await cZ(x2($,"main.html"),x2(this.workDirLang,`problem.${f}.short.html`)),c.success(`Generated ${c.hyperlink(this.workDirLang,`problem.${f}.short.html`)}`)})})}async computeCodeMetrics(f){if(!await YT2()){c.warning("jutge-code-metrics not installed, skipping code metrics");return}if(this.problem_type!=="std"){await c.section("Skipping code metrics",async()=>{await E5(),c.warning("Code metrics not applicable for this problem type")});return}await c.section("Computing code metrics",async()=>{let $=await this.findGoldenSolution(f);c.command(`jutge-code-metrics ${$}`);let{stdout:Z}=await R3({cwd:this.workDirLang})`jutge-code-metrics ${$}`;await m7(x2(this.stagingDirLang,"code-metrics.json"),Z),c.success(`Generated ${c.hyperlink(this.stagingDirLang,"code-metrics.json")}`)})}async stageProblemFiles_Std(f){let $=(v)=>{if(v==="handler.yml")return!0;for(let K of["inp","cor","ops"])if(v.endsWith(`.${K}`))return!0;for(let K of ix2){if(v===`solution.${K}`)return!0;if(v===`main.${K}`)return!0}if(v==="checker.py")return!0;if(v==="checker.cc")return!0;return!1},Z=x2(this.stagingDirLang,"problem.pbm");await AW(Z,{recursive:!0});let w=await Array.fromAsync(TK("*",{cwd:this.workDirLang})),q=0;for(let v of w)if($(v))await cZ(x2(this.workDirLang,v),x2(Z,v)),q++;c.success(`Staged ${q} files to ${c.hyperlink(this.stagingDirLang,"problem.pbm")}`)}async stageProblemFiles_Game(f){let $=(K)=>{if(K==="handler.yml")return!0;if(K==="Makefile")return!0;if(K==="README.txt")return!0;if(K==="README.md")return!0;if(K.endsWith(".cc"))return!0;if(K.endsWith(".hh"))return!0;if(K.endsWith(".cnf"))return!0;return!1},Z=x2(this.workDirLang,"Runner"),w=x2(this.stagingDirLang,"problem.pbm");await AW(w,{recursive:!0});let q=await Array.fromAsync(TK("*",{cwd:Z})),v=0;for(let K of q)if($(K))await cZ(x2(Z,K),x2(w,K)),v++;c.success(`Staged ${v} files to ${c.hyperlink(this.stagingDirLang,"problem.pbm")}`)}async stageAwards(f){await c.section("Staging awards",async()=>{let $=0;for(let Z of["award.png","award.txt"])if(await qx(this.workDirLang,Z))await cZ(x2(this.workDirLang,Z),x2(this.stagingDir,Z)),$++;if($>0)c.success(`Staged ${$} award file(s)`);else c.warning("No award files found")})}async stageStatements(f){await c.section("Staging statements",async()=>{let $=0;for(let Z of["pdf","html","md","txt","yml","short.html","short.md","short.txt"]){let w=`problem.${f}.${Z}`,q=`problem.${Z}`;if(await qx(this.workDirLang,w))await cZ(x2(this.workDirLang,w),x2(this.stagingDirLang,q)),$++}c.success(`Staged ${$} statement file(s)`)})}async stageFirstToSolve(){await c.section("Staging first-to-solve avatar",async()=>{let f=x2(this.stagingDir,"first-to-solve.svg"),Z=gx2(Zs,{seed:this.problem_nm}).toString();await m7(f,Z),c.success(`Generated ${c.hyperlink(this.stagingDir,"first-to-solve.svg")}`)})}async stageZip_Std(f){let $=(q)=>{for(let v of["pdf","html","md","txt"])if(q===`problem.${f}.${v}`)return!0;for(let v of ix2){if(q===`main.${v}`)return!0;if(q===`code.${v}`)return!0}if(/^(sample|public).*\.(inp|cor)$/.test(q))return!0;return!1},Z=[],w=await Array.fromAsync(TK("*",{cwd:this.workDirLang}));for(let q of w)if($(q))Z.push({sourcePath:x2(this.workDirLang,q),archivePath:x2(`${this.problem_id}`,q)});await cb(Z,x2(this.stagingDirLang,"problem.zip")),c.success(`Created ${c.hyperlink(this.stagingDirLang,"problem.zip")} with ${Z.length} files`)}async stageZip_Game(f){let $=this.handlers[this.original_language].game.hide||["AIDummy.cc"],Z=(q)=>{if(q.endsWith(".cc")||q.endsWith(".hh"))return!$.includes(q);if(q.endsWith(".cnf"))return!0;if(q=="Makefile")return!0;if(q=="README.txt")return!0;if(q=="README.md")return!0;return!1},w=[];for(let q of["pdf","html","md","txt","short.html","short.md","short.txt"]){let v=`problem.${f}.${q}`;if(await qx(this.workDirLang,v))w.push({sourcePath:x2(this.workDirLang,v),archivePath:x2(`${this.problem_id}`,v)})}{let q=x2(this.workDirLang,"Runner"),v=await Array.fromAsync(TK("*",{cwd:q}));for(let K of v)if(Z(K))w.push({sourcePath:x2(q,K),archivePath:x2(`${this.problem_id}`,"src",K)})}{let q=x2(this.workDirLang,"Obj"),v=await Array.fromAsync(TK("*.o.*",{cwd:q}));for(let K of v)w.push({sourcePath:x2(q,K),archivePath:x2(`${this.problem_id}`,"src",K)})}{let q=x2(this.workDirLang,"Viewer"),v=await Array.fromAsync(TK("**/*",{cwd:q}));for(let K of v)w.push({sourcePath:x2(q,K),archivePath:x2(`${this.problem_id}`,"src","Viewer",K)})}await cb(w,x2(this.stagingDirLang,"problem.zip")),c.success(`Created ${c.hyperlink(this.stagingDirLang,"problem.zip")} with ${w.length} files`)}async stageViewer(f){await c.section("Staging viewer",async()=>{await cZ(x2(this.workDirLang,"Viewer"),x2(this.stagingDirLang,"viewer"),{recursive:!0}),c.success(`Staged ${c.hyperlink(this.stagingDirLang,"viewer")}`)})}async stageQuiz(f){await c.section("Staging quiz",async()=>{let $=El.parse(await J_(x2(this.workDirLang,"quiz.yml"))),Z=x2(this.stagingDirLang,"quiz.pbm");await AW(Z,{recursive:!0}),await hJ(x2(Z,"quiz.yml"),$);for(let w of $.questions){{let q=x2(this.workDirLang,`${w.file}.yml`),v=x2(Z,`${w.file}.yml`);if(await ws(q))await cZ(q,v);else throw Error(`Quiz question file ${w.file}.yml not found`)}{let q=x2(this.workDirLang,`${w.file}.py`),v=x2(Z,`${w.file}.py`);if(await ws(q))await cZ(q,v)}}c.success(`Staged ${c.hyperlink(this.stagingDirLang,"quiz")}`)})}async stageInformationYml(){await c.section("Staging information.yml",async()=>{let f={problem_nm:this.problem_nm,languages:this.languages,original_language:this.original_language,author:this.author,author_email:this.author_email,problems:this.problem_ymls,handlers:this.handlers},$=x2(this.stagingDir,"information.yml");await hJ($,f),c.success(`Generated ${c.hyperlink(this.stagingDir,"information.yml")}`)})}async stageReadMd(){await c.section("Staging README.md",async()=>{let f=JZ.version,$=this.languages.map((v)=>{let H=this.problem_ymls[v].title,Y=`- *${v}*: ${H}
|
|
4068
|
+
*/var Zs={};KZ(Zs,{schema:()=>Fx2,meta:()=>bf5,create:()=>uf5});var lX1={};KZ(lX1,{ringTwo:()=>ux2,ringThree:()=>yx2,ringOne:()=>bx2,ringFour:()=>kx2,ringFive:()=>mx2,ring:()=>Sx2});var Sx2={container:(f,$)=>{var Z,w,q,v,K,H,Y,P,M,W,J,X,O,G,V,N,E,j,g,k;return`${(w=(Z=f.ringOne)===null||Z===void 0?void 0:Z.value(f,$))!==null&&w!==void 0?w:""}${(v=(q=f.ringTwo)===null||q===void 0?void 0:q.value(f,$))!==null&&v!==void 0?v:""}${(H=(K=f.ringThree)===null||K===void 0?void 0:K.value(f,$))!==null&&H!==void 0?H:""}${(P=(Y=f.ringFour)===null||Y===void 0?void 0:Y.value(f,$))!==null&&P!==void 0?P:""}${(W=(M=f.ringFive)===null||M===void 0?void 0:M.value(f,$))!==null&&W!==void 0?W:""}<g transform="matrix(1 0 0 -1 0 100)">${(X=(J=f.ringOne)===null||J===void 0?void 0:J.value(f,$))!==null&&X!==void 0?X:""}</g><g transform="matrix(1 0 0 -1 0 100)">${(G=(O=f.ringTwo)===null||O===void 0?void 0:O.value(f,$))!==null&&G!==void 0?G:""}</g><g transform="matrix(1 0 0 -1 0 100)">${(N=(V=f.ringThree)===null||V===void 0?void 0:V.value(f,$))!==null&&N!==void 0?N:""}</g><g transform="matrix(1 0 0 -1 0 100)">${(j=(E=f.ringFour)===null||E===void 0?void 0:E.value(f,$))!==null&&j!==void 0?j:""}</g><g transform="matrix(1 0 0 -1 0 100)">${(k=(g=f.ringFive)===null||g===void 0?void 0:g.value(f,$))!==null&&k!==void 0?k:""}</g><circle cx="50" cy="50" r="45" stroke="#fff" stroke-opacity=".25" stroke-width="10" style="mix-blend-mode:lighten"/><circle cx="50" cy="50" r="25" stroke="#fff" stroke-opacity=".25" stroke-width="10" style="mix-blend-mode:lighten"/><circle cx="50" cy="50" r="10" fill="#fff" fill-opacity=".25" style="mix-blend-mode:lighten"/>`}};var bx2={half:(f,$)=>`<path d="M90 50h10c0-27.614-22.386-50-50-50S0 22.386 0 50h10c0-22.091 17.909-40 40-40s40 17.909 40 40Z" fill="${x1.xml(`${$.ring}`)}"/>`,quarter:(f,$)=>`<path d="M50 10V0C22.386 0 0 22.386 0 50h10c0-22.091 17.909-40 40-40Z" fill="${x1.xml(`${$.ring}`)}"/>`,eighth:(f,$)=>`<path d="M21.716 21.716C14.477 28.954 10 38.954 10 50H0c0-13.807 5.596-26.307 14.645-35.355l7.07 7.07Z" fill="${x1.xml(`${$.ring}`)}"/>`,full:(f,$)=>`<circle cx="50" cy="50" r="45" stroke="${x1.xml(`${$.ring}`)}" stroke-width="10"/>`};var ux2={eighth:(f,$)=>`<path d="M20 50c0-8.284 3.358-15.784 8.787-21.213l-7.071-7.071C14.477 28.954 10 38.954 10 50h10Z" fill="${x1.xml(`${$.ring}`)}"/>`,quarter:(f,$)=>`<path d="M50 10c-22.091 0-40 17.909-40 40h10c0-16.569 13.431-30 30-30V10Z" fill="${x1.xml(`${$.ring}`)}"/>`,half:(f,$)=>`<path d="M90 50c0-22.091-17.909-40-40-40S10 27.909 10 50h10c0-16.569 13.431-30 30-30 16.569 0 30 13.431 30 30h10Z" fill="${x1.xml(`${$.ring}`)}"/>`,full:(f,$)=>`<circle cx="50" cy="50" r="35" stroke="${x1.xml(`${$.ring}`)}" stroke-width="10"/>`};var yx2={eighth:(f,$)=>`<path d="M30 50a19.937 19.937 0 0 1 5.858-14.142l-7.071-7.071C23.357 34.216 20 41.716 20 50h10Z" fill="${x1.xml(`${$.ring}`)}"/>`,quarter:(f,$)=>`<path d="M50 20c-16.569 0-30 13.431-30 30h10c0-11.046 8.954-20 20-20V20Z" fill="${x1.xml(`${$.ring}`)}"/>`,half:(f,$)=>`<path d="M80 50c0-16.569-13.431-30-30-30-16.569 0-30 13.431-30 30h10c0-11.046 8.954-20 20-20s20 8.954 20 20h10Z" fill="${x1.xml(`${$.ring}`)}"/>`,full:(f,$)=>`<circle cx="50" cy="50" r="25" stroke="${x1.xml(`${$.ring}`)}" stroke-width="10"/>`};var kx2={eighth:(f,$)=>`<path d="M40 50a9.97 9.97 0 0 1 2.929-7.071l-7.071-7.071A19.937 19.937 0 0 0 30 50h10Z" fill="${x1.xml(`${$.ring}`)}"/>`,quarter:(f,$)=>`<path d="M50 30c-11.046 0-20 8.954-20 20h10c0-5.523 4.477-10 10-10V30Z" fill="${x1.xml(`${$.ring}`)}"/>`,half:(f,$)=>`<path d="M70 50c0-11.046-8.954-20-20-20s-20 8.954-20 20h10c0-5.523 4.477-10 10-10s10 4.477 10 10h10Z" fill="${x1.xml(`${$.ring}`)}"/>`,full:(f,$)=>`<circle cx="50" cy="50" r="15" stroke="${x1.xml(`${$.ring}`)}" stroke-width="10"/>`};var mx2={eighth:(f,$)=>`<path d="m42.929 42.929 7.07 7.07H40a9.97 9.97 0 0 1 2.93-7.07Z" fill="${x1.xml(`${$.ring}`)}"/>`,quarter:(f,$)=>`<path d="M50 40v10H40c0-5.523 4.477-10 10-10Z" fill="${x1.xml(`${$.ring}`)}"/>`,half:(f,$)=>`<path d="M60 50c0-5.523-4.477-10-10-10s-10 4.477-10 10h20Z" fill="${x1.xml(`${$.ring}`)}"/>`,full:(f,$)=>`<circle cx="50" cy="50" r="10" fill="${x1.xml(`${$.ring}`)}"/>`};function HA({prng:f,group:$,width:Z,height:w,values:q=[],rotation:v,offsetX:K,offsetY:H}){let Y=lX1,P=f.pick(q),M=f.integer(Math.min(...v),Math.max(...v)),W=f.integer(Math.min(...K),Math.max(...K)),J=f.integer(Math.min(...H),Math.max(...H));if(P&&Y[$][P])return{name:P,value(X,O){var G,V,N;let E=Y[$][P](X,O);if(this.rotation||this.offsetX||this.offsetY)E=`<g transform="translate(${(G=this.offsetX)!==null&&G!==void 0?G:0}, ${(V=this.offsetY)!==null&&V!==void 0?V:0}) rotate(${(N=this.rotation)!==null&&N!==void 0?N:0} ${Z/2} ${w/2})">${E}</g>`;return E},rotation:M,offsetX:W,offsetY:J};else return}function xx2({prng:f,options:$}){var Z,w,q,v,K,H;let Y=HA({prng:f,group:"ring",values:$.ring,width:100,height:100,rotation:((Z=$.ringRotation)===null||Z===void 0?void 0:Z.length)?$.ringRotation:[0],offsetX:[0],offsetY:[0]}),P=HA({prng:f,group:"ringOne",values:$.ringOne,width:100,height:100,rotation:((w=$.ringOneRotation)===null||w===void 0?void 0:w.length)?$.ringOneRotation:[0],offsetX:[0],offsetY:[0]}),M=HA({prng:f,group:"ringTwo",values:$.ringTwo,width:100,height:100,rotation:((q=$.ringTwoRotation)===null||q===void 0?void 0:q.length)?$.ringTwoRotation:[0],offsetX:[0],offsetY:[0]}),W=HA({prng:f,group:"ringThree",values:$.ringThree,width:100,height:100,rotation:((v=$.ringThreeRotation)===null||v===void 0?void 0:v.length)?$.ringThreeRotation:[0],offsetX:[0],offsetY:[0]}),J=HA({prng:f,group:"ringFour",values:$.ringFour,width:100,height:100,rotation:((K=$.ringFourRotation)===null||K===void 0?void 0:K.length)?$.ringFourRotation:[0],offsetX:[0],offsetY:[0]}),X=HA({prng:f,group:"ringFive",values:$.ringFive,width:100,height:100,rotation:((H=$.ringFiveRotation)===null||H===void 0?void 0:H.length)?$.ringFiveRotation:[0],offsetX:[0],offsetY:[0]});return{ring:Y,ringOne:P,ringTwo:M,ringThree:W,ringFour:J,ringFive:X}}function Bx2(f){return f==="transparent"?f:`#${f}`}function dx2({prng:f,options:$}){var Z;return{ring:Bx2(f.pick((Z=$.ringColor)!==null&&Z!==void 0?Z:[],"transparent"))}}var Fx2={$schema:"http://json-schema.org/draft-07/schema#",properties:{ring:{type:"array",items:{type:"string",enum:["container"]},default:["container"]},ringColor:{type:"array",items:{type:"string",pattern:"^(transparent|[a-fA-F0-9]{6})$"},default:["ffd54f","64b5f6","4dd0e1","ff8a65","9575cd","81c784","7986cb","4fc3f7","aed581","dce775","ffb74d","f06292","ba68c8","e57373","4db6ac","fff176"]},ringFive:{type:"array",items:{type:"string",enum:["eighth","quarter","half","full"]},default:["full"]},ringFiveRotation:{type:"array",items:{type:"integer",minimum:-180,maximum:180},maxItems:2,default:[-180,180]},ringFour:{type:"array",items:{type:"string",enum:["eighth","quarter","half","full"]},default:["quarter","half"]},ringFourRotation:{type:"array",items:{type:"integer",minimum:-180,maximum:180},maxItems:2,default:[-180,180]},ringOne:{type:"array",items:{type:"string",enum:["half","quarter","eighth","full"]},default:["half","quarter"]},ringOneRotation:{type:"array",items:{type:"integer",minimum:-180,maximum:180},maxItems:2,default:[-180,180]},ringRotation:{type:"array",items:{type:"integer",minimum:-180,maximum:180},maxItems:2,default:[-180,180]},ringThree:{type:"array",items:{type:"string",enum:["eighth","quarter","half","full"]},default:["quarter","half"]},ringThreeRotation:{type:"array",items:{type:"integer",minimum:-180,maximum:180},maxItems:2,default:[-180,180]},ringTwo:{type:"array",items:{type:"string",enum:["eighth","quarter","half","full"]},default:["quarter","half"]},ringTwoRotation:{type:"array",items:{type:"integer",minimum:-180,maximum:180},maxItems:2,default:[-180,180]}}};var bf5={title:"Rings",creator:"DiceBear",source:"https://www.dicebear.com",homepage:"https://www.dicebear.com",license:{name:"CC0 1.0",url:"https://creativecommons.org/publicdomain/zero/1.0/"}},uf5=({prng:f,options:$})=>{var Z,w;let q=xx2({prng:f,options:$}),v=dx2({prng:f,options:$});return{attributes:{viewBox:"0 0 100 100",fill:"none","shape-rendering":"crispEdges"},body:`${(w=(Z=q.ring)===null||Z===void 0?void 0:Z.value(q,v))!==null&&w!==void 0?w:""}`,extra:()=>({...Object.entries(q).reduce((K,[H,Y])=>{return K[H]=Y===null||Y===void 0?void 0:Y.name,K},{}),...Object.entries(v).reduce((K,[H,Y])=>{return K[`${H}Color`]=Y,K},{})})}};var cX1=f4(Ux2(),1);Xz();var Qx2=f4(qo(),1);import{cp as cZ,exists as ws,glob as TK,mkdir as AW,rm as ax2,writeFile as Ff5}from"fs/promises";import CE from"os";import{join as x2}from"path";class LX1{directory;problem_nm;workspace;workDir;stagingDir;stagingDirLang="to-be-set";workDirLang="to-be-set";problem_id="to-be-set";languages=[];original_language="";problem_ymls={};handlers={};author="";author_email="";problem_type="std";constructor(f,$){this.directory=f,this.problem_nm=$,this.workspace=x2(f,o0()+"-stage",XD()),this.workDir=x2(this.workspace,"work"),this.stagingDir=x2(this.workspace,"stage",this.problem_nm)}async stage(){await c.section(`Staging problem at ${this.directory}`,async()=>{await this.createWorkspace(),await this.separateByLanguages(),await this.readMetadata();for(let f of this.languages)await c.section(`Staging language ${f}`,async()=>{if(await this.setLanguage(f),this.problem_type==="std")await this.stageLanguage_Std(f);else if(this.problem_type==="game")await this.stageLanguage_Game(f);else if(this.problem_type==="quiz")await this.stageLanguage_Quizz(f)});await this.stageFirstToSolve(),await this.stageInformationYml(),await this.stageReadMd()}),await c.section("Summary",async()=>{let f=x2(this.stagingDir,"README.md");c.success("README.md content:"),await c.markdown(await V5(f)),c.success("Staging tree:"),c.print(Qx2.default(this.stagingDir))}),c.success(`Problem successfully staged at directory ${c.hyperlink(this.stagingDir)}`)}async stageLanguage_Std(f){await this.prepareStatements_Std(f),await this.computeCodeMetrics(f),await this.stageProblemFiles_Std(f),await this.stageAwards(f),await this.stageStatements(f),await this.stageZip_Std(f)}async stageLanguage_Game(f){await this.prepareStatements_Game(f),await this.computeCodeMetrics(f),await this.stageProblemFiles_Game(f),await this.stageAwards(f),await this.stageStatements(f),await this.stageZip_Game(f),await this.stageViewer(f)}async stageLanguage_Quizz(f){await this.stageQuiz(f)}async setLanguage(f){this.workDirLang=x2(this.workDir,f),this.problem_id=`${this.problem_nm}_${f}`,this.stagingDirLang=x2(this.stagingDir,f),await AW(this.stagingDirLang,{recursive:!0})}async createWorkspace(){await c.section(`Creating workspace ${this.workspace}`,async()=>{if(await ws(this.workspace))throw Error(`Workspace directory ${this.workspace} already exists`);await AW(this.workspace,{recursive:!0}),await AW(this.workDir,{recursive:!0}),await AW(this.stagingDir,{recursive:!0}),c.directory(this.workspace)})}doNotCopy(f,$){if(f==="problem.yml")return!0;if(f.startsWith(o0()))return!0;let Z=f.match(/^problem\.([a-z][a-z])\.[a-z]*$/);if(Z&&Z[1]!==$)return!0;if(f===`problem.${$}.pdf`)return!0;return!1}async separateByLanguages(){await c.section("Detecting if there are language folders or not",async()=>{if((await Array.fromAsync(TK("handler.yml",{cwd:this.directory}))).length===0)await this.separateByLanguagesWithFolders();else await this.separateByLanguagesWithoutFolders()})}async separateByLanguagesWithoutFolders(){await c.section("Separating problem by languages without folders",async()=>{let $=(await Array.fromAsync(TK("problem.[a-z][a-z].yml",{cwd:this.directory}))).map((Z)=>{let w=Z.match(/^problem\.([a-z][a-z])\.yml$/);if(!w)throw Error(`Unexpected yml file name: ${Z}`);return w[1]});this.languages=$;for(let Z of $){let w=x2(this.workDir,Z);await AW(w,{recursive:!0});let q=await Array.fromAsync(TK("*",{cwd:this.directory}));for(let v of q){if(this.doNotCopy(v,Z))continue;await cZ(x2(this.directory,v),x2(w,v),{recursive:!0})}}c.success(`Found languages: ${$.join(", ")}`)})}async separateByLanguagesWithFolders(){await c.section("Separating problem by languages with folders",async()=>{let f=await Array.fromAsync(TK("[a-z][a-z]",{cwd:this.directory}));this.languages=f;for(let $ of f){let Z=x2(this.directory,$),w=x2(this.workDir,$);await AW(w,{recursive:!0});let q=await Array.fromAsync(TK("*",{cwd:Z}));for(let v of q){if(this.doNotCopy(v,$))continue;await cZ(x2(Z,v),x2(w,v),{recursive:!0})}}c.success(`Found languages: ${f.join(", ")}`)})}async readMetadata(){await c.section("Reading problem metadata",async()=>{for(let $ of this.languages){let Z=x2(this.workDir,$,`problem.${$}.yml`);this.problem_ymls[$]=await J_(Z)}for(let $ of this.languages){let Z=x2(this.workDir,$,"handler.yml");this.handlers[$]=await J_(Z)}for(let $ of this.languages){let Z=this.problem_ymls[$];if(Z.author)this.author=Z.author;if(Z.author)this.original_language=$;if(Z.email)this.author_email=Z.email}if(!this.original_language)throw Error("Original language not found in problem.<lang>.yml files");let f=this.handlers[this.original_language];if(f.handler==="game")this.problem_type="game";else if(f.handler==="quiz")this.problem_type="quiz";else this.problem_type="std";c.success(`Problem type: ${this.problem_type}`),c.success(`Original language: ${this.original_language}`),c.success(`Author: ${this.author} <${this.author_email}>`)})}async findGoldenSolution(f){return await c.section("Finding golden solution",async()=>{let $=this.handlers[f].handler,Z=this.handlers[f].compilers||"",w;if($==="circuits")w="solution.v";else if(Z==="RunPython")w="solution.py";else if(Z==="RunHaskell"||Z==="GHC")w="solution.hs";else if(Z==="RunClojure"||Z==="Clojure")w="solution.clj";else{let q=this.handlers[f].solution||"C++",v=Uf5[q];if(!v)throw Error(`Unknown programming language ${q} for solution`);let K=x2(this.workDir,f,`solution.${v}`);if(!await ws(K))throw Error(`Golden solution file ${K} not found`);w=`solution.${v}`}return c.success(`Golden solution: ${w}`),w})}async prepareStatements_Std(f){await c.section("Preparing standard statements",async()=>{let $=x2(this.workDir,f);c.command(`jtk make pdf html md txt --problem_nm ${this.problem_nm}`),await R3({cwd:$,stdout:"inherit",stderr:"inherit"})`jtk make pdf html md txt --problem_nm ${this.problem_nm}`,await ax2(x2($,"jtk-pdf"),{recursive:!0,force:!0}),await ax2(x2($,"jtk-text"),{recursive:!0,force:!0}),c.success("Generated statements")})}async prepareStatements_Game(f){await c.section("Preparing game statements",async()=>{let $=x2(this.workDirLang,"Doc");await c.section("Generating PDF with xelatex",async()=>{c.command("xelatex -interaction=nonstopmode -file-line-error main.tex"),await R3({cwd:$})`xelatex -interaction=nonstopmode -file-line-error main.tex`,await R3({cwd:$})`xelatex -interaction=nonstopmode -file-line-error main.tex`,await cZ(x2($,"main.pdf"),x2(this.workDirLang,`problem.${f}.pdf`)),c.success(`Generated ${c.hyperlink(this.workDirLang,`problem.${f}.pdf`)}`)}),await c.section("Generating TXT with pandoc",async()=>{c.command("pandoc --quiet main.tex --to plain --output main.txt"),await R3({cwd:$})`pandoc --quiet main.tex --to plain --output main.txt`,await cZ(x2($,"main.txt"),x2(this.workDirLang,`problem.${f}.txt`)),c.success(`Generated ${c.hyperlink(this.workDirLang,`problem.${f}.txt`)}`),await cZ(x2($,"main.txt"),x2(this.workDirLang,`problem.${f}.short.txt`)),c.success(`Generated ${c.hyperlink(this.workDirLang,`problem.${f}.short.txt`)}`)}),await c.section("Generating Markdown with pandoc",async()=>{c.command("pandoc --quiet main.tex --to markdown --to markdown-header_attributes --output main.md"),await R3({cwd:$})`pandoc --quiet main.tex --to markdown --to markdown-header_attributes --output main.md`,await cZ(x2($,"main.md"),x2(this.workDirLang,`problem.${f}.md`)),c.success(`Generated ${c.hyperlink(this.workDirLang,`problem.${f}.md`)}`),await cZ(x2($,"main.md"),x2(this.workDirLang,`problem.${f}.short.md`)),c.success(`Generated ${c.hyperlink(this.workDirLang,`problem.${f}.short.md`)}`)}),await c.section("Generating HTML with pandoc",async()=>{c.command("pandoc --quiet main.tex --to html --mathml --embed-resources --standalone --output main.html"),await R3({cwd:$})`pandoc --quiet main.tex --to html --mathml --embed-resources --standalone --output main.html`,await cZ(x2($,"main.html"),x2(this.workDirLang,`problem.${f}.html`)),c.success(`Generated ${c.hyperlink(this.workDirLang,`problem.${f}.html`)}`),await cZ(x2($,"main.html"),x2(this.workDirLang,`problem.${f}.short.html`)),c.success(`Generated ${c.hyperlink(this.workDirLang,`problem.${f}.short.html`)}`)})})}async computeCodeMetrics(f){if(!await YT2()){c.warning("jutge-code-metrics not installed, skipping code metrics");return}if(this.problem_type!=="std"){await c.section("Skipping code metrics",async()=>{await E5(),c.warning("Code metrics not applicable for this problem type")});return}await c.section("Computing code metrics",async()=>{let $=await this.findGoldenSolution(f);c.command(`jutge-code-metrics ${$}`);try{let{stdout:Z}=await R3({cwd:this.workDirLang})`jutge-code-metrics ${$}`;await m7(x2(this.stagingDirLang,"code-metrics.json"),Z),c.success(`Generated ${c.hyperlink(this.stagingDirLang,"code-metrics.json")}`)}catch(Z){c.warning("Failed to compute code metrics")}})}async stageProblemFiles_Std(f){let $=(v)=>{if(v==="handler.yml")return!0;for(let K of["inp","cor","ops"])if(v.endsWith(`.${K}`))return!0;for(let K of ix2){if(v===`solution.${K}`)return!0;if(v===`main.${K}`)return!0}if(v==="checker.py")return!0;if(v==="checker.cc")return!0;return!1},Z=x2(this.stagingDirLang,"problem.pbm");await AW(Z,{recursive:!0});let w=await Array.fromAsync(TK("*",{cwd:this.workDirLang})),q=0;for(let v of w)if($(v))await cZ(x2(this.workDirLang,v),x2(Z,v)),q++;c.success(`Staged ${q} files to ${c.hyperlink(this.stagingDirLang,"problem.pbm")}`)}async stageProblemFiles_Game(f){let $=(K)=>{if(K==="handler.yml")return!0;if(K==="Makefile")return!0;if(K==="README.txt")return!0;if(K==="README.md")return!0;if(K.endsWith(".cc"))return!0;if(K.endsWith(".hh"))return!0;if(K.endsWith(".cnf"))return!0;return!1},Z=x2(this.workDirLang,"Runner"),w=x2(this.stagingDirLang,"problem.pbm");await AW(w,{recursive:!0});let q=await Array.fromAsync(TK("*",{cwd:Z})),v=0;for(let K of q)if($(K))await cZ(x2(Z,K),x2(w,K)),v++;c.success(`Staged ${v} files to ${c.hyperlink(this.stagingDirLang,"problem.pbm")}`)}async stageAwards(f){await c.section("Staging awards",async()=>{let $=0;for(let Z of["award.png","award.txt"])if(await qx(this.workDirLang,Z))await cZ(x2(this.workDirLang,Z),x2(this.stagingDir,Z)),$++;if($>0)c.success(`Staged ${$} award file(s)`);else c.warning("No award files found")})}async stageStatements(f){await c.section("Staging statements",async()=>{let $=0;for(let Z of["pdf","html","md","txt","yml","short.html","short.md","short.txt"]){let w=`problem.${f}.${Z}`,q=`problem.${Z}`;if(await qx(this.workDirLang,w))await cZ(x2(this.workDirLang,w),x2(this.stagingDirLang,q)),$++}c.success(`Staged ${$} statement file(s)`)})}async stageFirstToSolve(){await c.section("Staging first-to-solve avatar",async()=>{let f=x2(this.stagingDir,"first-to-solve.svg"),Z=gx2(Zs,{seed:this.problem_nm}).toString();await m7(f,Z),c.success(`Generated ${c.hyperlink(this.stagingDir,"first-to-solve.svg")}`)})}async stageZip_Std(f){let $=(q)=>{for(let v of["pdf","html","md","txt"])if(q===`problem.${f}.${v}`)return!0;for(let v of ix2){if(q===`main.${v}`)return!0;if(q===`code.${v}`)return!0}if(/^(sample|public).*\.(inp|cor)$/.test(q))return!0;return!1},Z=[],w=await Array.fromAsync(TK("*",{cwd:this.workDirLang}));for(let q of w)if($(q))Z.push({sourcePath:x2(this.workDirLang,q),archivePath:x2(`${this.problem_id}`,q)});await cb(Z,x2(this.stagingDirLang,"problem.zip")),c.success(`Created ${c.hyperlink(this.stagingDirLang,"problem.zip")} with ${Z.length} files`)}async stageZip_Game(f){let $=this.handlers[this.original_language].game.hide||["AIDummy.cc"],Z=(q)=>{if(q.endsWith(".cc")||q.endsWith(".hh"))return!$.includes(q);if(q.endsWith(".cnf"))return!0;if(q=="Makefile")return!0;if(q=="README.txt")return!0;if(q=="README.md")return!0;return!1},w=[];for(let q of["pdf","html","md","txt","short.html","short.md","short.txt"]){let v=`problem.${f}.${q}`;if(await qx(this.workDirLang,v))w.push({sourcePath:x2(this.workDirLang,v),archivePath:x2(`${this.problem_id}`,v)})}{let q=x2(this.workDirLang,"Runner"),v=await Array.fromAsync(TK("*",{cwd:q}));for(let K of v)if(Z(K))w.push({sourcePath:x2(q,K),archivePath:x2(`${this.problem_id}`,"src",K)})}{let q=x2(this.workDirLang,"Obj"),v=await Array.fromAsync(TK("*.o.*",{cwd:q}));for(let K of v)w.push({sourcePath:x2(q,K),archivePath:x2(`${this.problem_id}`,"src",K)})}{let q=x2(this.workDirLang,"Viewer"),v=await Array.fromAsync(TK("**/*",{cwd:q}));for(let K of v)w.push({sourcePath:x2(q,K),archivePath:x2(`${this.problem_id}`,"src","Viewer",K)})}await cb(w,x2(this.stagingDirLang,"problem.zip")),c.success(`Created ${c.hyperlink(this.stagingDirLang,"problem.zip")} with ${w.length} files`)}async stageViewer(f){await c.section("Staging viewer",async()=>{await cZ(x2(this.workDirLang,"Viewer"),x2(this.stagingDirLang,"viewer"),{recursive:!0}),c.success(`Staged ${c.hyperlink(this.stagingDirLang,"viewer")}`)})}async stageQuiz(f){await c.section("Staging quiz",async()=>{let $=El.parse(await J_(x2(this.workDirLang,"quiz.yml"))),Z=x2(this.stagingDirLang,"quiz.pbm");await AW(Z,{recursive:!0}),await hJ(x2(Z,"quiz.yml"),$);for(let w of $.questions){{let q=x2(this.workDirLang,`${w.file}.yml`),v=x2(Z,`${w.file}.yml`);if(await ws(q))await cZ(q,v);else throw Error(`Quiz question file ${w.file}.yml not found`)}{let q=x2(this.workDirLang,`${w.file}.py`),v=x2(Z,`${w.file}.py`);if(await ws(q))await cZ(q,v)}}c.success(`Staged ${c.hyperlink(this.stagingDirLang,"quiz")}`)})}async stageInformationYml(){await c.section("Staging information.yml",async()=>{let f={problem_nm:this.problem_nm,languages:this.languages,original_language:this.original_language,author:this.author,author_email:this.author_email,problems:this.problem_ymls,handlers:this.handlers},$=x2(this.stagingDir,"information.yml");await hJ($,f),c.success(`Generated ${c.hyperlink(this.stagingDir,"information.yml")}`)})}async stageReadMd(){await c.section("Staging README.md",async()=>{let f=JZ.version,$=this.languages.map((v)=>{let H=this.problem_ymls[v].title,Y=`- *${v}*: ${H}
|
|
4069
4069
|
`;if(v!==this.original_language)Y+=` ${this.problem_ymls[v].translator} <${this.problem_ymls[v].translator_email}>`;else Y="";return Y}).join(`
|
|
4070
4070
|
`);if($.trim())$=`## Translations
|
|
4071
4071
|
|