{"id":15713,"date":"2026-10-15T18:06:17","date_gmt":"2026-10-15T18:06:17","guid":{"rendered":"https:\/\/coredevx.com\/site\/?page_id=15713"},"modified":"2026-10-30T01:47:11","modified_gmt":"2026-10-30T01:47:11","slug":"strategic-industries","status":"publish","type":"page","link":"https:\/\/coredevx.com\/site\/","title":{"rendered":"Strategic Industries"},"content":{"rendered":"\n<link rel=\"stylesheet\" href=\"https:\/\/fonts.googleapis.com\/css2?family=IBM+Plex+Mono:wght@400;500;600&#038;family=Libre+Franklin:wght@100;200;400;700&#038;display=swap\">\n<style id=\"cdx-si-css\">\n:root{--cdx-ready:1}\n#cdxsi{--ink:#101410;--ink-2:#5E665C;--ink-3:#8C948A;--hair:#E5E8E2;\n    --accent:#80BE1F;--accent-ink:#80BE1F;--btn:#101410;--btn-tx:#fff;\n    --maxw:1420px;--pad:clamp(22px,5vw,76px);\n    color-scheme:light;}\n#cdxsi .dk{--ink:#F2F5F0;--ink-2:#B4BCB1;--ink-3:#7E877B;--hair:#262D27;\n    --accent-ink:#8FCB2E;--btn:#80BE1F;--btn-tx:#07120A;}\n#cdxsi .dk{color:var(--ink)}\n#cdxsi *{box-sizing:border-box}\nhtml{scroll-behavior:smooth}\n#cdxsi{margin:0;background:#fff;color:var(--ink);\n    font-family:\"Libre Franklin\",-apple-system,BlinkMacSystemFont,\"Segoe UI\",Helvetica,Arial,sans-serif;\n    font-size:16px;line-height:1.62;-webkit-font-smoothing:antialiased;overflow-x:hidden;\n    transition:color .5s}\n#cdxsi ::selection{background:#DDF0C6;color:#101410}\n#cdxsi a{color:inherit;text-decoration:none}\n#cdxsi :focus-visible{outline:2px solid var(--accent);outline-offset:4px}\n#cdxsi #cdx{position:fixed;inset:0;width:100%;height:100%;z-index:0;pointer-events:none}\n#cdxsi .screen{position:relative;z-index:1;min-height:100svh;display:flex;flex-direction:column;justify-content:center;\n    padding:clamp(96px,12vh,150px) 0 clamp(64px,10vh,110px)}\n#cdxsi .in{width:min(90%,1170px);margin:0 auto;padding:0}\n#cdxsi .half{max-width:var(--maxw)}\n#cdxsi .in.half > *{max-width:min(680px,58%)}\n#cdxsi .screen[data-cdx=\"0\"]{justify-content:center;padding-top:calc(100px + 4vh);padding-bottom:clamp(64px,10vh,120px)}\n#cdxsi .screen[data-cdx=\"0\"] .in.half > *{max-width:min(760px,64%)}\n#cdxsi .screen[data-cdx=\"0\"] h1{font-size:clamp(2.3rem,3.8vw,3.4rem)}\n#cdxsi h1.tw{position:relative}\n#cdxsi h1.tw .ghost{visibility:hidden}\n#cdxsi h1.tw .live{position:absolute;inset:0}\n#cdxsi h1.tw .tb{color:var(--accent);font-style:normal;display:block}\n#cdxsi h1.tw .ta::after,#cdxsi h1.tw .tb:not(:empty)::after{content:\"\";display:inline-block;width:.07em;height:1em;background:var(--accent);\n    vertical-align:-.1em;margin-left:.06em;animation:bl 1s steps(1,end) infinite}\n#cdxsi h1.tw .live:has(.tb:not(:empty)) .ta::after,#cdxsi h1.tw.done .ta::after,#cdxsi h1.tw.done .tb::after{display:none}\n@media(prefers-reduced-motion:reduce){#cdxsi h1.tw .ta::after,#cdxsi h1.tw .tb::after{display:none}}\n@media(max-width:900px){#cdxsi .screen[data-cdx=\"0\"]{justify-content:flex-end;padding-top:52svh;padding-bottom:clamp(40px,6vh,70px)}\n#cdxsi .screen[data-cdx=\"0\"] h1{font-size:clamp(1.9rem,8.4vw,2.6rem)}\n#cdxsi .screen[data-cdx=\"0\"] .stack{gap:16px}\n#cdxsi .screen[data-cdx=\"0\"] .half{max-width:100%}}\n@media(max-width:900px){#cdxsi .in.half > *{max-width:100%!important}}\n#cdxsi h1,#cdxsi h2{font-weight:100;letter-spacing:-.016em;line-height:1.14;margin:0;text-wrap:balance;color:var(--ink);transition:color .5s}\n#cdxsi h1{font-size:clamp(2.6rem,5.4vw,4.75rem)}\n#cdxsi h2{font-size:clamp(2rem,4.2vw,4rem)}\n#cdxsi h1 em,#cdxsi h2 em{font-style:normal;color:var(--accent)}\n#cdxsi h3{font-size:1.05rem;font-weight:700;margin:0;color:var(--ink)}\n#cdxsi p{margin:0;text-wrap:pretty}\n#cdxsi h1,#cdxsi h2,#cdxsi h3{text-wrap:pretty}\n#cdxsi .lead{font-size:clamp(1rem,1.35vw,1.25rem);letter-spacing:-.03em;color:var(--ink-2);max-width:38ch;line-height:1.45;transition:color .5s}\n#cdxsi .label{font-family:\"Libre Franklin\",sans-serif;font-weight:700;font-size:.875rem;letter-spacing:.53em;line-height:1.2;\n    text-transform:uppercase;color:var(--accent);display:block;margin:0}\n#cdxsi .flap{font-variant-numeric:tabular-nums}\n@media(max-width:900px){#cdxsi .label{letter-spacing:.3em;font-size:.72rem}}\n@media(max-width:900px){#cdxsi .screen[data-cdx=\"5\"]{justify-content:flex-end;padding-bottom:clamp(56px,10vh,96px)}}\n#cdxsi .stack{display:flex;flex-direction:column;gap:clamp(20px,3vh,34px)}\n#cdxsi header{position:absolute;top:0;left:0;right:0;z-index:30;height:100px;color:#fff;\n    background:rgba(0,0,0,.2);-webkit-backdrop-filter:blur(24px);backdrop-filter:blur(24px)}\n#cdxsi .hd{max-width:min(90%,1170px);margin:0 auto;height:100%;display:flex;align-items:center;justify-content:space-between;gap:20px}\n#cdxsi .logo{display:block;flex:0 0 auto}\n#cdxsi .logo img{display:block;height:68px;width:auto}\n#cdxsi .hd nav{display:flex;flex:0 0 auto;white-space:nowrap;font-family:\"IBM Plex Mono\",monospace;font-size:12px;line-height:47px;text-transform:uppercase;color:#fff}\n#cdxsi .hd nav a{padding:0 20px;white-space:nowrap}\n#cdxsi .hd nav a:last-child{padding-right:0}\n#cdxsi .hd nav a.sub::after{content:\"\";display:inline-block;width:5px;height:5px;border-right:1px solid currentColor;border-bottom:1px solid currentColor;transform:translateY(-3px) rotate(45deg);margin-left:7px;opacity:.8}\n#cdxsi .hd nav a:hover{color:var(--accent)}\n@media(max-width:1180px){#cdxsi .hd nav{display:none}}\n@media(max-width:600px){#cdxsi .logo img{height:52px}}\n#cdxsi .btn{display:inline-flex;align-items:center;justify-content:center;gap:9px;padding:15px 34px;border-radius:6px;\n    font-family:\"IBM Plex Mono\",monospace;font-size:.8rem;font-weight:500;text-transform:uppercase;letter-spacing:.02em;\n    transition:background .25s,color .25s,border-color .25s;border:1px solid var(--accent);color:var(--ink)}\n#cdxsi .btn-a:hover{background:var(--accent);color:#07120A}\n#cdxsi .btn-b{border-color:transparent;padding-left:6px;padding-right:6px}\n#cdxsi .btn-b:hover{color:var(--accent)}\n#cdxsi .row{display:flex;flex-wrap:wrap;gap:13px;align-items:center}\n@keyframes bl{0%,50%{opacity:1}50.01%,100%{opacity:0}}\n#cdxsi .hcap{max-width:min(620px,46%)}\n#cdxsi .indgrid{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:clamp(28px,4vw,72px);align-items:center}\n#cdxsi #industrias .in{width:min(90%,1170px)}\n#cdxsi .indgrid .ind{margin-top:clamp(26px,4vh,46px);grid-template-columns:1fr 1fr;grid-template-rows:repeat(4,auto);grid-auto-flow:column;column-gap:clamp(22px,3vw,44px)}\n#cdxsi .ind{display:grid;grid-template-columns:1fr}\n#cdxsi .ind div{display:flex;align-items:baseline;gap:14px;padding:15px 0;border-bottom:1px solid var(--hair);\n    cursor:default;transition:color .25s,padding-left .25s}\n#cdxsi .ind div:hover,#cdxsi .ind div.on{color:var(--accent-ink);padding-left:6px}\n#cdxsi .ind i{font-style:normal;font-family:\"IBM Plex Mono\",monospace;font-size:.72rem;font-weight:500;color:var(--ink-3)}\n#cdxsi .ind div.on i{color:var(--accent)}\n#cdxsi .ind b{font-weight:400;font-size:clamp(1rem,1.4vw,1.18rem);letter-spacing:-.02em}\n@media(max-width:900px){#cdxsi .hcap{max-width:100%}}\n#cdxsi .indview{position:relative}\n#cdxsi .shots{position:relative;height:clamp(380px,64svh,680px);overflow:hidden;background:#EEF0EC;border-radius:clamp(18px,2.2vw,30px)}\n#cdxsi .shot{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:block;border-radius:0;opacity:0;transition:opacity .55s cubic-bezier(.2,.6,.2,1),transform 1.2s cubic-bezier(.2,.6,.2,1);\n    transform:scale(1.04)}\n#cdxsi .shot.on{opacity:1;transform:scale(1)}\n#cdxsi .indgrid > *{min-width:0}\n@media(max-width:900px){#cdxsi .indgrid{grid-template-columns:1fr;gap:28px}\n#cdxsi .indgrid .ind{column-gap:18px}\n#cdxsi .shots{height:auto;aspect-ratio:16\/10;min-height:0;border-radius:18px}}\n#cdxsi .screen[data-cdx=\"2\"]{display:block;min-height:0;padding:0}\n#cdxsi .capgrid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,.82fr) minmax(0,1.08fr);\n    width:min(90%,1170px);margin:0 auto;padding:0;gap:0 clamp(24px,4vw,64px)}\n#cdxsi .capstick{position:sticky;top:0;height:100svh;display:flex;flex-direction:column;justify-content:center;gap:18px}\n#cdxsi .capflow{display:flex;flex-direction:column;padding:2svh 0 26svh}\n#cdxsi .cap{min-height:40svh;display:flex;flex-direction:column;justify-content:center;gap:7px;\n    border-top:1px solid var(--hair);padding:28px 0}\n#cdxsi .cap .go{margin-top:11px}#cdxsi .cap:first-child{border-top:0}\n#cdxsi .cap .n{font-family:\"IBM Plex Mono\",monospace;font-size:.75rem;font-weight:500;color:var(--ink)}\n#cdxsi .cap h3{font-weight:700;font-size:clamp(1.3rem,2.2vw,2.1rem);line-height:1.14;letter-spacing:-.025em}\n#cdxsi .cap p{color:var(--ink-2);font-size:.92rem;line-height:1.55;max-width:42ch}\n@media(max-width:900px){#cdxsi .capgrid{grid-template-columns:1fr}\n#cdxsi .capstick{position:static;height:auto;padding:clamp(96px,12vh,150px) 0 10px}\n#cdxsi .capflow{padding:0 0 12svh}\n#cdxsi .cap{min-height:40svh}}\n#cdxsi .steps{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(20px,3vw,44px);margin-top:clamp(26px,4vh,50px);max-width:900px}\n@media(max-width:760px){#cdxsi .steps{grid-template-columns:1fr;gap:26px}}\n#cdxsi .step{border-top:2px solid var(--accent);padding-top:18px;display:flex;flex-direction:column;gap:7px}\n#cdxsi .sth{display:flex;align-items:center;justify-content:space-between}\n#cdxsi .ico{width:34px;height:34px;fill:none;stroke:var(--accent);stroke-width:1.2;stroke-linecap:round;stroke-linejoin:round}\n#cdxsi .sv{opacity:0;transform:translateY(18px);transition:opacity .9s cubic-bezier(.2,.6,.2,1),transform .9s cubic-bezier(.2,.6,.2,1);transition-delay:calc(var(--d)*.28s + .25s)}\n#cdxsi .sv.on{opacity:1;transform:none}\n#cdxsi .sv .ico path,#cdxsi .sv .ico circle,#cdxsi .sv .ico rect{stroke-dasharray:90;stroke-dashoffset:90;transition:stroke-dashoffset 1.6s ease;transition-delay:calc(var(--d)*.28s + .55s)}\n#cdxsi .sv.on .ico path,#cdxsi .sv.on .ico circle,#cdxsi .sv.on .ico rect{stroke-dashoffset:0}\n@media(prefers-reduced-motion:reduce){#cdxsi .sv{opacity:1;transform:none}\n#cdxsi .sv .ico *{stroke-dashoffset:0!important}}\n#cdxsi .step .n{font-family:\"IBM Plex Mono\",monospace;font-size:.75rem;font-weight:500;color:var(--accent)}\n#cdxsi .step h3{font-size:clamp(1.2rem,1.9vw,1.6rem);font-weight:700;letter-spacing:-.025em}\n#cdxsi .step p{color:var(--ink-2);font-size:.95rem;max-width:28ch}\n#cdxsi .logos{margin-top:clamp(34px,6vh,64px);overflow:hidden;padding:6px 0}\n#cdxsi .logos.rev{margin-top:clamp(10px,2vh,22px)}\n#cdxsi .logos.rev .track{animation-direction:reverse;animation-duration:50s}\n#cdxsi .logos{-webkit-mask-image:linear-gradient(90deg,transparent,#000 12%,#000 88%,transparent);mask-image:linear-gradient(90deg,transparent,#000 12%,#000 88%,transparent)}\n#cdxsi .track{display:flex;align-items:center;width:max-content;gap:clamp(56px,7vw,120px);animation:mq 42s linear infinite}\n#cdxsi .logos:hover .track{animation-play-state:paused}\n#cdxsi .lc{flex:0 0 auto;display:flex;align-items:center}\n#cdxsi .lc img{display:block;width:auto;opacity:.62;filter:grayscale(1);transition:opacity .3s}\n#cdxsi .lc:hover img{opacity:1}\n@keyframes mq{to{transform:translateX(-50%)}}\n@media(prefers-reduced-motion:reduce){#cdxsi .track{animation:none;flex-wrap:wrap;width:auto}}\n#cdxsi #dualidad{justify-content:flex-start;min-height:118svh;padding-top:clamp(130px,17vh,200px)}\n#cdxsi #contacto{justify-content:flex-start;padding-top:clamp(150px,26vh,290px);min-height:86svh;overflow:hidden}\n#cdxsi .fin{text-align:center;align-items:center}\n#cdxsi .fin h2{max-width:19ch;font-size:clamp(2.2rem,4.5vw,4rem)}\n#cdxsi .fin .row{justify-content:center}\n@media(max-width:900px){#cdxsi #dualidad{min-height:125svh;padding-top:clamp(96px,13vh,150px)}}\n#cdxsi #dualidad .in{text-align:center}\n#cdxsi #dualidad h2{max-width:16ch;margin-left:auto;margin-right:auto}\n#cdxsi .dual{display:grid;grid-template-columns:1fr 1fr;gap:0 clamp(28px,4vw,64px);max-width:980px;margin:clamp(30px,5vh,56px) auto 0}\n@media(max-width:760px){#cdxsi .dual{grid-template-columns:1fr;gap:34px}}\n#cdxsi .dom{display:flex;flex-direction:column;gap:12px;text-align:left;align-items:flex-start}\n#cdxsi .dom:first-child{text-align:right;align-items:flex-end}\n#cdxsi .dualgo{display:flex;justify-content:center;margin-top:clamp(26px,4vh,44px)}\n#cdxsi .dualgo .go{align-self:auto}\n@media(max-width:760px){#cdxsi .dom,#cdxsi .dom:first-child{text-align:center;align-items:center}}\n#cdxsi .dom h3{font-size:clamp(1.6rem,2.6vw,2.25rem);font-weight:100;letter-spacing:-.025em;color:var(--accent)}\n#cdxsi .dom p{color:var(--ink-2);font-size:.92rem;line-height:1.55;max-width:38ch}\n#cdxsi .dom .tag{font-family:\"IBM Plex Mono\",monospace;font-size:.72rem;font-weight:500;text-transform:uppercase;color:var(--ink-3)}\n#cdxsi .dom.here .tag{color:var(--ink)}\n#cdxsi .meta{display:flex;flex-wrap:wrap;gap:12px 44px;padding-top:24px;border-top:1px solid var(--hair);font-size:.9rem;color:var(--ink-2)}\n#cdxsi .meta b{display:block;font-family:\"IBM Plex Mono\",monospace;font-size:.72rem;font-weight:500;letter-spacing:0;color:var(--accent)!important;\n    text-transform:uppercase;color:var(--ink-3);margin-bottom:5px}\n#cdxsi .go{font-family:\"IBM Plex Mono\",monospace;font-size:.78rem;font-weight:500;text-transform:uppercase;color:var(--ink);\n    border:1px solid var(--accent);border-radius:6px;padding:13px 28px;align-self:flex-start;transition:background .25s,color .25s}\n#cdxsi .go:hover{background:var(--accent);color:#07120A}\n#cdxsi footer{position:relative;z-index:2;color:#1A1A1A;font-family:\"IBM Plex Mono\",monospace;font-size:.75rem;font-weight:500;line-height:1.5}\n#cdxsi .offices{max-width:1180px;margin:0 auto;padding:clamp(40px,6vh,70px) var(--pad) clamp(70px,11vh,120px);display:grid;grid-template-columns:repeat(4,1fr);gap:18px}\n#cdxsi .offices > div{background:rgba(255,255,255,.36);-webkit-backdrop-filter:blur(30px) saturate(1.2);backdrop-filter:blur(30px) saturate(1.2);\n    border:1px solid rgba(255,255,255,.7);box-shadow:inset 0 1px 0 rgba(255,255,255,.8),0 10px 30px rgba(20,40,10,.06);border-radius:10px;padding:22px 22px 24px}\n@media(max-width:860px){#cdxsi .offices{grid-template-columns:1fr 1fr}}\n@media(max-width:480px){#cdxsi .offices{grid-template-columns:1fr}}\n#cdxsi .offices b{display:block;font-weight:500;color:#80BE1F}\n#cdxsi .offices span{display:block;max-width:24ch}\n#cdxsi .fbar{background:#050505;color:#fff;padding:52px clamp(22px,4.6vw,70px) 44px;display:flex;flex-wrap:wrap;gap:22px 30px;align-items:center;font-weight:400}\n#cdxsi .fbar .flogo{display:block;height:60px;width:auto}\n#cdxsi .fbar nav{margin-left:auto;display:flex;flex-wrap:wrap;align-items:center;gap:12px clamp(22px,3.2vw,52px);text-transform:uppercase;line-height:44px}\n#cdxsi .fsub{background:#050505;color:rgba(255,255,255,.5);padding:18px clamp(22px,4.6vw,70px) 26px;font-size:.68rem;font-weight:400;letter-spacing:.02em}\n#cdxsi .fsub > div{border-top:1px solid rgba(255,255,255,.12);padding-top:16px;display:flex;flex-wrap:wrap;gap:8px 24px;align-items:center;justify-content:space-between}\n#cdxsi .fsub .lang{display:inline-flex;align-items:center;gap:10px;margin-left:auto;text-transform:uppercase;letter-spacing:.08em}\n#cdxsi .fsub .lang b{font-weight:500;color:#fff}\n#cdxsi .fsub .lang a{color:rgba(255,255,255,.5)}\n#cdxsi .fsub .lang a:hover{color:#80BE1F}\n#cdxsi .fbar a:hover{color:#80BE1F}\n@media(max-width:700px){#cdxsi .fbar{padding:40px 5vw 28px;gap:18px 24px}\n#cdxsi .fbar nav{margin-left:0;line-height:28px;gap:8px 20px;font-size:.72rem}\n#cdxsi .fsub{padding:14px 5vw 22px}}\n#cdxsi .rv{opacity:0;transform:translateY(12px);transition:opacity .8s cubic-bezier(.2,.6,.2,1),transform .8s cubic-bezier(.2,.6,.2,1)}\n#cdxsi .rv.on{opacity:1;transform:none}\n@media(prefers-reduced-motion:reduce){#cdxsi .rv{opacity:1;transform:none;transition:none}\nhtml{scroll-behavior:auto}}\n\/* WordPress: el canvas vive detras del contenido y el tema no pinta fondos encima; header y footer del tema se ocultan solo en esta pagina *\/\nbody.cdx-si,body.cdx-si #uicore-page,body.cdx-si #content,body.cdx-si .uicore-content,body.cdx-si #primary,body.cdx-si article,body.cdx-si .entry-content,body.cdx-si .elementor-page-content{background:transparent!important}\nbody.cdx-si #primary,body.cdx-si .entry-content,body.cdx-si article{padding:0;margin:0;max-width:none}\nbody.cdx-si .uicore-page-title,body.cdx-si .entry-header,body.cdx-si .entry-title,body.cdx-si .uicore-breadcrumbs{display:none}\nbody.cdx-si #uicore-tb-footer,body.cdx-si #uicore-back-to-top{display:none!important}\n#cdxsi{position:relative;background:transparent;overflow:visible}\n#cdxsi #cdx{position:fixed;top:0;left:0;width:100%;height:100%;z-index:0;pointer-events:none}\n#cdxsi main{position:relative;z-index:1}\n#cdxsi header{position:absolute}\n#cdxsi .hd nav a,#cdxsi footer a{text-decoration:none}\n#cdxsi .screen{width:100%}\n\/* vista previa fiel: sin barra de administracion en esta pagina *\/\nbody.cdx-si #wpadminbar{display:none!important}\nhtml:has(body.cdx-si){margin-top:0!important}\n\/* elementos de accesibilidad que el snippet global vuelve relativos y estiran el body bajo el footer *\/\nbody.cdx-si > .elementor-screen-only:not(#a1):not(#a2):not(#a3),body.cdx-si > .a11y-speak-region:not(#a1):not(#a2):not(#a3),body.cdx-si > .a11y-speak-intro-text:not(#a1):not(#a2):not(#a3),body.cdx-si > .screen-reader-text:not(#a1):not(#a2):not(#a3){position:absolute!important;top:0!important;height:1px!important;margin:0!important}\n\/* selector de idioma de Weglot: el script de arranque lo mueve al subfooter (reemplaza el ES\/EN estatico); aqui queda como texto discreto, sin caja ni banderas, desplegable hacia arriba *\/\nbody.cdx-si{position:relative}\n#cdxsi .fsub aside.country-selector{position:relative!important;top:auto!important;right:auto!important;left:auto!important;bottom:auto!important;margin:0 0 0 auto!important;flex:0 0 auto;background:transparent!important;border:0!important;border-radius:0;box-shadow:none;color:rgba(255,255,255,.5);font-family:\"IBM Plex Mono\",monospace;font-size:.68rem;font-weight:400;letter-spacing:.08em;text-transform:uppercase;z-index:40}\n#cdxsi .fsub aside.country-selector label,#cdxsi .fsub aside.country-selector a{display:flex!important;align-items:center;padding:0 16px 0 0!important;height:20px!important;line-height:20px!important;min-height:0!important;background:transparent!important;color:#fff!important;border:0!important;font-size:.68rem!important}\n#cdxsi .fsub aside.country-selector .wglanguage-name{display:block!important;padding:0!important;line-height:20px!important;margin:0!important}\n#cdxsi .fsub aside.country-selector .wglanguage-name::before{display:none!important}\n#cdxsi .fsub aside.country-selector .wg-li::before,#cdxsi .fsub aside.country-selector .wg-li a::before,#cdxsi .fsub aside.country-selector .wg-li span::before{display:none!important}\n#cdxsi .fsub aside.country-selector li a{padding-left:14px!important}\n#cdxsi .fsub aside.country-selector label.wgcurrent::after,#cdxsi .fsub aside.country-selector label.wgcurrent:after{top:50%!important;right:0!important;margin-top:-3px!important;transform:scale(.6);opacity:.7}\n#cdxsi .fsub aside.country-selector ul{top:auto!important;bottom:100%!important;margin-bottom:6px;background:#050505!important;border:1px solid rgba(255,255,255,.18)!important;border-radius:6px;min-width:100%;overflow:hidden}\n#cdxsi .fsub aside.country-selector li a{height:30px!important;line-height:30px!important;padding:0 14px!important;color:rgba(255,255,255,.7)!important}\n#cdxsi .fsub aside.country-selector a:hover{color:#80BE1F!important}\n\n<\/style>\n<div id=\"cdxsi\">\n<canvas id=\"cdx\" aria-hidden=\"true\"><\/canvas>\n\n\n\n<main id=\"top\">\n  <section class=\"screen dk\" data-cdx=\"0\">\n    <div class=\"in stack half rv\">\n      <p class=\"label\">Strategic Technologies<\/p>\n      <h1 class=\"tw\" data-a=\"Continuidad e inteligencia \" data-b=\"para la innovaci\u00f3n estrat\u00e9gica.\"><span class=\"ghost\" aria-hidden=\"true\">Continuidad e inteligencia<br>para la innovaci\u00f3n estrat\u00e9gica.<\/span><span class=\"live\"><span class=\"ta\"><\/span><em class=\"tb\"><\/em><\/span><\/h1>\n      <p class=\"lead\">Tecnolog\u00edas de frontera aplicadas a lo que su organizaci\u00f3n no puede detener.<\/p>\n      <div class=\"row\"><a class=\"btn btn-a\" href=\"https:\/\/coredevx.com\/site\/contacto\/\">Hablemos<\/a><a class=\"btn btn-b\" href=\"#capacidades\">Ver capacidades<\/a><\/div>\n    <\/div>\n  <\/section>\n\n  <section class=\"screen\" id=\"dualidad\" data-cdx=\"1\">\n    <div class=\"in rv\">\n      <p class=\"label\">Ecosistema<\/p>\n      <h2 style=\"margin-top:22px\">Dos dominios. <em>Una misma inteligencia.<\/em><\/h2>\n      <div class=\"dual\">\n        <div class=\"dom here\"><span class=\"tag\">Est\u00e1 aqu\u00ed<\/span><h3>Strategic Industries<\/h3><p>Continuidad e inteligencia para la empresa estrat\u00e9gica. Data science, IA generativa, XOps, rob\u00f3tica y tecnolog\u00edas cu\u00e1nticas al servicio de organizaciones donde la continuidad operacional y el uso efectivo de sus activos y procesos cr\u00edticos no son negociables.<\/p><\/div>\n        <div class=\"dom\"><span class=\"tag\">Otra unidad<\/span><h3>Aerospace &amp; Defense<\/h3><p>Seguridad de nueva generaci\u00f3n para activos y procesos cr\u00edticos multidominio. Integramos criptograf\u00eda post-cu\u00e1ntica (PQC), IA Panopticon y protocolos QKD para anticipar y neutralizar amenazas avanzadas en entornos de misi\u00f3n cr\u00edtica. Protecci\u00f3n integral para activos espaciales, terrestres y civiles.<\/p><\/div>\n      <\/div>\n      <div class=\"dualgo\"><a class=\"go\" href=\"https:\/\/coredevx.com\/site\/cdx-asd\/\">Conocer A&amp;D &nbsp;\u2192<\/a><\/div>\n    <\/div>\n  <\/section>\n\n  <section class=\"screen\" id=\"capacidades\" data-cdx=\"2\" data-tail=\"1\">\n    <div class=\"capgrid\">\n      <div class=\"capstick rv\">\n        <p class=\"label\">Capacidades<\/p>\n        <h2>Cinco frentes, una sola ingenier\u00eda.<\/h2>\n      <\/div>\n      <div><\/div>\n      <div class=\"capflow\">\n        <div class=\"cap rv\"><span class=\"n\">01<\/span><h3>Data Science<\/h3><p>Un equipo de cient\u00edficos e ingenieros de datos que habilita la explotaci\u00f3n anal\u00edtica sin estructuras fijas ni costosas de mantener. Modelos clase DAMA y soluciones sobre Snowflake, AWS y Knime, orientadas a activar r\u00e1pido las estrategias del negocio.<\/p><a class=\"go\" href=\"https:\/\/coredevx.com\/site\/data-science\/\">Saber m\u00e1s &nbsp;\u2192<\/a><\/div>\n        <div class=\"cap rv\"><span class=\"n\">02<\/span><h3>Inteligencia Artificial<\/h3><p>Generamos y entrenamos modelos de redes neuronales para computer vision y procesamiento de lenguaje natural. Explotamos LLM y modelos multimodales espec\u00edficos para el conocimiento de cada organizaci\u00f3n, con experiencia en RAG multiformato, GenAIOps y gobernanza de IA responsable.<\/p><a class=\"go\" href=\"https:\/\/coredevx.com\/site\/generative-ai\/\">Saber m\u00e1s &nbsp;\u2192<\/a><\/div>\n        <div class=\"cap rv\"><span class=\"n\">03<\/span><h3>Tecnolog\u00edas cu\u00e1nticas<\/h3><p>Dise\u00f1amos y programamos circuitos cu\u00e1nticos con Qiskit, Q#, Silq y QML, entre otros frameworks. Soluciones que aprovechan la ventaja o la inspiraci\u00f3n cu\u00e1ntica en algoritmos productivos de optimizaci\u00f3n y predicci\u00f3n.<\/p><a class=\"go\" href=\"https:\/\/coredevx.com\/site\/coredevx-labs\/quantum-computing\/\">Saber m\u00e1s &nbsp;\u2192<\/a><\/div>\n        <div class=\"cap rv\"><span class=\"n\">04<\/span><h3>Rob\u00f3tica<\/h3><p>Codificamos sobre Robot Operating System: software espec\u00edfico para aprovechar mejor los activos rob\u00f3ticos de cada cliente y sumarles nuevas capacidades, en especial en robots aut\u00f3nomos y brazos rob\u00f3ticos.<\/p><a class=\"go\" href=\"https:\/\/coredevx.com\/site\/robotica\/\">Saber m\u00e1s &nbsp;\u2192<\/a><\/div>\n        <div class=\"cap rv\"><span class=\"n\">05<\/span><h3>XOps<\/h3><p>Cross-Functional Operations. Automatizamos el ciclo de desarrollo de software y la explotaci\u00f3n de datos: aplicaciones tradicionales, de IA y de datos con ciclos de priorizaci\u00f3n, trazabilidad TI automatizada y entregas continuas.<\/p><a class=\"go\" href=\"https:\/\/coredevx.com\/site\/dataops-mlops-devops\/\">Saber m\u00e1s &nbsp;\u2192<\/a><\/div>\n      <\/div>\n    <\/div>\n  <\/section>\n\n  <section class=\"screen\" id=\"industrias\" data-cdx=\"3\">\n    <div class=\"in rv\">\n      <div class=\"indgrid\">\n        <div>\n          <p class=\"label\">Industrias<\/p>\n          <h2 style=\"margin-top:20px\">Donde la operaci\u00f3n no admite pausa.<\/h2>\n          <div class=\"ind\">\n            <div data-i=\"0\"><i>01<\/i><b>Banca<\/b><\/div><div data-i=\"1\"><i>02<\/i><b>Medios de pago<\/b><\/div>\n            <div data-i=\"2\"><i>03<\/i><b>Energ\u00eda<\/b><\/div><div data-i=\"3\"><i>04<\/i><b>Miner\u00eda<\/b><\/div>\n            <div data-i=\"4\"><i>05<\/i><b>Salud<\/b><\/div><div data-i=\"5\"><i>06<\/i><b>Infraestructura<\/b><\/div>\n            <div data-i=\"6\"><i>07<\/i><b>L\u00edneas a\u00e9reas<\/b><\/div><div data-i=\"7\"><i>08<\/i><b>Previsi\u00f3n<\/b><\/div>\n          <\/div>\n        <\/div>\n        <div class=\"indview\">\n          <div class=\"shots\"><img decoding=\"async\" class=\"shot s0 on\" alt=\"Banca\" src=\"https:\/\/coredevx.com\/site\/wp-content\/uploads\/2026\/10\/cdx-si-banca.jpg\"><img decoding=\"async\" class=\"shot s1\" alt=\"Medios de pago\" src=\"https:\/\/coredevx.com\/site\/wp-content\/uploads\/2026\/10\/cdx-si-medios-de-pago.jpg\"><img decoding=\"async\" class=\"shot s2\" alt=\"Energ\u00eda\" src=\"https:\/\/coredevx.com\/site\/wp-content\/uploads\/2026\/10\/cdx-si-energia.jpg\"><img decoding=\"async\" class=\"shot s3\" alt=\"Miner\u00eda\" src=\"https:\/\/coredevx.com\/site\/wp-content\/uploads\/2026\/10\/cdx-si-mineria.jpg\"><img decoding=\"async\" class=\"shot s4\" alt=\"Salud\" src=\"https:\/\/coredevx.com\/site\/wp-content\/uploads\/2026\/10\/cdx-si-salud.jpg\"><img decoding=\"async\" class=\"shot s5\" alt=\"Infraestructura\" src=\"https:\/\/coredevx.com\/site\/wp-content\/uploads\/2026\/10\/cdx-si-infraestructura.jpg\"><img decoding=\"async\" class=\"shot s6\" alt=\"L\u00edneas a\u00e9reas\" src=\"https:\/\/coredevx.com\/site\/wp-content\/uploads\/2026\/10\/cdx-si-lineas-aereas.jpg\"><img decoding=\"async\" class=\"shot s7\" alt=\"Previsi\u00f3n\" src=\"https:\/\/coredevx.com\/site\/wp-content\/uploads\/2026\/10\/cdx-si-prevision.jpg\"><\/div>\n        <\/div>\n      <\/div>\n    <\/div>\n  <\/section>\n\n  <section class=\"screen dk\" data-cdx=\"4\">\n    <div class=\"in rv\">\n      <p class=\"label\">Modelo de trabajo<\/p>\n      <h2 style=\"margin-top:20px\">Del dato al sistema en operaci\u00f3n.<\/h2>\n      <div class=\"steps\">\n        <div class=\"step sv\" style=\"--d:0\"><div class=\"sth\"><svg class=\"ico\" viewBox=\"0 0 40 40\" aria-hidden=\"true\"><circle cx=\"17\" cy=\"17\" r=\"10\"\/><path d=\"M24.5 24.5L33 33\"\/><path d=\"M12 19.5l3-3 3 2 4-5\"\/><\/svg><span class=\"n\">01<\/span><\/div><h3>Diagn\u00f3stico<\/h3><p>Qu\u00e9 datos existen y qu\u00e9 se puede resolver con ellos.<\/p><\/div>\n        <div class=\"step sv\" style=\"--d:1\"><div class=\"sth\"><svg class=\"ico\" viewBox=\"0 0 40 40\" aria-hidden=\"true\"><rect x=\"6\" y=\"9\" width=\"28\" height=\"22\" rx=\"2\"\/><path d=\"M6 15h28\"\/><path d=\"M14 23.5l4 3.5 8-8\"\/><\/svg><span class=\"n\">02<\/span><\/div><h3>Validaci\u00f3n<\/h3><p>Un prototipo medido contra la operaci\u00f3n real.<\/p><\/div>\n        <div class=\"step sv\" style=\"--d:2\"><div class=\"sth\"><svg class=\"ico\" viewBox=\"0 0 40 40\" aria-hidden=\"true\"><path d=\"M31 20a11 11 0 0 1-19.5 7\"\/><path d=\"M9 20a11 11 0 0 1 19.5-7\"\/><path d=\"M28.5 7.5v5.5H23\"\/><path d=\"M11.5 32.5V27H17\"\/><circle cx=\"20\" cy=\"20\" r=\"2.2\"\/><\/svg><span class=\"n\">03<\/span><\/div><h3>Operaci\u00f3n<\/h3><p>El sistema corriendo, monitoreado y transferido a su equipo.<\/p><\/div>\n      <\/div>\n    <\/div>\n  <\/section>\n\n  <section class=\"screen dk\" id=\"labtav\" data-cdx=\"5\">\n    <div class=\"in stack half rv\">\n      <p class=\"label\">LabTAV<\/p>\n      <h2>Ciencia de frontera, aplicada a lo estrat\u00e9gico.<\/h2>\n      <p class=\"lead\">LabTAV es nuestro centro de investigaci\u00f3n aplicada. Lo que ah\u00ed se valida llega antes al cliente, y sostiene la colaboraci\u00f3n con universidades y centros de investigaci\u00f3n.<\/p>\n      <a class=\"go\" href=\"https:\/\/coredevx.com\/site\/cdx-labtav\/\">Conocer LabTAV &nbsp;\u2192<\/a>\n    <\/div>\n  <\/section>\n\n  <section class=\"screen\" data-cdx=\"6\">\n    <div class=\"in rv\">\n      <p class=\"label\">Evidencia<\/p>\n      <h2 style=\"margin-top:20px\">Operaciones cr\u00edticas que ya trabajan con nosotros.<\/h2>\n      <div class=\"logos\"><div class=\"track\"><div class=\"lc\"><img decoding=\"async\" alt=\"LATAM Airlines\" style=\"height:30px\" src=\"https:\/\/coredevx.com\/site\/wp-content\/uploads\/2026\/10\/cdx-si-latam-airlines.png\"><\/div><div class=\"lc\"><img decoding=\"async\" alt=\"AFP Habitat\" style=\"height:30px\" src=\"https:\/\/coredevx.com\/site\/wp-content\/uploads\/2026\/10\/cdx-si-afp-habitat.png\"><\/div><div class=\"lc\"><img decoding=\"async\" alt=\"Banco BICE\" style=\"height:20px\" src=\"https:\/\/coredevx.com\/site\/wp-content\/uploads\/2026\/10\/cdx-si-banco-bice.png\"><\/div><div class=\"lc\"><img decoding=\"async\" alt=\"Cl\u00ednica Alemana\" style=\"height:34px\" src=\"https:\/\/coredevx.com\/site\/wp-content\/uploads\/2026\/10\/cdx-si-clinica-alemana.png\"><\/div><div class=\"lc\"><img decoding=\"async\" alt=\"Consorcio\" style=\"height:28px\" src=\"https:\/\/coredevx.com\/site\/wp-content\/uploads\/2026\/10\/cdx-si-consorcio.png\"><\/div><div class=\"lc\"><img decoding=\"async\" alt=\"KEEPEX\" style=\"height:24px\" src=\"https:\/\/coredevx.com\/site\/wp-content\/uploads\/2026\/10\/cdx-si-keepex.png\"><\/div><div class=\"lc\"><img decoding=\"async\" alt=\"Bci\" style=\"height:44px\" src=\"https:\/\/coredevx.com\/site\/wp-content\/uploads\/2026\/10\/cdx-si-bci.png\"><\/div><div class=\"lc\"><img decoding=\"async\" alt=\"Nuevo Pudahuel\" style=\"height:30px\" src=\"https:\/\/coredevx.com\/site\/wp-content\/uploads\/2026\/10\/cdx-si-nuevo-pudahuel.png\"><\/div><div class=\"lc\"><img decoding=\"async\" alt=\"Transbank\" style=\"height:34px\" src=\"https:\/\/coredevx.com\/site\/wp-content\/uploads\/2026\/10\/cdx-si-transbank.png\"><\/div><div class=\"lc\"><img decoding=\"async\" alt=\"Los H\u00e9roes\" style=\"height:46px\" src=\"https:\/\/coredevx.com\/site\/wp-content\/uploads\/2026\/10\/cdx-si-los-heroes.png\"><\/div><div class=\"lc\"><img decoding=\"async\" alt=\"LATAM Airlines\" style=\"height:30px\" src=\"https:\/\/coredevx.com\/site\/wp-content\/uploads\/2026\/10\/cdx-si-latam-airlines.png\"><\/div><div class=\"lc\"><img decoding=\"async\" alt=\"AFP Habitat\" style=\"height:30px\" src=\"https:\/\/coredevx.com\/site\/wp-content\/uploads\/2026\/10\/cdx-si-afp-habitat.png\"><\/div><div class=\"lc\"><img decoding=\"async\" alt=\"Banco BICE\" style=\"height:20px\" src=\"https:\/\/coredevx.com\/site\/wp-content\/uploads\/2026\/10\/cdx-si-banco-bice.png\"><\/div><div class=\"lc\"><img decoding=\"async\" alt=\"Cl\u00ednica Alemana\" style=\"height:34px\" src=\"https:\/\/coredevx.com\/site\/wp-content\/uploads\/2026\/10\/cdx-si-clinica-alemana.png\"><\/div><div class=\"lc\"><img decoding=\"async\" alt=\"Consorcio\" style=\"height:28px\" src=\"https:\/\/coredevx.com\/site\/wp-content\/uploads\/2026\/10\/cdx-si-consorcio.png\"><\/div><div class=\"lc\"><img decoding=\"async\" alt=\"KEEPEX\" style=\"height:24px\" src=\"https:\/\/coredevx.com\/site\/wp-content\/uploads\/2026\/10\/cdx-si-keepex.png\"><\/div><div class=\"lc\"><img decoding=\"async\" alt=\"Bci\" style=\"height:44px\" src=\"https:\/\/coredevx.com\/site\/wp-content\/uploads\/2026\/10\/cdx-si-bci.png\"><\/div><div class=\"lc\"><img decoding=\"async\" alt=\"Nuevo Pudahuel\" style=\"height:30px\" src=\"https:\/\/coredevx.com\/site\/wp-content\/uploads\/2026\/10\/cdx-si-nuevo-pudahuel.png\"><\/div><div class=\"lc\"><img decoding=\"async\" alt=\"Transbank\" style=\"height:34px\" src=\"https:\/\/coredevx.com\/site\/wp-content\/uploads\/2026\/10\/cdx-si-transbank.png\"><\/div><div class=\"lc\"><img decoding=\"async\" alt=\"Los H\u00e9roes\" style=\"height:46px\" src=\"https:\/\/coredevx.com\/site\/wp-content\/uploads\/2026\/10\/cdx-si-los-heroes.png\"><\/div><\/div><\/div>\n      <div class=\"logos rev\"><div class=\"track\"><div class=\"lc\"><img decoding=\"async\" alt=\"Transelec\" style=\"height:36px\" src=\"https:\/\/coredevx.com\/site\/wp-content\/uploads\/2026\/10\/cdx-si-transelec.png\"><\/div><div class=\"lc\"><img decoding=\"async\" alt=\"Grupo EMIN\" style=\"height:40px\" src=\"https:\/\/coredevx.com\/site\/wp-content\/uploads\/2026\/10\/cdx-si-grupo-emin.png\"><\/div><div class=\"lc\"><img decoding=\"async\" alt=\"INDEMIN\" style=\"height:30px\" src=\"https:\/\/coredevx.com\/site\/wp-content\/uploads\/2026\/10\/cdx-si-indemin.png\"><\/div><div class=\"lc\"><img decoding=\"async\" alt=\"Adessa\" style=\"height:50px\" src=\"https:\/\/coredevx.com\/site\/wp-content\/uploads\/2026\/10\/cdx-si-adessa.png\"><\/div><div class=\"lc\"><img decoding=\"async\" alt=\"USACH\" style=\"height:38px\" src=\"https:\/\/coredevx.com\/site\/wp-content\/uploads\/2026\/10\/cdx-si-usach.png\"><\/div><div class=\"lc\"><img decoding=\"async\" alt=\"Universidad de La Frontera\" style=\"height:38px\" src=\"https:\/\/coredevx.com\/site\/wp-content\/uploads\/2026\/10\/cdx-si-universidad-de-la-frontera.png\"><\/div><div class=\"lc\"><img decoding=\"async\" alt=\"Universidad San Sebasti\u00e1n\" style=\"height:44px\" src=\"https:\/\/coredevx.com\/site\/wp-content\/uploads\/2026\/10\/cdx-si-universidad-san-sebastian.png\"><\/div><div class=\"lc\"><img decoding=\"async\" alt=\"ASMAR\" style=\"height:52px\" src=\"https:\/\/coredevx.com\/site\/wp-content\/uploads\/2026\/10\/cdx-si-asmar.png\"><\/div><div class=\"lc\"><img decoding=\"async\" alt=\"Fuerza A\u00e9rea de Chile\" style=\"height:40px\" src=\"https:\/\/coredevx.com\/site\/wp-content\/uploads\/2026\/10\/cdx-si-fuerza-aerea-de-chile.png\"><\/div><div class=\"lc\"><img decoding=\"async\" alt=\"Transelec\" style=\"height:36px\" src=\"https:\/\/coredevx.com\/site\/wp-content\/uploads\/2026\/10\/cdx-si-transelec.png\"><\/div><div class=\"lc\"><img decoding=\"async\" alt=\"Grupo EMIN\" style=\"height:40px\" src=\"https:\/\/coredevx.com\/site\/wp-content\/uploads\/2026\/10\/cdx-si-grupo-emin.png\"><\/div><div class=\"lc\"><img decoding=\"async\" alt=\"INDEMIN\" style=\"height:30px\" src=\"https:\/\/coredevx.com\/site\/wp-content\/uploads\/2026\/10\/cdx-si-indemin.png\"><\/div><div class=\"lc\"><img decoding=\"async\" alt=\"Adessa\" style=\"height:50px\" src=\"https:\/\/coredevx.com\/site\/wp-content\/uploads\/2026\/10\/cdx-si-adessa.png\"><\/div><div class=\"lc\"><img decoding=\"async\" alt=\"USACH\" style=\"height:38px\" src=\"https:\/\/coredevx.com\/site\/wp-content\/uploads\/2026\/10\/cdx-si-usach.png\"><\/div><div class=\"lc\"><img decoding=\"async\" alt=\"Universidad de La Frontera\" style=\"height:38px\" src=\"https:\/\/coredevx.com\/site\/wp-content\/uploads\/2026\/10\/cdx-si-universidad-de-la-frontera.png\"><\/div><div class=\"lc\"><img decoding=\"async\" alt=\"Universidad San Sebasti\u00e1n\" style=\"height:44px\" src=\"https:\/\/coredevx.com\/site\/wp-content\/uploads\/2026\/10\/cdx-si-universidad-san-sebastian.png\"><\/div><div class=\"lc\"><img decoding=\"async\" alt=\"ASMAR\" style=\"height:52px\" src=\"https:\/\/coredevx.com\/site\/wp-content\/uploads\/2026\/10\/cdx-si-asmar.png\"><\/div><div class=\"lc\"><img decoding=\"async\" alt=\"Fuerza A\u00e9rea de Chile\" style=\"height:40px\" src=\"https:\/\/coredevx.com\/site\/wp-content\/uploads\/2026\/10\/cdx-si-fuerza-aerea-de-chile.png\"><\/div><\/div><\/div>\n    <\/div>\n  <\/section>\n\n  <section class=\"screen\" id=\"contacto\" data-cdx=\"7\">\n    <div class=\"in stack rv fin\">\n      <p class=\"label\">Contacto<\/p>\n      <h2>Si lo que su organizaci\u00f3n <em>no puede perder<\/em> define su negocio, hablemos.<\/h2>\n      <div class=\"row\"><a class=\"btn btn-a\" href=\"https:\/\/coredevx.com\/site\/contacto\/\">Escribir a COREDEVX<\/a><\/div>\n    <\/div>\n  <\/section>\n<\/main>\n\n\n<\/div>\n<script type=\"text\/plain\" id=\"cdx-si-b64\">ZG9jdW1lbnQuYm9keS5jbGFzc0xpc3QuYWRkKCJjZHgtc2kiKSxmdW5jdGlvbigpeyJ1c2Ugc3RyaWN0Ijt2YXIgdD1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY2R4Iikscj10LmdldENvbnRleHQoIjJkIiksZT0wLGE9MCxuPTAsaT0wLG89MSxzPTEsaD0xLGM9bWF0Y2hNZWRpYSgiKHByZWZlcnMtcmVkdWNlZC1tb3Rpb246IHJlZHVjZSkiKS5tYXRjaGVzO2Z1bmN0aW9uIHUodCxyKXtyZXR1cm5bdFswXS1yWzBdLHRbMV0tclsxXSx0WzJdLXJbMl1dfWZ1bmN0aW9uIGwodCxyKXtyZXR1cm5bdFsxXSpyWzJdLXRbMl0qclsxXSx0WzJdKnJbMF0tdFswXSpyWzJdLHRbMF0qclsxXS10WzFdKnJbMF1dfWZ1bmN0aW9uIGYodCxyKXtyZXR1cm4gdFswXSpyWzBdK3RbMV0qclsxXSt0WzJdKnJbMl19ZnVuY3Rpb24gdih0KXt2YXIgcj1NYXRoLmh5cG90KHRbMF0sdFsxXSx0WzJdKXx8MTtyZXR1cm5bdFswXS9yLHRbMV0vcix0WzJdL3JdfWZ1bmN0aW9uIGQodCxyLGUpe3JldHVybiB0KyhyLXQpKmV9ZnVuY3Rpb24gcCh0LHIsZSl7cmV0dXJuW2QodFswXSxyWzBdLGUpLGQodFsxXSxyWzFdLGUpLGQodFsyXSxyWzJdLGUpXX1mdW5jdGlvbiBNKHQpe3JldHVybiB0PC41PzE2KnQqdCp0KnQqdDoxLU1hdGgucG93KC0yKnQrMiw1KS8yfWZ1bmN0aW9uIG0odCxyLGUpe3JldHVybiB0PHI\/cjp0PmU\/ZTp0fWZ1bmN0aW9uIGcodCxyKXt2YXIgZT00Mzc1OC41NDUzKk1hdGguc2luKDEyNy4xKnQrMzExLjcqcik7cmV0dXJuIGUtTWF0aC5mbG9vcihlKX12YXIgeD0iMTQzLDE5MCw2NiIseT0iMTQwLDI1NSw3NCI7ZnVuY3Rpb24gdyh0KXtyZXR1cm4oMjYrMTE3KnR8MCkrIiwiKygyNisxNjQqdHwwKSsiLCIrKDI2KzQwKnR8MCl9dmFyIGI9WzI1NSwyNTUsMjU1XSxTPVs1LDUsNV07ZnVuY3Rpb24gQyh0KXt2YXIgcj1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJjYW52YXMiKSxlPTk2O3Iud2lkdGg9ci5oZWlnaHQ9ZTt2YXIgYT1yLmdldENvbnRleHQoIjJkIiksbj1hLmNyZWF0ZVJhZGlhbEdyYWRpZW50KDQ4LDQ4LDAsNDgsNDgsNDgpO3JldHVybiBuLmFkZENvbG9yU3RvcCgwLCJyZ2JhKCIrdCsiLDEpIiksbi5hZGRDb2xvclN0b3AoLjE1LCJyZ2JhKCIrdCsiLC43MikiKSxuLmFkZENvbG9yU3RvcCguNDIsInJnYmEoIit0KyIsLjIyKSIpLG4uYWRkQ29sb3JTdG9wKDEsInJnYmEoIit0KyIsMCkiKSxhLmZpbGxTdHlsZT1uLGEuZmlsbFJlY3QoMCwwLGUsZSkscn12YXIgQT1DKCIxNDMsMTkwLDY2IiksRT1DKCIxNDAsMjU1LDc0Iik7ZnVuY3Rpb24gayh0LGUsYSxuLGkpe2k8PS4wMDR8fG48PTB8fChyLmdsb2JhbEFscGhhPWksci5kcmF3SW1hZ2UodCxlLW4sYS1uLDIqbiwyKm4pLHIuZ2xvYmFsQWxwaGE9MSl9ZnVuY3Rpb24gUCh0KXt2YXIgcj0oMStNYXRoLnNxcnQoNSkpLzIsZT1bWy0xLHIsMF0sWzEsciwwXSxbLTEsLXIsMF0sWzEsLXIsMF0sWzAsLTEscl0sWzAsMSxyXSxbMCwtMSwtcl0sWzAsMSwtcl0sW3IsMCwtMV0sW3IsMCwxXSxbLXIsMCwtMV0sWy1yLDAsMV1dLm1hcCh2KSxhPVtbMCwxMSw1XSxbMCw1LDFdLFswLDEsN10sWzAsNywxMF0sWzAsMTAsMTFdLFsxLDUsOV0sWzUsMTEsNF0sWzExLDEwLDJdLFsxMCw3LDZdLFs3LDEsOF0sWzMsOSw0XSxbMyw0LDJdLFszLDIsNl0sWzMsNiw4XSxbMyw4LDldLFs0LDksNV0sWzIsNCwxMV0sWzYsMiwxMF0sWzgsNiw3XSxbOSw4LDFdXTtmdW5jdGlvbiBuKHQscil7cmV0dXJuIHYoWyh0WzBdK3JbMF0pLzIsKHRbMV0rclsxXSkvMiwodFsyXStyWzJdKS8yXSl9Zm9yKHZhciBpPTA7aTx0O2krKyl7Zm9yKHZhciBvPVtdLHM9MDtzPGEubGVuZ3RoO3MrKyl7dmFyIGg9ZVthW3NdWzBdXSxjPWVbYVtzXVsxXV0sdT1lW2Fbc11bMl1dLGw9bihoLGMpLGY9bihjLHUpLGQ9bih1LGgpLHA9ZS5sZW5ndGg7ZS5wdXNoKGwsZixkKSxvLnB1c2goW2Fbc11bMF0scCxwKzJdLFtwLGFbc11bMV0scCsxXSxbcCsyLHArMSxhW3NdWzJdXSxbcCxwKzEscCsyXSl9YT1vfXJldHVybiBhLm1hcChmdW5jdGlvbih0LHIpe3ZhciBhPWVbdFswXV0sbj1lW3RbMV1dLGk9ZVt0WzJdXTtyZXR1cm57djpbYSxuLGldLGM6dihbKGFbMF0rblswXStpWzBdKS8zLChhWzFdK25bMV0raVsxXSkvMywoYVsyXStuWzJdK2lbMl0pLzNdKSxrOi41NSsuOSpnKHIsNyksaG90OnIlMjM9PTB9fSl9dmFyIHE9UCgyKSx6PVAoMyksST0tOTk5OSxUPS05OTk5LE89MCxMPW5ldyBGbG9hdDMyQXJyYXkocS5sZW5ndGgpO2Z1bmN0aW9uIFIodCxyLGUpe3ZhciBhPU1hdGguY29zKGUpLG49TWF0aC5zaW4oZSksaT1mKHIsdCksbz1sKHIsdCk7cmV0dXJuW3RbMF0qYStvWzBdKm4rclswXSppKigxLWEpLHRbMV0qYStvWzFdKm4rclsxXSppKigxLWEpLHRbMl0qYStvWzJdKm4rclsyXSppKigxLWEpXX1hZGRFdmVudExpc3RlbmVyKCJwb2ludGVybW92ZSIsZnVuY3Rpb24odCl7ST10LmNsaWVudFgsVD10LmNsaWVudFksTz0xfSx7cGFzc2l2ZTohMH0pLGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoInBvaW50ZXJsZWF2ZSIsZnVuY3Rpb24oKXtPPTB9KSxhZGRFdmVudExpc3RlbmVyKCJibHVyIixmdW5jdGlvbigpe089MH0pO3ZhciBXPTEsQj0wO2Z1bmN0aW9uIF8odCxuLGksbyl7aWYoIShuPC4wMTIpKXtpZihCPi4wMSl7dmFyIHM9LjY3OSpxdCxkPXIuY3JlYXRlTGluZWFyR3JhZGllbnQoMCx6dC1zLDAsenQrLjI1KnMpO2QuYWRkQ29sb3JTdG9wKDAsInJnYmEoMTk2LDIyNCwxNjAsIituKkIqLjMrIikiKSxkLmFkZENvbG9yU3RvcCgxLCJyZ2JhKDE1MCwxOTYsOTYsIituKkIqLjEzKyIpIiksci5iZWdpblBhdGgoKSxyLmFyYyhJdCx6dCxzLDAsNi4yODQpLHIuZmlsbFN0eWxlPWQsci5maWxsKCksZnVuY3Rpb24odCxlLGEpe2Z1bmN0aW9uIG4odCl7dmFyIGU9ITE7ci5iZWdpblBhdGgoKTtmb3IodmFyIGE9MDthPD03MjthKyspe3ZhciBuPVR0KHQoYS83MikpLGk9blsyXT4tLjAyP090KG4pOm51bGw7aT9lP3IubGluZVRvKGlbMF0saVsxXSk6KHIubW92ZVRvKGlbMF0saVsxXSksZT0hMCk6ZT0hMX1yLnN0cm9rZSgpfXIuZ2xvYmFsQ29tcG9zaXRlT3BlcmF0aW9uPSJzb3VyY2Utb3ZlciIsci5saW5lV2lkdGg9TWF0aC5tYXgoLjUsLjcqaCksci5zdHJva2VTdHlsZT0icmdiYSg5NiwxNTAsNDAsIisuMjgqZSsiKSI7Zm9yKHZhciBpPTEuMDA0KmEsbz0tNzU7bzw9NzU7bys9MTUpe3ZhciBzPW8qTWF0aC5QSS8xODAsYz1NYXRoLmNvcyhzKSppLHU9TWF0aC5zaW4ocykqaTtuKGZ1bmN0aW9uKHQpe3ZhciByPTYuMjgzMip0O3JldHVybltNYXRoLmNvcyhyKSpjLHUsTWF0aC5zaW4ocikqY119KX1mb3IodmFyIGw9MDtsPDE4MDtsKz0xNSl7dmFyIGY9bCpNYXRoLlBJLzE4MDtuKGZ1bmN0aW9uKHQpe3ZhciByPTYuMjgzMip0O3JldHVybltNYXRoLmNvcyhyKSpNYXRoLmNvcyhmKSppLE1hdGguc2luKHIpKmksTWF0aC5jb3MocikqTWF0aC5zaW4oZikqaV19KX19KDAsbipCLDEuMDYpfWZvcih2YXIgcD1CPi4zP3o6cSxNPXAhPT1xLG09MS4wNixnPS44NisuMTI1KkIsdz1bXSxiPU1hdGgubWF4KDEyMCwuNjIqcXQpLFM9TWF0aC5tYXgoMzAwLC4xNipxdCksQz0wO0M8cC5sZW5ndGg7QysrKXt2YXIgQT1wW0NdLEU9MDtpZighTSl7dmFyIGs9MDtpZihPJiZXJiZpPC4zJiYhYyl7dmFyIFA9T3QoVHQoW0EuY1swXSptLEEuY1sxXSptLEEuY1syXSptXSkpO2lmKFApe3ZhciBfPU1hdGguaHlwb3QoUFswXS1JLFBbMV0tVCk7XzxiJiYoaz1NYXRoLnBvdygxLV8vYiwxLjYpKX19TFtDXSs9KGstTFtDXSkqKGs+TFtDXT8uMTY6LjA1KSxFPUxbQ10qKDEtaSl9dmFyIEY9MSsuMDM1KigxLS44OCpCKSpNYXRoLnNpbiguNTUqdCsuMzcqQykrMS41NSppKkEuaytFKiguMjIrLjM2KkEuayksSD1bQS5jWzBdKm0qRixBLmNbMV0qbSpGLEEuY1syXSptKkZdLE49VHQoSCksaj1PdChOKTtpZighKCFqfHxqWzBdPC1TfHxqWzBdPmUrU3x8alsxXTwtU3x8alsxXT5hK1MpKXtmb3IodmFyIFk9RSooQS5rLTEpKjEuMysuMjUqRSpNYXRoLnNpbigxLjcqdCtDKSxEPVtdLFE9MDtRPDM7USsrKXt2YXIgRz1bQS52W1FdWzBdKm0qRixBLnZbUV1bMV0qbSpGLEEudltRXVsyXSptKkZdLFg9WyhHWzBdLUhbMF0pKmcsKEdbMV0tSFsxXSkqZywoR1syXS1IWzJdKSpnXTtpZihFPi4wMSlYPVIoWCx2KGwoQS5jLFswLDEsLjNdKSksWSk7RC5wdXNoKFR0KFtIWzBdK1hbMF0sSFsxXStYWzFdLEhbMl0rWFsyXV0pKX12YXIgVT12KGwodShEWzFdLERbMF0pLHUoRFsyXSxEWzBdKSkpLFo9ZihVLHUoWzAsMCxQdF0sTikpPjA7dy5wdXNoKHt2OkQsejpOWzJdLGxhbTpNYXRoLm1pbigxLE1hdGgubWF4KDAsZihVLEF0KSkrLjUqRSksZnJvbnQ6Wixob3Q6QS5ob3R8fEU+LjU1fSl9fXcuc29ydChmdW5jdGlvbih0LHIpe3JldHVybiB0Lnotci56fSk7Zm9yKHZhciBKPTA7Sjx3Lmxlbmd0aDtKKyspe2Zvcih2YXIgSz13W0pdLFY9W10sJD0hMCx0dD0wO3R0PDM7dHQrKyl7dmFyIHJ0PU90KEsudlt0dF0pO2lmKCFydCl7JD0hMTticmVha31WLnB1c2gocnQpfWlmKCQpe3ZhciBldD1LLmZyb250PzE6LjM0O3IuYmVnaW5QYXRoKCksci5tb3ZlVG8oVlswXVswXSxWWzBdWzFdKSxyLmxpbmVUbyhWWzFdWzBdLFZbMV1bMV0pLHIubGluZVRvKFZbMl1bMF0sVlsyXVsxXSksci5jbG9zZVBhdGgoKSxyLmZpbGxTdHlsZT1vPyJyZ2JhKDE1MCwyMDAsMTEyLCIrbipldCooLjAzNSsuMTA1KksubGFtKSooMS0uNippKSsiKSI6InJnYmEoMTQzLDE5MCw2NiwiK24qZXQqKC4wNysuMTcqSy5sYW0pKigxLS42KmkpKyIpIixyLmZpbGwoKSxyLnN0cm9rZVN0eWxlPW8\/InJnYmEoIisoSy5ob3Q\/eTp4KSsiLCIrbipldCooLjIyKy40NipLLmxhbSkrIikiOiJyZ2JhKDkyLDE0MCwzOCwiK24qZXQqKC4zKy40MipLLmxhbSkrIikiLHIubGluZVdpZHRoPU1hdGgubWF4KC41LChLLmhvdD8xLjM6Ljc1KSpoKSxyLnN0cm9rZSgpfX19fWZvcih2YXIgRj04NCxIPVtdLE49W10saj0wO2o8RjtqKyspe3ZhciBZPTEtMiooaisuNSkvRixEPU1hdGguc3FydChNYXRoLm1heCgwLDEtWSpZKSksUT0yLjM5OTk2KmorLjM1Kk1hdGguc2luKDcuMypqKTtILnB1c2goW01hdGguY29zKFEpKkQsWSxNYXRoLnNpbihRKSpEXSksTi5wdXNoKC43NCsuMjYqZyhqLDUpKX12YXIgRz1bXSxYPXt9O2ZvcihqPTA7ajxGO2orKyl7Zm9yKHZhciBVPVtdLFo9MDtaPEY7WisrKWlmKFohPT1qKXt2YXIgSj11KEhbWl0sSFtqXSk7VS5wdXNoKFtaLGYoSixKKV0pfVUuc29ydChmdW5jdGlvbih0LHIpe3JldHVybiB0WzFdLXJbMV19KTtmb3IodmFyIEs9MDtLPDM7SysrKXt2YXIgVj1VW0tdWzBdLCQ9TWF0aC5taW4oaixWKSsiXyIrTWF0aC5tYXgoaixWKTtYWyRdfHwoWFskXT0xLEcucHVzaChbaixWXSkpfX1mb3IodmFyIHR0PVtdLHJ0PS0xO3J0PD0xO3J0KyspZm9yKHZhciBldD0tMTtldDw9MTtldCsrKWZvcih2YXIgYXQ9LTE7YXQ8PTE7YXQrKyl0dC5wdXNoKHtnOltydCxldCxhdF0sc2M6WzIuMSooZyh0dC5sZW5ndGgsMTEpLS41KSwyLjEqKGcodHQubGVuZ3RoLDEyKS0uNSksMi4xKihnKHR0Lmxlbmd0aCwxMyktLjUpXX0pO3ZhciBudD1bWy0xLC0xLC0xXSxbMSwtMSwtMV0sWzEsMSwtMV0sWy0xLDEsLTFdLFstMSwtMSwxXSxbMSwtMSwxXSxbMSwxLDFdLFstMSwxLDFdXSxpdD1bWzAsMywyLDFdLFs0LDUsNiw3XSxbMCwxLDUsNF0sWzIsMyw3LDZdLFsxLDIsNiw1XSxbMCw0LDcsM11dLG90PVtdO2ZvcihqPTA7ajwzMDtqKyspe1E9ai8zMCo2LjI4MysuNSpnKGosMjEpO3ZhciBzdD0uNStnKGosMjIpO290LnB1c2goe2E6USxzcDpzdCxiOi41KzEuNCpnKGosMjMpLHBoOjYuMjgzKmcoaiwyNCl9KX1mdW5jdGlvbiBodCh0LHIsZSl7dmFyIGE9LjM0Kk1hdGguc2luKDIuNipyK3QucGgrLjM1KmUpKnI7cmV0dXJuW01hdGguY29zKHQuYSkqKDIuNSpyKnQuc3ApK2EsKHIqcioyLjItLjkpKnQuYisuMTYqTWF0aC5zaW4oMy4xKnIrdC5waCksTWF0aC5zaW4odC5hKSooMi41KnIqdC5zcCkrLjYqYV19dmFyIGN0PWlubmVyV2lkdGg8OTAwfHwoZGV2aWNlUGl4ZWxSYXRpb3x8MSk+Mi4yPzQyMDo5MDAsdXQ9Y3QsbHQ9W107Zm9yKGo9MDtqPHV0O2orKyl7WT0xLTIqKGorLjUpL3V0LEQ9TWF0aC5zcXJ0KE1hdGgubWF4KDAsMS1ZKlkpKSxRPTIuMzk5OTYqaisxLjIqZyhqLDMxKTtsdC5wdXNoKHt1OltNYXRoLmNvcyhRKSpELFksTWF0aC5zaW4oUSkqRF0scjE6ZyhqLDMyKSxyMjpnKGosMzMpLHIzOmcoaiwzNCkscGg6Ni4yODMqZyhqLDM1KSxzejouNSsxLjUqTWF0aC5wb3coZyhqLDM2KSwxLjUpLGFzc2V0OmcoaiwzNyk8LjEzfSl9dmFyIGZ0PVtdLHZ0PTAsZHQ9MCxwdD0wO2Z1bmN0aW9uIE10KHQscixlKXt2YXIgYT1sdFtyXSxuPWEudTtzd2l0Y2godCl7Y2FzZSAwOmlmKHIlNTwzKXt2YXIgaT0uNzUrMS4xNSphLnIxO3JldHVybltuWzBdKmksblsxXSppLG5bMl0qaV19dmFyIG89Mi45KzQuNiphLnIyO3JldHVybltuWzBdKm8qMS41LG5bMV0qbyouOSxuWzJdKm9dO2Nhc2UgMjpjYXNlIDM6dmFyIHM9MS41KzMuNiphLnIxO3JldHVybltuWzBdKnMqMS43LG5bMV0qcyoxLjA1LG5bMl0qc107Y2FzZSA0OnZhciBoPXIlMyxjPShyL3V0KjMrLjE3KmUrYS5yMSklMS0uNSx1PS42MiooTWF0aC5mbG9vcihyLzMpJTMtMSksbD0uNjIqKE1hdGguZmxvb3Ioci85KSUzLTEpO3JldHVybiAwPT09aD9bNSpjLHUsbF06MT09PWg\/W3UsNSpjLGxdOlt1LGwsNSpjXTtjYXNlIDU6cmV0dXJuIGh0KG90W3IlMzBdLChyL3V0KjIuMysuMSplK2EucjEpJTEsZSk7Y2FzZSA2OnZhciBmPTUuNSszKmEucjE7cmV0dXJuW25bMF0qZixuWzFdKmYsblsyXSpmXTtjYXNlIDc6dmFyIHY9ciUyPzE6LTEscD0uMzUrLjY1Kk1hdGguc3FydChhLnIxKTtyZXR1cm4gZ3QoW3YqKG10LS4wMitNYXRoLmFicyhuWzBdKSpwKi45MiksblsxXSpwKi41LG5bMl0qcCoxLjA1XSxlKTtjYXNlIDk6dmFyIE09ZnRbdnRdW3JdLG09ZnRbZHRdW3JdO3JldHVyblsxKmQoTVswXSxtWzBdLHB0KSwxKmQoTVsxXSxtWzFdLHB0KSwxKmQoTVsyXSxtWzJdLHB0KV07ZGVmYXVsdDp2YXIgZz0xKzEuMSphLnIxO3JldHVybltuWzBdKmcsblsxXSpnLG5bMl0qZ119fSFmdW5jdGlvbigpe2Z1bmN0aW9uIHQodCxyKXtyZXR1cm4gZygzLjE3KnQrMSwxLjkzKnIrMi4xMSl9Zm9yKHZhciByPVtbWzAsLS42MiwwXSxbMCwtLjMsMF0sLjM3LC4zM10sW1swLC0uMywwXSxbMCwuMywwXSwuMjEsLjE5XSxbWzAsLjMsMF0sWy40LC43OCwuMDRdLC4xOCwuMDk1XSxbWy40LC43OCwuMDRdLFsuNjQsLjYsLjA2XSwuMDk1LC4wNDVdXSxlPVtbLS40NiwuMywuNF0sWy40LC4wMiwuNDRdLFstLjA0LC0uNTIsLjNdXSxhPVsuMTgsLS4xLC4zMl0sbj1bLjIsLS4xNiwuMjZdLGk9MDtpPDU7aSsrKXtmb3IodmFyIG89W10scz0wO3M8dXQ7cysrKXt2YXIgaCxjLHUsbD10KHMsNCppKzIxKSxmPXQocyw0KmkrMjIpLHY9dChzLDQqaSsyMyksZD10KHMsNCppKzI0KTtpZigwPT09aSloPVsuNiooMipmLTEpLC42KigyKnYtMSksLjYqKDIqZC0xKV07ZWxzZSBpZigxPT09aSl7dmFyIHA9bHRbc10udSxNPXMlMj8xOi0xLG09LjM1Ky42NSpNYXRoLnNxcnQoZik7aD1bTSooLjAyNStNYXRoLmFicyhwWzBdKSptKi42OCkscFsxXSptKi40NixwWzJdKm0qLjg4XX1lbHNlIGlmKDI9PT1pKWlmKGw8LjU1KXt2YXIgeD1NYXRoLm1pbigzLDQqZnwwKSx5PVsuOTUsLjU1LC0uMDUsLS42XVt4XTtjPTYuMjgzMip2LHU9Wy42LC41NCwuNDYsLjM4XVt4XSsuMDUqKGQtLjUpLGg9W01hdGguY29zKGMpKnUseSsuMDMqKGQtLjUpLE1hdGguc2luKGMpKnVdfWVsc2V7dmFyIHc9TWF0aC5taW4oNCw1KmZ8MCkvNSo2LjI4MzIrLjMsYj0uMypNYXRoLmNvcyh3KSxTPS4zKk1hdGguc2luKHcpLEM9MS41NSp2LS42LEE9MzYuNDkqQysyLjMqdyxFPS4wOSsuMDIqKGQtLjUpO2g9W2IrTWF0aC5jb3MoQSkqRSxDLFMrTWF0aC5zaW4oQSkqRV19ZWxzZSBpZigzPT09aSl7dmFyIGs9cltsPC4zPzA6bDwuNjU\/MTpsPC45PzI6M10sUD1rWzBdLHE9a1sxXSx6PWtbMl0sST1mLFQ9KHorKGtbM10teikqSSkqTWF0aC5zcXJ0KGQpO2M9Ni4yODMyKnYsaD1bUFswXSsocVswXS1QWzBdKSpJK01hdGguY29zKGMpKlQsUFsxXSsocVsxXS1QWzFdKSpJLFBbMl0rKHFbMl0tUFsyXSkqSStNYXRoLnNpbihjKSpUKi43XX1lbHNle3ZhciBPPU1hdGgubWluKDIsMypsfDApLEw9ZVtPXSxSPWFbT10sVz1uW09dLEI9Ni4yODMyKmYsXz02LjI4MzIqdixGPS4yMypMWzJdKk1hdGguc3FydChkKSxIPUxbMl0rTWF0aC5jb3MoXykqRixOPU1hdGguc2luKF8pKkYsaj1NYXRoLmNvcyhCKSpILFk9TWF0aC5zaW4oQikqSCxEPU1hdGguY29zKFcpLFE9TWF0aC5zaW4oVyk7aD1bTFswXStqLExbMV0rWSpELU4qUSxSK1kqUStOKkRdfW8ucHVzaChoKX1mdC5wdXNoKG8pfX0oKTt2YXIgbXQ9LjEzO2Z1bmN0aW9uIGd0KHQscil7dmFyIGU9LS4wMypyKy4xMipNYXRoLnNpbiguMTYqciksYT1NYXRoLmNvcyhlKSxuPU1hdGguc2luKGUpO3JldHVyblt0WzBdKmErdFsyXSpuLHRbMV0sLXRbMF0qbit0WzJdKmFdfWZ1bmN0aW9uIHh0KHQscixlKXt2YXIgYT1IW3JdLG49TltyXTtzd2l0Y2godCl7Y2FzZSAwOnJldHVyblsxLjQyKmFbMF0qbiwxLjQyKmFbMV0qbiwxLjQyKmFbMl0qbl07Y2FzZSA3OnZhciBpPS44Ky4yKm47cmV0dXJuIGd0KFsociUyPzE6LTEpKihtdCtNYXRoLmFicyhhWzBdKSppKi45MiksYVsxXSppKi41MixhWzJdKmkqMS4wNl0sZSk7Y2FzZSA4OnJldHVyblsxLjU1KmFbMF0qbiwxLjU1KmFbMV0qbiwxLjU1KmFbMl0qbl07Y2FzZSA5OnZhciBvPTExKnIldXQscz1mdFt2dF1bb10saD1mdFtkdF1bb107cmV0dXJuWzEqZChzWzBdLGhbMF0scHQpLDEqZChzWzFdLGhbMV0scHQpLDEqZChzWzJdLGhbMl0scHQpXTtkZWZhdWx0OnJldHVyblsxLjUqYVswXSpuLDEuNSphWzFdKm4sMS41KmFbMl0qbl19fXZhciB5dD1be3BtOjAsc3c6MSxydzowLGZ3OjAsbXc6LjQ1LHk6LjMscDouMTYsZDozLjgsczoxLjE2LGc6MSx2Oi4wMixyczoxLGh4Oi4wOX0se3BtOjMsc3c6MCxydzowLGZ3OjAsbXc6MCxwdzouMjIseTowLHA6LjIyLGQ6NC4yLHM6MS40MixnOjAsdjotLjA2LHJzOjEsaHg6LS4yfSx7cG06MyxzdzowLHJ3OjAsZnc6MCxtdzowLHB3Oi4xLHk6MCxwOi4xMixkOjQuMixzOjEuMzIsZzowLHY6MCxyczoxLHJvOjEsaHg6LS4yfSx7cG06MyxzdzowLHJ3OjAsZnc6MCxtdzowLHB3Oi4zOCx5Oi42LHA6LjA4LGQ6NC4yLHM6Mi41LGc6MCx2OjAscnM6MSxybzouMixoeDouMDd9LHtwbTo0LHN3OjAscnc6MCxmdzowLG13OjAseTozLjMscDouMDgsZDoxLjE1LHM6MSxnOjEsdjowLHJzOjIuOSxybzouNDZ9LHtwbTo1LHN3OjAscnc6MCxmdzoxLG13OjAseTo0LjE1LHA6LjE2LGQ6NC4yLHM6MS4xNSxnOjEsdjouMDQscnM6MX0se3BtOjYsc3c6MCxydzowLGZ3OjAsbXc6MCx5OjUscDouMixkOjYuNSxzOi42LGc6MCx2Oi4zLHJzOjF9LHtwbTo4LHN3Oi43LHJ3OjAsZnc6MCxtdzouNDUscHc6LjUseTo3LjA1LHA6LjMsZDo0LjIsczoyLjM1LGc6MCx2Oi4zMSxyczoxLGh4Oi0uMn1dLHd0PXl0Lmxlbmd0aCxidD17MDp7aHg6MCx2OjB9LDE6e2h4OjAsdjouNH0sMjp7aHg6MCx2Oi4yMixzOjEuMzV9LDM6e2h4OjAsczoxLHB3Oi4zfSw0OntyczoyLjZ9LDU6e2h4OjAsdjouMTJ9LDY6e2h4OjAsdjouM30sNzp7aHg6MCx2Oi41NSxzOjEuOX19O2Z1bmN0aW9uIFN0KHQpe3ZhciByPXl0W3RdO2lmKCFhcnx8IWJ0W3RdKXJldHVybiByO3ZhciBlPXt9O2Zvcih2YXIgYSBpbiByKWVbYV09clthXTtmb3IodmFyIG4gaW4gYnRbdF0pZVtuXT1idFt0XVtuXTtyZXR1cm4gZX12YXIgQ3Q9Mi42LEF0PXYoWy4zOCwuNywuNl0pLEV0PTAsa3Q9MCxQdD00LjUscXQ9MSx6dD0wLEl0PTA7ZnVuY3Rpb24gVHQodCl7dmFyIHI9TWF0aC5jb3MoRXQpLGU9TWF0aC5zaW4oRXQpLGE9TWF0aC5jb3Moa3QpLG49TWF0aC5zaW4oa3QpLGk9dFswXSpyK3RbMl0qZSxvPS10WzBdKmUrdFsyXSpyO3JldHVybltpLHRbMV0qYS1vKm4sbz10WzFdKm4rbyphXX1mdW5jdGlvbiBPdCh0KXt2YXIgcj1QdC10WzJdO2lmKHI8LjMpcmV0dXJuIG51bGw7dmFyIGU9Q3QvcjtyZXR1cm5bSXQrdFswXSplKnF0LHp0LXRbMV0qZSpxdCx0WzJdLGVdfWZ1bmN0aW9uIEx0KHQpe3JldHVybiB0JiZ0WzBdPi0zMjAmJnRbMF08ZSszMjAmJnRbMV0+LTMyMCYmdFsxXTxhKzMyMH12YXIgUnQ9W10uc2xpY2UuY2FsbChkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCJbZGF0YS1jZHhdIikpLFd0PTAsQnQ9MCxfdD0wO2Z1bmN0aW9uIEZ0KCl7aWYoUnQubGVuZ3RoKXtmb3IodmFyIHQ9aW5uZXJIZWlnaHQscj1zY3JvbGxZfHxwYWdlWU9mZnNldCxlPTAsYT1SdFswXS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS50b3ArcixuPTA7bjxSdC5sZW5ndGg7bisrKXt2YXIgaT1SdFtuXS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS50b3ArcjtyPj1pLTImJihlPW4sYT1pKX12YXIgbz1SdFtlXS5vZmZzZXRIZWlnaHR8fHQscz1tKChyLWEpLyhvLXQ+LjIqdD9vLXQ6byksMCwxKTtCdD1zLF90PWU7dmFyIGg9UnRbZV0uaGFzQXR0cmlidXRlKCJkYXRhLXRhaWwiKT9tKChyLWEtKG8tdCkpL3QsMCwxKTpzO1d0PW0oZStoLDAsd3QtMSl9fXZhciBIdD1kb2N1bWVudC5xdWVyeVNlbGVjdG9yKCdbZGF0YS1jZHg9IjAiXSAuaW4nKSxOdD0tMSxqdD0oZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiZm9vdGVyIiksZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiI2NvbnRhY3RvIC5maW4iKSksWXQ9ZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiI2NvbnRhY3RvIiksRHQ9ZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiI2R1YWxpZGFkIiksUXQ9ZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiLmR1YWxnbyIpfHxkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCIuZHVhbCIpLEd0PWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoIi5kdWFsIiksWHQ9ZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiI2luZHVzdHJpYXMgLnNob3RzIiksVXQ9W10sWnQ9ITAsSnQ9MCxLdD0wLFZ0PTAsJHQ9MCx0cj0yNDA7ZnVuY3Rpb24gcnIodCl7dmFyIGM9MHxXdCxnPU1hdGgubWluKHd0LTEsYysxKSxDPU0oV3QtYyksUD1TdChjKSxxPVN0KGcpLHo9V3QtYyxJPWZ1bmN0aW9uKHQpe3JldHVybih0PW0odCwwLDEpKSp0KigzLTIqdCl9LFQ9TWF0aC5taW4oLjU2MiplLDEuMTYqYSksTz1hcj8xLjA1Oi4yNiplLyguNjE5KlQpLS40NixMPTE9PT1jP0koKHotLjE2KS8uMyk6MDttdD0wPT09Yz9kKC4xMyxPLEkoKHotLjYyKS8uMjUpKToxPT09Yz9kKE8sLjEzLEwpOi4xMzt2YXIgUj0wPT09Yz9JKCh6LS41MikvLjI2KTowOzE9PT1jJiYoQz1JKCh6LS41KS8uNDIpKTt2YXIgSD0yPT09X3Q\/NSptKEJ0LDAsMSk6V3Q+PTM\/NTowLE49TWF0aC5taW4oNCwwfEgpO3Z0PU4sZHQ9TWF0aC5taW4oNCxOKzEpLHB0PUkobSgoSC1OLS40MikvLjUsMCwxKSk7dmFyIGo9WXQmJmM+PTY\/SSgoYS1ZdC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS50b3ApL2EpOjAsWT1JKGovLjQyKSxEPUkoKGotLjQpLy42KSxRPS0xO1AuZyE9PXEuZyYmUnRbYysxXSYmKFE9TWF0aC5yb3VuZChSdFtjKzFdLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLnRvcCkpO3ZhciBYLFU9UTwwP1AuZzpkKFAuZyxxLmcsKFg9aStkKFAudixxLnYsQykqYSxRPDA\/MDpYPj1RPzE6MCkpLFo9VT4uNSxKPWQoUC5zdyxxLnN3LEMpLEs9ZChQLnJ3LHEucncsQyksVj1kKFAuZncscS5mdyxDKSwkPWQoUC5tdyxxLm13LEMpO2lmKDY9PT1jKXt2YXIgcnQ9SShqLy4yNik7Sj0uNypydCwkPS40NSpydH12YXIgZXQ9MD09PWM\/SSh6Ly44KTowLGF0PWV0KigxLVIpO2V0PjAmJihKPU1hdGgucG93KDEtZXQsMS4yNSksJCo9TWF0aC5wb3coMS1hdCwyKSk7dmFyIHN0PTY9PT1jPy40MipNYXRoLnBvdygxLVksMS40KTo3PT09Yz8wOi0xLHV0PWQoUC5ycyxxLnJzLEMpLGZ0PWQobnVsbD09UC5ybz8xOlAucm8sbnVsbD09cS5ybz8xOnEucm8sQyksZ3Q9ZChudWxsPT1QLnB3PzE6UC5wdyxudWxsPT1xLnB3PzE6cS5wdyxDKSx5dD0wPT09Yz9JKCh6LS42KS8uMjgpOkM7RXQ9ZChQLnkscS55LHl0KSsuMDMqdCxrdD1kKFAucCxxLnAseXQpKy4wNCpNYXRoLnNpbiguMzEqdCksUHQ9ZChQLmQscS5kLHl0KSsuMDkqTWF0aC5zaW4oLjI2KnQpLHF0PW8qZChQLnMscS5zLHl0KSooMSsuMDM1Kk1hdGguc2luKC40NCp0KSkqKDErLjA1Kk1hdGguc2luKE1hdGguUEkqeXQpKigwPT09Yz8wOjEpKSx6dD1pK2QoUC52LHEudix5dCkqYSxJdD1uK2QoUC5oeHx8MCxxLmh4fHwwLHl0KSplO3ZhciBidD1hcj8uNDI6LjM0O1c9MD09PWM\/MTowLEI9Yz49Nj9EOjA7dmFyIEN0LEZ0PUd0P2Z1bmN0aW9uKCl7dmFyIHQ9R3QuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7cmV0dXJuIHQudG9wKy41KnQuaGVpZ2h0fSgpOmkrYnQqYSxKdD1RdCYmRHQ\/KEN0PVF0LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLmJvdHRvbSkrKER0LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLmJvdHRvbS1DdCkqKGFyPy4zNDouMjYpOkZ0O2lmKDA9PT1jJiZSPjAmJih6dD1kKHp0LEZ0LFIpLEl0PWQoSXQsLjUqZSxSKSksMT09PWMmJih6dD1kKGQoRnQsSnQsTCksenQsQykpLGp0JiYoNj09PWN8fDc9PT1jKSl7dmFyIEt0PWUqKGFyPzEuMjU6MS4yKS8uNjc4LFZ0PS42NzgqS3QsJHQ9anQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkuYm90dG9tK2EqKGFyPy4xMjouMDcpK1Z0LHRyPW8qKGFyPzEuMjoxLjM1KSooMSsuMDM1Kk1hdGguc2luKC40NCp0KSk7cXQ9ZCh0cixLdCxEKSx6dD1kKGEqKGFyPy42MjouNTIpLCR0LEQpLEl0PS41KmV9dmFyIHJyPTA9PT1jP0koKHotLjQ4KS8uMjQpOjE9PT1jPzE6Mj09PWM\/MS0uNDYqQzozPT09Yz8uNTQqKDEtQyk6MCxlcj1udWxsO2lmKCgyPT09Y3x8Mz09PWMpJiZYdCl7dmFyIG5yPVh0LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO2VyPVtuci5sZWZ0Ky41Km5yLndpZHRoLG5yLnRvcCsuNSpuci5oZWlnaHQsLjUqbnIud2lkdGgsLjUqbnIuaGVpZ2h0XX1mdW5jdGlvbiBpcih0KXtyZXR1cm4oUC5wbT09PXQ\/MS1DOjApKyhxLnBtPT09dD9DOjApfXdpbmRvdy5fX2NkeEhhbmQ9e3c6cnIsazpjLHA6QyxscDp6LHlkOkZ0LHliOkp0LGh4Okl0LGh5Onp0LHNoOmVyfTt2YXIgb3I9aXIoOSk7ci5zZXRUcmFuc2Zvcm0ocywwLDAscywwLDApLHIuZ2xvYmFsQ29tcG9zaXRlT3BlcmF0aW9uPSJzb3VyY2Utb3ZlciI7dmFyIHNyPVAuZz9TOmIsaHI9cS5nP1M6YjtpZihyLmZpbGxTdHlsZT0icmdiKCIrc3Iuam9pbigiLCIpKyIpIixyLmZpbGxSZWN0KDAsMCxlLGEpLFE+PTAmJlE8YSYmKHIuZmlsbFN0eWxlPSJyZ2IoIitoci5qb2luKCIsIikrIikiLHIuZmlsbFJlY3QoMCxNYXRoLm1heCgwLFEpLGUsYS1NYXRoLm1heCgwLFEpKSksZG9jdW1lbnQuYm9keS5jbGFzc0xpc3QudG9nZ2xlKCJuaWdodCIsWiksSHQpe3ZhciBjcj0wPT09Yz8xLUkoKHotLjIyKS8uMjQpOmM+MD8wOjE7Y3IhPT1OdCYmKE50PWNyLEh0LnN0eWxlLm9wYWNpdHk9Y3IpfXIuZ2xvYmFsQ29tcG9zaXRlT3BlcmF0aW9uPVU+LjQ\/InNjcmVlbiI6InNvdXJjZS1vdmVyIjtmb3IodmFyIHVyPTA7dXI8Y3Q7dXIrKyl7dmFyIGxyLGZyPWx0W3VyXTtpZihscj1wKE10KFAucG0sdXIsdCksTXQocS5wbSx1cix0KSxDKSxhdD4wKXt2YXIgdnI9TXQoMCx1cix0KSxkcj0xKzMuNCphdCooLjYrLjgqZnIucjMpO2xyPXAobHIsW3ZyWzBdKmRyLHZyWzFdKmRyLHZyWzJdKmRyXSxhdCl9bHJbMF0rPS4wNTUqTWF0aC5zaW4oLjIzKnQrZnIucGgpLGxyWzFdKz0uMDU1Kk1hdGguY29zKC4yKnQrMS4zKmZyLnBoKSxsclsyXSs9LjA1NSpNYXRoLnNpbiguMjcqdCsuNypmci5waCk7dmFyIHByPU90KFR0KGxyKSk7aWYoTHQocHIpKXt2YXIgTXI9bSgocHJbM10tLjMpLzIuMiwwLDEpLG1yPWZyLmFzc2V0PzIrMS42KmZyLnIyOi43Ky45KmZyLnIyO21yKj1oKiguNTUrLjYqTXIpKigxKy4yMipvcik7dmFyIGdyPWZyLmFzc2V0Py44Oi4yNSsuNSpNcjtpZihncio9Wj8xOi43OCxhdD4wJiYoZ3IqPTEtYXQpLCEoKGdyKj1ndCk8LjAxKSl7b3I+LjAyJiYoZ3IrPS41NSooMS1ncikqb3IpO3ZhciB4cj1mci5hc3NldD8uNjI6LjM1Ky4yNSpNcjtvcj4uMDImJih4cis9LjYqKDEteHIpKm9yKTt2YXIgeXI9ZnIuYXNzZXQ\/LjI1Ky4yNSpNYXRoLnNpbiguOCp0K2ZyLnBoKTowO2lmKFp0JiYoZnIuYXNzZXR8fE1yPi43KSYmayhBLHByWzBdLHByWzFdLE1hdGgubWluKG1yKigzLjUrNSp5ciksMTUqaCksZ3IqKFo\/LjM0Oi4yNikpLHIuZ2xvYmFsQ29tcG9zaXRlT3BlcmF0aW9uPSJzb3VyY2Utb3ZlciIsci5maWxsU3R5bGU9Wj8icmdiYSgiK3grIiwiK2dyKyIpIjoicmdiYSgiK3coTWF0aC5taW4oMSx4cikpKyIsIitncisiKSIsci5iZWdpblBhdGgoKSxyLmFyYyhwclswXSxwclsxXSxNYXRoLm1heCguNSxtciksMCw2LjI4NCksci5maWxsKCksb3I+LjUpe3ZhciB3cj0uMDQ1Km9yO0x0KGplPU90KFR0KFtsclswXSsoZnIucjItLjUpKndyLGxyWzFdKyhmci5yMy0uNSkqd3IsbHJbMl0rKGZyLnIxLS41KSp3cl0pKSkmJihyLmJlZ2luUGF0aCgpLHIuYXJjKGplWzBdLGplWzFdLE1hdGgubWF4KC41LC43Km1yKSwwLDYuMjg0KSxyLmZpbGwoKSl9ci5nbG9iYWxDb21wb3NpdGVPcGVyYXRpb249VT4uND8ic2NyZWVuIjoic291cmNlLW92ZXIifX19aWYoci5nbG9iYWxDb21wb3NpdGVPcGVyYXRpb249InNvdXJjZS1vdmVyIixfKHQsSixzdD49MD9zdDphdCxaKSxLPi4wMSl7dmFyIGJyLFNyO2lmKDI9PT1fdCl7dmFyIENyPTQqbShCdCwwLDEpLEFyPU1hdGgubWluKDMsTWF0aC5mbG9vcihDcikpO2JyPUFyKzEsU3I9TShtKDEuNiooQ3ItQXItLjE4KSwwLDEpKSpNYXRoLlBJKi41fWVsc2V7YnI9TWF0aC5mbG9vcih0LzIuNCksU3I9TShtKHQlMi40LzEuMTUsMCwxKSkqTWF0aC5QSSouNX1mb3IodmFyIEVyPWJyJTMsa3I9TWF0aC5mbG9vcihici8zKSUzLTEsUHI9TWF0aC5jb3MoU3IpLHFyPU1hdGguc2luKFNyKSx6cj1bXSxJcj0wO0lyPDI3O0lyKyspe3ZhciBUcj10dFtJcl0sT3I9Wy40NipUci5nWzBdLC40NipUci5nWzFdLC40NipUci5nWzJdXSxMcj1wKFRyLnNjLE9yLG0oMS4xNSpLLDAsMSkpO2lmKFRyLmdbRXJdPT09a3Ipe3ZhciBScj1MclsoRXIrMSklM10sV3I9THJbKEVyKzIpJTNdO0xyWyhFcisxKSUzXT1ScipQci1XcipxcixMclsoRXIrMiklM109UnIqcXIrV3IqUHJ9bXI9LjE4NSp1dDtmb3IodmFyIEJyPVtMclswXSp1dCxMclsxXSp1dCxMclsyXSp1dF0sX3I9W10sRnI9MDtGcjw4O0ZyKyspX3IucHVzaChUdChbQnJbMF0rbnRbRnJdWzBdKm1yLEJyWzFdK250W0ZyXVsxXSptcixCclsyXStudFtGcl1bMl0qbXJdKSk7Zm9yKHZhciBIcj0wO0hyPDY7SHIrKyl7dmFyIE5yPWl0W0hyXSxqcj1fcltOclswXV0sWXI9X3JbTnJbMV1dLERyPV9yW05yWzJdXSxRcj1fcltOclszXV0sR3I9dihsKHUoWXIsanIpLHUoRHIsanIpKSksWHI9WyhqclswXStZclswXStEclswXStRclswXSkvNCwoanJbMV0rWXJbMV0rRHJbMV0rUXJbMV0pLzQsKGpyWzJdK1lyWzJdK0RyWzJdK1FyWzJdKS80XTtpZighKGYoR3IsdShbMCwwLFB0XSxYcikpPD0wKSl7dmFyIFVyPVtPdChqciksT3QoWXIpLE90KERyKSxPdChRcildO1VyWzBdJiZVclsxXSYmVXJbMl0mJlVyWzNdJiYoTHQoVXJbMF0pfHxMdChVclsyXSkpJiZ6ci5wdXNoKHt6OlhyWzJdLHA6VXIsbGFtOk1hdGgubWF4KDAsZihHcixBdCkpfSl9fX16ci5zb3J0KGZ1bmN0aW9uKHQscil7cmV0dXJuIHQuei1yLnp9KTtmb3IodmFyIFpyPTA7WnI8enIubGVuZ3RoO1pyKyspe3ZhciBKcj16cltacl07ci5iZWdpblBhdGgoKSxyLm1vdmVUbyhKci5wWzBdWzBdLEpyLnBbMF1bMV0pO2Zvcih2YXIgS3I9MTtLcjw0O0tyKyspci5saW5lVG8oSnIucFtLcl1bMF0sSnIucFtLcl1bMV0pO3IuY2xvc2VQYXRoKCksci5maWxsU3R5bGU9Wj8icmdiYSgxNTAsMjAwLDExMCwiK0sqZnQqKC4wNSsuMTQqSnIubGFtKSsiKSI6InJnYmEoMTUwLDIwNCw4NCwiK0sqZnQqKC4xKy4yMipKci5sYW0pKyIpIixyLmZpbGwoKSxyLnN0cm9rZVN0eWxlPVo\/InJnYmEoIit4KyIsIitLKmZ0KiguMysuNSpKci5sYW0pKyIpIjoicmdiYSgxMTIsMTc2LDQwLCIrSypmdCooLjQyKy40MipKci5sYW0pKyIpIixyLmxpbmVXaWR0aD1NYXRoLm1heCguNywxKmgpLHIuc3Ryb2tlKCl9fWlmKFY+LjAxKXtyLmdsb2JhbENvbXBvc2l0ZU9wZXJhdGlvbj0ic2NyZWVuIixyLmxpbmVDYXA9InJvdW5kIjtmb3IodmFyIFZyPTA7VnI8b3QubGVuZ3RoO1ZyKyspe2Zvcih2YXIgJHI9b3RbVnJdLHRlPVtdLHJlPTA7cmU8PTE0O3JlKyspdGUucHVzaChPdChUdChodCgkcixyZS8xNCx0KSkpKTtmb3IodmFyIGVlPTA7ZWU8MztlZSsrKWlmKHRlW2VlXSYmdGVbZWUrMV0pe3ZhciBhZT1bLjEyLC4zOCwuNzJdW2VlXTtyLmJlZ2luUGF0aCgpLHIubW92ZVRvKHRlW2VlXVswXSx0ZVtlZV1bMV0pLHIubGluZVRvKHRlW2VlKzFdWzBdLHRlW2VlKzFdWzFdKSxadCYmKHIuc3Ryb2tlU3R5bGU9InJnYmEoIit4KyIsIisuMSpWKmFlKyIpIixyLmxpbmVXaWR0aD1NYXRoLm1heCgyLDUqaCksci5zdHJva2UoKSksci5zdHJva2VTdHlsZT0icmdiYSgyMDUsMjM2LDE2MCwiKy41KlYqYWUrIikiLHIubGluZVdpZHRoPU1hdGgubWF4KC43LDEuMipoKSxyLnN0cm9rZSgpfXZhciBuZT0hMTtyLmJlZ2luUGF0aCgpO2Zvcih2YXIgaWU9MztpZTw9MTQ7aWUrKyl7dmFyIG9lPXRlW2llXTtvZT9uZT9yLmxpbmVUbyhvZVswXSxvZVsxXSk6KHIubW92ZVRvKG9lWzBdLG9lWzFdKSxuZT0hMCk6bmU9ITF9WnQmJihyLnN0cm9rZVN0eWxlPSJyZ2JhKCIreCsiLCIrLjEqVisiKSIsci5saW5lV2lkdGg9TWF0aC5tYXgoMiw1KmgpLHIuc3Ryb2tlKCkpLHIuc3Ryb2tlU3R5bGU9InJnYmEoMjA1LDIzNiwxNjAsIisuNSpWKyIpIixyLmxpbmVXaWR0aD1NYXRoLm1heCguNywxLjIqaCksci5zdHJva2UoKSx0ZVsxNF0mJmsoRSx0ZVsxNF1bMF0sdGVbMTRdWzFdLDEyKmgsLjc1KlYpfXIubGluZUNhcD0iYnV0dCIsci5nbG9iYWxDb21wb3NpdGVPcGVyYXRpb249InNvdXJjZS1vdmVyIn12YXIgc2U9aXIoNyk7aWYoJD4uMDEpe2Zvcih2YXIgaGU9MDtoZTxGO2hlKyspe3ZhciBjZT14dChQLnBtLGhlLHQpLHVlPXh0KHEucG0saGUsdCksbGU9MS4zNypoZSxmZT0uMDcrLjA0Kk1hdGguc2luKC44KnQrbGUpLHZlPXAoY2UsdWUsQyk7aWYoYXQ+MCl7dmFyIGRlPTErMS42KmF0O3ZlPVt2ZVswXSpkZSx2ZVsxXSpkZSx2ZVsyXSpkZV19dmVbMF0rPU1hdGguc2luKC40NSp0K2xlKSpmZSx2ZVsxXSs9TWF0aC5jb3MoLjM5KnQrMS4zKmxlKSpmZSx2ZVsyXSs9TWF0aC5zaW4oLjUyKnQrLjcqbGUpKmZlLFV0W2hlXT1PdChUdCh2ZSkpfXIubGluZVdpZHRoPU1hdGgubWF4KC41LC41OCpoKTtmb3IodmFyIHBlPTExMCpoLE1lPTA7TWU8Ry5sZW5ndGg7TWUrKyl7dmFyIG1lPVV0W0dbTWVdWzBdXSxnZT1VdFtHW01lXVsxXV07aWYobWUmJmdlJiYoTHQobWUpfHxMdChnZSkpKXt2YXIgeGU9bSgoKG1lWzNdK2dlWzNdKS8yLS4zKS8yLjIsMCwxKSx5ZT1zZT4uMDImJkdbTWVdWzBdJTIhPUdbTWVdWzFdJTI7aWYoIXllfHwhKE1lJTEyIT0wfHxtdD4uNSkpe3ZhciB3ZT1NYXRoLmh5cG90KGdlWzBdLW1lWzBdLGdlWzFdLW1lWzFdKSxiZT1NYXRoLm1heCguMDM1LC4yMiooMS1NYXRoLm1pbigxLHdlLygyLjYqcGUpKSkqKC4zKy43KnhlKSkqKHllPy40NToxLjE1KTtyLnN0cm9rZVN0eWxlPVo\/InJnYmEoIit4KyIsIiskKmJlKyIpIjoicmdiYSgiK3grIiwiKyQqYmUqMS43KyIpIixyLmJlZ2luUGF0aCgpLHIubW92ZVRvKG1lWzBdLG1lWzFdKSxyLmxpbmVUbyhnZVswXSxnZVsxXSksci5zdHJva2UoKX19fWZvcih2YXIgU2U9MDtTZTxGO1NlKyspe3ZhciBDZT1VdFtTZV07aWYoQ2UmJkx0KENlKSlmb3IodmFyIEFlPVNlKzE7QWU8RjtBZSsrKXt2YXIgRWU9VXRbQWVdO2lmKEVlKXt2YXIga2U9RWVbMF0tQ2VbMF0sUGU9RWVbMV0tQ2VbMV07aWYoIShrZT5wZXx8a2U8LXBlfHxQZT5wZXx8UGU8LXBlKSl7dmFyIHFlPU1hdGguc3FydChrZSprZStQZSpQZSk7aWYoIShxZT5wZXx8c2U+LjAyJiZTZSUyIT1BZSUyKSl7dmFyIHplPS4yMiooMS1xZS9wZSkqKC4zKy43Km0oKChDZVszXStFZVszXSkvMi0uMykvMi4yLDAsMSkpO3Iuc3Ryb2tlU3R5bGU9Wj8icmdiYSgiK3grIiwiKyQqemUqMS4xKyIpIjoicmdiYSgiK3grIiwiKyQqemUqMS42KyIpIixyLmJlZ2luUGF0aCgpLHIubW92ZVRvKENlWzBdLENlWzFdKSxyLmxpbmVUbyhFZVswXSxFZVsxXSksci5zdHJva2UoKX19fX19ci5nbG9iYWxDb21wb3NpdGVPcGVyYXRpb249VT4uND8ic2NyZWVuIjoic291cmNlLW92ZXIiO2Zvcih2YXIgSWU9MDtJZTxGO0llKyspe3ZhciBUZT1VdFtJZV07aWYoTHQoVGUpKXt2YXIgT2U9bSgoVGVbM10tLjMpLzIuMiwwLDEpLExlPUllJTY9PTAsUmU9KExlPzM6LjcrLjYpKmgqKC42Ky42Kk9lKSxXZT0oTGU\/Ljg6LjI1Ky41Kk9lKSokKihaPzE6Ljg1KSxCZT1MZT8uMysuMypNYXRoLnNpbiguOSp0K0llKTowO1p0JiYoTGV8fE9lPi41KSYmayhMZT9FOkEsVGVbMF0sVGVbMV0sTWF0aC5taW4oUmUqKDMuNSs1KkJlKSwxNipoKSxXZSooWj8uMzY6LjI2KSksci5nbG9iYWxDb21wb3NpdGVPcGVyYXRpb249InNvdXJjZS1vdmVyIixyLmZpbGxTdHlsZT1aPyJyZ2JhKCIrKExlP3k6eCkrIiwiK1dlKyIpIjoicmdiYSgiK3coTGU\/LjUrLjMqQmU6LjM1Ky4yNSpPZSkrIiwiK1dlKyIpIixyLmJlZ2luUGF0aCgpLHIuYXJjKFRlWzBdLFRlWzFdLE1hdGgubWF4KC41LFJlKSwwLDYuMjg0KSxyLmZpbGwoKSxMZSYmIVomJihyLnN0cm9rZVN0eWxlPSJyZ2JhKCIreCsiLCIrJCooLjIrLjMqQmUpKyIpIixyLmxpbmVXaWR0aD0uNixyLmJlZ2luUGF0aCgpLHIuYXJjKFRlWzBdLFRlWzFdLFJlKzUrNCpCZSwwLDYuMjg0KSxyLnN0cm9rZSgpKSxyLmdsb2JhbENvbXBvc2l0ZU9wZXJhdGlvbj1VPi40PyJzY3JlZW4iOiJzb3VyY2Utb3ZlciJ9fXZhciBfZT1zZSooMS1JKChtdC0uMjUpLy42KSk7aWYoX2U+LjAyKWZvcih2YXIgRmU9MDtGZTw0O0ZlKyspe3ZhciBIZT1VdFsyMCpGZSVGXSxOZT1VdFsoMjAqRmUrMSklRl07SGUmJk5lJiYoci5zdHJva2VTdHlsZT0icmdiYSgiK3grIiwiK19lKiguMSsuMTQqTWF0aC5zaW4oLjYqdCtGZSkpKyIpIixyLmxpbmVXaWR0aD1NYXRoLm1heCguNiwuOCpoKSxyLmJlZ2luUGF0aCgpLHIubW92ZVRvKEhlWzBdLEhlWzFdKSxyLmxpbmVUbyhOZVswXSxOZVsxXSksci5zdHJva2UoKSl9Zm9yKHZhciBqZT0wO2plPDE2O2plKyspe3ZhciBZZT0oNypqZSszKSVHLmxlbmd0aCxEZT1VdFtHW1llXVswXV0sUWU9VXRbR1tZZV1bMV1dO2lmKERlJiZRZSYmIShzZT4uMDImJkdbWWVdWzBdJTIhPUdbWWVdWzFdJTIpKXt2YXIgR2U9KEg9KC4yNip0K2plLzE2KSUxKTwuNT8yKkg6MiooMS1IKSxYZT1kKERlWzBdLFFlWzBdLEdlKSxVZT1kKERlWzFdLFFlWzFdLEdlKTtadCYmayhFLFhlLFVlLDcqaCwkKihaPy41Oi4yOCkpLHIuZ2xvYmFsQ29tcG9zaXRlT3BlcmF0aW9uPSJzb3VyY2Utb3ZlciIsci5maWxsU3R5bGU9InJnYigiK3krIikiLHIuYmVnaW5QYXRoKCksci5hcmMoWGUsVWUsTWF0aC5tYXgoLjksMS41KmgpLDAsNi4yODQpLHIuZmlsbCgpLHIuZ2xvYmFsQ29tcG9zaXRlT3BlcmF0aW9uPVU+LjQ\/InNjcmVlbiI6InNvdXJjZS1vdmVyIn19ci5nbG9iYWxDb21wb3NpdGVPcGVyYXRpb249InNvdXJjZS1vdmVyIn19d2luZG93Ll9fY2R4PWZ1bmN0aW9uKCl7cmV0dXJue0JMT09NOlp0LFBOOmN0LFFVQUw6ZXIsZHByOnMsQ1kyOnp0LENYMjpJdCxTQ0w6cXQscHJvZzpXdH19O3ZhciBlcj0xLGFyPSExO2Z1bmN0aW9uIG5yKCl7ZT10LmNsaWVudFdpZHRoLGE9dC5jbGllbnRIZWlnaHQscz1NYXRoLm1pbihkZXZpY2VQaXhlbFJhdGlvfHwxLDEuNzUpO3ZhciByPTI1ZTUqZXI7ZSphKnMqcz5yJiYocz1NYXRoLm1heCguNzUsTWF0aC5zcXJ0KHIvKGUqYSkpKSksdC53aWR0aD1NYXRoLnJvdW5kKGUqcyksdC5oZWlnaHQ9TWF0aC5yb3VuZChhKnMpLGg9TWF0aC5tYXgoLjYsZS8xNDQwKSxuPS43KmUsaT0uNDYqYSxvPS4zKk1hdGgubWluKGUsYSksZTwxMTgwJiYobj0uNzQqZSxvPS4yNypNYXRoLm1pbihlLGEpKSwoYXI9ZTw5MDApJiYobj0uNSplLGk9LjMxKmEsbz0uMzYqTWF0aC5taW4oZSxhKSl9dmFyIGlyPSEwOyJJbnRlcnNlY3Rpb25PYnNlcnZlciJpbiB3aW5kb3cmJm5ldyBJbnRlcnNlY3Rpb25PYnNlcnZlcihmdW5jdGlvbih0KXtpcj10WzBdLmlzSW50ZXJzZWN0aW5nfSx7cm9vdE1hcmdpbjoiMTUwcHgifSkub2JzZXJ2ZSh0KTt2YXIgb3I9MDtucigpLGFkZEV2ZW50TGlzdGVuZXIoInJlc2l6ZSIsZnVuY3Rpb24oKXtucigpLGMmJihGdCgpLHJyKDApKX0pLGM\/KGFkZEV2ZW50TGlzdGVuZXIoInNjcm9sbCIsZnVuY3Rpb24oKXtGdCgpLHJyKDApLHdpbmRvdy5fX2NkeENhcCYmd2luZG93Ll9fY2R4Q2FwKHBlcmZvcm1hbmNlLm5vdygpKX0se3Bhc3NpdmU6ITB9KSxGdCgpLHJyKDApKTpyZXF1ZXN0QW5pbWF0aW9uRnJhbWUoZnVuY3Rpb24gdChyKXtpZihvcnx8KG9yPXIpLGlyKXt2YXIgZT1WdD9yLVZ0OjE2O1Z0PXIsZT4zMD8oSnQrKyxLdD0wKTplPDIwJiYoS3QrKyxKdD0wKSxKdD4yMD8oSnQ9MCwwPT09JHQ\/KFp0PSExLCR0PTEpOjE9PT0kdD8oZXI9LjU1LG5yKCksJHQ9Mik6Mj09PSR0JiYoY3Q9TWF0aC5tYXgoMjQwLE1hdGgucm91bmQoLjU1KmN0KSksJHQ9MyksdHI9TWF0aC5taW4oMTgwMCwyKnRyKSk6S3Q+dHImJiR0PjAmJihLdD0wLDM9PT0kdD8oY3Q9dXQsJHQ9Mik6Mj09PSR0Pyhlcj0xLG5yKCksJHQ9MSk6MT09PSR0JiYoWnQ9ITAsJHQ9MCkpLEZ0KCkscnIoTWF0aC5tYXgoMCwoci1vcikvMWUzKSksd2luZG93Ll9fY2R4Q2FwJiZ3aW5kb3cuX19jZHhDYXAocil9ZWxzZSBWdD0wO3JlcXVlc3RBbmltYXRpb25GcmFtZSh0KX0pLGZ1bmN0aW9uKCl7dmFyIHQ9W10uc2xpY2UuY2FsbChkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCIudHciKSk7dC5sZW5ndGgmJnQuZm9yRWFjaChmdW5jdGlvbih0KXt2YXIgcj10LmdldEF0dHJpYnV0ZSgiZGF0YS1hIil8fCIiLGU9dC5nZXRBdHRyaWJ1dGUoImRhdGEtYiIpfHwiIixhPXQucXVlcnlTZWxlY3RvcigiLmdob3N0Iik7aWYoYSl7dmFyIG49YS5pbm5lckhUTUwuc3BsaXQoLzxiclxzKlwvPz4vaSk7aWYoMj09PW4ubGVuZ3RoKXt2YXIgaT1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTtpLmlubmVySFRNTD1uWzBdO3ZhciBvPWkudGV4dENvbnRlbnQucmVwbGFjZSgvXHMrJC8sIiIpO2kuaW5uZXJIVE1MPW5bMV07dmFyIHM9aS50ZXh0Q29udGVudC50cmltKCk7byYmcyYmKHI9bysiICIsZT1zKX19dmFyIGg9dC5xdWVyeVNlbGVjdG9yKCIudGEiKSx1PXQucXVlcnlTZWxlY3RvcigiLnRiIiksbD0iSDEiPT09dC50YWdOYW1lO2lmKGMpcmV0dXJuIGgudGV4dENvbnRlbnQ9cix1LnRleHRDb250ZW50PWUsdm9pZCB0LmNsYXNzTGlzdC5hZGQoImRvbmUiKTtpZihsKXNldFRpbWVvdXQoZnVuY3Rpb24oKXt2YXIgYT0wLG49MDshZnVuY3Rpb24gaSgpe2E8ci5sZW5ndGg\/KGgudGV4dENvbnRlbnQ9ci5zbGljZSgwLCsrYSksc2V0VGltZW91dChpLDM0KzQwKk1hdGgucmFuZG9tKCkpKTpuPGUubGVuZ3RoPyh1LnRleHRDb250ZW50PWUuc2xpY2UoMCwrK24pLHNldFRpbWVvdXQoaSwzNCs0MCpNYXRoLnJhbmRvbSgpKSk6dC5jbGFzc0xpc3QuYWRkKCJkb25lIil9KCl9LDUyMCk7ZWxzZXt2YXIgZj0hMTtpZigiSW50ZXJzZWN0aW9uT2JzZXJ2ZXIiaW4gd2luZG93KXt2YXIgdj1uZXcgSW50ZXJzZWN0aW9uT2JzZXJ2ZXIoZnVuY3Rpb24odCl7dFswXS5pc0ludGVyc2VjdGluZyYmKGQoKSx2LmRpc2Nvbm5lY3QoKSl9LHt0aHJlc2hvbGQ6MSxyb290TWFyZ2luOiItOCUgMHB4IC04JSAwcHgifSk7di5vYnNlcnZlKHQpfWVsc2UgZCgpfWZ1bmN0aW9uIGQoKXtpZighZil7Zj0hMDt2YXIgYT0wLG49MDshZnVuY3Rpb24gaSgpe2E8ci5sZW5ndGg\/KGgudGV4dENvbnRlbnQ9ci5zbGljZSgwLCsrYSksc2V0VGltZW91dChpLDI0KzM0Kk1hdGgucmFuZG9tKCkpKTpuPGUubGVuZ3RoPyh1LnRleHRDb250ZW50PWUuc2xpY2UoMCwrK24pLHNldFRpbWVvdXQoaSwzMCs0MCpNYXRoLnJhbmRvbSgpKSk6dC5jbGFzc0xpc3QuYWRkKCJkb25lIil9KCl9fX0pfSgpLGZ1bmN0aW9uKCl7dmFyIHQ9W10uc2xpY2UuY2FsbChkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCIuaW5kIFtkYXRhLWldIikpLHI9W10uc2xpY2UuY2FsbChkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCIuc2hvdHMgLnNob3QiKSk7ZnVuY3Rpb24gZShlKXtmb3IodmFyIGE9MDthPHIubGVuZ3RoO2ErKylyW2FdLmNsYXNzTGlzdC50b2dnbGUoIm9uIixhPT09ZSk7Zm9yKHZhciBuPTA7bjx0Lmxlbmd0aDtuKyspdFtuXS5jbGFzc0xpc3QudG9nZ2xlKCJvbiIsK3Rbbl0uZ2V0QXR0cmlidXRlKCJkYXRhLWkiKT09PWUpfXQubGVuZ3RoJiZyLmxlbmd0aCYmKHQuZm9yRWFjaChmdW5jdGlvbih0KXt2YXIgcj0rdC5nZXRBdHRyaWJ1dGUoImRhdGEtaSIpO3QuYWRkRXZlbnRMaXN0ZW5lcigibW91c2VlbnRlciIsZnVuY3Rpb24oKXtlKHIpfSksdC5zZXRBdHRyaWJ1dGUoInRhYmluZGV4IiwiMCIpLHQuYWRkRXZlbnRMaXN0ZW5lcigiZm9jdXMiLGZ1bmN0aW9uKCl7ZShyKX0pfSksZSgwKSl9KCksZnVuY3Rpb24oKXt2YXIgdD1bXS5zbGljZS5jYWxsKGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoIi5sYWJlbCwuY2FwIC5uLC5zdGVwIC5uLC5kb20gLnRhZywubWV0YSBiLC5pbmQgaSwuaW5kIGIsLnNob3Rub3RlIikpLmZpbHRlcihmdW5jdGlvbih0KXtyZXR1cm4gMD09PXQuY2hpbGRyZW4ubGVuZ3RoJiZ0LnRleHRDb250ZW50LnRyaW0oKS5sZW5ndGh9KTtpZih0Lmxlbmd0aCYmIWMmJiJJbnRlcnNlY3Rpb25PYnNlcnZlciJpbiB3aW5kb3cpe3ZhciByPSIwMTIzNDU2Nzg5IixlPW5ldyBJbnRlcnNlY3Rpb25PYnNlcnZlcihmdW5jdGlvbih0KXt0LmZvckVhY2goZnVuY3Rpb24odCl7aWYodC5pc0ludGVyc2VjdGluZyl7ZS51bm9ic2VydmUodC50YXJnZXQpO3ZhciByPXQudGFyZ2V0LG49MTgwO2lmKHIubWF0Y2hlcygiLmluZCBiLCAuaW5kIGkiKSl7dmFyIGk9ci5wYXJlbnROb2RlO249MjYwKzExMCpbXS5zbGljZS5jYWxsKGkucGFyZW50Tm9kZS5jaGlsZHJlbikuaW5kZXhPZihpKSsoIkIiPT09ci50YWdOYW1lPzYwOjApfSFmdW5jdGlvbih0LHIpe3ZhciBlLG49dC50ZXh0Q29udGVudCxpPW4ubGVuZ3RoLG89MDtmdW5jdGlvbiBzKHIpe2Zvcih2YXIgZT0iIixvPSEwLHM9MDtzPGk7cysrKXt2YXIgaD1uW3NdOyIgIj09PWh8fHI+PTMyMCs2MipzP2UrPWg6KGUrPWEoaCksbz0hMSl9cmV0dXJuIHQudGV4dENvbnRlbnQ9ZSxvfXQuY2xhc3NMaXN0LmFkZCgiZmxhcCIpLHMoLTEpLGU9cGVyZm9ybWFuY2Uubm93KCkrcixmdW5jdGlvbiByKGEpe2lmKGEtbzw0OClyZXF1ZXN0QW5pbWF0aW9uRnJhbWUocik7ZWxzZXtpZihvPWEsYTxlKXJldHVybiBzKC0xKSx2b2lkIHJlcXVlc3RBbmltYXRpb25GcmFtZShyKTtzKGEtZSk\/dC50ZXh0Q29udGVudD1uOnJlcXVlc3RBbmltYXRpb25GcmFtZShyKX19KHBlcmZvcm1hbmNlLm5vdygpKX0ocixuKX19KX0se3RocmVzaG9sZDouOSxyb290TWFyZ2luOiIwcHggMHB4IC0xMiUgMHB4In0pO3QuZm9yRWFjaChmdW5jdGlvbih0KXtlLm9ic2VydmUodCl9KX1mdW5jdGlvbiBhKHQpe3JldHVybi9bMC05XS8udGVzdCh0KT9yWzEwKk1hdGgucmFuZG9tKCl8MF06L1tBLVphLXrDgcOJw43Dk8Oaw5HDocOpw63Ds8O6w7FdLy50ZXN0KHQpP01hdGgucmFuZG9tKCk8LjE4P3JbMTAqTWF0aC5yYW5kb20oKXwwXToiQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVoiWzI2Kk1hdGgucmFuZG9tKCl8MF06dH19KCksZnVuY3Rpb24oKXt2YXIgdD1bXS5zbGljZS5jYWxsKGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoIi5sb2dvcyAudHJhY2siKSk7aWYodC5sZW5ndGgmJiJJbnRlcnNlY3Rpb25PYnNlcnZlciJpbiB3aW5kb3cpe3QuZm9yRWFjaChmdW5jdGlvbih0KXt0LnN0eWxlLmFuaW1hdGlvblBsYXlTdGF0ZT0icGF1c2VkIn0pO3ZhciByPW5ldyBJbnRlcnNlY3Rpb25PYnNlcnZlcihmdW5jdGlvbih0KXt0LmZvckVhY2goZnVuY3Rpb24odCl7dC50YXJnZXQucXVlcnlTZWxlY3RvcigiLnRyYWNrIikuc3R5bGUuYW5pbWF0aW9uUGxheVN0YXRlPXQuaXNJbnRlcnNlY3Rpbmc\/InJ1bm5pbmciOiJwYXVzZWQifSl9LHtyb290TWFyZ2luOiIxMjBweCAwcHgifSk7ZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgiLmxvZ29zIikuZm9yRWFjaChmdW5jdGlvbih0KXtyLm9ic2VydmUodCl9KX19KCk7dmFyIHNyPWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoIi5ydiwuc3YiKTtpZighKCJJbnRlcnNlY3Rpb25PYnNlcnZlciJpbiB3aW5kb3cpfHxjKWZvcih2YXIgaHI9MDtocjxzci5sZW5ndGg7aHIrKylzcltocl0uY2xhc3NMaXN0LmFkZCgib24iKTtlbHNlIGZvcih2YXIgY3I9bmV3IEludGVyc2VjdGlvbk9ic2VydmVyKGZ1bmN0aW9uKHQpe3QuZm9yRWFjaChmdW5jdGlvbih0KXt0LmlzSW50ZXJzZWN0aW5nJiYodC50YXJnZXQuY2xhc3NMaXN0LmFkZCgib24iKSxjci51bm9ic2VydmUodC50YXJnZXQpKX0pfSx7dGhyZXNob2xkOi4xNX0pLHVyPTA7dXI8c3IubGVuZ3RoO3VyKyspY3Iub2JzZXJ2ZShzclt1cl0pfSgpLGZ1bmN0aW9uKCl7InVzZSBzdHJpY3QiO3ZhciB0PWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjZHgiKTtpZih0KXt2YXIgcj1bMTQzLDE5MCw2Nl0sZT1bMjYsMjYsMjZdLGE9MTM1MCxuPS4xNTtsdC5wcm90b3R5cGUuYWRkPWZ1bmN0aW9uKHQscil7cmV0dXJuIHRoaXMuUC5wdXNoKHt4OnRbMF0seTp0WzFdLHo6dFsyXSxnOnJ9KSx0aGlzLlAubGVuZ3RoLTF9LGx0LnByb3RvdHlwZS5lZGdlPWZ1bmN0aW9uKHQscil7dGhpcy5FLnB1c2godCxyKSx0aGlzLlcucHVzaCh0aGlzLmN3KX0sbHQucHJvdG90eXBlLmxpbmU9ZnVuY3Rpb24odCxyKXt2YXIgZT1bXSxhPXRoaXM7dC5mb3JFYWNoKGZ1bmN0aW9uKHQpe2UucHVzaChhLmFkZCh0KSl9KTtmb3IodmFyIG49MDtuPGUubGVuZ3RoLTE7bisrKWEuZWRnZShlW25dLGVbbisxXSk7cmV0dXJuIHImJmUubGVuZ3RoPjImJmEuZWRnZShlW2UubGVuZ3RoLTFdLGVbMF0pLGV9LGx0LnByb3RvdHlwZS5sb29wPWZ1bmN0aW9uKHQscixlLGEsbil7Zm9yKHZhciBpPVtdLG89MDtvPGU7bysrKXt2YXIgcz1vL2UqNi4yODMyKyhhfHwwKTtpLnB1c2goW3RbMF0rTWF0aC5jb3Mocykqcix0WzFdLHRbMl0rTWF0aC5zaW4ocykqcl0pfXJldHVybiB0aGlzLmxpbmUoaSwhMCl9LGx0LnByb3RvdHlwZS50dWJlPWZ1bmN0aW9uKHQscixlLGEsbixpLG8pe2Zvcih2YXIgcz1odChbclswXS10WzBdLHJbMV0tdFsxXSxyWzJdLXRbMl1dKSxoPWh0KGN0KHMsTWF0aC5hYnMoc1sxXSk+Ljk\/WzEsMCwwXTpbMCwxLDBdKSksYz1jdChzLGgpLHU9W10sbD0wO2w8bjtsKyspe2Zvcih2YXIgZj0xPT09bj8uNTpsLyhuLTEpLHY9c3QodCxyLGYpLGQ9KGUrKGEtZSkqZikqKG8mJmwlbz09PTAmJmw+MCYmbDxuLTE\/MS4yMjoxKSxwPVtdLE09MDtNPGk7TSsrKXt2YXIgbT1NL2kqNi4yODMyO3AucHVzaChbdlswXSsoaFswXSpNYXRoLmNvcyhtKStjWzBdKk1hdGguc2luKG0pKSpkLHZbMV0rKGhbMV0qTWF0aC5jb3MobSkrY1sxXSpNYXRoLnNpbihtKSkqZCx2WzJdKyhoWzJdKk1hdGguY29zKG0pK2NbMl0qTWF0aC5zaW4obSkpKmRdKX11LnB1c2godGhpcy5saW5lKHAsITApKX1mb3IobD0wO2w8bi0xO2wrKylmb3IoTT0wO008aTtNKyspdGhpcy5lZGdlKHVbbF1bTV0sdVtsKzFdW01dKTtyZXR1cm4gdX0sbHQucHJvdG90eXBlLmxhdGhlPWZ1bmN0aW9uKHQscixlLGEsbixpLG8pe3ZhciBzLGgsYz1bXTtmb3Iocz0wO3M8aTtzKyspe3ZhciB1PXMvKGktMSk7Yy5wdXNoKHRoaXMubG9vcChbdCxlKyhhLWUpKnUscl0sbih1KSxvKSl9Zm9yKHM9MDtzPGktMTtzKyspZm9yKGg9MDtoPG87aCsrKXRoaXMuZWRnZShjW3NdW2hdLGNbcysxXVtoXSk7cmV0dXJuIGN9LGx0LnByb3RvdHlwZS5iYWxsPWZ1bmN0aW9uKHQscixlKXtmb3IodmFyIGE9MDthPGU7YSsrKXt2YXIgbj11dChlLGEpO3RoaXMuYWRkKFt0WzBdK25bMF0qcix0WzFdK25bMV0qcix0WzJdK25bMl0qcl0pfX0sbHQucHJvdG90eXBlLnN3ZWVwPWZ1bmN0aW9uKHQscixlLGEsbixpLG8pe3ZhciBzLGgsYz1bXTtmb3Iocz0wO3M8aTtzKyspe3ZhciB1PXMvKGktMSksbD0oMS11KSooMS11KSxmPTIqKDEtdSkqdSx2PXUqdSxkPVtsKnRbMF0rZipyWzBdK3YqZVswXSxsKnRbMV0rZipyWzFdK3YqZVsxXSwwXSxwPWh0KFsyKigxLXUpKihyWzBdLXRbMF0pKzIqdSooZVswXS1yWzBdKSwyKigxLXUpKihyWzFdLXRbMV0pKzIqdSooZVsxXS1yWzFdKSwwXSksTT1odChjdChwLFswLDAsMV0pKSxtPWErKG4tYSkqdSxnPVtdO2ZvcihoPTA7aDxvO2grKyl7dmFyIHg9aC9vKjYuMjgzMjtnLnB1c2goW2RbMF0rTVswXSpNYXRoLmNvcyh4KSptLGRbMV0rTVsxXSpNYXRoLmNvcyh4KSptLE1hdGguc2luKHgpKm1dKX1jLnB1c2godGhpcy5saW5lKGcsITApKX1mb3Iocz0wO3M8aS0xO3MrKylmb3IoaD0wO2g8bztoKyspdGhpcy5lZGdlKGNbc11baF0sY1tzKzFdW2hdKTtyZXR1cm4gY30sbHQucHJvdG90eXBlLmpvaW50PWZ1bmN0aW9uKHQscixlLGEpe2Zvcih2YXIgbixpPXRoaXMudHViZShbdFswXSx0WzFdLC1lLzJdLFt0WzBdLHRbMV0sZS8yXSxyLHIsMyxhKSxvPXRoaXMubG9vcChbdFswXSx0WzFdLC1lLzItLjMyKnJdLC42MipyLGEvMiwwKSxzPVtdLGg9MDtoPGEvMjtoKyspe3ZhciBjPWgvKGEvMikqNi4yODMyO3MucHVzaChbdFswXStNYXRoLmNvcyhjKSpyKi42Mix0WzFdK01hdGguc2luKGMpKnIqLjYyLGUvMisuMzIqcl0pfWZvcihuPXRoaXMubGluZShzLCEwKSxoPTA7aDxvLmxlbmd0aDtoKyspe3ZhciB1PWgvby5sZW5ndGgqNi4yODMyLGw9dGhpcy5QW29baF1dO2wueD10WzBdK01hdGguY29zKHUpKnIqLjYyLGwueT10WzFdK01hdGguc2luKHUpKnIqLjYyLGwuej0tZS8yLS4zMipyfWZvcihoPTA7aDxhLzI7aCsrKXRoaXMuZWRnZShpWzBdWzIqaF0sb1toXSksdGhpcy5lZGdlKGlbMl1bMipoXSxuW2hdKTtyZXR1cm4gaX07dmFyIGksbz1be2M6Wy0uMTgsLjAyXSxydDouNDcscnI6LjM5LGg6LjE3LG46MTIsdzoxfSx7YzpbLjM0LC41M10scnQ6LjM0LHJyOi4yOCxoOi4xLG46OSx3Oi0xMi85fSx7YzpbLjMzLC0uNTJdLHJ0Oi4zMyxycjouMjcsaDouMSxuOjksdzotMTIvOX1dLHM9MSxoPVtmdW5jdGlvbigpe3ZhciB0LHIsZSxhPW5ldyBsdCxuPTEwLGk9e307ZnVuY3Rpb24gbyh0KXtyZXR1cm4gMSp0LzktLjV9ZnVuY3Rpb24gcyh0LHIsZSl7cmV0dXJuIDA9PT10fHwwPT09cnx8MD09PWV8fDk9PT10fHw5PT09cnx8OT09PWV9ZnVuY3Rpb24gaCh0LHIsZSl7dmFyIGE9MDtyZXR1cm5bdCxyLGVdLmZvckVhY2goZnVuY3Rpb24odCl7MyE9PXQmJjYhPT10fHxhKyt9KSxhPj0yfWZvcih0PTA7dDxuO3QrKylmb3Iocj0wO3I8bjtyKyspZm9yKGU9MDtlPG47ZSsrKShzKHQscixlKXx8aCh0LHIsZSkpJiYoaVt0KyIsIityKyIsIitlXT1hLmFkZChbbyh0KSxvKHIpLG8oZSldKSk7Zm9yKHZhciBjIGluIGkpe3ZhciB1PWMuc3BsaXQoIiwiKS5tYXAoTnVtYmVyKTtbWzEsMCwwXSxbMCwxLDBdLFswLDAsMV1dLmZvckVhY2goZnVuY3Rpb24odCl7dmFyIHI9dVswXSt0WzBdKyIsIisodVsxXSt0WzFdKSsiLCIrKHVbMl0rdFsyXSk7aWYodm9pZCAwIT09aVtyXSl7aWYocyh1WzBdLHVbMV0sdVsyXSkmJnModVswXSt0WzBdLHVbMV0rdFsxXSx1WzJdK3RbMl0pKXtmb3IodmFyIGU9ITEsbj0wO248MztuKyspMCE9PXVbbl0mJjkhPT11W25dfHx1W25dIT09dVtuXSt0W25dfHwoZT0hMCk7aWYoIWUpcmV0dXJufWEuZWRnZShpW2NdLGlbcl0pfX0pfXJldHVybiBmdChhLHtrZWVwOiEwLHRhcmdldDouNX0pfSgpLGZ1bmN0aW9uKCl7dmFyIHQscj1uZXcgbHQsZT1vdCgyMiksYT1bXTtmb3IodD0wO3Q8NTIwO3QrKyl7dmFyIG49dXQoNTIwLHQpO2EucHVzaChyLmFkZChkdChuWzBdLG5bMV0sblsyXSkpKX1mb3IoWy0xLDFdLmZvckVhY2goZnVuY3Rpb24odCl7Zm9yKHZhciBlPTA7ZTwzNDtlKyspe3ZhciBhPWUvMzMsbj0uNjItLjg1KmEsaT0uNDIqYS0uMTgsbz10Kk1hdGguc3FydChNYXRoLm1heCguMDIsMS1uKm4taSppKSk7ci5hZGQoZHQobixpLG8pKX1mb3IodmFyIHM9MDtzPDI2O3MrKyl7dmFyIGg9cy8yNSxjPS4yKmgtLjAyLHU9LjkyLS44KmgsbD10Kk1hdGguc3FydChNYXRoLm1heCguMDIsMS1jKmMtdSp1KSk7ci5hZGQoZHQoYyx1LGwpKX19KSx0PTA7dDw4Njt0Kyspe3ZhciBpPXV0KDg2LHQpO2lbMF0+LjMmJmlbMV0+LjF8fHIuYWRkKFsuMjQqaVswXS0uNTYsLjE1KmlbMV0tLjM0LC4zNCppWzJdXSl9ci50dWJlKFstLjI0LC0uMzQsMF0sWy0uMTYsLS44MiwwXSwuMDg1LC4wNyw4LDYpLHIuRS5sZW5ndGg9MCxyLlcubGVuZ3RoPTA7dmFyIG89W10scz1bXTtmb3IodD0wO3Q8MTMwO3QrKyl7dmFyIGg9dXQoMTMwLDM3KnQlMTMwKSxjPWR0KGhbMF0saFsxXSxoWzJdKSx1PS4yMisuNjIqTWF0aC5jYnJ0KGUoKSksbD1bY1swXSp1LGNbMV0qdSsuMDQsY1syXSp1Ki44NV07cy5wdXNoKGwpLG8ucHVzaChyLmFkZChsKSl9ZnVuY3Rpb24gZih0LHIpe3JldHVybiBNYXRoLmh5cG90KHRbMF0tclswXSx0WzFdLXJbMV0sdFsyXS1yWzJdKX1mb3IodD0wO3Q8cy5sZW5ndGg7dCsrKXtmb3IodmFyIHY9W10sZD0wO2Q8cy5sZW5ndGg7ZCsrKWlmKGQhPT10KXt2YXIgcD1mKHNbdF0sc1tkXSk7cDwuMzYmJnYucHVzaChbcCxkXSl9di5zb3J0KGZ1bmN0aW9uKHQscil7cmV0dXJuIHRbMF0tclswXX0pLHYuc2xpY2UoMCwyKS5mb3JFYWNoKGZ1bmN0aW9uKGUpe2VbMV0+dCYmci5lZGdlKG9bdF0sb1tlWzFdXSl9KTt2YXIgTT0tMSxtPTFlOTthLmZvckVhY2goZnVuY3Rpb24oZSl7dmFyIGE9ci5QW2VdLG49ZihzW3RdLFthLngsYS55LGEuel0pO248bSYmKG09bixNPWUpfSksdCUyPT0wJiZtPC40JiZyLmVkZ2Uob1t0XSxNKX1yZXR1cm4gZnQocil9KCksZnVuY3Rpb24oKXt2YXIgdCxyPW5ldyBsdDtmdW5jdGlvbiBlKHQsZSxhLG4saSl7Zm9yKHZhciBvPXIubG9vcChbMCx0LDBdLGUsbikscz1yLmxvb3AoWzAsdC1hLDBdLGUsbi8yLDApLGg9MDtoPG4vMjtoKyspci5lZGdlKG9bMipoXSxzW2hdKTtyZXR1cm4gaSYmci5sb29wKFswLHQsMF0sZSppLE1hdGgucm91bmQobippKi44KSwuMSksb31mb3Iob3QoMzMpLGUoMCwxLC4wNyw0OCwuNTUpLHQ9MDt0PDEyO3QrKyl7Zm9yKHZhciBhPXQvMTIqNi4yODMyLG49W10saT0xO2k8PTQ7aSsrKXt2YXIgbz0uMTkqaTtuLnB1c2goW01hdGguY29zKGEpKm8sLjAwNSxNYXRoLnNpbihhKSpvXSl9ci5saW5lKG4pfWZvcihlKC0uMjksLjksLjA1LDQwKSxlKC0uNDQsLjg1LC4wNyw0MCwuNjIpLHQ9MDt0PDg7dCsrKXtmb3IodmFyIHM9dC84KjYuMjgzMisuMzEsaD1bXSxjPTA7Yzw9NztjKyspe3ZhciB1PWMvNyxsPS44NC0uMDUqTWF0aC5zaW4oMy4xNDE2KnUpKy0uMDIqdSxmPS0uNTItLjU4KnU7aC5wdXNoKFtNYXRoLmNvcyhzKSpsLGYsTWF0aC5zaW4ocykqbF0pfXIubGluZShoKX1lKC0xLjEyLC44MywuMDksNDAsLjU1KSxlKC0xLjY4LC41OCwuMDYsMzApLGUoLTIuMiwuNDMsLjA0LDI0LC42Nik7dmFyIHY9W1swLDBdXTtmb3IodD0wO3Q8Njt0Kyspe3ZhciBkPXQvNio2LjI4MzIrLjI7di5wdXNoKFsuNDYqTWF0aC5jb3MoZCksLjQ2Kk1hdGguc2luKGQpXSl9cmV0dXJuIHIuY3c9MS45LGZ1bmN0aW9uKCl7Zm9yKHZhciB0PS0uNTt0Pi0yLjM7KXtmb3IodmFyIGU9ci5sb29wKFswLHQsMF0sLjEsMTApLGE9ci5sb29wKFswLHQtLjE2LDBdLC4xLDEwKSxuPTA7bjwxMDtuKyspci5lZGdlKGVbbl0sYVtuXSk7dC09LjE2O2Zvcih2YXIgaT1bXSxvPTA7bzw9MzY7bysrKXt2YXIgcz1vLzEyKjYuMjgzMjtpLnB1c2goWy4xMTUqTWF0aC5jb3MocyksdC0uMypvLzM2LC4xMTUqTWF0aC5zaW4ocyldKX1yLmxpbmUoaSksdC09LjN9fSgpLHYuZm9yRWFjaChmdW5jdGlvbih0LGUpe2lmKDAhPT1lKWZvcih2YXIgYT1bLTIuNDIsLTIuMywtMi4zOCwtMi4xOCwtMi40LC0yLjI2LC0yLjM0XVtlXSxuPW51bGwsaT0tLjUsbz0wO2k+PWE7aS09LjA5OCxvKyspe3ZhciBzPW8lND09MixoPXIubG9vcChbdFswXSxpLHRbMV1dLHM\/LjA5NTouMDcyLDUsLjUqZSk7aWYobilmb3IodmFyIGM9MDtjPDU7YysrKXIuZWRnZShuW2NdLGhbY10pO249aH19KSxyLmN3PTEsZnQocix7YXhpczohMCx0YXJnZXQ6LjgyfSl9KCksZnVuY3Rpb24oKXt2YXIgdCxyPW5ldyBsdCxlPS42MixhPVtdO1tbLWUsLWVdLFtlLC1lXSxbZSxlXSxbLWUsZV1dLmZvckVhY2goZnVuY3Rpb24odCxyLGUpe2Zvcih2YXIgbj1lWyhyKzEpJTRdLGk9MDtpPDg7aSsrKXt2YXIgbz1pLzg7YS5wdXNoKFt0WzBdKyhuWzBdLXRbMF0pKm8sLjA4LHRbMV0rKG5bMV0tdFsxXSkqb10pfX0pO3ZhciBuPXIubGluZShhLCEwKSxpPXIubGluZShhLmZpbHRlcihmdW5jdGlvbih0LHIpe3JldHVybiByJTI9PTB9KS5tYXAoZnVuY3Rpb24odCl7cmV0dXJuW3RbMF0sMCx0WzJdXX0pLCEwKTtmb3IodD0wO3Q8aS5sZW5ndGg7dCsrKXIuZWRnZShuWzIqdF0saVt0XSk7W1stLjQ2LC0uNDZdLFsuNDYsLS40Nl0sWy40NiwuNDZdLFstLjQ2LC40Nl0sWzAsLS41XSxbLjUsMF0sWzAsLjVdLFstLjUsMF1dLmZvckVhY2goZnVuY3Rpb24odCl7ci5sb29wKFt0WzBdLC4wODUsdFsxXV0sLjA0NSw1KX0pLHIubGF0aGUoMCwwLC4wOCwuNjIsZnVuY3Rpb24odCl7cmV0dXJuIHQ8LjU\/LjM6LjI3fSw0LDE0KSxyLmpvaW50KFswLC45Ml0sLjI2LC41MiwxMiksci5zd2VlcChbLjA1LDEuMTJdLFsuMiwxLjddLFsuNjIsMi4wNV0sLjIsLjE4LDYsMTApLHIuam9pbnQoWy43LDIuMjJdLC4yNywuNSwxMiksci5zd2VlcChbLjcyLDIuNDVdLFsuNTUsMi45NV0sWy4wMiwyLjgyXSwuMTksLjE3LDYsMTApLHIuam9pbnQoWy0uMTgsMi42Ml0sLjIxLC40LDEwKSxyLnN3ZWVwKFstLjMsMi40NV0sWy0uNCwyLjMyXSxbLS40OCwyLjE2XSwuMTUsLjE0LDMsOCk7dmFyIG89W1stLjQyLDIuMTJdLFstLjY2LDIuMTJdLFstLjY2LDEuOTRdLFstLjQyLDEuOTRdXSxzPXIubGluZShvLm1hcChmdW5jdGlvbih0KXtyZXR1cm5bdFswXSx0WzFdLC0uMTJdfSksITApLGg9ci5saW5lKG8ubWFwKGZ1bmN0aW9uKHQpe3JldHVyblt0WzBdLHRbMV0sLjEyXX0pLCEwKTtmb3IodD0wO3Q8NDt0Kyspci5lZGdlKHNbdF0saFt0XSk7cmV0dXJuIHIubGluZShbWy0uNiwxLjkyLC0uMDZdLFstLjY2LDEuNzUsLS4wNl0sWy0uNywxLjU4LC0uMDZdLFstLjcyLDEuNDIsLS4wNl1dKSxyLmxpbmUoW1stLjQ4LDEuOTIsLjA2XSxbLS41LDEuNzUsLjA2XSxbLS41MiwxLjU4LC4wNl0sWy0uNTMsMS40MiwuMDZdXSksci5saW5lKFtbLS42LDEuOTIsLjA2XSxbLS42NiwxLjc1LC4wNl0sWy0uNywxLjU4LC4wNl0sWy0uNzIsMS40MiwuMDZdXSksci5saW5lKFtbLS40OCwxLjkyLC0uMDZdLFstLjUsMS43NSwtLjA2XSxbLS41MiwxLjU4LC0uMDZdLFstLjUzLDEuNDIsLS4wNl1dKSxmdChyLHtheGlzOiEwLHRhcmdldDouODZ9KX0oKSwoaT1uZXcgbHQsby5mb3JFYWNoKGZ1bmN0aW9uKHQscil7Zm9yKHZhciBlPVtdLGE9LTE7YTw9MTthKz0yKXtmb3IodmFyIG49LjA2KmEsbz1bXSxzPVtdLGg9MDtoPHQubjtoKyspZm9yKHZhciBjPWgvdC5uKjYuMjgzMix1PTYuMjgzMi90Lm4sbD1bWzAsdC5ycl0sWy4xNCx0LnJyXSxbLjIsdC5ydF0sWy40NCx0LnJ0XSxbLjUsdC5ycl0sWzEsdC5ycl1dLGY9WzIsMSwzLDEsMl0sdj0wO3Y8bC5sZW5ndGgtMTt2KyspZm9yKHZhciBkPWxbdl0scD1sW3YrMV0sTT0wO008Zlt2XTtNKyspe3ZhciBtPU0vZlt2XSxnPWMrKGRbMF0rKHBbMF0tZFswXSkqbSkqdSx4PWRbMV0rKHBbMV0tZFsxXSkqbSx5PWkuYWRkKFtNYXRoLmNvcyhnKSp4LE1hdGguc2luKGcpKngsbl0scik7by5wdXNoKHkpLDA9PT1NJiZ2Pj0xJiZ2PD00JiZzLnB1c2goeSl9Zm9yKHZhciB3PTA7dzxvLmxlbmd0aDt3KyspaS5lZGdlKG9bd10sb1sodysxKSVvLmxlbmd0aF0pO2Zvcih2YXIgYj1yPzE0OjIyLFM9W10sQz0wO0M8YjtDKyspe3ZhciBBPUMvYio2LjI4MzI7Uy5wdXNoKGkuYWRkKFtNYXRoLmNvcyhBKSp0LmgsTWF0aC5zaW4oQSkqdC5oLG5dLHIpKX1mb3Iodz0wO3c8Yjt3KyspaS5lZGdlKFNbd10sU1sodysxKSViXSk7ZS5wdXNoKHtjb3JuZXJzOnMsaG9sZTpTfSl9Zm9yKHZhciBFPTA7RTxlWzBdLmNvcm5lcnMubGVuZ3RoO0UrKylpLmVkZ2UoZVswXS5jb3JuZXJzW0VdLGVbMV0uY29ybmVyc1tFXSk7Zm9yKEU9MDtFPGVbMF0uaG9sZS5sZW5ndGg7RSs9MilpLmVkZ2UoZVswXS5ob2xlW0VdLGVbMV0uaG9sZVtFXSl9KSx2dChpLGZ1bmN0aW9uKHQpe3ZhciByPW9bdC5nXTtyZXR1cm57eDpyLmNbMF0rdC54LHk6ci5jWzFdK3QueSx6OnQuen19KSldLGM9bnVsbCx1PVt7cDouNDIsc3BpbjoxLGI6LjYyLHJhdGU6LjAwMTQscGxleDowLGVkZ2U6MSxkazouMzUsZG06LjE1fSx7cDouMSxzcGluOjAsYjozLjQyLGFtcDouNDUscmF0ZTouMDAxMixwbGV4OjEsZWRnZTouNTUsZGs6LjI1LGRtOjF9LHtwOi4yOCxzcGluOjEsYjowLHJhdGU6LjAwMTYscGxleDowLGVkZ2U6MSxkazouNDUsZG06LjE1fSx7cDouMTgsc3BpbjoxLGI6LjU1LHJhdGU6LjAwNDIscGxleDouMTUsZWRnZToxLjE1LGRrOi41LGRtOi4yfSx7cDouMTIsc3BpbjowLGI6LjMsYW1wOi4zLHJhdGU6LjAwMTIscGxleDoxLGVkZ2U6LjYsZGs6LjIsZG06LjV9XSxsPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImNhbnZhcyIpO2wuaWQ9ImNkeGNhcCIsbC5zZXRBdHRyaWJ1dGUoImFyaWEtaGlkZGVuIiwidHJ1ZSIpLHQucGFyZW50Tm9kZS5pbnNlcnRCZWZvcmUobCx0Lm5leHRTaWJsaW5nKSxbInBvc2l0aW9uOmZpeGVkIiwidG9wOjAiLCJsZWZ0OjAiLCJ3aWR0aDoxMDAlIiwiaGVpZ2h0OjEwMCUiLCJ6LWluZGV4OjAiLCJwb2ludGVyLWV2ZW50czpub25lIiwib3BhY2l0eTowIiwiZGlzcGxheTpibG9jayJdLmZvckVhY2goZnVuY3Rpb24odCl7dmFyIHI9dC5zcGxpdCgiOiIpO2wuc3R5bGUuc2V0UHJvcGVydHkoclswXSxyWzFdLCJpbXBvcnRhbnQiKX0pO3ZhciBmPWwuZ2V0Q29udGV4dCgiMmQiKSx2PTAsZD0wLHA9MSxNPU1hdGgubWluKDEuNzUsZGV2aWNlUGl4ZWxSYXRpb3x8MSksbT1tYXRjaE1lZGlhKCIocHJlZmVycy1yZWR1Y2VkLW1vdGlvbjogcmVkdWNlKSIpLm1hdGNoZXM7cD1NLE10KCksYWRkRXZlbnRMaXN0ZW5lcigicmVzaXplIixNdCk7dmFyIGc9ZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiI2NhcGFjaWRhZGVzIC5jYXBncmlkID4gZGl2Om50aC1jaGlsZCgyKSIpLHg9W10uc2xpY2UuY2FsbChkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCIjY2FwYWNpZGFkZXMgLmNhcCIpKSx5PWZ1bmN0aW9uKCl7dmFyIHQ9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiY2FudmFzIiksZT0xMjg7dC53aWR0aD10LmhlaWdodD1lO3ZhciBhPXQuZ2V0Q29udGV4dCgiMmQiKSxuPWEuY3JlYXRlUmFkaWFsR3JhZGllbnQoNjQsNjQsMCw2NCw2NCw2NCk7cmV0dXJuIG4uYWRkQ29sb3JTdG9wKDAsInJnYmEoIityKyIsMSkiKSxuLmFkZENvbG9yU3RvcCgxLCJyZ2JhKCIrcisiLDApIiksYS5maWxsU3R5bGU9bixhLmZpbGxSZWN0KDAsMCxlLGUpLHR9KCksdz1vdCg3KSxiPTEsUz0wO210LnByb3RvdHlwZS5zcGF3bj1mdW5jdGlvbigpe3ZhciB0PTYuMjgzMip3KCkscj0zKzIqdygpO3RoaXMueD1NYXRoLmNvcyh0KSpyLHRoaXMueT1NYXRoLnNpbih0KSpyLHRoaXMuej0zKih3KCktLjUpfSxtdC5wcm90b3R5cGUuc2V0VGFyZ2V0PWZ1bmN0aW9uKHQpe3RoaXMudHg9dC54LHRoaXMudHk9dC55LHRoaXMudHo9dC56LHRoaXMudHY9dC5oPzA6MX0sbXQucHJvdG90eXBlLnVwZGF0ZT1mdW5jdGlvbih0LHIsZSxhLG4saSl7dmFyIG89ZSp0aGlzLnNwZDtpZihvPjEmJihvPTEpLHRoaXMueCs9KHRoaXMudHgtdGhpcy54KSpvLHRoaXMueSs9KHRoaXMudHktdGhpcy55KSpvLHRoaXMueis9KHRoaXMudHotdGhpcy56KSpvLHRoaXMudis9KHRoaXMudHYtdGhpcy52KSphLHRoaXMuZHJpZnRQaGFzZSs9dGhpcy5kcmlmdFNwZWVkKm4sdGhpcy5wdWxzZSs9dGhpcy5wdWxzZVNwZWVkKm4sdGhpcy5pbGx1bT4uMDAyfHx0Pi05ZTMpe3ZhciBzPXQtdGhpcy5zeCxoPXItdGhpcy5zeSxjPXMqcytoKmg7Yzw0ZTQmJih0aGlzLmlsbHVtPU1hdGgubWF4KHRoaXMuaWxsdW0sMS1NYXRoLnNxcnQoYykvMjAwKSl9dGhpcy5pbGx1bSo9aX0sbXQucHJvdG90eXBlLmNvbXB1dGVTY3JlZW49ZnVuY3Rpb24odCxyLGUsYSxuLGksbyl7dmFyIHM9dGhpcy54KmEtdGhpcy56Km4saD10aGlzLngqbit0aGlzLnoqYSxjPXRoaXMueSppLWgqbyx1PSgoaD10aGlzLnkqbytoKmkpKzEuNSkvMzt0aGlzLmRlcHRoPXU8MD8wOnU+MT8xOnU7dmFyIGw9LjY1Ky43KnRoaXMuZGVwdGgsZj1NYXRoLnNpbih0aGlzLmRyaWZ0UGhhc2UpKnRoaXMuZHJpZnRBbXAqYjt0aGlzLnN4PXQrKHMrZikqZSpsLHRoaXMuc3k9ci0oYysuNSpmKSplKmw7dmFyIHY9KHRoaXMuZGVwdGgtLjI0KS8uNTI7dj12PDA\/MDp2PjE\/MTp2LHRoaXMuY3VlPSgxLVMrUypNYXRoLnBvdyh2LDEuMykpKnRoaXMudn07Zm9yKHZhciBDPVtdLEE9MDtBPGE7QSsrKUMucHVzaChuZXcgbXQoQSkpO3ZhciBFPTE0LGs9W10sUD1uZXcgSW50MzJBcnJheShFKSxxPVtdO2ZvcihBPTA7QTxFO0ErKylrLnB1c2gobmV3IEZsb2F0MzJBcnJheSg5NmUzKSkscS5wdXNoKCJyZ2JhKCIrcisiLCIrKChBKy41KS9FKi41NikudG9GaXhlZCgzKSsiKSIpO2Zvcih2YXIgej0xMCxJPVtdLFQ9bmV3IEludDMyQXJyYXkoNDApLE89W10sTD0wO0w8NDtMKyspZm9yKHZhciBSPTA7Ujx6O1IrKyl7SS5wdXNoKG5ldyBGbG9hdDMyQXJyYXkoMyphKSk7dmFyIFc9LjM1KyhMKy41KS80Ki42NSxCPShSKy41KS96O08ucHVzaCgicmdiYSgiKyhlWzBdKigxLVcpK3JbMF0qV3wwKSsiLCIrKGVbMV0qKDEtVykrclsxXSpXfDApKyIsIisoZVsyXSooMS1XKStyWzJdKld8MCkrIiwiK0IudG9GaXhlZCgyKSsiKSIpfXZhciBfPW5ldyBJbnQzMkFycmF5KDEpLEY9bmV3IEludDMyQXJyYXkoYSksSD1uZXcgSW50MzJBcnJheShhKSxOPW5ldyBJbnQzMkFycmF5KGEpLGo9bmV3IFVpbnQ4QXJyYXkoYSksWT0xNDt3dC5wcm90b3R5cGUudXBkYXRlPWZ1bmN0aW9uKHQpe3RoaXMudCs9dGhpcy5zcGVlZCp0O3ZhciByPXRoaXMuZnJvbS5zeCsodGhpcy50by5zeC10aGlzLmZyb20uc3gpKnRoaXMudCxlPXRoaXMuZnJvbS5zeSsodGhpcy50by5zeS10aGlzLmZyb20uc3kpKnRoaXMudDt0aGlzLnRyYWlsLnB1c2goe3g6cix5OmUsYWxwaGE6MX0pLHRoaXMudHJhaWwubGVuZ3RoPjkmJnRoaXMudHJhaWwuc2hpZnQoKTt2YXIgYT1NYXRoLnBvdyguODYsdCk7cmV0dXJuIHRoaXMudHJhaWwuZm9yRWFjaChmdW5jdGlvbih0KXt0LmFscGhhKj1hfSksdGhpcy50PDF9LHd0LnByb3RvdHlwZS5kcmF3PWZ1bmN0aW9uKCl7Zm9yKHZhciB0PU1hdGgubWluKHRoaXMuZnJvbS5jdWUsdGhpcy50by5jdWUpLHI9MTtyPHRoaXMudHJhaWwubGVuZ3RoO3IrKyl7dmFyIGU9dGhpcy50cmFpbFtyXTt4dCgxLC43KmUuYWxwaGEqdCxlLngsZS55LHIvOSoxLjgpfX07dmFyIEQ9W10sUT1kb2N1bWVudC5xdWVyeVNlbGVjdG9yKCIjZHVhbGlkYWQgaDIiKSxHPS0xLFg9MCxVPSFtLFo9e3g6LTk5OTkseTotOTk5OX0sSj0wLEs9MCxWPTFlOTshZnVuY3Rpb24oKXt2YXIgdD1bMWU5LC0xZTldLHI9WzFlOSwtMWU5XTtvLmZvckVhY2goZnVuY3Rpb24oZSl7dD1bTWF0aC5taW4odFswXSxlLmNbMF0tZS5ydCksTWF0aC5tYXgodFsxXSxlLmNbMF0rZS5ydCldLHI9W01hdGgubWluKHJbMF0sZS5jWzFdLWUucnQpLE1hdGgubWF4KHJbMV0sZS5jWzFdK2UucnQpXX0pO3ZhciBlPSh0WzBdK3RbMV0pLzIsYT0oclswXStyWzFdKS8yO28uZm9yRWFjaChmdW5jdGlvbih0KXt0LmM9W3QuY1swXS1lLHQuY1sxXS1hXX0pLHM9LjgvKE1hdGgubWF4KHRbMV0tdFswXSxyWzFdLXJbMF0pLzIpfSgpO3ZhciAkPWZ1bmN0aW9uKCl7dmFyIHQscj1vdCgyMDUpLGU9W107Zm9yKHQ9MDt0PGE7dCsrKXt2YXIgbj11dChhLDUzKnQlYSksaT0uNDUrLjU1Kk1hdGguY2JydChyKCkpO2UucHVzaChbblswXSppLG5bMV0qaSouODYsblsyXSppXSl9cmV0dXJuIGV9KCk7YWRkRXZlbnRMaXN0ZW5lcigicG9pbnRlcm1vdmUiLGZ1bmN0aW9uKHQpe1oueD10LmNsaWVudFgsWi55PXQuY2xpZW50WX0se3Bhc3NpdmU6ITB9KSxkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJwb2ludGVybGVhdmUiLGZ1bmN0aW9uKCl7Wi54PVoueT0tOTk5OX0pO3ZhciB0dD0wLHJ0PTAsZXQ9MCxhdD0wLG50PSExLGl0PS0xO3dpbmRvdy5fX2NkeENhcD1mdW5jdGlvbih0KXt2YXIgcj13aW5kb3cuX19jZHhIYW5kfHx7dzowfSxlPXIud3x8MDtpZihlPC4wMDQpcmV0dXJuIG50JiYobnQ9ITEsZi5jbGVhclJlY3QoMCwwLHYsZCksbC5zdHlsZS5zZXRQcm9wZXJ0eSgib3BhY2l0eSIsIjAiLCJpbXBvcnRhbnQiKSxpdD0wKSx2b2lkKHJ0PTApO3ZhciBpPXY8OTAwLG89ZnVuY3Rpb24oKXtpZih2PDkwMHx8IWcpcmV0dXJue3g6LjUqdix5Oi41KmQsczouNCpNYXRoLm1pbih2LGQpfTt2YXIgdD1nLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO3JldHVybnt4OnQubGVmdCsuNDcqdC53aWR0aCx5Oi41KmQsczpNYXRoLm1pbiguMypkLE1hdGgubWF4KDIxMCwuNzYqdC53aWR0aCkpfX0oKSxzPVE\/US5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS50b3A6LjMqZCxtPXIuaz49Mj8xOlN0KCguMypkLXMpLyguNSpkKSkseT1mdW5jdGlvbigpe2Zvcih2YXIgdD0wLHI9MWU5LGU9LjUqZCxhPTFlOSxuPTA7bjx4Lmxlbmd0aDtuKyspe3ZhciBpPXhbbl0uZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCksbz1pLnRvcCtpLmhlaWdodC8yLHM9TWF0aC5hYnMoby1lKTswPT09biYmKGE9byksczxyJiYocj1zLHQ9bil9cmV0dXJue2s6dCxjMDphfX0oKSx3PW0+PTEmJnkuYzA8LjkqZCxBPVN0KCguNzgqZC1yLnliKS8oLjI4KmQpKSx6PUN0KC41KnYsby54LEEpLEk9TWF0aC5tYXgoby55LHIueWIrLjQqby5zKSxUPW8ucyooLjkyKy4wOCpBKSxPPUN0KC41KnYseixtKSxMPUN0KHIueWQsSSxtKSxSPVQ7Y3x8KGM9ZnVuY3Rpb24oKXt2YXIgdCxyPW90KDY0KSxlPVtdLG49W10saT1bXTtmb3IodD0wO3Q8YTt0KyspKENbdF0uaXNBc3NldD9lOm4pLnB1c2godCk7dmFyIG89TWF0aC5taW4oZS5sZW5ndGgsMTgpLHM9W107Zm9yKHQ9MDt0PG87dCsrKXMucHVzaChlW01hdGguZmxvb3IodCplLmxlbmd0aC9vKV0pO3ZhciBoPTE2MC1vLGM9bi5sZW5ndGgvaDtmb3IodD0wO3Q8aDt0Kyspcy5wdXNoKG5bTWF0aC5mbG9vcih0KmMpXSk7cy5zb3J0KGZ1bmN0aW9uKHQscil7cmV0dXJuIHQtcn0pLFstMSwxXS5mb3JFYWNoKGZ1bmN0aW9uKGUpe2Z1bmN0aW9uIGEodCxhLG4pe2kucHVzaCh7c2lkZTplLGY6TWF0aC5tYXgoMCxNYXRoLm1pbigxLHQrKHIoKS0uNSkqbikpLHY6TWF0aC5tYXgoLTEsTWF0aC5taW4oMSxhKyhyKCktLjUpKm4pKSxkOi4zKihyKCktLjUpfSl9Zm9yKHQ9MDt0PDI0O3QrKylhKDEsMS45Nip0LzIzLS45OCwuMDMpO2Zvcih0PTA7dDw5O3QrKylhKC4wMiwxLjcyKnQvOC0uODYsLjAyKTtmb3IodD0wO3Q8Nzt0Kyspe3ZhciBuPXQvNjthKC4xMisuOCpuLC0uMDgtLjIyKm4rLjA1Kk1hdGguc2luKDkqbiksLjAzKX1mb3IodD0wO3Q8NDA7dCsrKWEoLjErLjgqcigpLC44NiooMipyKCktMSksMCl9KSxpLnNvcnQoZnVuY3Rpb24odCxyKXtyZXR1cm4gdC52LXIudn0pO3ZhciB1PW5ldyBBcnJheShhKTtzLmZvckVhY2goZnVuY3Rpb24odCxyKXt1W3RdPWlbcl19KTtmb3IodmFyIGw9bnVsbCxmPTA7ZjxhO2YrKylpZih1W2ZdKWw9dVtmXTtlbHNle3ZhciB2PWx8fHUuZmluZChmdW5jdGlvbih0KXtyZXR1cm4gdH0pO3VbZl09e3NpZGU6di5zaWRlLGY6di5mLHY6di52LGQ6di5kLGg6MX19cmV0dXJuIHV9KCkpLG50fHwobnQ9ITAsWD0wLEc9LTEsci5rPD0xJiYoIWZ1bmN0aW9uKHQscixlLGEsbil7dmFyIGk9b3QoOTEpO0MuZm9yRWFjaChmdW5jdGlvbihvKXt2YXIgcz02LjI4MzIqaSgpLGg9LjU1Kk1hdGguc3FydChpKCkpO28ueD0odC1lKS9uK01hdGguY29zKHMpKmgsby55PS0oci1hKS9uK01hdGguc2luKHMpKmgsby56PS42KihpKCktLjUpLG8udj0wfSl9KHIuaHgsci5oeSxPLEwsUiksSj0wLEs9MCkpO3ZhciBXPShpPy41OjEpKmUqKDEtLjQyKk1hdGguc2luKE1hdGguUEkqbSkpO01hdGguYWJzKFctaXQpPi4wMSYmKGl0PVcsbC5zdHlsZS5zZXRQcm9wZXJ0eSgib3BhY2l0eSIsVy50b0ZpeGVkKDMpLCJpbXBvcnRhbnQiKSk7dmFyIEI9cnQ\/TWF0aC5taW4oNTAsdC1ydCk6MTYuNztydD10O3ZhciBzdD1CLzE2LjY2NztCPjI2PyhldCsrLGF0PTApOkI8MTUmJihhdCsrLGV0PTApLGV0PjEyJiZwPjEmJihwPU1hdGgubWF4KDEscC0uNSksTXQoKSxldD0wKSxhdD4yNDAmJnA8TSYmKHA9TWF0aC5taW4oTSxwKy41KSxNdCgpLGF0PTApO3ZhciBodCxjdCx1dCxsdCxmdCx2dCxkdD0xLU1hdGguZXhwKC1CLzE5NSksbXQ9MS1NYXRoLmV4cCgtQi8xNTApLHh0PTEtTWF0aC5leHAoLUIvMzAwKSxBdD1NYXRoLnBvdyguOTMsc3QpO2lmKFUmJihYKz0uMDAxMipzdCx0dCs9Qiksdyl7aWYoKHZ0PXkuaykhPT1HJiYoRz12dCxEPVtdLFY9MCw0PT09dnQ\/YnQodHQpOnZ0Pj0wJiZDLmZvckVhY2goZnVuY3Rpb24odCxyKXt0LnNldFRhcmdldChoW3Z0XS5QW3JdKX0pKSxjdD1oW0ddLHV0PW4qUixZPTE0LGx0PShodD11W0ddKS5wbGV4LGZ0PWh0LmVkZ2UsYis9KGh0LmRtLWIpKnh0LFMrPShodC5kay1TKSp4dCxodC5zcGluKVUmJihKKz1odC5yYXRlKnN0KTtlbHNle3ZhciBFdD1odC5iK01hdGguc2luKDMuMipYKSpodC5hbXAtSjtFdD1NYXRoLmF0YW4yKE1hdGguc2luKEV0KSxNYXRoLmNvcyhFdCkpLEorPUV0Knh0fWlmKEsrPShodC5wLUspKnh0LDQ9PT1HKXtidCh0dCk7dmFyIGt0PXIuaz49Mz8xOjI9PT1yLmsmJnIucHx8MDtrdD4wJiYoIWZ1bmN0aW9uKHQscixlLG4saSl7dmFyIG89dCp0KigzLTIqdCkscz0wLGg9MCxjPTEuMjU7ciYmKHM9KHJbMF0tZSkvaSxoPS0oclsxXS1uKS9pLGM9MS4xMipNYXRoLm1heChyWzJdLHJbM10pL2kpO2Zvcih2YXIgdT0wO3U8YTt1Kyspe3ZhciBsPUNbdV0sZj0kW3VdO2wudHg9Q3QobC50eCxzK2ZbMF0qYyxvKSxsLnR5PUN0KGwudHksaCtmWzFdKmMsbyksbC50ej1DdChsLnR6LGZbMl0qYyouNSxvKX19KGt0LHIuc2gsTyxMLFIpLGZ0PWh0LmVkZ2UqKDEta3QpLGx0PUN0KGh0LnBsZXgsLjg1LGt0KSx1dD1uKlIqKDErLjU1Kmt0KSl9fWVsc2V7Rz0tMSxodD11WzBdLGN0PWhbMF07Zm9yKHZhciBQdD1RP1EuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk6e3RvcDouNCpkLGhlaWdodDouMTIqZCx3aWR0aDouNCp2fSxxdD1QdC50b3ArLjUqUHQuaGVpZ2h0LS4wMypkLHp0PWk\/LjM5KnY6TWF0aC5tYXgoLjUqUHQud2lkdGgrNDQsLjE3KnYpLEl0PWk\/LjEzKnY6TWF0aC5taW4oLjEzKnYsLjUqdi16dC0uMDUqdiksVHQ9aT8uMDg1KmQ6TWF0aC5taW4oLjIqZCwxLjkqSXQpLE90PWN0LlAsTHQ9KC41KnYtTykvUixSdD0ocXQtTCkvUixXdD16dC9SLEJ0PUl0L1IsX3Q9VHQvUixGdD1tKm0qKDMtMiptKSxIdD0wO0h0PGE7SHQrKyl7dmFyIE50PWNbSHRdLGp0PU90W0h0XSxZdD1MdCtOdC5zaWRlKihXdCtOdC5mKkJ0KnB0KE50LnYpKy4wNSpCdCpOdC52Kk50LnYqTnQudipOdC52KigxLU50LmYpKSxEdD0tKFJ0K050LnYqX3QpO0NbSHRdLnR4PUN0KFl0LGp0LngsRnQpLENbSHRdLnR5PUN0KER0LGp0LnksRnQpLENbSHRdLnR6PUN0KE50LmQsanQueixGdCksQ1tIdF0udHY9Q3QoTnQuaD8wOjEsanQuaD8wOjEsbSl9dXQ9Q3QoaT84MDoxMDUsbipSLG0pLFk9bTwuNT80OjE0LGx0PTEuNiooMS1tKSxmdD1odC5lZGdlKm0qbSxiKz0oQ3QoMSxodC5kbSxtKS1iKSp4dCxTKz0oaHQuZGsqbS1TKSp4dCxKKz0oaHQuYiptLUopKnh0LEsrPShodC5wKm0tSykqeHR9dmFyIFF0PU1hdGguY29zKEopLEd0PU1hdGguc2luKEopLFh0PU1hdGguY29zKEspLFV0PU1hdGguc2luKEspLFp0PVoueCxKdD1aLnk7Zi5jbGVhclJlY3QoMCwwLHYsZCk7Zm9yKHZhciBLdD0wO0t0PGE7S3QrKyl7dmFyIFZ0PUNbS3RdO1Z0LnVwZGF0ZShadCxKdCxkdCxtdCxzdCxBdCksVnQuY29tcHV0ZVNjcmVlbihPLEwsUixRdCxHdCxYdCxVdCl9Vis9Qjt2YXIgJHQ9dz8oVi0xNzApLzM2MDoxOyhmdW5jdGlvbih0LHIpe2lmKCEocjwuMDEpKXt2YXIgZSxuPU1hdGguY2VpbCh2L3QpKzMsaT1NYXRoLmNlaWwoZC90KSszLG89bippO2ZvcihfLmxlbmd0aDxvJiYoXz1uZXcgSW50MzJBcnJheShvKSksXy5maWxsKC0xLDAsbyksZT0wO2U8YTtlKyspe3ZhciBzPUNbZV07aWYocy5jdWU8LjA1KUhbZV09LTk7ZWxzZXt2YXIgaD0xKyhzLnN4L3R8MCksYz0xKyhzLnN5L3R8MCk7aWYoaDwwfHxjPDB8fGg+PW58fGM+PWkpSFtlXT0tOTtlbHNle0hbZV09aCxOW2VdPWM7dmFyIHU9YypuK2g7RltlXT1fW3VdLF9bdV09ZX19fXZhciBsPXQqdCxmPTEvdDtqLmZpbGwoMCk7Zm9yKHZhciBwPTA7cDxhO3ArKyl7dmFyIE09SFtwXTtpZighKE08MCkpe3ZhciBtPUNbcF0sZz1OW3BdO3Q6Zm9yKHZhciB4PS0xO3g8PTE7eCsrKXt2YXIgeT1nK3g7aWYoISh5PDB8fHk+PWkpKWZvcih2YXIgdz0tMTt3PD0xO3crKyl7dmFyIGI9TSt3O2lmKCEoYjwwfHxiPj1uKSlmb3IodmFyIFM9X1t5Km4rYl07Uz49MDtTPUZbU10paWYoIShTPD1wfHxqW1NdPj1ZKSl7dmFyIEE9Q1tTXSxFPUEuc3gtbS5zeCxrPUEuc3ktbS5zeSxQPUUqRStrKms7aWYoIShQPmwpKXt2YXIgcT0uMjIqKDEtTWF0aC5zcXJ0KFApKmYpKiguMysuMzUqKG0uZGVwdGgrQS5kZXB0aCkpKy4yNSoobS5pbGx1bT5BLmlsbHVtP20uaWxsdW06QS5pbGx1bSk7aWYoISgocSo9KG0uaXNBc3NldHx8QS5pc0Fzc2V0PzEuNDoxLjEpKnIqKG0uY3VlPEEuY3VlP20uY3VlOkEuY3VlKSk8LjAyMikmJihndChxLG0uc3gsbS5zeSxBLnN4LEEuc3kpLGpbU10rKywrK2pbcF0+PVkpKWJyZWFrIHR9fX19fX19fSkodXQsbHQqKCR0PSR0PDA\/MDokdD4xPzE6JHQqJHQqKDMtMiokdCkpKSxmdW5jdGlvbih0LHIsZSl7dmFyIGE9dC5FLG49dC5XO2lmKCEocjwuMDEpJiZhKWZvcih2YXIgaT0yLjYqZSxvPWkqaSxzPTA7czxhLmxlbmd0aDtzKz0yKXt2YXIgaD1DW2Fbc11dLGM9Q1thW3MrMV1dLHU9aC5jdWU8Yy5jdWU\/aC5jdWU6Yy5jdWU7aWYoISh1PC4wMykpe3ZhciBsPWMuc3gtaC5zeCxmPWMuc3ktaC5zeSx2PWwqbCtmKmY7aWYoISh2Pm8pKXt2YXIgZD1NYXRoLnNxcnQodikscD1kPC41NSppPzE6KGktZCkvKC40NSppKTtndCgoLjMqKC4zKy4zNSooaC5kZXB0aCtjLmRlcHRoKSkqKG5bcz4+MV18fDEpKy4yNSooaC5pbGx1bT5jLmlsbHVtP2guaWxsdW06Yy5pbGx1bSkpKnIqdSpwLGguc3gsaC5zeSxjLnN4LGMuc3kpfX19fShjdCxmdCx1dCksZnVuY3Rpb24oKXtmLmxpbmVXaWR0aD0uNTI7Zm9yKHZhciB0PTA7dDxFO3QrKyl7dmFyIHI9UFt0XTtpZihyKXt2YXIgZT1rW3RdO2Yuc3Ryb2tlU3R5bGU9cVt0XSxmLmJlZ2luUGF0aCgpO2Zvcih2YXIgYT0wLG49MDthPHI7YSsrLG4rPTQpZi5tb3ZlVG8oZVtuXSxlW24rMV0pLGYubGluZVRvKGVbbisyXSxlW24rM10pO2Yuc3Ryb2tlKCksUFt0XT0wfX19KCksZnVuY3Rpb24odCxyLGUsbil7aWYoIShNYXRoLnJhbmRvbSgpPigxPT09Rz8uMDc6LjAzNSkqbikpaWYociYmci5sZW5ndGgmJmUuZWRnZT4uMyYmKGUucGxleDwuM3x8TWF0aC5yYW5kb20oKTwuNjUpKXt2YXIgaT0yKihNYXRoLnJhbmRvbSgpKnIubGVuZ3RoLzJ8MCksbz1DW3JbaV1dLHM9Q1tyW2krMV1dO2lmKE1hdGgucmFuZG9tKCk8LjUpe3ZhciBoPW87bz1zLHM9aH1vLmN1ZT4uMyYmcy5jdWU+LjMmJkQucHVzaChuZXcgd3QobyxzKSl9ZWxzZXt2YXIgYz1DW01hdGgucmFuZG9tKCkqYXwwXSx1PW51bGwsbD0xZTk7aWYoIShjLmN1ZTwuMykpe2Zvcih2YXIgZj0wO2Y8YTtmKyspe3ZhciB2PUNbZl07aWYoISh2PT09Y3x8di5jdWU8LjMpKXt2YXIgZD12LnN4LWMuc3gscD12LnN5LWMuc3ksTT1NYXRoLnNxcnQoZCpkK3AqcCk7TT4uMzUqdCYmTTwxLjQqdCYmTTxsJiYobD1NLHU9dil9fXUmJkQucHVzaChuZXcgd3QoYyx1KSl9fX0odXQsY3QuRSxodCxzdCksRD1ELmZpbHRlcihmdW5jdGlvbih0KXt2YXIgcj10LnVwZGF0ZShzdCk7cmV0dXJuIHImJnQuZHJhdygpLHJ9KSx5dCgpfX1mdW5jdGlvbiBvdCh0KXtyZXR1cm4gZnVuY3Rpb24oKXt0PSh0fD0wKSsxODMxNTY1ODEzfDA7dmFyIHI9TWF0aC5pbXVsKHRedD4+PjE1LDF8dCk7cmV0dXJuKCgocj1yK01hdGguaW11bChyXnI+Pj43LDYxfHIpXnIpXnI+Pj4xNCk+Pj4wKS80Mjk0OTY3Mjk2fX1mdW5jdGlvbiBzdCh0LHIsZSl7cmV0dXJuW3RbMF0rKHJbMF0tdFswXSkqZSx0WzFdKyhyWzFdLXRbMV0pKmUsdFsyXSsoclsyXS10WzJdKSplXX1mdW5jdGlvbiBodCh0KXt2YXIgcj1NYXRoLmh5cG90KHRbMF0sdFsxXSx0WzJdKXx8MTtyZXR1cm5bdFswXS9yLHRbMV0vcix0WzJdL3JdfWZ1bmN0aW9uIGN0KHQscil7cmV0dXJuW3RbMV0qclsyXS10WzJdKnJbMV0sdFsyXSpyWzBdLXRbMF0qclsyXSx0WzBdKnJbMV0tdFsxXSpyWzBdXX1mdW5jdGlvbiB1dCh0LHIpe3ZhciBlPTEtMioocisuNSkvdCxhPU1hdGguc3FydCgxLWUqZSksbj0yLjM5OTk2KnI7cmV0dXJuW01hdGguY29zKG4pKmEsZSxNYXRoLnNpbihuKSphXX1mdW5jdGlvbiBsdCgpe3RoaXMuUD1bXSx0aGlzLkU9W10sdGhpcy5XPVtdLHRoaXMuY3c9MX1mdW5jdGlvbiBmdCh0LHIpe3I9cnx8e307dmFyIGU9dC5QO2lmKGUubGVuZ3RoPmEpdGhyb3cgbmV3IEVycm9yKCJmaWd1cmEgY29uICIrZS5sZW5ndGgrIiBwdW50b3MiKTt2YXIgbj1bMWU5LC0xZTldLGk9WzFlOSwtMWU5XSxvPVsxZTksLTFlOV07ZS5mb3JFYWNoKGZ1bmN0aW9uKHQpe249W01hdGgubWluKG5bMF0sdC54KSxNYXRoLm1heChuWzFdLHQueCldLGk9W01hdGgubWluKGlbMF0sdC55KSxNYXRoLm1heChpWzFdLHQueSldLG89W01hdGgubWluKG9bMF0sdC56KSxNYXRoLm1heChvWzFdLHQueildfSk7dmFyIHMsaD0oblswXStuWzFdKS8yLGM9KGlbMF0raVsxXSkvMix1PShvWzBdK29bMV0pLzI7aWYoci5heGlzKXtoPTAsdT0wO3ZhciBsPTA7ZS5mb3JFYWNoKGZ1bmN0aW9uKHQpe2w9TWF0aC5tYXgobCxNYXRoLmh5cG90KHQueCx0LnopLDEuMDIqTWF0aC5hYnModC55LWMpKX0pLHM9KHIudGFyZ2V0fHwuOCkvbH1lbHNlIHIua2VlcCYmKGg9Yz11PTApLHM9KHIudGFyZ2V0fHwuOCkvKE1hdGgubWF4KG5bMV0tblswXSxpWzFdLWlbMF0sb1sxXS1vWzBdKS8yKTtyZXR1cm4gdC5QPWUubWFwKGZ1bmN0aW9uKHQpe3JldHVybnt4Oih0LngtaCkqcyx5Oih0LnktYykqcyx6Oih0LnotdSkqcyxnOnQuZyxoOjB9fSksdnQodCxmdW5jdGlvbih0KXtyZXR1cm4gdH0pfWZ1bmN0aW9uIHZ0KHQscixlKXt2YXIgbixpPXQuUCxvPWkubGVuZ3RoLHM9W107Zm9yKG49MDtuPG87bisrKXt2YXIgaD1yKGlbbl0pO3MucHVzaChbbixlP2UoaCk6LWgueSs1ZS00Kk1hdGguYXRhbjIoaC56LGgueCldKX1zLnNvcnQoZnVuY3Rpb24odCxyKXtyZXR1cm4gdFsxXS1yWzFdfSk7Zm9yKHZhciBjPW5ldyBBcnJheShhKSx1PW5ldyBBcnJheShvKSxsPW51bGwsZj0wO2Y8bztmKyspe3ZhciB2PU1hdGguZmxvb3IoZiphL28pLGQ9aVtzW2ZdWzBdXTtjW3ZdPXt4OmQueCx5OmQueSx6OmQueixnOmQuZyxoOjB9LHVbc1tmXVswXV09dn1mb3Iobj0wO248YTtuKyspaWYoY1tuXSlsPWNbbl07ZWxzZXt2YXIgcD1sfHxjLmZpbmQoZnVuY3Rpb24odCl7cmV0dXJuIHR9KTtjW25dPXt4OnAueCx5OnAueSx6OnAueixnOnAuZyxoOjF9fXJldHVybiB0LkU9dC5FLm1hcChmdW5jdGlvbih0KXtyZXR1cm4gdVt0XX0pLHQuUD1jLHQudXNlZD1vLHR9ZnVuY3Rpb24gZHQodCxyLGUpe3ZhciBhPS44KnQsbj0uNSpyLGk9LjYqZSxvPTErLjA0NSpNYXRoLnNpbig5KnQrNSpyKSpNYXRoLnNpbig3KmUrMypyKTtyZXR1cm4gYSo9byxpKj1vLChuKj1vKTwtLjEmJihuPS41NSoobisuMSktLjEpLHI8LjA1JiZ0Pi0uMTUmJnQ8Ljc1JiYobi09LjE2Kk1hdGguZXhwKC1NYXRoLnBvdygodC0uMykvLjI4LDIpKSksdD4uMjUmJihhKz0uMDQqciksaT0oaTwwPy0xOjEpKihNYXRoLmFicyhpKSsuMDM1KSxNYXRoLmFicyhlKTwuMTgmJnI+LjI1JiYobi09LjA3KigxLU1hdGguYWJzKGUpLy4xOCkpLFthLG4saV19ZnVuY3Rpb24gcHQodCl7cmV0dXJuIE1hdGgucG93KE1hdGgubWF4KDAsMS10KnQpLC4zNikqKDErLjEqdCl9ZnVuY3Rpb24gTXQoKXt2PWlubmVyV2lkdGgsZD1pbm5lckhlaWdodCxsLndpZHRoPU1hdGgucm91bmQodipwKSxsLmhlaWdodD1NYXRoLnJvdW5kKGQqcCksZi5zZXRUcmFuc2Zvcm0ocCwwLDAscCwwLDApfWZ1bmN0aW9uIG10KHQpe3RoaXMuaT10LHRoaXMuc3Bhd24oKSx0aGlzLnY9MCx0aGlzLnR2PTEsdGhpcy5zcGQ9LjgyKy4zNip3KCksdGhpcy5kcmlmdFBoYXNlPTYuMjgzMip3KCksdGhpcy5kcmlmdFNwZWVkPTNlLTQrN2UtNCp3KCksdGhpcy5kcmlmdEFtcD0uMDA2Ky4wMTIqdygpLHRoaXMuaXNBc3NldD13KCk8LjAzLHRoaXMuc2l6ZT10aGlzLmlzQXNzZXQ\/MisxLjYqdygpOi43Ky45KncoKSx0aGlzLnB1bHNlPTYuMjgzMip3KCksdGhpcy5wdWxzZVNwZWVkPS4wMTIrLjAxOCp3KCksdGhpcy5pbGx1bT0wLHRoaXMuaXNRdWFudHVtPSF0aGlzLmlzQXNzZXQmJncoKTwuMDIsdGhpcy5pc1F1YW50dW0mJih0aGlzLmdob3N0RHg9NjAqKHcoKS0uNSksdGhpcy5naG9zdER5PTYwKih3KCktLjUpKSx0aGlzLnN4PTAsdGhpcy5zeT0wLHRoaXMuZGVwdGg9LjUsdGhpcy5jdWU9MH1mdW5jdGlvbiBndCh0LHIsZSxhLG4pe2lmKCEodDwuMDIyKSl7dmFyIGk9dC8uNTYqRXwwO2k+PUUmJihpPTEzKTt2YXIgbz1QW2ldO2lmKCEobz49MjRlMykpe3ZhciBzPWtbaV0saD00Km87c1toXT1yLHNbaCsxXT1lLHNbaCsyXT1hLHNbaCszXT1uLFBbaV09bysxfX19ZnVuY3Rpb24geHQodCxyLGUsYSxuKXt2YXIgaT0odC0uMzUpLy42NSo0fDA7aTwwJiYoaT0wKSxpPj00JiYoaT0zKTt2YXIgbz1yKnp8MDtpZihvPj16JiYobz05KSwhKG88MCkpe3ZhciBzPWkqeitvLGg9VFtzXSxjPUlbc10sdT0zKmg7Y1t1XT1lLGNbdSsxXT1hLGNbdSsyXT1uLFRbc109aCsxfX1mdW5jdGlvbiB5dCgpe2Zvcih2YXIgdD1bXSxuPTA7bjxhO24rKyl7dmFyIGk9Q1tuXTtpZighKGkuY3VlPC4wMikmJighKGkuaXNBc3NldHx8aS5pbGx1bT4uMyl8fCh0LnB1c2goaSksIWkuaXNBc3NldCkpKXt2YXIgbz1pLmRlcHRoLHM9LjUqTWF0aC5zaW4oaS5wdWxzZSkrLjUsaD1pLnNpemUqKC40KzEuMypvKTt4dCguMzUrLjI1Km8sTWF0aC5taW4oMSwuMjUrLjUqbysuNCppLmlsbHVtKy4wNipzKSppLmN1ZSxpLnN4LGkuc3ksaCsuOCppLmlsbHVtKSxpLmlzUXVhbnR1bSYmeHQoLjYsLjEqbyppLmN1ZSxpLnN4K2kuZ2hvc3REeCpvLGkuc3kraS5naG9zdER5Km8sLjU1KmgpfX0hZnVuY3Rpb24oKXtmb3IodmFyIHQ9MDt0PEkubGVuZ3RoO3QrKyl7dmFyIHI9VFt0XTtpZihyKXt2YXIgZT1JW3RdO2YuZmlsbFN0eWxlPU9bdF0sZi5iZWdpblBhdGgoKTtmb3IodmFyIGE9MCxuPTA7YTxyO2ErKyxuKz0zKXt2YXIgaT1lW24rMl07Zi5tb3ZlVG8oZVtuXStpLGVbbisxXSksZi5hcmMoZVtuXSxlW24rMV0saSwwLDYuMjgzMil9Zi5maWxsKCksVFt0XT0wfX19KCk7Zm9yKHZhciBjPTA7Yzx0Lmxlbmd0aDtjKyspe3ZhciB1PXRbY10sbD11LmRlcHRoLHY9LjUqTWF0aC5zaW4odS5wdWxzZSkrLjUsZD11LnNpemUqKC40KzEuMypsKSxwPWQqKDMuNSs1KnUuaWxsdW0pO2lmKGYuZ2xvYmFsQWxwaGE9KCh1LmlzQXNzZXQ\/LjI4Oi4xNSkrLjMqdS5pbGx1bSkqdS5jdWUsZi5kcmF3SW1hZ2UoeSx1LnN4LXAsdS5zeS1wLDIqcCwyKnApLGYuZ2xvYmFsQWxwaGE9MSx1LmlzQXNzZXQpe3ZhciBNPS41Ky4zKnYsbT1NYXRoLm1pbigxLC44Ky40KnUuaWxsdW0rLjE1KnYpKnUuY3VlO2YuZmlsbFN0eWxlPSJyZ2JhKCIrKGVbMF0qKDEtTSkrclswXSpNfDApKyIsIisoZVsxXSooMS1NKStyWzFdKk18MCkrIiwiKyhlWzJdKigxLU0pK3JbMl0qTXwwKSsiLCIrbS50b0ZpeGVkKDMpKyIpIixmLmJlZ2luUGF0aCgpLGYuYXJjKHUuc3gsdS5zeSxkKy44KnUuaWxsdW0sMCw2LjI4MzIpLGYuZmlsbCgpLGYuc3Ryb2tlU3R5bGU9InJnYmEoIityKyIsIisoKC4yKy4zKnUuaWxsdW0pKnUuY3VlKS50b0ZpeGVkKDMpKyIpIixmLmxpbmVXaWR0aD0uNixmLmJlZ2luUGF0aCgpLGYuYXJjKHUuc3gsdS5zeSxkKzUrMi41KnYsMCw2LjI4MzIpLGYuc3Ryb2tlKCl9fX1mdW5jdGlvbiB3dCh0LHIpe3RoaXMuZnJvbT10LHRoaXMudG89cix0aGlzLnQ9MCx0aGlzLnNwZWVkPS4wMTMrLjAxMipNYXRoLnJhbmRvbSgpLHRoaXMudHJhaWw9W119ZnVuY3Rpb24gYnQodCl7Zm9yKHZhciByPWhbNF0uUCxlPTA7ZTxhO2UrKyl7dmFyIG49cltlXSxpPW9bbi5nXSxjPTI4ZS01KnQqaS53LHU9TWF0aC5jb3MoYyksbD1NYXRoLnNpbihjKTtDW2VdLnNldFRhcmdldCh7eDooaS5jWzBdK24ueCp1LW4ueSpsKSpzLHk6KGkuY1sxXStuLngqbCtuLnkqdSkqcyx6Om4ueipzLGg6bi5ofSl9fWZ1bmN0aW9uIFN0KHQpe3JldHVybih0PXQ8MD8wOnQ+MT8xOnQpKnQqKDMtMip0KX1mdW5jdGlvbiBDdCh0LHIsZSl7cmV0dXJuIHQrKHItdCkqZX19KCksZnVuY3Rpb24oKXt2YXIgdD0wLHI9c2V0SW50ZXJ2YWwoZnVuY3Rpb24oKXt2YXIgZT1kb2N1bWVudC5xdWVyeVNlbGVjdG9yKCJib2R5ID4gYXNpZGUuY291bnRyeS1zZWxlY3RvciIpLGE9ZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiI2NkeHNpIC5mc3ViID4gZGl2Iiksbj1kb2N1bWVudC5xdWVyeVNlbGVjdG9yKCIjY2R4c2kgLmZzdWIgLmxhbmciKTtlJiZhPyhuJiZuLnBhcmVudE5vZGUmJm4ucGFyZW50Tm9kZS5yZW1vdmVDaGlsZChuKSxhLmFwcGVuZENoaWxkKGUpLGNsZWFySW50ZXJ2YWwocikpOisrdD40MCYmY2xlYXJJbnRlcnZhbChyKX0sMTUwKX0oKTs=<\/script>\n<script id=\"cdx-si-boot\">(function(){var s=document.getElementById(\"cdx-si-b64\");if(s){new Function(decodeURIComponent(escape(atob(s.textContent.trim()))))()}})()<\/script>\n","protected":false},"excerpt":{"rendered":"<p>Strategic Technologies Continuidad e inteligenciapara la innovaci\u00f3n estrat\u00e9gica. Tecnolog\u00edas de frontera aplicadas a lo que su organizaci\u00f3n no puede detener. HablemosVer capacidades [&hellip;]<\/p>\n","protected":false},"author":9,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"elementor_header_footer","meta":{"footnotes":""},"class_list":["post-15713","page","type-page","status-publish","hentry"],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v27.6 (Yoast SEO v28.8) - https:\/\/yoast.com\/product\/yoast-seo-premium-wordpress\/ -->\n<title>coreDevX | Continuidad e inteligencia para la innovaci\u00f3n estrat\u00e9gica<\/title>\n<meta name=\"description\" content=\"Data science, IA generativa, XOps, rob\u00f3tica y tecnolog\u00edas cu\u00e1nticas aplicadas a organizaciones donde la operaci\u00f3n no admite pausa.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/coredevx.com\/site\/\" \/>\n<meta property=\"og:locale\" content=\"es_ES\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"coreDevX | Continuidad e inteligencia para la innovaci\u00f3n estrat\u00e9gica\" \/>\n<meta property=\"og:description\" content=\"Data science, IA generativa, XOps, rob\u00f3tica y tecnolog\u00edas cu\u00e1nticas aplicadas a organizaciones donde la operaci\u00f3n no admite pausa.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/coredevx.com\/site\/\" \/>\n<meta property=\"og:site_name\" content=\"coreDevX\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/coredevxspa\" \/>\n<meta property=\"article:modified_time\" content=\"2026-10-30T01:47:11+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/coredevx.com\/site\/wp-content\/uploads\/2026\/10\/cdx-si-banca.jpg\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:title\" content=\"Strategic Industries\" \/>\n<meta name=\"twitter:site\" content=\"@coredevx\" \/>\n<meta name=\"twitter:label1\" content=\"Tiempo de lectura\" \/>\n\t<meta name=\"twitter:data1\" content=\"2 minutos\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/coredevx.com\\\/site\\\/\",\"url\":\"https:\\\/\\\/coredevx.com\\\/site\\\/\",\"name\":\"coreDevX | Continuidad e inteligencia para la innovaci\u00f3n estrat\u00e9gica\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/coredevx.com\\\/site\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/coredevx.com\\\/site\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/coredevx.com\\\/site\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/coredevx.com\\\/site\\\/wp-content\\\/uploads\\\/2026\\\/10\\\/cdx-si-banca.jpg\",\"datePublished\":\"2026-10-15T18:06:17+00:00\",\"dateModified\":\"2026-10-30T01:47:11+00:00\",\"description\":\"Data science, IA generativa, XOps, rob\u00f3tica y tecnolog\u00edas cu\u00e1nticas aplicadas a organizaciones donde la operaci\u00f3n no admite pausa.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/coredevx.com\\\/site\\\/#breadcrumb\"},\"inLanguage\":\"es\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/coredevx.com\\\/site\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"es\",\"@id\":\"https:\\\/\\\/coredevx.com\\\/site\\\/#primaryimage\",\"url\":\"https:\\\/\\\/coredevx.com\\\/site\\\/wp-content\\\/uploads\\\/2026\\\/10\\\/cdx-si-banca.jpg\",\"contentUrl\":\"https:\\\/\\\/coredevx.com\\\/site\\\/wp-content\\\/uploads\\\/2026\\\/10\\\/cdx-si-banca.jpg\",\"width\":1000,\"height\":750},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/coredevx.com\\\/site\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Portada\",\"item\":\"https:\\\/\\\/coredevx.com\\\/site\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Strategic Industries\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/coredevx.com\\\/site\\\/#website\",\"url\":\"https:\\\/\\\/coredevx.com\\\/site\\\/\",\"name\":\"coreDevX\",\"description\":\"Consultora y Centro de Investigaci\u00f3n\",\"publisher\":{\"@id\":\"https:\\\/\\\/coredevx.com\\\/site\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/coredevx.com\\\/site\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"es\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/coredevx.com\\\/site\\\/#organization\",\"name\":\"Consultora y Centro de Investigacion COREDEVX SpA\",\"alternateName\":\"COREDEVX\",\"url\":\"https:\\\/\\\/coredevx.com\\\/site\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"es\",\"@id\":\"https:\\\/\\\/coredevx.com\\\/site\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/coredevx.com\\\/site\\\/wp-content\\\/uploads\\\/2023\\\/05\\\/COREDEVX-logo.svg\",\"contentUrl\":\"https:\\\/\\\/coredevx.com\\\/site\\\/wp-content\\\/uploads\\\/2023\\\/05\\\/COREDEVX-logo.svg\",\"width\":\"1024\",\"height\":\"1024\",\"caption\":\"Consultora y Centro de Investigacion COREDEVX SpA\"},\"image\":{\"@id\":\"https:\\\/\\\/coredevx.com\\\/site\\\/#\\\/schema\\\/logo\\\/image\\\/\"},\"sameAs\":[\"https:\\\/\\\/www.facebook.com\\\/coredevxspa\",\"https:\\\/\\\/x.com\\\/coredevx\",\"https:\\\/\\\/www.instagram.com\\\/coredevx\\\/\",\"https:\\\/\\\/www.linkedin.com\\\/company\\\/consultora-&-centro-de-investigacin-coredevx-spa\\\/?trk=prof-following-company-logo\"]}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"coreDevX | Continuidad e inteligencia para la innovaci\u00f3n estrat\u00e9gica","description":"Data science, IA generativa, XOps, rob\u00f3tica y tecnolog\u00edas cu\u00e1nticas aplicadas a organizaciones donde la operaci\u00f3n no admite pausa.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/coredevx.com\/site\/","og_locale":"es_ES","og_type":"article","og_title":"coreDevX | Continuidad e inteligencia para la innovaci\u00f3n estrat\u00e9gica","og_description":"Data science, IA generativa, XOps, rob\u00f3tica y tecnolog\u00edas cu\u00e1nticas aplicadas a organizaciones donde la operaci\u00f3n no admite pausa.","og_url":"https:\/\/coredevx.com\/site\/","og_site_name":"coreDevX","article_publisher":"https:\/\/www.facebook.com\/coredevxspa","article_modified_time":"2026-10-30T01:47:11+00:00","og_image":[{"url":"https:\/\/coredevx.com\/site\/wp-content\/uploads\/2026\/10\/cdx-si-banca.jpg","type":"","width":"","height":""}],"twitter_card":"summary_large_image","twitter_title":"Strategic Industries","twitter_site":"@coredevx","twitter_misc":{"Tiempo de lectura":"2 minutos"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/coredevx.com\/site\/","url":"https:\/\/coredevx.com\/site\/","name":"coreDevX | Continuidad e inteligencia para la innovaci\u00f3n estrat\u00e9gica","isPartOf":{"@id":"https:\/\/coredevx.com\/site\/#website"},"primaryImageOfPage":{"@id":"https:\/\/coredevx.com\/site\/#primaryimage"},"image":{"@id":"https:\/\/coredevx.com\/site\/#primaryimage"},"thumbnailUrl":"https:\/\/coredevx.com\/site\/wp-content\/uploads\/2026\/10\/cdx-si-banca.jpg","datePublished":"2026-10-15T18:06:17+00:00","dateModified":"2026-10-30T01:47:11+00:00","description":"Data science, IA generativa, XOps, rob\u00f3tica y tecnolog\u00edas cu\u00e1nticas aplicadas a organizaciones donde la operaci\u00f3n no admite pausa.","breadcrumb":{"@id":"https:\/\/coredevx.com\/site\/#breadcrumb"},"inLanguage":"es","potentialAction":[{"@type":"ReadAction","target":["https:\/\/coredevx.com\/site\/"]}]},{"@type":"ImageObject","inLanguage":"es","@id":"https:\/\/coredevx.com\/site\/#primaryimage","url":"https:\/\/coredevx.com\/site\/wp-content\/uploads\/2026\/10\/cdx-si-banca.jpg","contentUrl":"https:\/\/coredevx.com\/site\/wp-content\/uploads\/2026\/10\/cdx-si-banca.jpg","width":1000,"height":750},{"@type":"BreadcrumbList","@id":"https:\/\/coredevx.com\/site\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Portada","item":"https:\/\/coredevx.com\/site\/"},{"@type":"ListItem","position":2,"name":"Strategic Industries"}]},{"@type":"WebSite","@id":"https:\/\/coredevx.com\/site\/#website","url":"https:\/\/coredevx.com\/site\/","name":"coreDevX","description":"Consultora y Centro de Investigaci\u00f3n","publisher":{"@id":"https:\/\/coredevx.com\/site\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/coredevx.com\/site\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"es"},{"@type":"Organization","@id":"https:\/\/coredevx.com\/site\/#organization","name":"Consultora y Centro de Investigacion COREDEVX SpA","alternateName":"COREDEVX","url":"https:\/\/coredevx.com\/site\/","logo":{"@type":"ImageObject","inLanguage":"es","@id":"https:\/\/coredevx.com\/site\/#\/schema\/logo\/image\/","url":"https:\/\/coredevx.com\/site\/wp-content\/uploads\/2023\/05\/COREDEVX-logo.svg","contentUrl":"https:\/\/coredevx.com\/site\/wp-content\/uploads\/2023\/05\/COREDEVX-logo.svg","width":"1024","height":"1024","caption":"Consultora y Centro de Investigacion COREDEVX SpA"},"image":{"@id":"https:\/\/coredevx.com\/site\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/coredevxspa","https:\/\/x.com\/coredevx","https:\/\/www.instagram.com\/coredevx\/","https:\/\/www.linkedin.com\/company\/consultora-&-centro-de-investigacin-coredevx-spa\/?trk=prof-following-company-logo"]}]}},"_links":{"self":[{"href":"https:\/\/coredevx.com\/site\/wp-json\/wp\/v2\/pages\/15713","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/coredevx.com\/site\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/coredevx.com\/site\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/coredevx.com\/site\/wp-json\/wp\/v2\/users\/9"}],"replies":[{"embeddable":true,"href":"https:\/\/coredevx.com\/site\/wp-json\/wp\/v2\/comments?post=15713"}],"version-history":[{"count":30,"href":"https:\/\/coredevx.com\/site\/wp-json\/wp\/v2\/pages\/15713\/revisions"}],"predecessor-version":[{"id":15777,"href":"https:\/\/coredevx.com\/site\/wp-json\/wp\/v2\/pages\/15713\/revisions\/15777"}],"wp:attachment":[{"href":"https:\/\/coredevx.com\/site\/wp-json\/wp\/v2\/media?parent=15713"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}