{"id":1545182,"date":"2026-09-01T15:24:23","date_gmt":"2026-09-01T15:24:23","guid":{"rendered":"https:\/\/elis-trade.ro\/?p=1545182"},"modified":"2026-09-01T15:24:23","modified_gmt":"2026-09-01T15:24:23","slug":"equipment-configurator","status":"publish","type":"page","link":"https:\/\/elis-trade.uz\/uz\/equipment-configurator\/","title":{"rendered":"Equipment configurator"},"content":{"rendered":"<style>\n  @font-face{ font-family:'ElisGilroy'; src:url(\"https:\/\/elis-trade.uz\/wp-content\/themes\/brainwave\/assets\/fonts\/Gilroy-Regular.woff2\") format(\"woff2\"); font-weight:400; font-display:swap; }\n  @font-face{ font-family:'ElisGilroy'; src:url(\"https:\/\/elis-trade.uz\/wp-content\/themes\/brainwave\/assets\/fonts\/Gilroy-Bold.woff2\") format(\"woff2\"); font-weight:700; font-display:swap; }\n  #elisConf{ --ink:#222222; --ink-soft:#5b5b5b; --ink-faint:#8a8a8a; --line:#e2e2e2; --paper:#ffffff; --surface:#ffffff; --surface-2:#f5f5f5; --accent:#000000; --accent-2:#1b3e82; --sale:#ee0000; --good:#1b7a3d; --radius:10px; --radius-s:5px; font-family:'ElisGilroy',Arial,sans-serif; color:var(--ink); background:var(--paper); font-size:15px; line-height:1.5; }\n  #elisConf *,#elisConf *::before,#elisConf *::after{ box-sizing:border-box; }\n  #elisConf h1,#elisConf h2,#elisConf h3{ font-weight:700; margin:0; color:var(--ink); }\n  #elisConf p{ margin:0; }\n  #elisConf button{ font-family:inherit; }\n  #elisConf .wrap{ max-width:1600px; margin:0 auto; padding:0 28px; }\n  #elisConf .icon{ width:22px; height:22px; stroke:currentColor; fill:none; stroke-width:1.6; stroke-linecap:round; stroke-linejoin:round; display:block; flex:none; }\n\n  #elisConf \n  #elisConf \n  #elisConf .topbar-brand span{ font-weight:400; color:var(--ink-soft); }\n  #elisConf #elisConf #elisConf #elisConf .hero{ padding:32px 0 24px; }\n  #elisConf .eyebrow{ font-size:12px; font-weight:700; letter-spacing:.08em; text-transform:uppercase; color:var(--accent-2); }\n  #elisConf .hero h1{ font-size:clamp(22px,3vw,32px); margin-top:8px; max-width:44ch; line-height:1.25; }\n  #elisConf .hero-sub{ color:var(--ink-soft); max-width:60ch; margin-top:10px; font-size:14.5px; line-height:1.55; }\n\n  #elisConf .zones{ display:flex; gap:8px; margin-top:22px; flex-wrap:wrap; }\n  #elisConf .zone-btn{ display:flex; align-items:center; gap:8px; padding:10px 16px; border-radius:var(--radius-s); border:1px solid var(--line); background:var(--surface); color:var(--ink); font-weight:700; font-size:13.5px; cursor:pointer; }\n  #elisConf .zone-btn .icon{ width:17px; height:17px; color:var(--ink-faint); }\n  #elisConf .zone-btn[aria-pressed=\"true\"]{ background:var(--accent); border-color:var(--accent); color:#fff; }\n  #elisConf .zone-btn[aria-pressed=\"true\"] .icon{ color:#fff; }\n\n  #elisConf .workspace{ padding:22px 0 90px; }\n  #elisConf .workspace-grid{ display:grid; grid-template-columns:230px 1fr; gap:26px; align-items:start; }\n  @media (max-width:860px){ #elisConf .workspace-grid{ grid-template-columns:1fr; } }\n\n  #elisConf .rail{ position:sticky; top:12px; display:flex; flex-direction:column; gap:2px; border:1px solid var(--line); border-radius:var(--radius); padding:8px; background:var(--surface); }\n  @media (max-width:860px){ #elisConf .rail{ display:none; } }\n  #elisConf .rail-item{ display:flex; align-items:flex-start; gap:10px; width:100%; padding:9px 10px; border:none; border-radius:var(--radius-s); background:transparent; color:var(--ink-soft); cursor:pointer; text-align:left; font-size:13.5px; font-weight:600; white-space:normal; line-height:1.3; overflow-wrap:break-word; word-break:break-word; }\n  #elisConf .rail-item .icon{ width:18px; height:18px; color:var(--ink-faint); flex:none; margin-top:1px; }\n  #elisConf .rail-item:hover{ background:var(--surface-2); color:var(--ink); }\n  #elisConf .rail-item[aria-current=\"true\"]{ background:#000; color:#fff; }\n  #elisConf .rail-item[aria-current=\"true\"] .icon{ color:#fff; }\n  #elisConf .rail-item-count{ margin-left:auto; font-size:11px; color:var(--ink-faint); }\n  #elisConf .rail-item[aria-current=\"true\"] .rail-item-count{ color:#cfcfcf; }\n\n  #elisConf .cat-head{ display:flex; align-items:baseline; justify-content:space-between; gap:12px; margin-bottom:14px; }\n  #elisConf .cat-head h2{ font-size:19px; }\n  #elisConf .cat-head-count{ font-size:12px; color:var(--ink-faint); white-space:nowrap; }\n  #elisConf .product-grid{ display:flex; flex-wrap:wrap; gap:14px 16px; }\n  @media (max-width:1300px){ #elisConf .catalog-item-product{ width:calc((100% - 32px)\/3); max-width:none; } }\n  @media (max-width:860px){ #elisConf .catalog-item-product{ width:calc((100% - 16px)\/2); max-width:none; } }\n  @media (max-width:520px){ #elisConf .catalog-item-product{ width:calc((100% - 16px)\/2); max-width:none; } }\n  #elisConf .loading-row,#elisConf .empty-row{ padding:30px 10px; text-align:center; color:var(--ink-faint); font-size:13px; border:1px dashed var(--line); border-radius:var(--radius); }\n\n  #elisConf .ecx-card{ background:var(--surface); border:1px solid var(--line); border-radius:var(--radius); padding:14px 14px 16px; display:flex; flex-direction:column; gap:8px; }\n  #elisConf .ecx-card.in-cart{ border-color:#000; }\n  #elisConf .ecx-card .card-photo{ width:100%; height:112px; border-radius:6px; background:var(--surface-2); display:flex; align-items:center; justify-content:center; overflow:hidden; flex:none; }\n  #elisConf .ecx-card .card-photo img{ width:100%; height:100%; object-fit:contain; padding:8px; }\n  #elisConf .ecx-card .card-name{ font-weight:700; font-size:13.5px; line-height:1.35; color:var(--ink); text-decoration:none; display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; overflow-wrap:break-word; word-break:break-word; min-height:2.6em; }\n  #elisConf .ecx-card .card-name:hover{ text-decoration:underline; }\n  #elisConf .ecx-card .card-bottom{ display:flex; align-items:center; justify-content:space-between; gap:8px; margin-top:auto; }\n  #elisConf .ecx-card .card-price{ font-weight:700; font-size:15px; }\n  #elisConf .ecx-card .card-price small{ display:block; font-weight:400; font-size:10.5px; color:var(--ink-faint); }\n\n  #elisConf .btn-add{ display:flex; align-items:center; gap:6px; padding:9px 14px; border-radius:var(--radius-s); border:none; background:#000; color:#fff; font-weight:700; font-size:12.5px; cursor:pointer; white-space:nowrap; }\n  #elisConf .btn-add:hover{ background:#222; }\n  #elisConf .btn-add .icon{ width:14px; height:14px; }\n  #elisConf .qty{ display:flex; align-items:center; border:1px solid #000; border-radius:var(--radius-s); overflow:hidden; }\n  #elisConf .qty button{ width:28px; height:28px; border:none; background:var(--surface-2); color:#000; font-size:15px; cursor:pointer; }\n  #elisConf .qty button:hover{ background:#000; color:#fff; }\n  #elisConf .qty span{ width:26px; text-align:center; font-size:13px; font-weight:700; }\n\n  #elisConf .cartbar{ position:fixed; left:0; right:0; bottom:0; z-index:50; background:#fff; border-top:1px solid var(--line); box-shadow:0 -6px 24px rgba(0,0,0,.08); transform:translateY(0); transition:transform .2s ease; }\n  #elisConf .cartbar.hide{ transform:translateY(100%); }\n  #elisConf .cartbar-row{ display:flex; align-items:center; justify-content:space-between; gap:16px; padding:12px 20px; max-width:1180px; margin:0 auto; flex-wrap:wrap; }\n  #elisConf .cartbar-summary{ display:flex; align-items:center; gap:14px; flex-wrap:wrap; }\n  #elisConf .cartbar-count{ font-size:13px; color:var(--ink-soft); }\n  #elisConf .cartbar-total{ font-size:19px; font-weight:700; }\n  #elisConf .cartbar-hint{ font-size:12px; color:var(--ink-faint); }\n  #elisConf .cartbar-hint.ok{ color:var(--good); font-weight:600; }\n  #elisConf .cartbar-actions{ display:flex; align-items:center; gap:10px; }\n  #elisConf .btn-toggle-list{ background:none; border:1px solid var(--line); color:var(--ink); padding:9px 14px; border-radius:var(--radius-s); font-size:12.5px; font-weight:700; cursor:pointer; }\n  #elisConf .btn-submit{ background:#000; color:#fff; border:none; padding:11px 20px; border-radius:var(--radius-s); font-weight:700; font-size:13.5px; cursor:pointer; }\n  #elisConf .btn-submit:disabled{ opacity:.35; cursor:not-allowed; }\n\n  #elisConf .cart-list{ max-height:0; overflow:hidden; transition:max-height .2s ease; border-top:1px solid transparent; }\n  #elisConf .cart-list.open{ max-height:280px; overflow-y:auto; border-top-color:var(--line); }\n  #elisConf .cart-list-inner{ max-width:1180px; margin:0 auto; padding:10px 20px; display:flex; flex-direction:column; gap:8px; }\n  #elisConf .cart-line{ display:flex; align-items:center; gap:10px; padding:6px 0; border-bottom:1px solid var(--line); }\n  #elisConf .cart-line:last-child{ border-bottom:none; }\n  #elisConf .cart-line-name{ flex:1; min-width:0; }\n  #elisConf .cart-line-name b{ display:block; font-size:12.5px; font-weight:700; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }\n  #elisConf .cart-line-name span{ font-size:11px; color:var(--ink-faint); }\n  #elisConf .cart-line-price{ font-size:12.5px; font-weight:700; white-space:nowrap; }\n  #elisConf .cart-line-remove{ background:none; border:none; color:var(--ink-faint); cursor:pointer; padding:4px; }\n  #elisConf .cart-line-remove .icon{ width:15px; height:15px; }\n\n  #elisConf .ecx-overlay{ position:fixed; inset:0; background:rgba(0,0,0,.5); display:flex; align-items:center; justify-content:center; padding:20px; z-index:100000; opacity:0; pointer-events:none; transition:opacity .18s ease; }\n  #elisConf .ecx-overlay[data-open=\"true\"]{ opacity:1; pointer-events:auto; }\n  #elisConf .ecx-modal{ width:min(440px,100%); max-height:88vh; overflow-y:auto; background:#fff; border-radius:var(--radius); padding:24px; }\n  #elisConf .ecx-modal-head{ display:flex; align-items:flex-start; justify-content:space-between; gap:12px; margin-bottom:4px; }\n  #elisConf .ecx-modal-head h3{ font-size:18px; }\n  #elisConf .ecx-modal-close{ background:none; border:none; color:var(--ink-faint); cursor:pointer; padding:2px; }\n  #elisConf .ecx-modal-close .icon{ width:20px; height:20px; }\n  #elisConf .ecx-modal-sub{ font-size:12.5px; color:var(--ink-soft); margin-top:6px; line-height:1.5; }\n  #elisConf .recap{ margin:16px 0; border:1px solid var(--line); border-radius:var(--radius-s); overflow:hidden; }\n  #elisConf .recap-row{ display:flex; align-items:center; justify-content:space-between; gap:10px; padding:8px 12px; font-size:12.5px; border-bottom:1px solid var(--line); }\n  #elisConf .recap-row:last-child{ border-bottom:none; }\n  #elisConf .recap-row b{ font-weight:700; }\n  #elisConf .recap-total{ background:var(--surface-2); font-weight:700; }\n  #elisConf .field{ display:flex; flex-direction:column; gap:5px; margin-bottom:14px; }\n  #elisConf .field label{ font-size:12px; font-weight:700; color:var(--ink-soft); }\n  #elisConf .field input,#elisConf .field textarea{ font-family:inherit; font-size:14px; padding:10px 11px; border:1px solid var(--line); border-radius:var(--radius-s); background:#fff; color:var(--ink); resize:vertical; }\n  #elisConf .field input:focus,#elisConf .field textarea:focus{ outline:2px solid #000; outline-offset:0; }\n  #elisConf .field-error{ font-size:11px; color:var(--sale); display:none; }\n  #elisConf .field.invalid input{ border-color:var(--sale); }\n  #elisConf .field.invalid .field-error{ display:block; }\n  #elisConf .btn-primary{ width:100%; padding:12px 14px; border-radius:var(--radius-s); border:none; background:#000; color:#fff; font-weight:700; font-size:13.5px; cursor:pointer; }\n  #elisConf .btn-primary:hover{ background:#222; }\n  #elisConf .success{ text-align:center; padding:12px 4px 4px; display:none; flex-direction:column; align-items:center; gap:14px; }\n  #elisConf .success.show{ display:flex; }\n  #elisConf .success .icon{ width:44px; height:44px; color:var(--good); }\n  #elisConf .success h3{ font-size:17px; }\n  #elisConf .success p{ font-size:13px; color:var(--ink-soft); max-width:34ch; }\n  #elisConf .form-body.hide{ display:none; }\n  #elisConf .foot-note{ padding:26px 0 100px; text-align:center; color:var(--ink-faint); font-size:11.5px; }\n\n  .cart-line-qty{ display:flex; align-items:center; gap:6px; }\n  .cart-line-qty button{ width:22px; height:22px; border:1px solid var(--line); background:var(--surface); border-radius:4px; display:flex; align-items:center; justify-content:center; cursor:pointer; padding:0; }\n  .cart-line-qty button .icon{ width:12px; height:12px; }\n  .cart-line-qty span{ min-width:16px; text-align:center; font-size:12.5px; font-weight:600; }\n  .btn-add.in-cart{ background:var(--ink,#000); opacity:.85; }\n  #elisConf .hero h1, #elisConf .cat-head h2{ overflow-wrap:break-word; word-break:break-word; }\n\n  .grid-more-wrap{ width:100%; text-align:center; margin-top:10px; }\n  .btn-more{ padding:10px 24px; border-radius:5px; border:1px solid var(--line); background:#fff; color:var(--ink); font-weight:600; font-size:13px; cursor:pointer; }\n  .btn-more:hover{ background:var(--surface-2); }\n  .btn-more:disabled{ opacity:.5; cursor:default; }\n  #elisConf .catalog-item-product{ position:relative; }\n  #elisConf .catalog-item-product.in-cart{ outline:2px solid #000; outline-offset:2px; border-radius:6px; }\n\n  .ecx-price-old{ text-decoration:line-through; color:var(--ink-faint); font-weight:400; font-size:0.82em; margin-right:4px; }\n  .label.sale-label{ background:#ee0000; color:#fff; }\n\n  #elisConf .kit-progress{ display:flex; gap:10px; margin-top:20px; flex-wrap:wrap; }\n  #elisConf .kit-slot{ position:relative; width:52px; height:52px; border-radius:var(--radius-s); border:1.5px dashed var(--line); background:var(--surface); display:flex; align-items:center; justify-content:center; overflow:hidden; transition:border-color .2s ease, background .2s ease, transform .2s ease; cursor:pointer; }\n  #elisConf .kit-slot.active{ border-color:var(--ink); border-style:solid; box-shadow:0 0 0 2px var(--ink); }\n  #elisConf .kit-slot .icon{ width:23px; height:23px; color:var(--ink-faint); }\n  #elisConf .kit-slot.filled{ border:1.5px solid var(--accent); background:#fff; transform:scale(1.05); }\n  #elisConf .kit-slot.filled img{ width:100%; height:100%; object-fit:contain; padding:5px; }\n  #elisConf .kit-slot-badge{ position:absolute; bottom:-3px; right:-3px; background:var(--ink); color:#fff; font-family:var(--font-mono); font-size:9.5px; min-width:15px; height:15px; border-radius:999px; display:flex; align-items:center; justify-content:center; padding:0 3px; line-height:1; }\n  #elisConf .ecx-turnstile{ margin:4px 0 2px; }\n  #elisConf .btn-primary:disabled{ opacity:.6; cursor:not-allowed; }\n<\/style>\n\n<div id=\"elisConf\">\n\n<svg width=\"0\" height=\"0\" style=\"position:absolute\" aria-hidden=\"true\"><defs>\n<symbol id=\"ic-fridge\" viewBox=\"0 0 32 32\"><rect x=\"8\" y=\"3\" width=\"16\" height=\"26\" rx=\"1.5\"\/><line x1=\"8\" y1=\"13\" x2=\"24\" y2=\"13\"\/><line x1=\"20\" y1=\"7\" x2=\"20\" y2=\"9.5\"\/><line x1=\"20\" y1=\"17\" x2=\"20\" y2=\"19.5\"\/><\/symbol>\n<symbol id=\"ic-wine\" viewBox=\"0 0 32 32\"><rect x=\"7\" y=\"4\" width=\"18\" height=\"24\" rx=\"1.5\"\/><circle cx=\"12.5\" cy=\"10\" r=\"1.6\"\/><circle cx=\"19.5\" cy=\"10\" r=\"1.6\"\/><circle cx=\"12.5\" cy=\"16\" r=\"1.6\"\/><circle cx=\"19.5\" cy=\"16\" r=\"1.6\"\/><\/symbol>\n<symbol id=\"ic-cooktop\" viewBox=\"0 0 32 32\"><rect x=\"5\" y=\"7\" width=\"22\" height=\"18\" rx=\"1.5\"\/><circle cx=\"12\" cy=\"13\" r=\"2.6\"\/><circle cx=\"20\" cy=\"13\" r=\"2.6\"\/><circle cx=\"12\" cy=\"20\" r=\"2.6\"\/><circle cx=\"20\" cy=\"20\" r=\"2.6\"\/><\/symbol>\n<symbol id=\"ic-hood\" viewBox=\"0 0 32 32\"><line x1=\"16\" y1=\"3\" x2=\"16\" y2=\"9\"\/><path d=\"M9 9 H23 L19.5 18 H12.5 Z\"\/><line x1=\"8\" y1=\"24\" x2=\"24\" y2=\"24\"\/><\/symbol>\n<symbol id=\"ic-oven\" viewBox=\"0 0 32 32\"><rect x=\"6\" y=\"4\" width=\"20\" height=\"24\" rx=\"1.5\"\/><rect x=\"9.5\" y=\"12\" width=\"13\" height=\"12\" rx=\"1\"\/><circle cx=\"10\" cy=\"8\" r=\"1.3\"\/><circle cx=\"14.5\" cy=\"8\" r=\"1.3\"\/><circle cx=\"19\" cy=\"8\" r=\"1.3\"\/><\/symbol>\n<symbol id=\"ic-dishwasher\" viewBox=\"0 0 32 32\"><rect x=\"6\" y=\"4\" width=\"20\" height=\"24\" rx=\"1.5\"\/><line x1=\"6\" y1=\"10\" x2=\"26\" y2=\"10\"\/><circle cx=\"10\" cy=\"7\" r=\"1\"\/><circle cx=\"14\" cy=\"7\" r=\"1\"\/><\/symbol>\n<symbol id=\"ic-washer\" viewBox=\"0 0 32 32\"><rect x=\"6\" y=\"4\" width=\"20\" height=\"24\" rx=\"1.5\"\/><line x1=\"9\" y1=\"7.5\" x2=\"12\" y2=\"7.5\"\/><circle cx=\"16\" cy=\"18\" r=\"7\"\/><circle cx=\"16\" cy=\"18\" r=\"3.2\"\/><\/symbol>\n<symbol id=\"ic-blender\" viewBox=\"0 0 32 32\"><path d=\"M12 6 H20 L18 21 H14 Z\"\/><rect x=\"11\" y=\"21\" width=\"10\" height=\"5\" rx=\"1\"\/><\/symbol>\n<symbol id=\"ic-coffee\" viewBox=\"0 0 32 32\"><path d=\"M8 12 H21 V21 a6.5 6.5 0 0 1 -13 0 Z\"\/><path d=\"M21 14 h3 a3 3 0 0 1 0 6 h-3\"\/><\/symbol>\n<symbol id=\"ic-tv\" viewBox=\"0 0 32 32\"><rect x=\"4\" y=\"6\" width=\"24\" height=\"16\" rx=\"1.5\"\/><line x1=\"12\" y1=\"27\" x2=\"20\" y2=\"27\"\/><line x1=\"16\" y1=\"22\" x2=\"16\" y2=\"27\"\/><\/symbol>\n<symbol id=\"ic-audio\" viewBox=\"0 0 32 32\"><rect x=\"4\" y=\"12\" width=\"24\" height=\"8\" rx=\"4\"\/><circle cx=\"11\" cy=\"16\" r=\"2\"\/><circle cx=\"16\" cy=\"16\" r=\"2\"\/><circle cx=\"21\" cy=\"16\" r=\"2\"\/><\/symbol>\n<symbol id=\"ic-projector\" viewBox=\"0 0 32 32\"><rect x=\"4\" y=\"10\" width=\"20\" height=\"12\" rx=\"2\"\/><circle cx=\"23\" cy=\"16\" r=\"5\"\/><circle cx=\"23\" cy=\"16\" r=\"2\"\/><\/symbol>\n<symbol id=\"ic-ac\" viewBox=\"0 0 32 32\"><rect x=\"4\" y=\"9\" width=\"24\" height=\"9\" rx=\"2.5\"\/><line x1=\"8\" y1=\"22\" x2=\"11\" y2=\"19\"\/><line x1=\"14\" y1=\"23\" x2=\"16\" y2=\"19\"\/><line x1=\"20\" y1=\"22\" x2=\"18\" y2=\"19\"\/><\/symbol>\n<symbol id=\"ic-fan\" viewBox=\"0 0 32 32\"><circle cx=\"16\" cy=\"14\" r=\"8\"\/><line x1=\"16\" y1=\"22\" x2=\"16\" y2=\"27\"\/><line x1=\"11\" y1=\"27\" x2=\"21\" y2=\"27\"\/><\/symbol>\n<symbol id=\"ic-heater\" viewBox=\"0 0 32 32\"><rect x=\"9\" y=\"10\" width=\"14\" height=\"17\" rx=\"1.5\"\/><line x1=\"12\" y1=\"14\" x2=\"12\" y2=\"23\"\/><line x1=\"16\" y1=\"14\" x2=\"16\" y2=\"23\"\/><line x1=\"20\" y1=\"14\" x2=\"20\" y2=\"23\"\/><\/symbol>\n<symbol id=\"ic-vacuum\" viewBox=\"0 0 32 32\"><circle cx=\"16\" cy=\"17\" r=\"10\"\/><circle cx=\"16\" cy=\"17\" r=\"2.4\"\/><path d=\"M16 3 a3 3 0 0 1 0 6\"\/><\/symbol>\n<symbol id=\"ic-room-house\" viewBox=\"0 0 40 40\"><rect x=\"5\" y=\"6\" width=\"30\" height=\"28\"\/><line x1=\"20\" y1=\"6\" x2=\"20\" y2=\"34\"\/><line x1=\"5\" y1=\"20\" x2=\"20\" y2=\"20\"\/><\/symbol>\n<symbol id=\"ic-room-kitchen\" viewBox=\"0 0 40 40\"><path d=\"M6 30 V12 H20 V20 H34 V30 Z\"\/><rect x=\"10\" y=\"15\" width=\"7\" height=\"5\"\/><\/symbol>\n<symbol id=\"ic-room-living\" viewBox=\"0 0 40 40\"><rect x=\"5\" y=\"7\" width=\"30\" height=\"26\"\/><rect x=\"9\" y=\"11\" width=\"10\" height=\"6\"\/><rect x=\"9\" y=\"22\" width=\"9\" height=\"7\" rx=\"1\"\/><\/symbol>\n<symbol id=\"ic-plus\" viewBox=\"0 0 24 24\"><line x1=\"12\" y1=\"5\" x2=\"12\" y2=\"19\"\/><line x1=\"5\" y1=\"12\" x2=\"19\" y2=\"12\"\/><\/symbol>\n<symbol id=\"ic-minus\" viewBox=\"0 0 24 24\"><line x1=\"5\" y1=\"12\" x2=\"19\" y2=\"12\"\/><\/symbol>\n<symbol id=\"ic-trash\" viewBox=\"0 0 24 24\"><path d=\"M5 7 H19 M9 7 V5 a1 1 0 0 1 1 -1 h4 a1 1 0 0 1 1 1 V7 M7 7 L8 20 a1 1 0 0 0 1 1 h6 a1 1 0 0 0 1 -1 L18 7\"\/><\/symbol>\n<symbol id=\"ic-close\" viewBox=\"0 0 24 24\"><line x1=\"6\" y1=\"6\" x2=\"18\" y2=\"18\"\/><line x1=\"18\" y1=\"6\" x2=\"6\" y2=\"18\"\/><\/symbol>\n<symbol id=\"ic-check-circle\" viewBox=\"0 0 32 32\"><circle cx=\"16\" cy=\"16\" r=\"13\"\/><path d=\"M10 16.5 L14 20.5 L22 11.5\"\/><\/symbol>\n<\/defs><\/svg>\n\n<section class=\"hero\"><div class=\"wrap\">\n  <p class=\"eyebrow\" id=\"ecEyebrow\"><\/p>\n  <h1 id=\"ecTitle\"><\/h1>\n  <p class=\"hero-sub\" id=\"ecSub\"><\/p>\n  <div class=\"zones\" id=\"ecZones\" role=\"group\"><\/div>\n  <div class=\"kit-progress\" id=\"ecKit\"><\/div>\n<\/div><\/section>\n\n<main class=\"workspace\"><div class=\"wrap workspace-grid\">\n  <nav class=\"rail\" id=\"ecRail\" aria-label=\"categories\"><\/nav>\n  <section id=\"ecGrid\"><\/section>\n<\/div><\/main>\n\n<p class=\"foot-note wrap\" id=\"ecFooter\"><\/p>\n\n<div class=\"cartbar hide\" id=\"ecCartbar\">\n  <div class=\"cart-list\" id=\"ecCartList\"><div class=\"cart-list-inner\" id=\"ecCartItems\"><\/div><\/div>\n  <div class=\"cartbar-row\">\n    <div class=\"cartbar-summary\">\n      <div><div class=\"cartbar-total num\" id=\"ecCartTotal\">0<\/div><div class=\"cartbar-count\" id=\"ecCartCount\"><\/div><\/div>\n      <div class=\"cartbar-hint\" id=\"ecCartHint\"><\/div>\n    <\/div>\n    <div class=\"cartbar-actions\">\n      <button type=\"button\" class=\"btn-toggle-list\" id=\"ecToggleList\"><\/button>\n      <button type=\"button\" class=\"btn-submit\" id=\"ecSubmitBtn\" disabled><\/button>\n    <\/div>\n  <\/div>\n<\/div>\n\n<div class=\"ecx-overlay\" id=\"ecOverlay\" data-open=\"false\" role=\"dialog\" aria-modal=\"true\">\n  <div class=\"ecx-modal\">\n    <div class=\"form-body\" id=\"ecFormBody\">\n      <div class=\"modal-head\">\n        <div><h3 id=\"ecModalTitle\"><\/h3><p class=\"modal-sub\" id=\"ecModalSub\"><\/p><\/div>\n        <button type=\"button\" class=\"modal-close\" id=\"ecModalClose\"><svg class=\"icon\"><use href=\"#ic-close\"\/><\/svg><\/button>\n      <\/div>\n      <div class=\"recap\" id=\"ecRecap\"><\/div>\n      <form id=\"ecOrderForm\" novalidate>\n        <div class=\"field\" id=\"ecFieldName\">\n          <label id=\"ecNameLabel\" for=\"ecInpName\"><\/label>\n          <input id=\"ecInpName\" type=\"text\" autocomplete=\"name\">\n          <span class=\"field-error\" id=\"ecNameErr\"><\/span>\n        <\/div>\n        <div class=\"field\" id=\"ecFieldPhone\">\n          <label id=\"ecPhoneLabel\" for=\"ecInpPhone\"><\/label>\n          <input id=\"ecInpPhone\" type=\"tel\" autocomplete=\"tel\">\n          <span class=\"field-error\" id=\"ecPhoneErr\"><\/span>\n        <\/div>\n        <div class=\"field\">\n          <label id=\"ecCommentLabel\" for=\"ecInpComment\"><\/label>\n          <textarea id=\"ecInpComment\" rows=\"3\"><\/textarea>\n        <\/div>\n        <div class=\"field\" id=\"ecFieldCaptcha\">\n          <div id=\"ecTurnstile\" class=\"ecx-turnstile\"><\/div>\n          <span class=\"field-error\" id=\"ecCaptchaErr\" style=\"display:none;\"><\/span>\n        <\/div>\n        <button class=\"btn-primary\" type=\"submit\" id=\"ecSendBtn\"><\/button>\n      <\/form>\n    <\/div>\n    <div class=\"success\" id=\"ecSuccessBlock\">\n      <svg class=\"icon\"><use href=\"#ic-check-circle\"\/><\/svg>\n      <h3 id=\"ecSuccessTitle\"><\/h3>\n      <p id=\"ecSuccessText\"><\/p>\n      <p class=\"num\" id=\"ecOrderNumber\"><\/p>\n      <button type=\"button\" class=\"btn-add\" id=\"ecSuccessClose\" style=\"align-self:center;\"><\/button>\n    <\/div>\n  <\/div>\n<\/div>\n<\/div>\n<script src=\"https:\/\/challenges.cloudflare.com\/turnstile\/v0\/api.js?render=explicit\" async defer><\/script>\n<script>eval(decodeURIComponent(escape(window.atob(\"CihmdW5jdGlvbigpewogICJ1c2Ugc3RyaWN0IjsKICB2YXIgdHVybnN0aWxlV2lkZ2V0SWQgPSBudWxsOwogIHZhciBDQVRTID0gW3sia2V5IjoiZnJpZGdlIiwiaWQiOjc3MCwiem9uZSI6ImtpdGNoZW4iLCJpY29uIjoiaWMtZnJpZGdlIiwia2EiOiLhg5vhg5Dhg6rhg5jhg5Xhg6Dhg5Thg5Hhg5giLCJydSI6ItCl0L7Qu9C+0LTQuNC70YzQvdC40LrQuCIsImVuIjoiUmVmcmlnZXJhdG9ycyJ9LHsia2V5Ijoic21hbGwiLCJpZCI6NzUwLCJ6b25lIjoia2l0Y2hlbiIsImljb24iOiJpYy1ibGVuZGVyIiwia2EiOiLhg6zhg5Xhg6Dhg5jhg5rhg5gg4YOh4YOQ4YOn4YOd4YOk4YOQ4YOq4YOu4YOd4YOV4YOg4YOU4YOR4YOdIOGDouGDlOGDpeGDnOGDmOGDmeGDkCIsInJ1Ijoi0JzQtdC70LrQsNGPINC60YPRhdC+0L3QvdCw0Y8g0YLQtdGF0L3QuNC60LAiLCJlbiI6IlNtYWxsIGtpdGNoZW4gYXBwbGlhbmNlcyJ9LHsia2V5IjoiY29va3RvcCIsImlkIjo3MDgsInpvbmUiOiJraXRjaGVuIiwiaWNvbiI6ImljLWNvb2t0b3AiLCJrYSI6IuGDkuGDkOGDluGDmOGDoSDhg6Xhg6Phg6Dhg5Thg5Hhg5giLCJydSI6ItCT0LDQt9C+0LLRi9C1INC\/0LvQuNGC0YsiLCJlbiI6IkdhcyBjb29rZXJzIn0seyJrZXkiOiJob29kIiwiaWQiOjc0MSwiem9uZSI6ImtpdGNoZW4iLCJpY29uIjoiaWMtaG9vZCIsImthIjoi4YOS4YOQ4YOb4YOs4YOd4YOV4YOU4YOR4YOYIiwicnUiOiLQktGL0YLRj9C20LrQuCIsImVuIjoiUmFuZ2UgaG9vZHMifSx7ImtleSI6Im92ZW4iLCJpZCI6NzA1LCJ6b25lIjoia2l0Y2hlbiIsImljb24iOiJpYy1vdmVuIiwia2EiOiLhg6bhg6Phg5vhg5Thg5rhg5Thg5Hhg5gg4YOT4YOQIOGDkuGDoOGDmOGDmuGDlOGDkeGDmCIsInJ1Ijoi0J\/QtdGH0Lgg0Lgg0LPRgNC40LvQuCIsImVuIjoiT3ZlbnMgJiBncmlsbHMifSx7ImtleSI6ImRpc2h3YXNoZXIiLCJpZCI6NzA3LCJ6b25lIjoia2l0Y2hlbiIsImljb24iOiJpYy1kaXNod2FzaGVyIiwia2EiOiLhg63hg6Phg6Dhg63hg5rhg5jhg6Eg4YOh4YOQ4YOg4YOU4YOq4YOu4YOYIOGDm+GDkOGDnOGDpeGDkOGDnOGDlOGDkeGDmCIsInJ1Ijoi0J\/QvtGB0YPQtNC+0LzQvtC10YfQvdGL0LUg0LzQsNGI0LjQvdGLIiwiZW4iOiJEaXNod2FzaGVycyJ9LHsia2V5Ijoid2FzaGVyIiwiaWQiOjcwNiwiem9uZSI6ImtpdGNoZW4iLCJpY29uIjoiaWMtd2FzaGVyIiwia2EiOiLhg6Hhg5Dhg6Dhg5Thg6rhg67hg5gg4YOb4YOQ4YOc4YOl4YOQ4YOc4YOU4YOR4YOYIiwicnUiOiLQodGC0LjRgNCw0LvRjNC90YvQtSDQvNCw0YjQuNC90YsiLCJlbiI6Ildhc2hpbmcgbWFjaGluZXMifSx7ImtleSI6ImNvZmZlZSIsImlkIjo3ODIsInpvbmUiOiJraXRjaGVuIiwiaWNvbiI6ImljLWNvZmZlZSIsImthIjoi4YOn4YOQ4YOV4YOY4YOhIOGDkOGDnuGDkOGDoOGDkOGDouGDlOGDkeGDmCIsInJ1Ijoi0JrQvtGE0LXQvNCw0YjQuNC90YsiLCJlbiI6IkNvZmZlZSBtYWNoaW5lcyJ9LHsia2V5Ijoia2V0dGxlIiwiaWQiOjcwNCwiem9uZSI6ImtpdGNoZW4iLCJpY29uIjoiaWMtY29mZmVlIiwia2EiOiLhg5Thg5rhg5Thg6Xhg6Lhg6Dhg50g4YOp4YOQ4YOY4YOT4YOc4YOU4YOR4YOYIiwicnUiOiLQrdC70LXQutGC0YDQuNGH0LXRgdC60LjQtSDRh9Cw0LnQvdC40LrQuCIsImVuIjoiRWxlY3RyaWMga2V0dGxlcyJ9LHsia2V5Ijoid2luZSIsImlkIjo3NDQsInpvbmUiOiJraXRjaGVuIiwiaWNvbiI6ImljLXdpbmUiLCJrYSI6IuGDpuGDleGDmOGDnOGDmOGDoSDhg5nhg5Dhg6Dhg5Dhg5Phg5Thg5Hhg5giLCJydSI6ItCS0LjQvdC90YvQtSDRiNC60LDRhNGLIiwiZW4iOiJXaW5lIGNhYmluZXRzIn0seyJrZXkiOiJ0diIsImlkIjo3NjAsInpvbmUiOiJsaXZpbmciLCJpY29uIjoiaWMtdHYiLCJrYSI6IuGDouGDlOGDmuGDlOGDleGDmOGDluGDneGDoOGDlOGDkeGDmCIsInJ1Ijoi0KLQtdC70LXQstC40LfQvtGA0YsiLCJlbiI6IlRWcyJ9LHsia2V5IjoiYXVkaW8iLCJpZCI6OTEyLCJ6b25lIjoibGl2aW5nIiwiaWNvbiI6ImljLWF1ZGlvIiwia2EiOiLhg5Dhg6Phg5Phg5jhg53hg6Hhg5jhg6Hhg6Lhg5Thg5vhg5Thg5Hhg5giLCJydSI6ItCQ0YPQtNC40L7RgdC40YHRgtC10LzRiyDQuCDQutC40L3QvtGC0LXQsNGC0YDRiyIsImVuIjoiQXVkaW8gc3lzdGVtcyJ9LHsia2V5IjoicHJvamVjdG9yIiwiaWQiOjEwMzIsInpvbmUiOiJsaXZpbmciLCJpY29uIjoiaWMtcHJvamVjdG9yIiwia2EiOiLhg57hg6Dhg53hg5Thg6Xhg6Lhg53hg6Dhg5Thg5Hhg5giLCJydSI6ItCf0YDQvtC10LrRgtC+0YDRiyIsImVuIjoiUHJvamVjdG9ycyJ9LHsia2V5IjoiYWMiLCJpZCI6NjkzLCJ6b25lIjoibGl2aW5nIiwiaWNvbiI6ImljLWFjIiwia2EiOiLhg5nhg53hg5zhg5Phg5jhg6rhg5jhg53hg5zhg5Thg6Dhg5Thg5Hhg5giLCJydSI6ItCa0L7QvdC00LjRhtC40L7QvdC10YDRiyIsImVuIjoiQWlyIGNvbmRpdGlvbmVycyJ9LHsia2V5IjoiYWlyIiwiaWQiOjEwNDksInpvbmUiOiJsaXZpbmciLCJpY29uIjoiaWMtZmFuIiwia2EiOiLhg7Dhg5Dhg5Thg6Dhg5Lhg5Dhg5vhg6zhg5vhg5Thg5zhg5Phg5Thg5Hhg5gg4YOT4YOQIOGDk+GDkOGDm+GDkOGDouGDlOGDnOGDmOGDkOGDnOGDlOGDkeGDmuGDlOGDkeGDmCIsInJ1Ijoi0J7Rh9C40YHRgtC40YLQtdC70Lgg0Lgg0YPQstC70LDQttC90LjRgtC10LvQuCDQstC+0LfQtNGD0YXQsCIsImVuIjoiQWlyIHB1cmlmaWVycyAmIGh1bWlkaWZpZXJzIn0seyJrZXkiOiJoZWF0ZXIiLCJpZCI6MTA0Niwiem9uZSI6ImxpdmluZyIsImljb24iOiJpYy1oZWF0ZXIiLCJrYSI6IuGDlOGDmuGDlOGDpeGDouGDoOGDnSDhg5Lhg5Dhg5vhg5Dhg5fhg5Hhg53hg5Hhg5rhg5Thg5Hhg5giLCJydSI6ItCt0LvQtdC60YLRgNC40YfQtdGB0LrQuNC1INC+0LHQvtCz0YDQtdCy0LDRgtC10LvQuCIsImVuIjoiRWxlY3RyaWMgaGVhdGVycyJ9LHsia2V5IjoidmFjdXVtIiwiaWQiOjcwMiwiem9uZSI6ImxpdmluZyIsImljb24iOiJpYy12YWN1dW0iLCJrYSI6IuGDm+GDouGDleGDlOGDoOGDoeGDkOGDoeGDoOGDo+GDouGDlOGDkeGDmCIsInJ1Ijoi0J\/Ri9C70LXRgdC+0YHRiyIsImVuIjoiVmFjdXVtIGNsZWFuZXJzIn0seyJrZXkiOiJzbWFydCIsImlkIjoxMDU5LCJ6b25lIjoibGl2aW5nIiwiaWNvbiI6ImljLXJvb20taG91c2UiLCJrYSI6IuGDreGDmeGDleGDmOGDkOGDnOGDmCDhg6Hhg5Dhg67hg5rhg5giLCJydSI6ItCj0LzQvdGL0Lkg0LTQvtC8IiwiZW4iOiJTbWFydCBob21lIn1dOwogIHZhciBJMThOID0geyJrYSI6eyJleWVicm93Ijoi4YOh4YOQ4YOu4YOa4YOY4YOhIOGDouGDlOGDpeGDnOGDmOGDmeGDmOGDoSDhg5nhg53hg5zhg6Hhg6Lhg6Dhg6Phg6Xhg6Lhg53hg6Dhg5giLCJ0aXRsZSI6IuGDqOGDlOGDkOGDk+GDkuGDmOGDnOGDlOGDlyDhg6Lhg5Thg6Xhg5zhg5jhg5nhg5jhg6Eg4YOc4YOQ4YOZ4YOg4YOU4YOR4YOYIOGDl+GDpeGDleGDlOGDnOGDmCDhg6Hhg5Dhg67hg5rhg5jhg6Hhg5fhg5Xhg5jhg6EiLCJzdWIiOiLhg5Dhg5jhg6Dhg6nhg5jhg5Thg5cg4YOW4YOd4YOc4YOQIOKAlCDhg6Hhg5Dhg5vhg5bhg5Dhg6Dhg5Thg6Phg5rhg50sIOGDm+GDmOGDoeGDkOGDpuGDlOGDkeGDmCDhg5Dhg5wg4YOb4YOX4YOU4YOa4YOYIOGDoeGDkOGDruGDmuGDmCDigJQg4YOT4YOQIOGDk+GDkOGDkOGDm+GDkOGDouGDlOGDlyDhg6Hhg5Dhg6Hhg6Phg6Dhg5Xhg5Thg5rhg5gg4YOi4YOU4YOl4YOc4YOY4YOZ4YOQLiDhg5vhg5jhg5zhg5jhg5vhg6Phg5sgMiDhg57hg53hg5bhg5jhg6rhg5jhg5AsIOGDk+GDkCDhg5vhg53hg5Lhg5Dhg5vhg5bhg5Dhg5Phg5Thg5Hhg5cg4YOQ4YOc4YOS4YOQ4YOg4YOY4YOo4YOhLiIsInpvbmVLaXRjaGVuIjoi4YOh4YOQ4YOb4YOW4YOQ4YOg4YOU4YOj4YOa4YOdIiwiem9uZUxpdmluZyI6IuGDm+GDmOGDoeGDkOGDpuGDlOGDkeGDmCIsInpvbmVIb3VzZSI6IuGDm+GDl+GDlOGDmuGDmCDhg6Hhg5Dhg67hg5rhg5giLCJhZGRCdG4iOiLhg5Phg5Dhg5vhg5Dhg6Lhg5Thg5Hhg5AiLCJpbkNhcnQiOiLhg5nhg5Dhg5rhg5Dhg5fhg5Dhg6jhg5jhg5AiLCJjYXJ0VGl0bGUiOiLhg5fhg6Xhg5Xhg5Thg5zhg5gg4YOc4YOQ4YOZ4YOg4YOU4YOR4YOYIiwiZW1wdHlDYXJ0Ijoi4YOc4YOQ4YOZ4YOg4YOU4YOR4YOYIOGDr+GDlOGDoCDhg6rhg5Dhg6Dhg5jhg5Thg5rhg5jhg5AiLCJ0b3RhbCI6IuGDoeGDo+GDmiIsInNlbGVjdGVkIjoi4YOQ4YOg4YOp4YOU4YOj4YOa4YOY4YOQIiwiaXRlbXNfMSI6IuGDnuGDneGDluGDmOGDquGDmOGDkCIsIml0ZW1zXzIiOiLhg57hg53hg5bhg5jhg6rhg5jhg5AiLCJoaW50TmVlZCI6IuGDk+GDkOGDkOGDm+GDkOGDouGDlOGDlyDhg5nhg5jhg5Phg5Thg5Uge259IOGDnuGDneGDluGDmOGDquGDmOGDkCwg4YOg4YOd4YObIOGDkuGDkOGDkOGDkuGDluGDkOGDleGDnOGDneGDlyDhg5vhg53hg5fhg67hg53hg5Xhg5zhg5AiLCJoaW50UmVhZHkiOiLhg5zhg5Dhg5nhg6Dhg5Thg5Hhg5gg4YOb4YOW4YOQ4YOT4YOQ4YOQIOGDkuGDkOGDoeGDkOGDkuGDluGDkOGDleGDnOGDkOGDkyIsInN1Ym1pdEJ0biI6IuGDm+GDneGDl+GDruGDneGDleGDnOGDmOGDoSDhg5Lhg5Dhg5Lhg5bhg5Dhg5Xhg5zhg5AiLCJtb2RhbFRpdGxlIjoi4YOb4YOd4YOX4YOu4YOd4YOV4YOc4YOQIOGDkOGDnOGDkuGDkOGDoOGDmOGDqOGDmOGDoeGDl+GDleGDmOGDoSIsIm1vZGFsU3ViIjoi4YOS4YOQ4YOb4YOd4YOS4YOY4YOS4YOW4YOQ4YOV4YOc4YOY4YOXIOGDnOGDkOGDmeGDoOGDlOGDkeGDmOGDoSDhg6jhg5Thg5vhg5Dhg5Phg5Lhg5Thg5zhg5rhg53hg5Hhg5Dhg6Eg4YOb4YOU4YOc4YOU4YOv4YOU4YOg4YOX4YOQ4YOcIOKAlCDhg5Lhg5Dhg5Phg5Dhg67hg5Phg5jhg6Eg4YOS4YOQ4YOg4YOU4YOo4YOULCDhg5vhg67hg53hg5rhg53hg5Mg4YOs4YOY4YOc4YOQ4YOh4YOs4YOQ4YOg4YOYIOGDkOGDnOGDkuGDkOGDoOGDmOGDqOGDmC4iLCJuYW1lTGFiZWwiOiLhg6Hhg5Dhg67hg5Thg5rhg5giLCJuYW1lUGgiOiLhg6Dhg53hg5Lhg53hg6Ag4YOb4YOd4YOS4YOb4YOQ4YOg4YOX4YOd4YOXIiwicGhvbmVMYWJlbCI6IuGDouGDlOGDmuGDlOGDpOGDneGDnOGDmCIsInBob25lUGgiOiIrOTk1IF9fXyBfXyBfXyBfXyIsImNvbW1lbnRMYWJlbCI6IuGDmeGDneGDm+GDlOGDnOGDouGDkOGDoOGDmCIsImNvbW1lbnRPcHQiOiIo4YOQ4YOg4YOQ4YOh4YOQ4YOV4YOQ4YOa4YOT4YOU4YOR4YOj4YOa4YOdKSIsInNlbmRCdG4iOiLhg5Lhg5Dhg5Lhg5bhg5Dhg5Xhg5zhg5AiLCJzdWNjZXNzVGl0bGUiOiLhg5vhg53hg5fhg67hg53hg5Xhg5zhg5Ag4YOb4YOY4YOm4YOU4YOR4YOj4YOa4YOY4YOQIiwic3VjY2Vzc1RleHQiOiLhg5vhg5Thg5zhg5Thg6\/hg5Thg6Dhg5gg4YOT4YOQ4YOS4YOY4YOZ4YOQ4YOV4YOo4YOY4YOg4YOT4YOU4YOR4YOQ4YOXIOGDo+GDkOGDruGDmuGDneGDlOGDoSDhg5Phg6Dhg53hg6jhg5gg4YOW4YOj4YOh4YOi4YOYIOGDkOGDnOGDkuGDkOGDoOGDmOGDqOGDmOGDoeGDl+GDleGDmOGDoS4iLCJjbG9zZUJ0biI6IuGDk+GDkOGDruGDo+GDoOGDleGDkCIsImZvb3RlciI6IkVMSVMgwrcg4YOi4YOU4YOl4YOc4YOY4YOZ4YOY4YOhIOGDmeGDneGDnOGDoeGDouGDoOGDo+GDpeGDouGDneGDoOGDmCDhg6Hhg5Dhg67hg5rhg5jhg6Hhg5fhg5Xhg5jhg6EuIOGDpOGDkOGDoeGDlOGDkeGDmCDhg6Hhg5Dhg53hg6Dhg5jhg5Thg5zhg6Lhg5Dhg6rhg5jhg50sIOGDoeGDkOGDkeGDneGDmuGDneGDnSDhg5Dhg5zhg5Lhg5Dhg6Dhg5jhg6jhg5gg4oCUIOGDm+GDlOGDnOGDlOGDr+GDlOGDoOGDmOGDoeGDkuGDkOGDnC4iLCJwZXJVbml0Ijoi4YOU4YOg4YOX4YOU4YOj4YOa4YOW4YOUIiwicG9zQ291bnQiOiLhg57hg53hg5bhg5jhg6rhg5jhg5AiLCJsb2FkaW5nIjoi4YOY4YOi4YOV4YOY4YOg4YOX4YOU4YOR4YOQ4oCmIiwiZW1wdHkiOiLhg5Dhg5sg4YOZ4YOQ4YOi4YOU4YOS4YOd4YOg4YOY4YOQ4YOo4YOYIOGDkOGDm+GDn+GDkOGDm+GDkOGDkyDhg6Hhg5Dhg6Xhg53hg5zhg5Thg5rhg5gg4YOQ4YOgIOGDm+GDneGDmOGDq+GDlOGDkeGDnOGDkCIsImNhcHRjaGFSZXF1aXJlZCI6IuGDk+GDkOGDkOGDk+GDkOGDoeGDouGDo+GDoOGDlOGDlywg4YOg4YOd4YObIOGDkOGDoCDhg67hg5Dhg6Dhg5cg4YOg4YOd4YOR4YOd4YOi4YOYIiwib3JkZXJFcnJvciI6IuGDm+GDneGDl+GDruGDneGDleGDnOGDmOGDoSDhg5Lhg5Dhg5Lhg5bhg5Dhg5Xhg5zhg5Ag4YOV4YOU4YOgIOGDm+GDneGDruGDlOGDoOGDruGDk+GDkC4g4YOh4YOq4YOQ4YOT4YOU4YOXIOGDmOGDoeGDlOGDlS4iLCJraXRMYWJlbCI6IuGDnOGDkOGDmeGDoOGDlOGDkeGDmOGDoSDhg6jhg5Thg5vhg5Dhg5Phg5Lhg5Thg5zhg5rhg53hg5Hhg5AifSwicnUiOnsiZXllYnJvdyI6ItCa0L7QvdGB0YLRgNGD0LrRgtC+0YAg0YLQtdGF0L3QuNC60Lgg0LTQu9GPINC00L7QvNCwIiwidGl0bGUiOiLQodC+0LHQtdGA0LjRgtC1INC60L7QvNC\/0LvQtdC60YIg0YLQtdGF0L3QuNC60Lgg0LTQu9GPINCy0LDRiNC10LPQviDQtNC+0LzQsCIsInN1YiI6ItCS0YvQsdC10YDQuNGC0LUg0LfQvtC90YMg4oCUINC60YPRhdC90Y8sINCz0L7RgdGC0LjQvdCw0Y8g0LjQu9C4INCy0LXRgdGMINC00L7QvCDigJQg0Lgg0LTQvtCx0LDQstC70Y\/QudGC0LUg0L3Rg9C20L3Rg9GOINGC0LXRhdC90LjQutGDLiDQnNC40L3QuNC80YPQvCAyINC\/0L7Qt9C40YbQuNC4LCDQuCDQvNGLINC\/0L7QtNCz0L7RgtC+0LLQuNC8INGA0LDRgdGH0ZHRgi4iLCJ6b25lS2l0Y2hlbiI6ItCa0YPRhdC90Y8iLCJ6b25lTGl2aW5nIjoi0JPQvtGB0YLQuNC90LDRjyIsInpvbmVIb3VzZSI6ItCS0LXRgdGMINC00L7QvCIsImFkZEJ0biI6ItCU0L7QsdCw0LLQuNGC0YwiLCJpbkNhcnQiOiLQkiDQutC+0LzQv9C70LXQutGC0LUiLCJjYXJ0VGl0bGUiOiLQktCw0Ygg0LrQvtC80L\/Qu9C10LrRgiIsImVtcHR5Q2FydCI6ItCa0L7QvNC\/0LvQtdC60YIg0L\/QvtC60LAg0L\/Rg9GB0YIiLCJ0b3RhbCI6ItCY0YLQvtCz0L4iLCJzZWxlY3RlZCI6ItCS0YvQsdGA0LDQvdC+IiwiaXRlbXNfMSI6ItC\/0L7Qt9C40YbQuNGPIiwiaXRlbXNfMiI6ItC\/0L7Qt9C40YbQuNC4IiwiaGludE5lZWQiOiLQlNC+0LHQsNCy0YzRgtC1INC10YnRkSB7bn0g0LTQviDQvNC40L3QuNC80YPQvNCwINCyIDIg0L\/QvtC30LjRhtC40LgiLCJoaW50UmVhZHkiOiLQmtC+0LzQv9C70LXQutGCINCz0L7RgtC+0LIg0Log0L7RgtC\/0YDQsNCy0LrQtSIsInN1Ym1pdEJ0biI6ItCe0YLQv9GA0LDQstC40YLRjCDQt9Cw0Y\/QstC60YMiLCJtb2RhbFRpdGxlIjoi0JfQsNGP0LLQutCwINC90LAg0L\/RgNC+0YHRh9GR0YIiLCJtb2RhbFN1YiI6ItCe0YLQv9GA0LDQstC40Lwg0YHQvtGB0YLQsNCyINC60L7QvNC\/0LvQtdC60YLQsCDQvNC10L3QtdC00LbQtdGA0YMgRUxJUyDigJQg0LHQtdC3INC+0L\/Qu9Cw0YLRiyDQvdCwINGB0LDQudGC0LUsINGC0L7Qu9GM0LrQviDQv9GA0LXQtNCy0LDRgNC40YLQtdC70YzQvdGL0Lkg0YDQsNGB0YfRkdGCLiIsIm5hbWVMYWJlbCI6ItCY0LzRjyIsIm5hbWVQaCI6ItCa0LDQuiDQuiDQstCw0Lwg0L7QsdGA0LDRidCw0YLRjNGB0Y8iLCJwaG9uZUxhYmVsIjoi0KLQtdC70LXRhNC+0L0iLCJwaG9uZVBoIjoiKzk5NSBfX18gX18gX18gX18iLCJjb21tZW50TGFiZWwiOiLQmtC+0LzQvNC10L3RgtCw0YDQuNC5IiwiY29tbWVudE9wdCI6IijQvdC10L7QsdGP0LfQsNGC0LXQu9GM0L3QvikiLCJzZW5kQnRuIjoi0J7RgtC\/0YDQsNCy0LjRgtGMIiwic3VjY2Vzc1RpdGxlIjoi0JfQsNGP0LLQutCwINC\/0YDQuNC90Y\/RgtCwIiwic3VjY2Vzc1RleHQiOiLQnNC10L3QtdC00LbQtdGAIEVMSVMg0YHQstGP0LbQtdGC0YHRjyDRgSDQstCw0LzQuCDQsiDQsdC70LjQttCw0LnRiNC10LUg0LLRgNC10LzRjyDQtNC70Y8g0YLQvtGH0L3QvtCz0L4g0YDQsNGB0YfRkdGC0LAuIiwiY2xvc2VCdG4iOiLQl9Cw0LrRgNGL0YLRjCIsImZvb3RlciI6IkVMSVMgwrcg0LrQvtC90YHRgtGA0YPQutGC0L7RgCDRgtC10YXQvdC40LrQuCDQtNC70Y8g0LTQvtC80LAuINCm0LXQvdGLINC+0YDQuNC10L3RgtC40YDQvtCy0L7Rh9C90YvQtSwg0YLQvtGH0L3Ri9C5INGA0LDRgdGH0ZHRgiDigJQg0L7RgiDQvNC10L3QtdC00LbQtdGA0LAuIiwicGVyVW5pdCI6ItC30LAg0LXQtNC40L3QuNGG0YMiLCJwb3NDb3VudCI6ItC\/0L7Qt9C40YbQuNC5IiwibG9hZGluZyI6ItCX0LDQs9GA0YPQt9C60LDigKYiLCJlbXB0eSI6ItCSINGN0YLQvtC5INC60LDRgtC10LPQvtGA0LjQuCDRgdC10LnRh9Cw0YEg0L3QtdGCINGC0L7QstCw0YDQvtCyINCyINC90LDQu9C40YfQuNC4IiwiY2FwdGNoYVJlcXVpcmVkIjoi0J\/QvtC00YLQstC10YDQtNC40YLQtSwg0YfRgtC+INCy0Ysg0L3QtSDRgNC+0LHQvtGCIiwib3JkZXJFcnJvciI6ItCd0LUg0YPQtNCw0LvQvtGB0Ywg0L7RgtC\/0YDQsNCy0LjRgtGMINC30LDRj9Cy0LrRgy4g0J\/QvtC\/0YDQvtCx0YPQudGC0LUg0LXRidGRINGA0LDQty4iLCJraXRMYWJlbCI6ItCh0L7RgdGC0LDQsiDQutC+0LzQv9C70LXQutGC0LAifSwiZW4iOnsiZXllYnJvdyI6IkhvbWUgYXBwbGlhbmNlIHNldCBidWlsZGVyIiwidGl0bGUiOiJCdWlsZCBhbiBhcHBsaWFuY2Ugc2V0IGZvciB5b3VyIGhvbWUiLCJzdWIiOiJDaG9vc2UgYSB6b25lIOKAlCBraXRjaGVuLCBsaXZpbmcgcm9vbSwgb3IgdGhlIHdob2xlIGhvdXNlIOKAlCBhbmQgYWRkIHRoZSBpdGVtcyB5b3UgbmVlZC4gQWRkIGF0IGxlYXN0IDIgaXRlbXMgYW5kIHdl4oCZbGwgcHJlcGFyZSBhIHF1b3RlLiIsInpvbmVLaXRjaGVuIjoiS2l0Y2hlbiIsInpvbmVMaXZpbmciOiJMaXZpbmcgcm9vbSIsInpvbmVIb3VzZSI6Ildob2xlIGhvdXNlIiwiYWRkQnRuIjoiQWRkIiwiaW5DYXJ0IjoiSW4gc2V0IiwiY2FydFRpdGxlIjoiWW91ciBzZXQiLCJlbXB0eUNhcnQiOiJZb3VyIHNldCBpcyBlbXB0eSIsInRvdGFsIjoiVG90YWwiLCJzZWxlY3RlZCI6IlNlbGVjdGVkIiwiaXRlbXNfMSI6Iml0ZW0iLCJpdGVtc18yIjoiaXRlbXMiLCJoaW50TmVlZCI6IkFkZCB7bn0gbW9yZSB0byByZWFjaCB0aGUgMi1pdGVtIG1pbmltdW0iLCJoaW50UmVhZHkiOiJZb3VyIHNldCBpcyByZWFkeSB0byBzZW5kIiwic3VibWl0QnRuIjoiU2VuZCByZXF1ZXN0IiwibW9kYWxUaXRsZSI6IlJlcXVlc3QgYSBxdW90ZSIsIm1vZGFsU3ViIjoiV2XigJlsbCBzZW5kIHlvdXIgc2V0IHRvIGFuIEVMSVMgbWFuYWdlciBmb3IgYSBxdW90ZSDigJQgbm8gcGF5bWVudCBvbiB0aGUgc2l0ZSwganVzdCBhIHByZWxpbWluYXJ5IGVzdGltYXRlLiIsIm5hbWVMYWJlbCI6Ik5hbWUiLCJuYW1lUGgiOiJIb3cgc2hvdWxkIHdlIGFkZHJlc3MgeW91IiwicGhvbmVMYWJlbCI6IlBob25lIiwicGhvbmVQaCI6Iis5OTUgX19fIF9fIF9fIF9fIiwiY29tbWVudExhYmVsIjoiQ29tbWVudCIsImNvbW1lbnRPcHQiOiIob3B0aW9uYWwpIiwic2VuZEJ0biI6IlNlbmQiLCJzdWNjZXNzVGl0bGUiOiJSZXF1ZXN0IHJlY2VpdmVkIiwic3VjY2Vzc1RleHQiOiJBbiBFTElTIG1hbmFnZXIgd2lsbCBjb250YWN0IHlvdSBzaG9ydGx5IHdpdGggYW4gZXhhY3QgcXVvdGUuIiwiY2xvc2VCdG4iOiJDbG9zZSIsImZvb3RlciI6IkVMSVMgwrcgaG9tZSBhcHBsaWFuY2Ugc2V0IGJ1aWxkZXIuIFByaWNlcyBhcmUgYXBwcm94aW1hdGUsIGZpbmFsIHF1b3RlIGZyb20gYSBtYW5hZ2VyLiIsInBlclVuaXQiOiJwZXIgdW5pdCIsInBvc0NvdW50IjoiaXRlbXMiLCJsb2FkaW5nIjoiTG9hZGluZ+KApiIsImVtcHR5IjoiTm8gaXRlbXMgY3VycmVudGx5IGluIHN0b2NrIGluIHRoaXMgY2F0ZWdvcnkiLCJjYXB0Y2hhUmVxdWlyZWQiOiJQbGVhc2UgY29uZmlybSB5b3UgYXJlIG5vdCBhIHJvYm90Iiwib3JkZXJFcnJvciI6IkNvdWxkIG5vdCBzZW5kIHRoZSByZXF1ZXN0LiBQbGVhc2UgdHJ5IGFnYWluLiIsImtpdExhYmVsIjoiS2l0IGNvbnRlbnRzIn19OwogIHZhciBQUkVGSVggPSB7IGthOicnLCBydTonL3J1JywgZW46Jy9lbicgfTsKCiAgZnVuY3Rpb24gZGV0ZWN0TG9jYWxlKCl7CiAgICB2YXIgcCA9IGxvY2F0aW9uLnBhdGhuYW1lOwogICAgaWYgKHAuaW5kZXhPZignL3J1LycpID09PSAwKSByZXR1cm4gJ3J1JzsKICAgIGlmIChwLmluZGV4T2YoJy9lbi8nKSA9PT0gMCkgcmV0dXJuICdlbic7CiAgICByZXR1cm4gJ2thJzsKICB9CgogIHZhciBzdGF0ZSA9IHsKICAgIGxvY2FsZTogZGV0ZWN0TG9jYWxlKCksCiAgICB6b25lOiAna2l0Y2hlbicsCiAgICBhY3RpdmVDYXQ6IG51bGwsCiAgICBjYXJ0OiB7fSwKICAgIHByb2R1Y3RDYWNoZToge30sCiAgICBsaXN0T3BlbjogZmFsc2UKICB9OwoKICBmdW5jdGlvbiB0KGtleSl7IHJldHVybiAoSTE4TltzdGF0ZS5sb2NhbGVdICYmIEkxOE5bc3RhdGUubG9jYWxlXVtrZXldKSB8fCBJMThOLmthW2tleV0gfHwga2V5OyB9CiAgZnVuY3Rpb24gY2F0c0ZvclpvbmUoem9uZSl7CiAgICBpZiAoem9uZSA9PT0gJ2hvdXNlJykgcmV0dXJuIENBVFM7CiAgICByZXR1cm4gQ0FUUy5maWx0ZXIoZnVuY3Rpb24oYyl7IHJldHVybiBjLnpvbmUgPT09IHpvbmU7IH0pOwogIH0KICBmdW5jdGlvbiBjYXRMYWJlbChjKXsgcmV0dXJuIGNbc3RhdGUubG9jYWxlXSB8fCBjLnJ1OyB9CgogIGZ1bmN0aW9uIGZtdFByaWNlKHApewogICAgaWYgKCFwKSByZXR1cm4gJyc7CiAgICB2YXIgbWlub3IgPSBNYXRoLnBvdygxMCwgcC5jdXJyZW5jeV9taW5vcl91bml0IHx8IDApOwogICAgdmFyIHZhbCA9IChwYXJzZUZsb2F0KHAucHJpY2V8fDApIC8gbWlub3IpOwogICAgdmFyIHN0ciA9IHZhbC50b0xvY2FsZVN0cmluZygnZW4tVVMnLCB7bWF4aW11bUZyYWN0aW9uRGlnaXRzOjJ9KTsKICAgIHZhciBzeW0gPSBwLmN1cnJlbmN5X3N5bWJvbCB8fCAnJzsKICAgIHJldHVybiAocC5jdXJyZW5jeV9wcmVmaXggPyBzeW0rc3RyIDogc3RyKycgJytzeW0pLnRyaW0oKTsKICB9CgogIGZ1bmN0aW9uIGNhY2hlS2V5KGNhdElkKXsgcmV0dXJuIHN0YXRlLmxvY2FsZSArICc6JyArIGNhdElkOyB9CgogIGZ1bmN0aW9uIGZldGNoQ2F0ZWdvcnlQcm9kdWN0cyhjYXRJZCwgcGFnZSl7CiAgICBwYWdlID0gcGFnZSB8fCAxOwogICAgdmFyIGtleSA9IGNhY2hlS2V5KGNhdElkKSArICc6JyArIHBhZ2U7CiAgICBpZiAoc3RhdGUucHJvZHVjdENhY2hlW2tleV0pIHJldHVybiBQcm9taXNlLnJlc29sdmUoc3RhdGUucHJvZHVjdENhY2hlW2tleV0pOwogICAgdmFyIHByZWZpeCA9IFBSRUZJWFtzdGF0ZS5sb2NhbGVdOwogICAgcmV0dXJuIGZldGNoKHByZWZpeCArICcvd3AtanNvbi93Yy9zdG9yZS92MS9wcm9kdWN0cz9jYXRlZ29yeT0nICsgY2F0SWQgKyAnJnBlcl9wYWdlPTE2JnN0b2NrX3N0YXR1cz1pbnN0b2NrJm9yZGVyYnk9cG9wdWxhcml0eSZvcmRlcj1kZXNjJnBhZ2U9JyArIHBhZ2UsIHtjcmVkZW50aWFsczonc2FtZS1vcmlnaW4nfSkKICAgICAgLnRoZW4oZnVuY3Rpb24ocil7CiAgICAgICAgdmFyIHRvdGFsID0gcGFyc2VJbnQoci5oZWFkZXJzLmdldCgnWC1XUC1Ub3RhbCcpfHwnMCcsIDEwKTsKICAgICAgICB2YXIgdG90YWxQYWdlcyA9IHBhcnNlSW50KHIuaGVhZGVycy5nZXQoJ1gtV1AtVG90YWxQYWdlcycpfHwnMScsIDEwKTsKICAgICAgICByZXR1cm4gKHIub2sgPyByLmpzb24oKSA6IFByb21pc2UucmVzb2x2ZShbXSkpLnRoZW4oZnVuY3Rpb24obGlzdCl7IHJldHVybiB7bGlzdDpsaXN0LCB0b3RhbDp0b3RhbCwgdG90YWxQYWdlczp0b3RhbFBhZ2VzfTsgfSk7CiAgICAgIH0pCiAgICAgIC50aGVuKGZ1bmN0aW9uKHJlcyl7CiAgICAgICAgdmFyIGl0ZW1zID0gKHJlcy5saXN0fHxbXSkuZmlsdGVyKGZ1bmN0aW9uKHApeyByZXR1cm4gcC5pbWFnZXMgJiYgcC5pbWFnZXMubGVuZ3RoOyB9KS5tYXAoZnVuY3Rpb24ocCl7CiAgICAgICAgICByZXR1cm4geyBpZDpwLmlkLCBuYW1lOnAubmFtZSwgcGVybWFsaW5rOnAucGVybWFsaW5rLCBpbWc6KHAuaW1hZ2VzWzBdfHx7fSkuc3JjfHwnJywgcHJpY2VPYmo6cC5wcmljZXMgfTsKICAgICAgICB9KTsKICAgICAgICB2YXIgcmVzdWx0ID0geyBpdGVtczppdGVtcywgdG90YWw6cmVzLnRvdGFsLCB0b3RhbFBhZ2VzOnJlcy50b3RhbFBhZ2VzLCBwYWdlOnBhZ2UgfTsKICAgICAgICBzdGF0ZS5wcm9kdWN0Q2FjaGVba2V5XSA9IHJlc3VsdDsKICAgICAgICByZXR1cm4gcmVzdWx0OwogICAgICB9KS5jYXRjaChmdW5jdGlvbigpeyByZXR1cm4geyBpdGVtczpbXSwgdG90YWw6MCwgdG90YWxQYWdlczoxLCBwYWdlOnBhZ2UgfTsgfSk7CiAgfQoKICAvKiA9PT09PT09PT09PT0gU1RBVElDIFRFWFQgPT09PT09PT09PT09ICovCiAgZnVuY3Rpb24gcmVuZGVyU3RhdGljVGV4dCgpewogICAgCiAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZWNFeWVicm93JykudGV4dENvbnRlbnQgPSB0KCdleWVicm93Jyk7CiAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZWNUaXRsZScpLnRleHRDb250ZW50ID0gdCgndGl0bGUnKTsKICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdlY1N1YicpLnRleHRDb250ZW50ID0gdCgnc3ViJyk7CiAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZWNGb290ZXInKS50ZXh0Q29udGVudCA9IHQoJ2Zvb3RlcicpOwogICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2VjTW9kYWxUaXRsZScpLnRleHRDb250ZW50ID0gdCgnbW9kYWxUaXRsZScpOwogICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2VjTW9kYWxTdWInKS50ZXh0Q29udGVudCA9IHQoJ21vZGFsU3ViJyk7CiAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZWNOYW1lTGFiZWwnKS50ZXh0Q29udGVudCA9IHQoJ25hbWVMYWJlbCcpOwogICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2VjSW5wTmFtZScpLnBsYWNlaG9sZGVyID0gdCgnbmFtZVBoJyk7CiAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZWNOYW1lRXJyJykudGV4dENvbnRlbnQgPSB0KCduYW1lTGFiZWwnKTsKICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdlY1Bob25lTGFiZWwnKS50ZXh0Q29udGVudCA9IHQoJ3Bob25lTGFiZWwnKTsKICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdlY0lucFBob25lJykucGxhY2Vob2xkZXIgPSB0KCdwaG9uZVBoJyk7CiAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZWNQaG9uZUVycicpLnRleHRDb250ZW50ID0gdCgncGhvbmVMYWJlbCcpOwogICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2VjQ29tbWVudExhYmVsJykudGV4dENvbnRlbnQgPSB0KCdjb21tZW50TGFiZWwnKSArICcgJyArIHQoJ2NvbW1lbnRPcHQnKTsKICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdlY1NlbmRCdG4nKS50ZXh0Q29udGVudCA9IHQoJ3NlbmRCdG4nKTsKICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdlY1N1Y2Nlc3NUaXRsZScpLnRleHRDb250ZW50ID0gdCgnc3VjY2Vzc1RpdGxlJyk7CiAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZWNTdWNjZXNzVGV4dCcpLnRleHRDb250ZW50ID0gdCgnc3VjY2Vzc1RleHQnKTsKICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdlY1N1Y2Nlc3NDbG9zZScpLnRleHRDb250ZW50ID0gdCgnY2xvc2VCdG4nKTsKICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdlY1RvZ2dsZUxpc3QnKS50ZXh0Q29udGVudCA9IHQoJ2NhcnRUaXRsZScpOwogIH0KCiAgLyogPT09PT09PT09PT09IFpPTkVTID09PT09PT09PT09PSAqLwogIHZhciB6b25lc0VsID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2VjWm9uZXMnKTsKICBmdW5jdGlvbiByZW5kZXJab25lcygpewogICAgem9uZXNFbC5pbm5lckhUTUwgPSAnJzsKICAgIHZhciBkZWZzID0gWwogICAgICB7aWQ6J2tpdGNoZW4nLCBpY29uOidpYy1yb29tLWtpdGNoZW4nLCBsYWJlbDp0KCd6b25lS2l0Y2hlbicpfSwKICAgICAge2lkOidsaXZpbmcnLCBpY29uOidpYy1yb29tLWxpdmluZycsIGxhYmVsOnQoJ3pvbmVMaXZpbmcnKX0sCiAgICAgIHtpZDonaG91c2UnLCBpY29uOidpYy1yb29tLWhvdXNlJywgbGFiZWw6dCgnem9uZUhvdXNlJyl9CiAgICBdOwogICAgZGVmcy5mb3JFYWNoKGZ1bmN0aW9uKGQpewogICAgICB2YXIgYnRuID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnYnV0dG9uJyk7CiAgICAgIGJ0bi50eXBlID0gJ2J1dHRvbic7IGJ0bi5jbGFzc05hbWUgPSAnem9uZS1idG4nOwogICAgICBidG4uc2V0QXR0cmlidXRlKCdhcmlhLXByZXNzZWQnLCBkLmlkID09PSBzdGF0ZS56b25lID8gJ3RydWUnOidmYWxzZScpOwogICAgICBidG4uaW5uZXJIVE1MID0gJzxzdmcgY2xhc3M9Imljb24iPjx1c2UgaHJlZj0iIycrZC5pY29uKyciLz48L3N2Zz48c3Bhbj4nK2QubGFiZWwrJzwvc3Bhbj4nOwogICAgICBidG4uYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCBmdW5jdGlvbigpeyBzZWxlY3Rab25lKGQuaWQpOyB9KTsKICAgICAgem9uZXNFbC5hcHBlbmRDaGlsZChidG4pOwogICAgfSk7CiAgfQoKICAKCiAgZnVuY3Rpb24gcmVuZGVyS2l0UHJvZ3Jlc3MoKXsKICAgIHZhciB3cmFwID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2VjS2l0Jyk7CiAgICBpZiAoIXdyYXApIHJldHVybjsKICAgIHZhciBjYXRzID0gY2F0c0ZvclpvbmUoc3RhdGUuem9uZSk7CiAgICB2YXIgZW50cmllcyA9IGNhcnRFbnRyaWVzKCk7CiAgICB3cmFwLmlubmVySFRNTCA9ICcnOwogICAgY2F0cy5mb3JFYWNoKGZ1bmN0aW9uKGNhdCl7CiAgICAgIHZhciBpbkNhdCA9IGVudHJpZXMuZmlsdGVyKGZ1bmN0aW9uKGUpeyByZXR1cm4gZS5jYXRJZCA9PT0gY2F0LmlkOyB9KTsKICAgICAgdmFyIHNsb3QgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsKICAgICAgc2xvdC5jbGFzc05hbWUgPSAna2l0LXNsb3QnICsgKGluQ2F0Lmxlbmd0aCA\/ICcgZmlsbGVkJyA6ICcnKSArIChzdGF0ZS5hY3RpdmVDYXQgPT09IGNhdC5pZCA\/ICcgYWN0aXZlJyA6ICcnKTsKICAgICAgc2xvdC50aXRsZSA9IGNhdExhYmVsKGNhdCk7CiAgICAgIGlmIChpbkNhdC5sZW5ndGgpewogICAgICAgIHZhciBsYXN0ID0gaW5DYXRbaW5DYXQubGVuZ3RoLTFdOwogICAgICAgIHNsb3QuaW5uZXJIVE1MID0gJzxpbWcgc3JjPSInK2xhc3QuaXRlbS5pbWcrJyIgYWx0PSIiPicgKyAoaW5DYXQubGVuZ3RoPjEgPyAoJzxzcGFuIGNsYXNzPSJraXQtc2xvdC1iYWRnZSI+JytpbkNhdC5sZW5ndGgrJzwvc3Bhbj4nKSA6ICcnKTsKICAgICAgfSBlbHNlIHsKICAgICAgICBzbG90LmlubmVySFRNTCA9ICc8c3ZnIGNsYXNzPSJpY29uIj48dXNlIGhyZWY9IiMnK2NhdC5pY29uKyciPjwvdXNlPjwvc3ZnPic7CiAgICAgIH0KICAgICAgc2xvdC5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsIGZ1bmN0aW9uKCl7IHN0YXRlLmFjdGl2ZUNhdCA9IGNhdC5pZDsgcmVuZGVyUmFpbCgpOyByZW5kZXJHcmlkKCk7IHJlbmRlcktpdFByb2dyZXNzKCk7IH0pOwogICAgICB3cmFwLmFwcGVuZENoaWxkKHNsb3QpOwogICAgfSk7CiAgfQoKICBmdW5jdGlvbiBzZWxlY3Rab25lKHpvbmUpewogICAgc3RhdGUuem9uZSA9IHpvbmU7CiAgICB2YXIgY2F0cyA9IGNhdHNGb3Jab25lKHpvbmUpOwogICAgc3RhdGUuYWN0aXZlQ2F0ID0gY2F0cy5sZW5ndGggPyBjYXRzWzBdLmlkIDogbnVsbDsKICAgIHJlbmRlclpvbmVzKCk7CiAgICByZW5kZXJSYWlsKCk7CiAgICByZW5kZXJHcmlkKCk7CiAgICByZW5kZXJLaXRQcm9ncmVzcygpOwogIH0KCiAgLyogPT09PT09PT09PT09IFJBSUwgPT09PT09PT09PT09ICovCiAgdmFyIHJhaWxFbCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdlY1JhaWwnKTsKICBmdW5jdGlvbiBjYXJ0Q291bnRGb3IoY2F0SWQpewogICAgdmFyIG4gPSAwOwogICAgT2JqZWN0LmtleXMoc3RhdGUuY2FydCkuZm9yRWFjaChmdW5jdGlvbihrKXsKICAgICAgaWYgKHN0YXRlLmNhcnRba10uY2F0SWQgPT09IGNhdElkKSBuICs9IHN0YXRlLmNhcnRba10ucXR5OwogICAgfSk7CiAgICByZXR1cm4gbjsKICB9CiAgZnVuY3Rpb24gcmVuZGVyUmFpbCgpewogICAgcmFpbEVsLmlubmVySFRNTCA9ICcnOwogICAgdmFyIGNhdHMgPSBjYXRzRm9yWm9uZShzdGF0ZS56b25lKTsKICAgIGNhdHMuZm9yRWFjaChmdW5jdGlvbihjKXsKICAgICAgdmFyIGJ0biA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2J1dHRvbicpOwogICAgICBidG4udHlwZSA9ICdidXR0b24nOyBidG4uY2xhc3NOYW1lID0gJ3JhaWwtaXRlbSc7CiAgICAgIGJ0bi5zZXRBdHRyaWJ1dGUoJ2FyaWEtY3VycmVudCcsIHN0YXRlLmFjdGl2ZUNhdCA9PT0gYy5pZCA\/ICd0cnVlJzonZmFsc2UnKTsKICAgICAgdmFyIGNudCA9IGNhcnRDb3VudEZvcihjLmlkKTsKICAgICAgYnRuLmlubmVySFRNTCA9ICc8c3ZnIGNsYXNzPSJpY29uIj48dXNlIGhyZWY9IiMnK2MuaWNvbisnIi8+PC9zdmc+PHNwYW4+JytjYXRMYWJlbChjKSsnPC9zcGFuPicgKyAoY250PjAgPyAnPHNwYW4gY2xhc3M9InJhaWwtaXRlbS1jb3VudCI+JytjbnQrJzwvc3Bhbj4nIDogJycpOwogICAgICBidG4uYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCBmdW5jdGlvbigpeyBzdGF0ZS5hY3RpdmVDYXQgPSBjLmlkOyByZW5kZXJSYWlsKCk7IHJlbmRlckdyaWQoKTsgfSk7CiAgICAgIHJhaWxFbC5hcHBlbmRDaGlsZChidG4pOwogICAgfSk7CiAgfQoKICAvKiA9PT09PT09PT09PT0gR1JJRCA9PT09PT09PT09PT0gKi8KICB2YXIgZ3JpZEVsID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2VjR3JpZCcpOwogIGZ1bmN0aW9uIHJlbmRlckdyaWQoKXsKICAgIGdyaWRFbC5pbm5lckhUTUwgPSAnJzsKICAgIHZhciBjYXQgPSBDQVRTLmZpbHRlcihmdW5jdGlvbihjKXsgcmV0dXJuIGMuaWQgPT09IHN0YXRlLmFjdGl2ZUNhdDsgfSlbMF07CiAgICBpZiAoIWNhdCkgcmV0dXJuOwogICAgdmFyIHNlY3Rpb24gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdzZWN0aW9uJyk7CiAgICB2YXIgaGVhZCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpOwogICAgaGVhZC5jbGFzc05hbWUgPSAnY2F0LWhlYWQnOwogICAgaGVhZC5pbm5lckhUTUwgPSAnPGgyPicrY2F0TGFiZWwoY2F0KSsnPC9oMj4nOwogICAgc2VjdGlvbi5hcHBlbmRDaGlsZChoZWFkKTsKICAgIHZhciBib2R5ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7CiAgICBib2R5LmNsYXNzTmFtZSA9ICdsb2FkaW5nLXJvdyc7CiAgICBib2R5LnRleHRDb250ZW50ID0gdCgnbG9hZGluZycpOwogICAgc2VjdGlvbi5hcHBlbmRDaGlsZChib2R5KTsKICAgIGdyaWRFbC5hcHBlbmRDaGlsZChzZWN0aW9uKTsKCiAgICB2YXIgZ3JpZCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpOwogICAgZ3JpZC5jbGFzc05hbWUgPSAncHJvZHVjdC1ncmlkJzsKICAgIHZhciBtb3JlV3JhcCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpOwogICAgbW9yZVdyYXAuY2xhc3NOYW1lID0gJ2dyaWQtbW9yZS13cmFwJzsKICAgIHZhciBtb3JlTGFiZWwgPSB7a2E6J1x1MTBkYlx1MTBkNFx1MTBlMlx1MTBkOFx1MTBlMSBcdTEwZWRcdTEwZDVcdTEwZDRcdTEwZGNcdTEwZDRcdTEwZDFcdTEwZDAnLCBydTonXHUwNDFmXHUwNDNlXHUwNDNhXHUwNDMwXHUwNDM3XHUwNDMwXHUwNDQyXHUwNDRjIFx1MDQzNVx1MDQ0OVx1MDQ1MScsIGVuOidTaG93IG1vcmUnfVtzdGF0ZS5sb2NhbGVdIHx8ICfQn9C+0LrQsNC30LDRgtGMINC10YnRkSc7CgogICAgZnVuY3Rpb24gbG9hZFBhZ2UocGFnZSl7CiAgICAgIHJldHVybiBmZXRjaENhdGVnb3J5UHJvZHVjdHMoY2F0LmlkLCBwYWdlKS50aGVuKGZ1bmN0aW9uKHJlcyl7CiAgICAgICAgaWYgKHN0YXRlLmFjdGl2ZUNhdCAhPT0gY2F0LmlkKSByZXR1cm47CiAgICAgICAgaWYgKHBhZ2UgPT09IDEpewogICAgICAgICAgYm9keS5yZW1vdmUoKTsKICAgICAgICAgIGlmICghcmVzLml0ZW1zLmxlbmd0aCl7CiAgICAgICAgICAgIHZhciBlbXB0eSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpOwogICAgICAgICAgICBlbXB0eS5jbGFzc05hbWUgPSAnZW1wdHktcm93JzsKICAgICAgICAgICAgZW1wdHkudGV4dENvbnRlbnQgPSB0KCdlbXB0eScpOwogICAgICAgICAgICBzZWN0aW9uLmFwcGVuZENoaWxkKGVtcHR5KTsKICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgfQogICAgICAgICAgaGVhZC5pbm5lckhUTUwgPSAnPGgyPicrY2F0TGFiZWwoY2F0KSsnPC9oMj48c3BhbiBjbGFzcz0iY2F0LWhlYWQtY291bnQiPicrcmVzLnRvdGFsKycgJyt0KCdwb3NDb3VudCcpKyc8L3NwYW4+JzsKICAgICAgICAgIHNlY3Rpb24uYXBwZW5kQ2hpbGQoZ3JpZCk7CiAgICAgICAgICBzZWN0aW9uLmFwcGVuZENoaWxkKG1vcmVXcmFwKTsKICAgICAgICB9CiAgICAgICAgcmVzLml0ZW1zLmZvckVhY2goZnVuY3Rpb24oaXRlbSl7IGdyaWQuYXBwZW5kQ2hpbGQocHJvZHVjdENhcmQoaXRlbSwgY2F0KSk7IH0pOwogICAgICAgIG1vcmVXcmFwLmlubmVySFRNTCA9ICcnOwogICAgICAgIGlmIChwYWdlIDwgcmVzLnRvdGFsUGFnZXMpewogICAgICAgICAgdmFyIGJ0biA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2J1dHRvbicpOwogICAgICAgICAgYnRuLnR5cGUgPSAnYnV0dG9uJzsKICAgICAgICAgIGJ0bi5jbGFzc05hbWUgPSAnYnRuLW1vcmUnOwogICAgICAgICAgYnRuLnRleHRDb250ZW50ID0gbW9yZUxhYmVsOwogICAgICAgICAgYnRuLmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgZnVuY3Rpb24oKXsgYnRuLmRpc2FibGVkID0gdHJ1ZTsgYnRuLnRleHRDb250ZW50ID0gdCgnbG9hZGluZycpOyBsb2FkUGFnZShwYWdlKzEpOyB9KTsKICAgICAgICAgIG1vcmVXcmFwLmFwcGVuZENoaWxkKGJ0bik7CiAgICAgICAgfQogICAgICB9KTsKICAgIH0KICAgIGxvYWRQYWdlKDEpOwogIH0KCiAgZnVuY3Rpb24gcHJvZHVjdENhcmQoaXRlbSwgY2F0KXsKICAgIHZhciBrZXkgPSBzdGF0ZS5sb2NhbGUgKyAnOicgKyBjYXQuaWQgKyAnOicgKyBpdGVtLmlkOwogICAgdmFyIHF0eSA9IHN0YXRlLmNhcnRba2V5XSA\/IHN0YXRlLmNhcnRba2V5XS5xdHkgOiAwOwogICAgdmFyIGNhcmQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsKICAgIGNhcmQuY2xhc3NOYW1lID0gJ2NhdGFsb2ctaXRlbS1wcm9kdWN0JyArIChxdHk+MCA\/ICcgaW4tY2FydCcgOiAnJyk7CiAgICB2YXIgb25TYWxlID0gaXRlbS5wcmljZU9iaiAmJiBpdGVtLnByaWNlT2JqLnJlZ3VsYXJfcHJpY2UgJiYgaXRlbS5wcmljZU9iai5yZWd1bGFyX3ByaWNlICE9PSBpdGVtLnByaWNlT2JqLnByaWNlOwogICAgdmFyIGRpc2NQY3QgPSBvblNhbGUgPyBNYXRoLnJvdW5kKCgxIC0gKHBhcnNlRmxvYXQoaXRlbS5wcmljZU9iai5wcmljZSkvcGFyc2VGbG9hdChpdGVtLnByaWNlT2JqLnJlZ3VsYXJfcHJpY2UpKSkgKiAxMDApIDogMDsKICAgIHZhciBwcmljZUh0bWwgPSAob25TYWxlID8gKCc8c3BhbiBjbGFzcz0iZWN4LXByaWNlLW9sZCI+JytmbXRQcmljZShPYmplY3QuYXNzaWduKHt9LCBpdGVtLnByaWNlT2JqLCB7cHJpY2U6aXRlbS5wcmljZU9iai5yZWd1bGFyX3ByaWNlfSkpKyc8L3NwYW4+ICcpIDogJycpICsKICAgICAgJzxzcGFuIGNsYXNzPSJ3b29jb21tZXJjZS1QcmljZS1hbW91bnQgYW1vdW50Ij48YmRpPicrZm10UHJpY2UoaXRlbS5wcmljZU9iaikrJzwvYmRpPjwvc3Bhbj4nOwogICAgY2FyZC5pbm5lckhUTUwgPQogICAgICAnPGEgaHJlZj0iJytpdGVtLnBlcm1hbGluaysnIiB0YXJnZXQ9Il9ibGFuayIgcmVsPSJub29wZW5lciIgY2xhc3M9ImltYWdlLXdyYXAiPjxpbWcgc3JjPSInK2l0ZW0uaW1nKyciIGFsdD0iIiBsb2FkaW5nPSJsYXp5Ij48L2E+JyArCiAgICAgICc8ZGl2IGNsYXNzPSJpbmZvLXdyYXAiPicgKwogICAgICAgICc8YSBocmVmPSInK2l0ZW0ucGVybWFsaW5rKyciIHRhcmdldD0iX2JsYW5rIiByZWw9Im5vb3BlbmVyIiBjbGFzcz0idGl0bGUtNCI+JytpdGVtLm5hbWUrJzwvYT4nICsKICAgICAgICAnPGRpdiBjbGFzcz0ibGFibGVzLXdyYXAiPicgKyAocXR5PjAgPyAoJzxzcGFuIGNsYXNzPSJsYWJlbCBpbnN0b2NrLWxhYmVsIj4nK3QoJ2luQ2FydCcpKycgXHUwMGI3ICcrcXR5Kyc8L3NwYW4+JykgOiAob25TYWxlID8gKCc8c3BhbiBjbGFzcz0ibGFiZWwgc2FsZS1sYWJlbCI+LScrZGlzY1BjdCsnJTwvc3Bhbj4nKSA6ICcnKSkgKyAnPC9kaXY+JyArCiAgICAgICc8L2Rpdj4nICsKICAgICAgJzxkaXYgY2xhc3M9InByaWNlLXdyYXAiPicgKyBwcmljZUh0bWwgKyAnPC9kaXY+JyArCiAgICAgICc8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVjeC1hZGRidG4gZmxleCBqdXN0aWZ5LWNlbnRlciBpdGVtcy1jZW50ZXIgYm94LWJvcmRlciByb3VuZGVkLVs1cHhdIHctZnVsbCBoLVs1MHB4XSBtdC1bNXB4XSBiZy1ibGFjayB0ZXh0LXdoaXRlIHRyYW5zaXRpb24gZHVyYXRpb24tMTUwIGxpbmVhciBob3ZlcjpiZy1hY2NlbnRCbHVlIGhvdmVyOnRleHQtd2hpdGUiPicgKwogICAgICAgICc8c3ZnIGNsYXNzPSJpY29uIiBzdHlsZT0id2lkdGg6MThweDtoZWlnaHQ6MThweDttYXJnaW4tcmlnaHQ6NnB4Ij48dXNlIGhyZWY9IiNpYy0nICsgKHF0eT4wPydjaGVjayc6J3BsdXMnKSArICciPjwvdXNlPjwvc3ZnPicgKyAocXR5PjAgPyB0KCdpbkNhcnQnKSA6IHQoJ2FkZEJ0bicpKSArCiAgICAgICc8L2J1dHRvbj4nOwogICAgY2FyZC5xdWVyeVNlbGVjdG9yKCcuZWN4LWFkZGJ0bicpLmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgZnVuY3Rpb24oZSl7IGUucHJldmVudERlZmF1bHQoKTsgY2hhbmdlUXR5KGtleSwgaXRlbSwgY2F0LCAxKTsgfSk7CiAgICByZXR1cm4gY2FyZDsKICB9CgogIGZ1bmN0aW9uIHJlbmRlckNhcmRBY3Rpb24oYWN0aW9uLCBrZXksIGl0ZW0sIGNhdCl7CiAgICBhY3Rpb24uaW5uZXJIVE1MID0gJyc7CiAgICB2YXIgcXR5ID0gc3RhdGUuY2FydFtrZXldID8gc3RhdGUuY2FydFtrZXldLnF0eSA6IDA7CiAgICB2YXIgYnRuID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnYnV0dG9uJyk7CiAgICBidG4udHlwZSA9ICdidXR0b24nOwogICAgYnRuLmNsYXNzTmFtZSA9IHF0eT4wID8gJ2J0bi1hZGQgaW4tY2FydCcgOiAnYnRuLWFkZCc7CiAgICBidG4uaW5uZXJIVE1MID0gJzxzdmcgY2xhc3M9Imljb24iPjx1c2UgaHJlZj0iI2ljLScgKyAocXR5PjA\/J2NoZWNrJzoncGx1cycpICsgJyI+PC91c2U+PC9zdmc+PHNwYW4+JyArIChxdHk+MCA\/ICh0KCdpbkNhcnQnKSArICcgXHUwMGI3ICcgKyBxdHkpIDogdCgnYWRkQnRuJykpICsgJzwvc3Bhbj4nOwogICAgYnRuLmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgZnVuY3Rpb24oKXsgY2hhbmdlUXR5KGtleSwgaXRlbSwgY2F0LCAxKTsgfSk7CiAgICBhY3Rpb24uYXBwZW5kQ2hpbGQoYnRuKTsKICB9CgogIGZ1bmN0aW9uIGNoYW5nZVF0eShrZXksIGl0ZW0sIGNhdCwgZGVsdGEpewogICAgdmFyIGN1ciA9IHN0YXRlLmNhcnRba2V5XTsKICAgIHZhciBxdHkgPSAoY3VyID8gY3VyLnF0eSA6IDApICsgZGVsdGE7CiAgICBpZiAocXR5IDw9IDApIGRlbGV0ZSBzdGF0ZS5jYXJ0W2tleV07CiAgICBlbHNlIHN0YXRlLmNhcnRba2V5XSA9IHsgcXR5OnF0eSwgaXRlbTppdGVtLCBjYXQ6Y2F0LCBjYXRJZDpjYXQuaWQgfTsKICAgIHJlbmRlclJhaWwoKTsgcmVuZGVyR3JpZCgpOyByZW5kZXJDYXJ0YmFyKCk7IHJlbmRlcktpdFByb2dyZXNzKCk7CiAgfQoKCiAgLyogPT09PT09PT09PT09IENBUlQgQkFSID09PT09PT09PT09PSAqLwogIHZhciBjYXJ0YmFyRWwgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZWNDYXJ0YmFyJyk7CiAgdmFyIGNhcnRMaXN0RWwgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZWNDYXJ0TGlzdCcpOwogIHZhciBjYXJ0SXRlbXNFbCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdlY0NhcnRJdGVtcycpOwogIHZhciBjYXJ0VG90YWxFbCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdlY0NhcnRUb3RhbCcpOwogIHZhciBjYXJ0Q291bnRFbCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdlY0NhcnRDb3VudCcpOwogIHZhciBjYXJ0SGludEVsID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2VjQ2FydEhpbnQnKTsKICB2YXIgc3VibWl0QnRuID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2VjU3VibWl0QnRuJyk7CiAgdmFyIHRvZ2dsZUxpc3RCdG4gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZWNUb2dnbGVMaXN0Jyk7CgogIGZ1bmN0aW9uIGNhcnRFbnRyaWVzKCl7IHJldHVybiBPYmplY3Qua2V5cyhzdGF0ZS5jYXJ0KS5tYXAoZnVuY3Rpb24oayl7IHJldHVybiBPYmplY3QuYXNzaWduKHtrZXk6a30sIHN0YXRlLmNhcnRba10pOyB9KTsgfQoKICBmdW5jdGlvbiBwcmljZU51bShwcmljZU9iail7CiAgICBpZiAoIXByaWNlT2JqKSByZXR1cm4gMDsKICAgIHZhciBtaW5vciA9IE1hdGgucG93KDEwLCBwcmljZU9iai5jdXJyZW5jeV9taW5vcl91bml0IHx8IDApOwogICAgcmV0dXJuIHBhcnNlRmxvYXQocHJpY2VPYmoucHJpY2V8fDApIC8gbWlub3I7CiAgfQogIGZ1bmN0aW9uIGZtdFRvdGFsKG4sIHByaWNlT2JqKXsKICAgIHZhciBzeW0gPSBwcmljZU9iaiA\/IChwcmljZU9iai5jdXJyZW5jeV9zeW1ib2x8fCcnKSA6ICcnOwogICAgdmFyIHN0ciA9IG4udG9Mb2NhbGVTdHJpbmcoJ2VuLVVTJywge21heGltdW1GcmFjdGlvbkRpZ2l0czoyfSk7CiAgICByZXR1cm4gcHJpY2VPYmogJiYgcHJpY2VPYmouY3VycmVuY3lfcHJlZml4ID8gc3ltK3N0ciA6IHN0cisnICcrc3ltOwogIH0KCiAgZnVuY3Rpb24gcmVuZGVyQ2FydGJhcigpewogICAgdmFyIGVudHJpZXMgPSBjYXJ0RW50cmllcygpOwogICAgdmFyIHRvdGFsUXR5ID0gMCwgdG90YWwgPSAwLCBsYXN0UHJpY2VPYmogPSBudWxsOwogICAgY2FydEl0ZW1zRWwuaW5uZXJIVE1MID0gJyc7CiAgICBlbnRyaWVzLmZvckVhY2goZnVuY3Rpb24oZSl7CiAgICAgIHZhciBwID0gcHJpY2VOdW0oZS5pdGVtLnByaWNlT2JqKTsKICAgICAgdG90YWwgKz0gcCAqIGUucXR5OyB0b3RhbFF0eSArPSBlLnF0eTsgbGFzdFByaWNlT2JqID0gZS5pdGVtLnByaWNlT2JqOwogICAgICB2YXIgbGluZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpOwogICAgICBsaW5lLmNsYXNzTmFtZSA9ICdjYXJ0LWxpbmUnOwogICAgICBsaW5lLmlubmVySFRNTCA9ICc8ZGl2IGNsYXNzPSJjYXJ0LWxpbmUtbmFtZSI+PGI+JyArIGUuaXRlbS5uYW1lICsgJzwvYj48c3Bhbj4nICsgY2F0TGFiZWwoZS5jYXQpICsgJzwvc3Bhbj48L2Rpdj4nICsKICAgICAgICAnPGRpdiBjbGFzcz0iY2FydC1saW5lLXF0eSI+PGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJjbC1taW51cyIgYXJpYS1sYWJlbD0iLSI+PHN2ZyBjbGFzcz0iaWNvbiI+PHVzZSBocmVmPSIjaWMtbWludXMiPjwvdXNlPjwvc3ZnPjwvYnV0dG9uPjxzcGFuPicgKyBlLnF0eSArICc8L3NwYW4+PGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJjbC1wbHVzIiBhcmlhLWxhYmVsPSIrIj48c3ZnIGNsYXNzPSJpY29uIj48dXNlIGhyZWY9IiNpYy1wbHVzIj48L3VzZT48L3N2Zz48L2J1dHRvbj48L2Rpdj4nICsKICAgICAgICAnPGRpdiBjbGFzcz0iY2FydC1saW5lLXByaWNlIj4nICsgZm10VG90YWwocCplLnF0eSwgZS5pdGVtLnByaWNlT2JqKSArICc8L2Rpdj4nOwogICAgICBsaW5lLnF1ZXJ5U2VsZWN0b3IoJy5jbC1taW51cycpLmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgZnVuY3Rpb24oKXsgY2hhbmdlUXR5KGUua2V5LCBlLml0ZW0sIGUuY2F0LCAtMSk7IH0pOwogICAgICBsaW5lLnF1ZXJ5U2VsZWN0b3IoJy5jbC1wbHVzJykuYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCBmdW5jdGlvbigpeyBjaGFuZ2VRdHkoZS5rZXksIGUuaXRlbSwgZS5jYXQsIDEpOyB9KTsKICAgICAgdmFyIHJtID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnYnV0dG9uJyk7CiAgICAgIHJtLmNsYXNzTmFtZSA9ICdjYXJ0LWxpbmUtcmVtb3ZlJzsgcm0udHlwZSA9ICdidXR0b24nOwogICAgICBybS5pbm5lckhUTUwgPSAnPHN2ZyBjbGFzcz0iaWNvbiI+PHVzZSBocmVmPSIjaWMtdHJhc2giPjwvdXNlPjwvc3ZnPic7CiAgICAgIHJtLmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgZnVuY3Rpb24oKXsgY2hhbmdlUXR5KGUua2V5LCBlLml0ZW0sIGUuY2F0LCAtZS5xdHkpOyB9KTsKICAgICAgbGluZS5hcHBlbmRDaGlsZChybSk7CiAgICAgIGNhcnRJdGVtc0VsLmFwcGVuZENoaWxkKGxpbmUpOwogICAgfSk7CgogICAgY2FydGJhckVsLmNsYXNzTGlzdC50b2dnbGUoJ2hpZGUnLCB0b3RhbFF0eSA9PT0gMCk7CiAgICBjYXJ0VG90YWxFbC50ZXh0Q29udGVudCA9IGZtdFRvdGFsKHRvdGFsLCBsYXN0UHJpY2VPYmopOwogICAgY2FydENvdW50RWwudGV4dENvbnRlbnQgPSB0b3RhbFF0eSArICcgJyArICh0b3RhbFF0eSA9PT0gMSA\/IHQoJ2l0ZW1zXzEnKSA6IHQoJ2l0ZW1zXzInKSk7CgogICAgaWYgKHRvdGFsUXR5ID49IDIpewogICAgICBjYXJ0SGludEVsLnRleHRDb250ZW50ID0gdCgnaGludFJlYWR5Jyk7IGNhcnRIaW50RWwuY2xhc3NMaXN0LmFkZCgnb2snKTsgc3VibWl0QnRuLmRpc2FibGVkID0gZmFsc2U7CiAgICB9IGVsc2UgewogICAgICBjYXJ0SGludEVsLnRleHRDb250ZW50ID0gdCgnaGludE5lZWQnKS5yZXBsYWNlKCd7bn0nLCBTdHJpbmcoMiAtIHRvdGFsUXR5KSk7IGNhcnRIaW50RWwuY2xhc3NMaXN0LnJlbW92ZSgnb2snKTsgc3VibWl0QnRuLmRpc2FibGVkID0gdHJ1ZTsKICAgIH0KICAgIHN1Ym1pdEJ0bi50ZXh0Q29udGVudCA9IHQoJ3N1Ym1pdEJ0bicpOwogIH0KCiAgdG9nZ2xlTGlzdEJ0bi5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsIGZ1bmN0aW9uKCl7CiAgICBzdGF0ZS5saXN0T3BlbiA9ICFzdGF0ZS5saXN0T3BlbjsKICAgIGNhcnRMaXN0RWwuY2xhc3NMaXN0LnRvZ2dsZSgnb3BlbicsIHN0YXRlLmxpc3RPcGVuKTsKICB9KTsKCiAgLyogPT09PT09PT09PT09IE1PREFMIC8gT1JERVIgPT09PT09PT09PT09ICovCiAgdmFyIG92ZXJsYXkgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZWNPdmVybGF5Jyk7CiAgdmFyIHJlY2FwRWwgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZWNSZWNhcCcpOwogIHZhciBmb3JtQm9keSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdlY0Zvcm1Cb2R5Jyk7CiAgdmFyIHN1Y2Nlc3NCbG9jayA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdlY1N1Y2Nlc3NCbG9jaycpOwogIHZhciBvcmRlckZvcm0gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZWNPcmRlckZvcm0nKTsKCiAgZnVuY3Rpb24gZW5zdXJlVHVybnN0aWxlKGF0dGVtcHRzKXsKICBhdHRlbXB0cyA9IGF0dGVtcHRzIHx8IDA7CiAgdmFyIGVsID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImVjVHVybnN0aWxlIik7CiAgaWYgKCFlbCkgcmV0dXJuOwogIGlmICh0eXBlb2YgdHVybnN0aWxlID09PSAidW5kZWZpbmVkIil7CiAgICBpZiAoYXR0ZW1wdHMgPCA0MCkgc2V0VGltZW91dChmdW5jdGlvbigpeyBlbnN1cmVUdXJuc3RpbGUoYXR0ZW1wdHMrMSk7IH0sIDI1MCk7CiAgICByZXR1cm47CiAgfQogIGlmICh0dXJuc3RpbGVXaWRnZXRJZCAhPT0gbnVsbCl7CiAgICB0cnkgeyB0dXJuc3RpbGUucmVzZXQodHVybnN0aWxlV2lkZ2V0SWQpOyB9IGNhdGNoKGUpe30KICAgIHJldHVybjsKICB9CiAgdHVybnN0aWxlV2lkZ2V0SWQgPSB0dXJuc3RpbGUucmVuZGVyKGVsLCB7CiAgICBzaXRla2V5OiAiMHg0QUFBQUFBQ19vajRsSHVCWDAyOU9LIiwKICAgIHRoZW1lOiAibGlnaHQiLAogICAgbGFuZ3VhZ2U6ICJhdXRvIiwKICAgIGFjdGlvbjogImVsaXMtY29uc3RydWN0b3IiLAogICAgY2FsbGJhY2s6IGZ1bmN0aW9uKHRva2VuKXsgc3RhdGUudHVybnN0aWxlVG9rZW4gPSB0b2tlbjsgdmFyIGVyciA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJlY0NhcHRjaGFFcnIiKTsgaWYgKGVycil7IGVyci5zdHlsZS5kaXNwbGF5PSJub25lIjsgZXJyLnRleHRDb250ZW50PSIiOyB9IH0sCiAgICAiZXhwaXJlZC1jYWxsYmFjayI6IGZ1bmN0aW9uKCl7IHN0YXRlLnR1cm5zdGlsZVRva2VuID0gbnVsbDsgfSwKICAgICJlcnJvci1jYWxsYmFjayI6IGZ1bmN0aW9uKCl7IHN0YXRlLnR1cm5zdGlsZVRva2VuID0gbnVsbDsgfQogIH0pOwp9CmZ1bmN0aW9uIGdlbkVsaXNFbWFpbChwaG9uZSl7CiAgdmFyIGRpZ2l0cyA9IChwaG9uZSB8fCAiIikucmVwbGFjZSgvW14wLTldL2csICIiKSB8fCAiZ3Vlc3QiOwogIHJldHVybiAiemF5YXZrYSsiICsgZGlnaXRzICsgIkBlbGlzLmdlIjsKfQpmdW5jdGlvbiBzdWJtaXRFbGlzT3JkZXIobmFtZSwgcGhvbmUpewogIHZhciBiYXNlID0gd2luZG93LmxvY2F0aW9uLm9yaWdpbjsKICB2YXIgcHJlZml4ID0gUFJFRklYW3N0YXRlLmxvY2FsZV0gfHwgIiI7CiAgdmFyIGhlYWRlcnMgPSB7ICJYLUVsaXMtUXVvdGUiOiAiMSIgfTsKICB2YXIgU1RPQ0tfTVNHID0geyBrYTogIuGDluGDneGDkuGDmOGDlOGDoOGDl+GDmCDhg57hg6Dhg53hg5Phg6Phg6Xhg6Lhg5gg4YOQ4YOm4YOQ4YOgIOGDkOGDoOGDmOGDoSDhg5vhg5Dhg6Dhg5Dhg5Lhg6jhg5g6ICIsIHJ1OiAi0J3QtdC60L7RgtC+0YDRi9C1INGC0L7QstCw0YDRiyDQt9Cw0LrQvtC90YfQuNC70LjRgdGMOiAiLCBlbjogIlNvbWUgaXRlbXMgYXJlIG91dCBvZiBzdG9jazogIiB9OwogIHZhciBjb21tZW50ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImVjSW5wQ29tbWVudCIpLnZhbHVlLnRyaW0oKTsKICB2YXIgZW50cmllcyA9IGNhcnRFbnRyaWVzKCk7CiAgdmFyIGl0ZW1zVGV4dCA9IGVudHJpZXMubWFwKGZ1bmN0aW9uKGUpeyByZXR1cm4gZS5pdGVtLm5hbWUgKyAiIHgiICsgZS5xdHk7IH0pLmpvaW4oIjsgIik7CiAgdmFyIGZ1bGxDb21tZW50ID0gKGNvbW1lbnQgPyBjb21tZW50ICsgIlxuXG4iIDogIiIpICsgdCgia2l0TGFiZWwiKSArICI6ICIgKyBpdGVtc1RleHQ7CiAgdmFyIG5hbWVQYXJ0cyA9IG5hbWUuc3BsaXQoL1xzKy8pOwogIHZhciBmaXJzdE5hbWUgPSBuYW1lUGFydHNbMF0gfHwgbmFtZTsKICB2YXIgbGFzdE5hbWUgPSBuYW1lUGFydHMuc2xpY2UoMSkuam9pbigiICIpIHx8ICItIjsKICBmdW5jdGlvbiBnZXRDYXJ0KCl7CiAgICByZXR1cm4gZmV0Y2goYmFzZSArICIvd3AtanNvbi93Yy9zdG9yZS92MS9jYXJ0IiwgeyBjcmVkZW50aWFsczogImluY2x1ZGUiLCBoZWFkZXJzOiBoZWFkZXJzIH0pCiAgICAgIC50aGVuKGZ1bmN0aW9uKHIpeyByZXR1cm4gci5qc29uKCkudGhlbihmdW5jdGlvbihjYXJ0KXsgcmV0dXJuIHsgbm9uY2U6IHIuaGVhZGVycy5nZXQoIk5vbmNlIiksIGNhcnQ6IGNhcnQgfTsgfSk7IH0pOwogIH0KICByZXR1cm4gZ2V0Q2FydCgpCiAgICAudGhlbihmdW5jdGlvbihyZXMpewogICAgICB2YXIgbm9uY2UgPSByZXMubm9uY2U7CiAgICAgIHJldHVybiAocmVzLmNhcnQuaXRlbXMgfHwgW10pLnJlZHVjZShmdW5jdGlvbihwLCBpdCl7CiAgICAgICAgcmV0dXJuIHAudGhlbihmdW5jdGlvbigpewogICAgICAgICAgcmV0dXJuIGZldGNoKGJhc2UgKyAiL3dwLWpzb24vd2Mvc3RvcmUvdjEvY2FydC9yZW1vdmUtaXRlbSIsIHsKICAgICAgICAgICAgbWV0aG9kOiAiUE9TVCIsIGNyZWRlbnRpYWxzOiAiaW5jbHVkZSIsCiAgICAgICAgICAgIGhlYWRlcnM6IE9iamVjdC5hc3NpZ24oeyAiQ29udGVudC1UeXBlIjogImFwcGxpY2F0aW9uL2pzb24iLCAiTm9uY2UiOiBub25jZSB9LCBoZWFkZXJzKSwKICAgICAgICAgICAgYm9keTogSlNPTi5zdHJpbmdpZnkoeyBrZXk6IGl0LmtleSB9KQogICAgICAgICAgfSkudGhlbihmdW5jdGlvbihyKXsKICAgICAgICAgICAgdmFyIG4yID0gci5oZWFkZXJzLmdldCgiTm9uY2UiKTsgaWYgKG4yKSBub25jZSA9IG4yOwogICAgICAgICAgfSk7CiAgICAgICAgfSk7CiAgICAgIH0sIFByb21pc2UucmVzb2x2ZSgpKTsKICAgIH0pCiAgICAudGhlbihmdW5jdGlvbigpeyByZXR1cm4gZ2V0Q2FydCgpOyB9KQogICAgLnRoZW4oZnVuY3Rpb24ocmVzKXsKICAgICAgdmFyIG5vbmNlID0gcmVzLm5vbmNlOwogICAgICB2YXIgZmFpbGVkID0gW107CiAgICAgIHJldHVybiBlbnRyaWVzLnJlZHVjZShmdW5jdGlvbihwLCBlKXsKICAgICAgICByZXR1cm4gcC50aGVuKGZ1bmN0aW9uKCl7CiAgICAgICAgICByZXR1cm4gZmV0Y2goYmFzZSArICIvd3AtanNvbi93Yy9zdG9yZS92MS9jYXJ0L2FkZC1pdGVtIiwgewogICAgICAgICAgICBtZXRob2Q6ICJQT1NUIiwgY3JlZGVudGlhbHM6ICJpbmNsdWRlIiwKICAgICAgICAgICAgaGVhZGVyczogT2JqZWN0LmFzc2lnbih7ICJDb250ZW50LVR5cGUiOiAiYXBwbGljYXRpb24vanNvbiIsICJOb25jZSI6IG5vbmNlIH0sIGhlYWRlcnMpLAogICAgICAgICAgICBib2R5OiBKU09OLnN0cmluZ2lmeSh7IGlkOiBlLml0ZW0uaWQsIHF1YW50aXR5OiBlLnF0eSB9KQogICAgICAgICAgfSkudGhlbihmdW5jdGlvbihyKXsKICAgICAgICAgICAgaWYgKHIub2spIHsgdmFyIG4yID0gci5oZWFkZXJzLmdldCgiTm9uY2UiKTsgaWYgKG4yKSBub25jZSA9IG4yOyB9CiAgICAgICAgICAgIGVsc2UgeyBmYWlsZWQucHVzaChlLml0ZW0ubmFtZSk7IH0KICAgICAgICAgIH0pOwogICAgICAgIH0pOwogICAgICB9LCBQcm9taXNlLnJlc29sdmUoKSkudGhlbihmdW5jdGlvbigpewogICAgICAgIGlmIChmYWlsZWQubGVuZ3RoKSB0aHJvdyBuZXcgRXJyb3IoKFNUT0NLX01TR1tzdGF0ZS5sb2NhbGVdIHx8IFNUT0NLX01TRy5ydSkgKyBmYWlsZWQuam9pbigiLCAiKSk7CiAgICAgICAgcmV0dXJuIGdldENhcnQoKTsKICAgICAgfSkudGhlbihmdW5jdGlvbihyZXMyKXsKICAgICAgICB2YXIgcXR5QnlJZCA9IHt9OwogICAgICAgIChyZXMyLmNhcnQuaXRlbXMgfHwgW10pLmZvckVhY2goZnVuY3Rpb24oaXQpeyBxdHlCeUlkW2l0LmlkXSA9IChxdHlCeUlkW2l0LmlkXSB8fCAwKSArIGl0LnF1YW50aXR5OyB9KTsKICAgICAgICB2YXIgbWlzbWF0Y2ggPSBlbnRyaWVzLnNvbWUoZnVuY3Rpb24oZSl7IHJldHVybiAocXR5QnlJZFtlLml0ZW0uaWRdIHx8IDApICE9PSBlLnF0eTsgfSk7CiAgICAgICAgaWYgKG1pc21hdGNoKSB0aHJvdyBuZXcgRXJyb3IodCgib3JkZXJFcnJvciIpKTsKICAgICAgfSk7CiAgICB9KQogICAgLnRoZW4oZnVuY3Rpb24oKXsKICAgICAgcmV0dXJuIGZldGNoKGJhc2UgKyBwcmVmaXggKyAiL2NoZWNrb3V0LyIsIHsgY3JlZGVudGlhbHM6ICJpbmNsdWRlIiwgaGVhZGVyczogaGVhZGVycyB9KS50aGVuKGZ1bmN0aW9uKHIpeyByZXR1cm4gci50ZXh0KCk7IH0pOwogICAgfSkKICAgIC50aGVuKGZ1bmN0aW9uKGh0bWwpewogICAgICB2YXIgbm9uY2VNYXRjaCA9IGh0bWwubWF0Y2goL25hbWU9WyInXXdvb2NvbW1lcmNlLXByb2Nlc3MtY2hlY2tvdXQtbm9uY2VbIiddXHMrdmFsdWU9WyInXShbXiInXSspWyInXS8pOwogICAgICB2YXIgc2hpcE1hdGNoID0gaHRtbC5tYXRjaCgvbmFtZT1bIiddc2hpcHBpbmdfbWV0aG9kXFswXF1bIiddW14+XSp2YWx1ZT1bIiddKFteIiddKylbIiddLyk7CiAgICAgIHZhciBjaGVja291dE5vbmNlID0gbm9uY2VNYXRjaCA\/IG5vbmNlTWF0Y2hbMV0gOiAiIjsKICAgICAgdmFyIHNoaXBWYWwgPSBzaGlwTWF0Y2ggPyBzaGlwTWF0Y2hbMV0gOiAiIjsKICAgICAgaWYgKCFjaGVja291dE5vbmNlKSB0aHJvdyBuZXcgRXJyb3IodCgib3JkZXJFcnJvciIpKTsKICAgICAgdmFyIHBhcmFtcyA9IG5ldyBVUkxTZWFyY2hQYXJhbXMoKTsKICAgICAgcGFyYW1zLnNldCgiYmlsbGluZ19maXJzdF9uYW1lIiwgZmlyc3ROYW1lKTsKICAgICAgcGFyYW1zLnNldCgiYmlsbGluZ19sYXN0X25hbWUiLCBsYXN0TmFtZSk7CiAgICAgIHBhcmFtcy5zZXQoImJpbGxpbmdfZW1haWwiLCBnZW5FbGlzRW1haWwocGhvbmUpKTsKICAgICAgcGFyYW1zLnNldCgiYmlsbGluZ19waG9uZSIsIHBob25lKTsKICAgICAgcGFyYW1zLnNldCgiYmlsbGluZ19jb3VudHJ5IiwgIkdFIik7CiAgICAgIHBhcmFtcy5zZXQoImJpbGxpbmdfYWRkcmVzc18xIiwgIi0iKTsKICAgICAgcGFyYW1zLnNldCgiYmlsbGluZ19hZGRyZXNzXzIiLCAiLSIpOwogICAgICBwYXJhbXMuc2V0KCJiaWxsaW5nX2NpdHkiLCAi0KLQsdC40LvQuNGB0LgiKTsKICAgICAgcGFyYW1zLnNldCgiYmlsbGluZ19zdGF0ZSIsICJHRTEyIik7CiAgICAgIHBhcmFtcy5zZXQoIm9yZGVyX2NvbW1lbnRzIiwgZnVsbENvbW1lbnQpOwogICAgICBwYXJhbXMuc2V0KCJwYXltZW50X21ldGhvZCIsICJjb2QiKTsKICAgICAgaWYgKHNoaXBWYWwpIHBhcmFtcy5zZXQoInNoaXBwaW5nX21ldGhvZFswXSIsIHNoaXBWYWwpOwogICAgICBwYXJhbXMuc2V0KCJ3b29jb21tZXJjZS1wcm9jZXNzLWNoZWNrb3V0LW5vbmNlIiwgY2hlY2tvdXROb25jZSk7CiAgICAgIHBhcmFtcy5zZXQoIl93cF9odHRwX3JlZmVyZXIiLCBwcmVmaXggKyAiL2NoZWNrb3V0LyIpOwogICAgICBwYXJhbXMuc2V0KCJjZi10dXJuc3RpbGUtcmVzcG9uc2UiLCBzdGF0ZS50dXJuc3RpbGVUb2tlbiB8fCAiIik7CiAgICAgIHJldHVybiBmZXRjaChiYXNlICsgcHJlZml4ICsgIi8\/d2MtYWpheD1jaGVja291dCIsIHsKICAgICAgICBtZXRob2Q6ICJQT1NUIiwgY3JlZGVudGlhbHM6ICJpbmNsdWRlIiwKICAgICAgICBoZWFkZXJzOiBPYmplY3QuYXNzaWduKHsgIkNvbnRlbnQtVHlwZSI6ICJhcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWQ7IGNoYXJzZXQ9VVRGLTgiIH0sIGhlYWRlcnMpLAogICAgICAgIGJvZHk6IHBhcmFtcy50b1N0cmluZygpCiAgICAgIH0pOwogICAgfSkKICAgIC50aGVuKGZ1bmN0aW9uKHIpeyByZXR1cm4gci5qc29uKCk7IH0pCiAgICAudGhlbihmdW5jdGlvbihyZXMpewogICAgICBpZiAocmVzLnJlc3VsdCAhPT0gInN1Y2Nlc3MiIHx8ICFyZXMucmVkaXJlY3QpIHsKICAgICAgICB2YXIgbXNnID0gU3RyaW5nKHJlcy5tZXNzYWdlcyB8fCAiIikucmVwbGFjZSgvPFtePl0rPi9nLCAiICIpLnJlcGxhY2UoL1xzKy9nLCAiICIpLnRyaW0oKTsKICAgICAgICB0aHJvdyBuZXcgRXJyb3IobXNnIHx8IHQoIm9yZGVyRXJyb3IiKSk7CiAgICAgIH0KICAgICAgdmFyIG0gPSByZXMucmVkaXJlY3QubWF0Y2goL29yZGVyLXJlY2VpdmVkXC8oXGQrKS8pOwogICAgICByZXR1cm4gbSA\/IG1bMV0gOiAi4oCUIjsKICAgIH0pOwp9CmZ1bmN0aW9uIG9wZW5Nb2RhbCgpewogICAgdmFyIGVudHJpZXMgPSBjYXJ0RW50cmllcygpOwogICAgdmFyIHRvdGFsID0gMCwgbGFzdFByaWNlT2JqID0gbnVsbDsKICAgIHJlY2FwRWwuaW5uZXJIVE1MID0gJyc7CiAgICBlbnRyaWVzLmZvckVhY2goZnVuY3Rpb24oZSl7CiAgICAgIHZhciBwID0gcHJpY2VOdW0oZS5pdGVtLnByaWNlT2JqKTsKICAgICAgdG90YWwgKz0gcCAqIGUucXR5OyBsYXN0UHJpY2VPYmogPSBlLml0ZW0ucHJpY2VPYmo7CiAgICAgIHZhciByb3cgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsKICAgICAgcm93LmNsYXNzTmFtZSA9ICdyZWNhcC1yb3cnOwogICAgICByb3cuaW5uZXJIVE1MID0gJzxzcGFuPicrZS5pdGVtLm5hbWUrJyDDlyAnK2UucXR5Kyc8L3NwYW4+PGI+JytmbXRUb3RhbChwKmUucXR5LCBlLml0ZW0ucHJpY2VPYmopKyc8L2I+JzsKICAgICAgcmVjYXBFbC5hcHBlbmRDaGlsZChyb3cpOwogICAgfSk7CiAgICB2YXIgdG90YWxSb3cgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsKICAgIHRvdGFsUm93LmNsYXNzTmFtZSA9ICdyZWNhcC1yb3cgcmVjYXAtdG90YWwnOwogICAgdG90YWxSb3cuaW5uZXJIVE1MID0gJzxzcGFuPicrdCgndG90YWwnKSsnPC9zcGFuPjxiPicrZm10VG90YWwodG90YWwsIGxhc3RQcmljZU9iaikrJzwvYj4nOwogICAgcmVjYXBFbC5hcHBlbmRDaGlsZCh0b3RhbFJvdyk7CiAgICBmb3JtQm9keS5jbGFzc0xpc3QucmVtb3ZlKCdoaWRlJyk7CiAgICBzdWNjZXNzQmxvY2suY2xhc3NMaXN0LnJlbW92ZSgnc2hvdycpOwogICAgb3ZlcmxheS5kYXRhc2V0Lm9wZW4gPSAndHJ1ZSc7CiAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZWNJbnBOYW1lJykuZm9jdXMoKTsKICAgIGVuc3VyZVR1cm5zdGlsZSgpOwogIH0KICBmdW5jdGlvbiBjbG9zZU1vZGFsKCl7IG92ZXJsYXkuZGF0YXNldC5vcGVuID0gJ2ZhbHNlJzsgaWYgKHR5cGVvZiB0dXJuc3RpbGUgIT09ICd1bmRlZmluZWQnICYmIHR1cm5zdGlsZVdpZGdldElkICE9PSBudWxsKXsgdHJ5IHsgdHVybnN0aWxlLnJlc2V0KHR1cm5zdGlsZVdpZGdldElkKTsgfSBjYXRjaChlKXt9IH0gc3RhdGUudHVybnN0aWxlVG9rZW4gPSBudWxsOyB9CgogIHN1Ym1pdEJ0bi5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsIGZ1bmN0aW9uKCl7IGlmICghc3VibWl0QnRuLmRpc2FibGVkKSBvcGVuTW9kYWwoKTsgfSk7CiAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2VjTW9kYWxDbG9zZScpLmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgY2xvc2VNb2RhbCk7CiAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2VjU3VjY2Vzc0Nsb3NlJykuYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCBjbG9zZU1vZGFsKTsKICBvdmVybGF5LmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgZnVuY3Rpb24oZSl7IGlmIChlLnRhcmdldCA9PT0gb3ZlcmxheSkgY2xvc2VNb2RhbCgpOyB9KTsKICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCdrZXlkb3duJywgZnVuY3Rpb24oZSl7IGlmIChlLmtleSA9PT0gJ0VzY2FwZScpIGNsb3NlTW9kYWwoKTsgfSk7CgogIG9yZGVyRm9ybS5hZGRFdmVudExpc3RlbmVyKCdzdWJtaXQnLCBmdW5jdGlvbihlKXsKICAgIGUucHJldmVudERlZmF1bHQoKTsKICAgIHZhciBuYW1lRmllbGQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZWNGaWVsZE5hbWUnKTsKICAgIHZhciBwaG9uZUZpZWxkID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2VjRmllbGRQaG9uZScpOwogICAgdmFyIG5hbWUgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZWNJbnBOYW1lJykudmFsdWUudHJpbSgpOwogICAgdmFyIHBob25lID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2VjSW5wUGhvbmUnKS52YWx1ZS50cmltKCk7CiAgICBuYW1lRmllbGQuY2xhc3NMaXN0LnRvZ2dsZSgnaW52YWxpZCcsIG5hbWUubGVuZ3RoID09PSAwKTsKICAgIHBob25lRmllbGQuY2xhc3NMaXN0LnRvZ2dsZSgnaW52YWxpZCcsIHBob25lLmxlbmd0aCA8IDUpOwogICAgaWYgKG5hbWUubGVuZ3RoID09PSAwIHx8IHBob25lLmxlbmd0aCA8IDUpIHJldHVybjsKICAgIHZhciBjYXB0Y2hhRXJyID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2VjQ2FwdGNoYUVycicpOwogICAgaWYgKCFzdGF0ZS50dXJuc3RpbGVUb2tlbil7CiAgICAgIGlmIChjYXB0Y2hhRXJyKXsgY2FwdGNoYUVyci50ZXh0Q29udGVudCA9IHQoJ2NhcHRjaGFSZXF1aXJlZCcpOyBjYXB0Y2hhRXJyLnN0eWxlLmRpc3BsYXkgPSAnYmxvY2snOyB9CiAgICAgIHJldHVybjsKICAgIH0KICAgIGlmIChjYXB0Y2hhRXJyKXsgY2FwdGNoYUVyci5zdHlsZS5kaXNwbGF5ID0gJ25vbmUnOyBjYXB0Y2hhRXJyLnRleHRDb250ZW50ID0gJyc7IH0KICAgIHZhciBzZW5kQnRuID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2VjU2VuZEJ0bicpOwogICAgc2VuZEJ0bi5kaXNhYmxlZCA9IHRydWU7CiAgICBzdWJtaXRFbGlzT3JkZXIobmFtZSwgcGhvbmUpLnRoZW4oZnVuY3Rpb24ob3JkZXJJZCl7CiAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdlY09yZGVyTnVtYmVyJykudGV4dENvbnRlbnQgPSAn4oSWICcgKyBvcmRlcklkOwogICAgICBmb3JtQm9keS5jbGFzc0xpc3QuYWRkKCdoaWRlJyk7CiAgICAgIHN1Y2Nlc3NCbG9jay5jbGFzc0xpc3QuYWRkKCdzaG93Jyk7CiAgICAgIHNlbmRCdG4uZGlzYWJsZWQgPSBmYWxzZTsKICAgIH0pLmNhdGNoKGZ1bmN0aW9uKGVycil7CiAgICAgIHNlbmRCdG4uZGlzYWJsZWQgPSBmYWxzZTsKICAgICAgaWYgKGNhcHRjaGFFcnIpeyBjYXB0Y2hhRXJyLnRleHRDb250ZW50ID0gKGVyciAmJiBlcnIubWVzc2FnZSkgPyBlcnIubWVzc2FnZSA6IHQoJ29yZGVyRXJyb3InKTsgY2FwdGNoYUVyci5zdHlsZS5kaXNwbGF5ID0gJ2Jsb2NrJzsgfQogICAgICBpZiAodHlwZW9mIHR1cm5zdGlsZSAhPT0gJ3VuZGVmaW5lZCcgJiYgdHVybnN0aWxlV2lkZ2V0SWQgIT09IG51bGwpeyB0cnkgeyB0dXJuc3RpbGUucmVzZXQodHVybnN0aWxlV2lkZ2V0SWQpOyB9IGNhdGNoKGUpe30gfQogICAgICBzdGF0ZS50dXJuc3RpbGVUb2tlbiA9IG51bGw7CiAgICB9KTsKICB9KTsKCiAgLyogPT09PT09PT09PT09IElOSVQgPT09PT09PT09PT09ICovCiAgcmVuZGVyU3RhdGljVGV4dCgpOwogIHNlbGVjdFpvbmUoJ2tpdGNoZW4nKTsKICByZW5kZXJDYXJ0YmFyKCk7Cn0pKCk7Cg==\"))));<\/script>","protected":false},"excerpt":{"rendered":"","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_acf_changed":false,"footnotes":""},"class_list":["post-1545182","page","type-page","status-publish","hentry"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v20.8 (Yoast SEO v26.1) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Equipment configurator | ELIS Trade Uzbekistan<\/title>\n<meta name=\"description\" content=\"\u041a\u043e\u043c\u043f\u0430\u043d\u0438\u044f \u0441\u043f\u0435\u0446\u0438\u0430\u043b\u0438\u0437\u0438\u0440\u0443\u0435\u0442\u0441\u044f \u043d\u0430 \u043e\u043a\u0430\u0437\u0430\u043d\u0438\u0438 \u0448\u0438\u0440\u043e\u043a\u043e\u0433\u043e \u0441\u043f\u0435\u043a\u0442\u0440\u0430 \u0443\u0441\u043b\u0443\u0433 \u043a\u0430\u043a \u0434\u043b\u044f \u043a\u043e\u0440\u043f\u043e\u0440\u0430\u0442\u0438\u0432\u043d\u044b\u0445 \u043a\u043b\u0438\u0435\u043d\u0442\u043e\u0432 \u0442\u0430\u043a \u0438 \u0434\u043b\u044f \u0447\u0430\u0441\u0442\u043d\u044b\u0445 \u043b\u0438\u0446. \u041f\u0440\u043e\u0444\u0435\u0441\u0441\u0438\u043e\u043d\u0430\u043b\u0438\u0437\u043c \u0438 \u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0435\u043d\u043d\u043e\u0441\u0442\u044c \u043a\u043b\u044e\u0447\u0435\u0432\u044b\u0435 \u043f\u0440\u0435\u0438\u043c\u0443\u0449\u0435\u0441\u0442\u0432\u0430 \u043d\u0430\u0448\u0435\u0439 \u043a\u043e\u043c\u043f\u0430\u043d\u0438\u0438.\" \/>\n<meta name=\"robots\" content=\"noindex, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<meta property=\"og:locale\" content=\"uz_UZ\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Equipment configurator\" \/>\n<meta property=\"og:description\" content=\"\u041a\u043e\u043c\u043f\u0430\u043d\u0438\u044f \u0441\u043f\u0435\u0446\u0438\u0430\u043b\u0438\u0437\u0438\u0440\u0443\u0435\u0442\u0441\u044f \u043d\u0430 \u043e\u043a\u0430\u0437\u0430\u043d\u0438\u0438 \u0448\u0438\u0440\u043e\u043a\u043e\u0433\u043e \u0441\u043f\u0435\u043a\u0442\u0440\u0430 \u0443\u0441\u043b\u0443\u0433 \u043a\u0430\u043a \u0434\u043b\u044f \u043a\u043e\u0440\u043f\u043e\u0440\u0430\u0442\u0438\u0432\u043d\u044b\u0445 \u043a\u043b\u0438\u0435\u043d\u0442\u043e\u0432 \u0442\u0430\u043a \u0438 \u0434\u043b\u044f \u0447\u0430\u0441\u0442\u043d\u044b\u0445 \u043b\u0438\u0446. \u041f\u0440\u043e\u0444\u0435\u0441\u0441\u0438\u043e\u043d\u0430\u043b\u0438\u0437\u043c \u0438 \u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0435\u043d\u043d\u043e\u0441\u0442\u044c \u043a\u043b\u044e\u0447\u0435\u0432\u044b\u0435 \u043f\u0440\u0435\u0438\u043c\u0443\u0449\u0435\u0441\u0442\u0432\u0430 \u043d\u0430\u0448\u0435\u0439 \u043a\u043e\u043c\u043f\u0430\u043d\u0438\u0438.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/elis-trade.uz\/uz\/equipment-configurator\/\" \/>\n<meta property=\"og:site_name\" content=\"ELIS Trade Uzbekistan\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\/\/elis-trade.uz\/uz\/equipment-configurator\/\",\"url\":\"https:\/\/elis-trade.uz\/uz\/equipment-configurator\/\",\"name\":\"Equipment configurator | ELIS Trade Uzbekistan\",\"isPartOf\":{\"@id\":\"https:\/\/elis-trade.uz\/uz\/#website\"},\"datePublished\":\"2026-09-01T15:24:23+00:00\",\"description\":\"\u041a\u043e\u043c\u043f\u0430\u043d\u0438\u044f \u0441\u043f\u0435\u0446\u0438\u0430\u043b\u0438\u0437\u0438\u0440\u0443\u0435\u0442\u0441\u044f \u043d\u0430 \u043e\u043a\u0430\u0437\u0430\u043d\u0438\u0438 \u0448\u0438\u0440\u043e\u043a\u043e\u0433\u043e \u0441\u043f\u0435\u043a\u0442\u0440\u0430 \u0443\u0441\u043b\u0443\u0433 \u043a\u0430\u043a \u0434\u043b\u044f \u043a\u043e\u0440\u043f\u043e\u0440\u0430\u0442\u0438\u0432\u043d\u044b\u0445 \u043a\u043b\u0438\u0435\u043d\u0442\u043e\u0432 \u0442\u0430\u043a \u0438 \u0434\u043b\u044f \u0447\u0430\u0441\u0442\u043d\u044b\u0445 \u043b\u0438\u0446. \u041f\u0440\u043e\u0444\u0435\u0441\u0441\u0438\u043e\u043d\u0430\u043b\u0438\u0437\u043c \u0438 \u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0435\u043d\u043d\u043e\u0441\u0442\u044c \u043a\u043b\u044e\u0447\u0435\u0432\u044b\u0435 \u043f\u0440\u0435\u0438\u043c\u0443\u0449\u0435\u0441\u0442\u0432\u0430 \u043d\u0430\u0448\u0435\u0439 \u043a\u043e\u043c\u043f\u0430\u043d\u0438\u0438.\",\"breadcrumb\":{\"@id\":\"https:\/\/elis-trade.uz\/uz\/equipment-configurator\/#breadcrumb\"},\"inLanguage\":\"uz-UZ\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/elis-trade.uz\/uz\/equipment-configurator\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/elis-trade.uz\/uz\/equipment-configurator\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"\u0413\u043b\u0430\u0432\u043d\u0430\u044f \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0430\",\"item\":\"https:\/\/elis-trade.uz\/uz\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Equipment configurator\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/elis-trade.uz\/uz\/#website\",\"url\":\"https:\/\/elis-trade.uz\/uz\/\",\"name\":\"ELIS\",\"description\":\"\",\"publisher\":{\"@id\":\"https:\/\/elis-trade.uz\/uz\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/elis-trade.uz\/uz\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"uz-UZ\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/elis-trade.uz\/uz\/#organization\",\"name\":\"ELIS\",\"url\":\"https:\/\/elis-trade.uz\/uz\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"uz-UZ\",\"@id\":\"https:\/\/elis-trade.uz\/uz\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/elis-trade.uz\/wp-content\/uploads\/2023\/11\/logo.png\",\"contentUrl\":\"https:\/\/elis-trade.uz\/wp-content\/uploads\/2023\/11\/logo.png\",\"width\":77,\"height\":77,\"caption\":\"ELIS\"},\"image\":{\"@id\":\"https:\/\/elis-trade.uz\/uz\/#\/schema\/logo\/image\/\"}}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Equipment configurator | ELIS Trade Uzbekistan","description":"\u041a\u043e\u043c\u043f\u0430\u043d\u0438\u044f \u0441\u043f\u0435\u0446\u0438\u0430\u043b\u0438\u0437\u0438\u0440\u0443\u0435\u0442\u0441\u044f \u043d\u0430 \u043e\u043a\u0430\u0437\u0430\u043d\u0438\u0438 \u0448\u0438\u0440\u043e\u043a\u043e\u0433\u043e \u0441\u043f\u0435\u043a\u0442\u0440\u0430 \u0443\u0441\u043b\u0443\u0433 \u043a\u0430\u043a \u0434\u043b\u044f \u043a\u043e\u0440\u043f\u043e\u0440\u0430\u0442\u0438\u0432\u043d\u044b\u0445 \u043a\u043b\u0438\u0435\u043d\u0442\u043e\u0432 \u0442\u0430\u043a \u0438 \u0434\u043b\u044f \u0447\u0430\u0441\u0442\u043d\u044b\u0445 \u043b\u0438\u0446. \u041f\u0440\u043e\u0444\u0435\u0441\u0441\u0438\u043e\u043d\u0430\u043b\u0438\u0437\u043c \u0438 \u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0435\u043d\u043d\u043e\u0441\u0442\u044c \u043a\u043b\u044e\u0447\u0435\u0432\u044b\u0435 \u043f\u0440\u0435\u0438\u043c\u0443\u0449\u0435\u0441\u0442\u0432\u0430 \u043d\u0430\u0448\u0435\u0439 \u043a\u043e\u043c\u043f\u0430\u043d\u0438\u0438.","robots":{"index":"noindex","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"og_locale":"uz_UZ","og_type":"article","og_title":"Equipment configurator","og_description":"\u041a\u043e\u043c\u043f\u0430\u043d\u0438\u044f \u0441\u043f\u0435\u0446\u0438\u0430\u043b\u0438\u0437\u0438\u0440\u0443\u0435\u0442\u0441\u044f \u043d\u0430 \u043e\u043a\u0430\u0437\u0430\u043d\u0438\u0438 \u0448\u0438\u0440\u043e\u043a\u043e\u0433\u043e \u0441\u043f\u0435\u043a\u0442\u0440\u0430 \u0443\u0441\u043b\u0443\u0433 \u043a\u0430\u043a \u0434\u043b\u044f \u043a\u043e\u0440\u043f\u043e\u0440\u0430\u0442\u0438\u0432\u043d\u044b\u0445 \u043a\u043b\u0438\u0435\u043d\u0442\u043e\u0432 \u0442\u0430\u043a \u0438 \u0434\u043b\u044f \u0447\u0430\u0441\u0442\u043d\u044b\u0445 \u043b\u0438\u0446. \u041f\u0440\u043e\u0444\u0435\u0441\u0441\u0438\u043e\u043d\u0430\u043b\u0438\u0437\u043c \u0438 \u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0435\u043d\u043d\u043e\u0441\u0442\u044c \u043a\u043b\u044e\u0447\u0435\u0432\u044b\u0435 \u043f\u0440\u0435\u0438\u043c\u0443\u0449\u0435\u0441\u0442\u0432\u0430 \u043d\u0430\u0448\u0435\u0439 \u043a\u043e\u043c\u043f\u0430\u043d\u0438\u0438.","og_url":"https:\/\/elis-trade.uz\/uz\/equipment-configurator\/","og_site_name":"ELIS Trade Uzbekistan","twitter_card":"summary_large_image","schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/elis-trade.uz\/uz\/equipment-configurator\/","url":"https:\/\/elis-trade.uz\/uz\/equipment-configurator\/","name":"Equipment configurator | ELIS Trade Uzbekistan","isPartOf":{"@id":"https:\/\/elis-trade.uz\/uz\/#website"},"datePublished":"2026-09-01T15:24:23+00:00","description":"\u041a\u043e\u043c\u043f\u0430\u043d\u0438\u044f \u0441\u043f\u0435\u0446\u0438\u0430\u043b\u0438\u0437\u0438\u0440\u0443\u0435\u0442\u0441\u044f \u043d\u0430 \u043e\u043a\u0430\u0437\u0430\u043d\u0438\u0438 \u0448\u0438\u0440\u043e\u043a\u043e\u0433\u043e \u0441\u043f\u0435\u043a\u0442\u0440\u0430 \u0443\u0441\u043b\u0443\u0433 \u043a\u0430\u043a \u0434\u043b\u044f \u043a\u043e\u0440\u043f\u043e\u0440\u0430\u0442\u0438\u0432\u043d\u044b\u0445 \u043a\u043b\u0438\u0435\u043d\u0442\u043e\u0432 \u0442\u0430\u043a \u0438 \u0434\u043b\u044f \u0447\u0430\u0441\u0442\u043d\u044b\u0445 \u043b\u0438\u0446. \u041f\u0440\u043e\u0444\u0435\u0441\u0441\u0438\u043e\u043d\u0430\u043b\u0438\u0437\u043c \u0438 \u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0435\u043d\u043d\u043e\u0441\u0442\u044c \u043a\u043b\u044e\u0447\u0435\u0432\u044b\u0435 \u043f\u0440\u0435\u0438\u043c\u0443\u0449\u0435\u0441\u0442\u0432\u0430 \u043d\u0430\u0448\u0435\u0439 \u043a\u043e\u043c\u043f\u0430\u043d\u0438\u0438.","breadcrumb":{"@id":"https:\/\/elis-trade.uz\/uz\/equipment-configurator\/#breadcrumb"},"inLanguage":"uz-UZ","potentialAction":[{"@type":"ReadAction","target":["https:\/\/elis-trade.uz\/uz\/equipment-configurator\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/elis-trade.uz\/uz\/equipment-configurator\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"\u0413\u043b\u0430\u0432\u043d\u0430\u044f \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0430","item":"https:\/\/elis-trade.uz\/uz\/"},{"@type":"ListItem","position":2,"name":"Equipment configurator"}]},{"@type":"WebSite","@id":"https:\/\/elis-trade.uz\/uz\/#website","url":"https:\/\/elis-trade.uz\/uz\/","name":"ELIS","description":"","publisher":{"@id":"https:\/\/elis-trade.uz\/uz\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/elis-trade.uz\/uz\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"uz-UZ"},{"@type":"Organization","@id":"https:\/\/elis-trade.uz\/uz\/#organization","name":"ELIS","url":"https:\/\/elis-trade.uz\/uz\/","logo":{"@type":"ImageObject","inLanguage":"uz-UZ","@id":"https:\/\/elis-trade.uz\/uz\/#\/schema\/logo\/image\/","url":"https:\/\/elis-trade.uz\/wp-content\/uploads\/2023\/11\/logo.png","contentUrl":"https:\/\/elis-trade.uz\/wp-content\/uploads\/2023\/11\/logo.png","width":77,"height":77,"caption":"ELIS"},"image":{"@id":"https:\/\/elis-trade.uz\/uz\/#\/schema\/logo\/image\/"}}]}},"_links":{"self":[{"href":"https:\/\/elis-trade.uz\/uz\/wp-json\/wp\/v2\/pages\/1545182","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/elis-trade.uz\/uz\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/elis-trade.uz\/uz\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/elis-trade.uz\/uz\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/elis-trade.uz\/uz\/wp-json\/wp\/v2\/comments?post=1545182"}],"version-history":[{"count":0,"href":"https:\/\/elis-trade.uz\/uz\/wp-json\/wp\/v2\/pages\/1545182\/revisions"}],"wp:attachment":[{"href":"https:\/\/elis-trade.uz\/uz\/wp-json\/wp\/v2\/media?parent=1545182"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}