diff --git a/pr-preview/pr-6954/api.css b/pr-preview/pr-6954/api.css deleted file mode 100644 index 789afa4d1..000000000 --- a/pr-preview/pr-6954/api.css +++ /dev/null @@ -1,2 +0,0 @@ -body{font-size:18px;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}@font-face{font-family:"Proxima Nova";src:url("fonts/proxima-nova.otf") format("opentype");font-weight:300}@font-face{font-family:'Proxima Nova';src:url("fonts/proxima-nova-medium.otf") format("opentype");font-weight:400}@font-face{font-family:'Proxima Nova';src:url("fonts/proxima-nova-semibold.otf") format("opentype");font-weight:500 600}@font-face{font-family:'Proxima Nova';src:url("fonts/proxima-nova-bold.otf") format("opentype");font-weight:700}@font-face{font-family:'icomoon-v2';src:url("fonts/icomoon-v2.eot?itn2ph");src:url("fonts/icomoon-v2.eot?itn2ph#iefix") format("embedded-opentype"),url("fonts/icomoon-v2.ttf?itn2ph") format("truetype"),url("fonts/icomoon-v2.woff?itn2ph") format("woff"),url("fonts/icomoon-v2.svg?itn2ph#icomoon-v2") format("svg");font-weight:normal;font-style:normal;font-display:block}[class^="icon-"],[class*=" icon-"]{font-family:'icomoon-v2' !important;speak:never;font-style:normal;font-weight:normal;font-variant:normal;text-transform:none;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.icon-bar-chart:before{content:"\e913"}.icon-influx-logo:before{content:"\e900"}.icon-influx-logotype:before{content:"\e901"}.icon-alert-triangle:before{content:"\e902"}.icon-arrow-down:before{content:"\e903"}.icon-moon1:before{content:"\e904"}.icon-search:before{content:"\e905"}.icon-sun1:before{content:"\e906"}.icon-arrow-down-circle:before{content:"\e907"}.icon-arrow-down-left:before{content:"\e908"}.icon-arrow-down-right:before{content:"\e909"}.icon-arrow-left:before{content:"\e90a"}.icon-arrow-left-circle:before{content:"\e90b"}.icon-arrow-right:before{content:"\e90c"}.icon-arrow-right-circle:before{content:"\e90d"}.icon-arrow-up:before{content:"\e90e"}.icon-arrow-up-circle:before{content:"\e90f"}.icon-arrow-up-left:before{content:"\e910"}.icon-arrow-up-right:before{content:"\e911"}.icon-check:before{content:"\e912"}.icon-heart1:before{content:"\e914"}.icon-settings:before{content:"\e915"}.icon-zoom-in:before{content:"\e916"}.icon-zoom-out:before{content:"\e917"}.icon-chevron-down:before{content:"\e918"}.icon-chevron-left:before{content:"\e919"}.icon-chevron-right:before{content:"\e91a"}.icon-chevron-up:before{content:"\e91b"}.icon-menu:before{content:"\e91c"}.icon-download:before{content:"\e91d"}.icon-minus:before{content:"\e91e"}.icon-plus:before{content:"\e91f"}.icon-add-cell:before{content:"\e920"}.icon-alert:before{content:"\e921"}.icon-calendar:before{content:"\e922"}.icon-checkmark:before{content:"\e923"}.icon-cog-thick:before{content:"\e924"}.icon-dashboards:before{content:"\e925"}.icon-data-explorer:before{content:"\e926"}.icon-ui-download:before{content:"\e927"}.icon-duplicate:before{content:"\e928"}.icon-export:before{content:"\e929"}.icon-fullscreen:before{content:"\e92a"}.icon-influx-icon:before{content:"\e92b"}.icon-note:before{content:"\e92c"}.icon-organizations:before{content:"\e92d"}.icon-pause:before{content:"\e92e"}.icon-pencil:before{content:"\e92f"}.icon-play:before{content:"\e930"}.icon-ui-plus:before{content:"\e931"}.icon-refresh:before{content:"\e932"}.icon-remove:before{content:"\e933"}.icon-alert-circle:before{content:"\e934"}.icon-crown:before{content:"\e935"}.icon-trash:before{content:"\e936"}.icon-triangle:before{content:"\e937"}.icon-x:before{content:"\e938"}.icon-wrench-2:before{content:"\e939"}.icon-chat:before{content:"\e93a"}.icon-bell:before{content:"\e93b"}.icon-disks-nav:before{content:"\e93c"}.icon-wrench-nav:before{content:"\e93d"}.icon-user:before{content:"\e93e"}.icon-cloud:before{content:"\e93f"}.icon-users-trio:before{content:"\e940"}.icon-nav-chat:before{content:"\e941"}.icon-map2:before{content:"\e94c"}.icon-eye-closed:before{content:"\e956"}.icon-eye-open:before{content:"\e957"}.icon-book-pencil:before{content:"\e965"}.icon-heart:before{content:"\e9da"}.icon-loop2:before{content:"\ea2e"}.icon-github:before{content:"\eab0"}.icon-tux:before{content:"\eabd"}.icon-appleinc:before{content:"\eabe"}.icon-windows8:before{content:"\eac2"}@font-face{font-family:'icomoon-v3';src:url("fonts/icomoon-v3.eot") format("embedded-opentype");src:url("fonts/icomoon-v3.eot") format("embedded-opentype"),url("fonts/icomoon-v3.woff2") format("woff2"),url("fonts/icomoon-v3.ttf") format("truetype"),url("fonts/icomoon-v3.woff") format("woff"),url("fonts/icomoon-v3.svg") format("svg");font-weight:normal;font-style:normal}.cf-icon{font-family:'icomoon-v3';font-style:normal;font-weight:normal;font-variant:normal;text-transform:none;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.cf-icon.add-cell-new:before{content:'\e976'}.cf-icon.alert-triangle-new:before{content:'\e977'}.cf-icon.annotate-new:before{content:'\e978'}.cf-icon.arrow-down-new:before{content:'\e979'}.cf-icon.arrow-left-new:before{content:'\e97a'}.cf-icon.arrow-right-new:before{content:'\e97b'}.cf-icon.arrow-up-new:before{content:'\e97c'}.cf-icon.bar-chart-new:before{content:'\e97d'}.cf-icon.build-outline-new:before{content:'\e97e'}.cf-icon.caret-down-new:before{content:'\e97f'}.cf-icon.caret-left-new:before{content:'\e980'}.cf-icon.caret-right-new:before{content:'\e981'}.cf-icon.caret-up-new:before{content:'\e982'}.cf-icon.checkmark-new:before{content:'\e983'}.cf-icon.clipboard-new:before{content:'\e984'}.cf-icon.clock-new:before{content:'\e985'}.cf-icon.cog-outline-new:before{content:'\e986'}.cf-icon.cog-solid-new:before{content:'\e987'}.cf-icon.crown-solid-new:before{content:'\e988'}.cf-icon.dark-mode-new:before{content:'\e989'}.cf-icon.download-new:before{content:'\e98a'}.cf-icon.duplicate-new:before{content:'\e98b'}.cf-icon.expand-new:before{content:'\e98c'}.cf-icon.export-new:before{content:'\e98d'}.cf-icon.eye-open-new:before{content:'\e98e'}.cf-icon.graph-line-new:before{content:'\e98f'}.cf-icon.handle-new:before{content:'\e990'}.cf-icon.home-outline-new:before{content:'\e991'}.cf-icon.info-new:before{content:'\e992'}.cf-icon.ingest-new:before{content:'\e993'}.cf-icon.light-mode-new:before{content:'\e994'}.cf-icon.lock-outline-new:before{content:'\e995'}.cf-icon.log-out-new:before{content:'\e996'}.cf-icon.pin-new:before{content:'\e997'}.cf-icon.plus-new:before{content:'\e998'}.cf-icon.question-mark-new:before{content:'\e999'}.cf-icon.refresh-new:before{content:'\e99a'}.cf-icon.remove-new:before{content:'\e99b'}.cf-icon.search-new:before{content:'\e99c'}.cf-icon.sidebar-close-new:before{content:'\e99d'}.cf-icon.sidebar-open-new:before{content:'\e99e'}.cf-icon.stop-new:before{content:'\e99f'}.cf-icon.switch-new:before{content:'\e9a0'}.cf-icon.text-new:before{content:'\e9a1'}.cf-icon.trash-new:before{content:'\e9a2'}.cf-icon.user-outline-new:before{content:'\e9a3'}.cf-icon.more:before{content:'\e974'}.cf-icon.drag-to-expand-white:before{content:'\e901';color:#fff}.cf-icon.drag-to-expand:before{content:'\e902'}.cf-icon.shield-solid:before{content:'\e903'}.cf-icon.lock:before{content:'\e900'}.cf-icon.heart-solid:before{content:'\e96f'}.cf-icon.bucket-outline:before{content:'\e961'}.cf-icon.chat:before{content:'\e933'}.cf-icon.currency-eur:before{content:'\e968'}.cf-icon.currency-gbp:before{content:'\e969'}.cf-icon.currency-usd:before{content:'\e96a'}.cf-icon.moon:before{content:'\e95c'}.cf-icon.share-solid:before{content:'\e96e'}.cf-icon.shield:before{content:'\e96b'}.cf-icon.sun:before{content:'\e95d'}.cf-icon.upgrade:before{content:'\e95f'}.cf-icon.merge:before{content:'\e975'}.cf-icon.add-cell:before{content:'\e925'}.cf-icon.alert-triangle:before{content:'\e926'}.cf-icon.alerts:before{content:'\e921'}.cf-icon.annotate:before{content:'\e953'}.cf-icon.annotate-plus:before{content:'\e952'}.cf-icon.authzero:before{content:'\e951'}.cf-icon.bar-chart:before{content:'\e913'}.cf-icon.bell:before{content:'\e934'}.cf-icon.bell-solid:before{content:'\e937'}.cf-icon.brush:before{content:'\e93d'}.cf-icon.capacitor2:before{content:'\e923'}.cf-icon.caret-down:before{content:'\e904'}.cf-icon.caret-left:before{content:'\e905'}.cf-icon.caret-right:before{content:'\e906'}.cf-icon.caret-up:before{content:'\e907'}.cf-icon.checkmark:before{content:'\e918'}.cf-icon.circle:before{content:'\e940'}.cf-icon.circle-thick:before{content:'\e90e'}.cf-icon.clock:before{content:'\e920'}.cf-icon.cog-outline:before{content:'\e91c'}.cf-icon.cog-thick:before{content:'\e90c'}.cf-icon.collapse:before{content:'\e91b'}.cf-icon.crown-outline:before{content:'\e908'}.cf-icon.crown2:before{content:'\e94b'}.cf-icon.cube:before{content:'\e90b'}.cf-icon.cubo:before{content:'\e95e'}.cf-icon.cubo-uniform:before{content:'\e93c'}.cf-icon.dash-f:before{content:'\e927'}.cf-icon.dash-h:before{content:'\e929'}.cf-icon.dash-j:before{content:'\e92b'}.cf-icon.disks:before{content:'\e950'}.cf-icon.download:before{content:'\e91d'}.cf-icon.duplicate:before{content:'\e917'}.cf-icon.erlenmeyer:before{content:'\e958'}.cf-icon.expand-a:before{content:'\e944'}.cf-icon.expand-b:before{content:'\e942'}.cf-icon.export:before{content:'\e90f'}.cf-icon.eye:before{content:'\e91f'}.cf-icon.eye-closed:before{content:'\e956'}.cf-icon.eye-open:before{content:'\e957'}.cf-icon.fn:before{content:'\e960'}.cf-icon.github:before{content:'\e928'}.cf-icon.google:before{content:'\e92a'}.cf-icon.group:before{content:'\e909'}.cf-icon.heroku:before{content:'\e947'}.cf-icon.heroku-simple:before{content:'\e948'}.cf-icon.import:before{content:'\e910'}.cf-icon.link:before{content:'\e92e'}.cf-icon.maximize:before{content:'\e955'}.cf-icon.minimize:before{content:'\e954'}.cf-icon.nav-chat:before{content:'\e941'}.cf-icon.oauth:before{content:'\e94f'}.cf-icon.octagon:before{content:'\e92d'}.cf-icon.okta:before{content:'\e912'}.cf-icon.pause:before{content:'\e94a'}.cf-icon.pencil:before{content:'\e92f'}.cf-icon.play:before{content:'\e914'}.cf-icon.plus:before{content:'\e90a'}.cf-icon.plus-skinny:before{content:'\e922'}.cf-icon.polaroid:before{content:'\e95b'}.cf-icon.pulse-c:before{content:'\e936'}.cf-icon.redo:before{content:'\e959'}.cf-icon.refresh:before{content:'\e949'}.cf-icon.remove:before{content:'\e90d'}.cf-icon.search:before{content:'\e916'}.cf-icon.server2:before{content:'\e94c'}.cf-icon.shuffle:before{content:'\e94e'}.cf-icon.square:before{content:'\e93e'}.cf-icon.square-check:before{content:'\e943'}.cf-icon.star:before{content:'\e930'}.cf-icon.stop:before{content:'\e931'}.cf-icon.text-block:before{content:'\e911'}.cf-icon.trash:before{content:'\e915'}.cf-icon.triangle:before{content:'\e92c'}.cf-icon.undo:before{content:'\e95a'}.cf-icon.user:before{content:'\e919'}.cf-icon.user-add:before{content:'\e91e'}.cf-icon.user-outline:before{content:'\e932'}.cf-icon.user-remove:before{content:'\e939'}.cf-icon.users-trio:before{content:'\e945'}.cf-icon.wand:before{content:'\e94d'}.cf-icon.wood:before{content:'\e970'}.cf-icon.wrench:before{content:'\e971'}.cf-icon.zap:before{content:'\e973'}.cf-icon.bell-ringing:before{content:'\e935'}.cf-icon.calendar:before{content:'\e938'}.cf-icon.cloud:before{content:'\e93f'}.cf-icon.cubo-nav:before{content:'\e91a'}.cf-icon.dashboards:before{content:'\e93a'}.cf-icon.disks-nav:before{content:'\e946'}.cf-icon.graphline-2:before{content:'\e924'}.cf-icon.users-duo:before{content:'\e93b'}.cf-icon.wrench-nav:before{content:'\e972'}.cf-icon.book:before{content:'\e966'}.cf-icon.book-code:before{content:'\e967'}.cf-icon.book-pencil:before{content:'\e965'}.cf-icon.bucket-solid:before{content:'\e962'}.cf-icon.funnel-outline:before{content:'\e963'}.cf-icon.funnel-solid:before{content:'\e964'}.cf-icon.layers:before{content:'\e96c'}.cf-icon.share:before{content:'\e96d'}@font-face{font-family:'icomoon-v4';src:url("fonts/icomoon-v4.eot") format("embedded-opentype");src:url("fonts/icomoon-v4.eot") format("embedded-opentype"),url("fonts/icomoon-v4.woff2") format("woff2"),url("fonts/icomoon-v4.ttf") format("truetype"),url("fonts/icomoon-v4.woff") format("woff"),url("fonts/icomoon-v4.svg") format("svg");font-weight:normal;font-style:normal}.cf-icon{font-family:'icomoon-v4';font-style:normal;font-weight:normal;font-variant:normal;text-transform:none;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.cf-icon.FolderOpen:before{content:'\e956'}.cf-icon.Bill:before{content:'\e954'}.cf-icon.Logout:before{content:'\e950'}.cf-icon.PieChart:before{content:'\e957'}.cf-icon.CurrencyDollar:before{content:'\e952'}.cf-icon.Sync:before{content:'\e955'}.cf-icon.Subtract:before{content:'\e953'}.cf-icon.Timer:before{content:'\e94f'}.cf-icon.CaretOutlineRight:before{content:'\e94b'}.cf-icon.CollapseLeft:before{content:'\e94c'}.cf-icon.CollapseRight:before{content:'\e94d'}.cf-icon.DoubleCaretVertical:before{content:'\e94e'}.cf-icon.QuestionMark_Outline:before{content:'\e94a'}.cf-icon.Info_New:before{content:'\e949'}.cf-icon.SidebarClose:before{content:'\e947'}.cf-icon.SidebarOpen:before{content:'\e948'}.cf-icon.CaretDown_New:before{content:'\e912'}.cf-icon.CaretLeft_New:before{content:'\e913'}.cf-icon.CaretRight_New:before{content:'\e914'}.cf-icon.CaretUp_New:before{content:'\e915'}.cf-icon.Play:before{content:'\e900'}.cf-icon.Pause:before{content:'\e901'}.cf-icon.EyeOpen:before{content:'\e902'}.cf-icon.Flask:before{content:'\e903'}.cf-icon.AddCell_New:before{content:'\e904'}.cf-icon.QuestionMark:before{content:'\e905'}.cf-icon.AlertTriangle:before{content:'\e906'}.cf-icon.Annotate_New:before{content:'\e907'}.cf-icon.ArrowDown_New:before{content:'\e908'}.cf-icon.ArrowLeft_New:before{content:'\e909'}.cf-icon.ArrowRight_New:before{content:'\e90a'}.cf-icon.BarChart_New:before{content:'\e90b'}.cf-icon.Bell:before{content:'\e90c'}.cf-icon.BookCode:before{content:'\e90d'}.cf-icon.BookOutline:before{content:'\e90e'}.cf-icon.Braces:before{content:'\e90f'}.cf-icon.BucketSolid:before{content:'\e910'}.cf-icon.Calendar:before{content:'\e911'}.cf-icon.Chat:before{content:'\e916'}.cf-icon.Checkmark_New:before{content:'\e917'}.cf-icon.CircleThick:before{content:'\e918'}.cf-icon.Clipboard_New:before{content:'\e919'}.cf-icon.Clock_New:before{content:'\e91a'}.cf-icon.Cloud:before{content:'\e91b'}.cf-icon.CogOutline_New:before{content:'\e91c'}.cf-icon.CogSolid_New:before{content:'\e91d'}.cf-icon.Coppercoin:before{content:'\e91e'}.cf-icon.CrownSolid_New:before{content:'\e91f'}.cf-icon.Cube:before{content:'\e920'}.cf-icon.CuboSolid:before{content:'\e921'}.cf-icon.Cubouniform:before{content:'\e922'}.cf-icon.Darkmode_New:before{content:'\e923'}.cf-icon.DashH:before{content:'\e924'}.cf-icon.Download_New:before{content:'\e925'}.cf-icon.ExpandB:before{content:'\e926'}.cf-icon.Export_New:before{content:'\e927'}.cf-icon.EyeClosed:before{content:'\e928'}.cf-icon.FunnelSolid:before{content:'\e929'}.cf-icon.GraphLine_New:before{content:'\e92a'}.cf-icon.Group:before{content:'\e92b'}.cf-icon.History:before{content:'\e92c'}.cf-icon.Duplicate_New:before{content:'\e92d'}.cf-icon.Install:before{content:'\e92e'}.cf-icon.Layers:before{content:'\e92f'}.cf-icon.Lightmode_New:before{content:'\e930'}.cf-icon.Link:before{content:'\e931'}.cf-icon.Lock:before{content:'\e932'}.cf-icon.More:before{content:'\e933'}.cf-icon.Pencil:before{content:'\e934'}.cf-icon.Plus_New:before{content:'\e935'}.cf-icon.Refresh_New:before{content:'\e936'}.cf-icon.Remove_New:before{content:'\e937'}.cf-icon.Save:before{content:'\e938'}.cf-icon.SaveOutline:before{content:'\e951'}.cf-icon.Search_New:before{content:'\e939'}.cf-icon.Share:before{content:'\e93a'}.cf-icon.Shield:before{content:'\e93b'}.cf-icon.Star:before{content:'\e93c'}.cf-icon.StarSmile:before{content:'\e93d'}.cf-icon.Subscribe:before{content:'\e93e'}.cf-icon.Switch_New:before{content:'\e93f'}.cf-icon.Text_New:before{content:'\e940'}.cf-icon.Trash_New:before{content:'\e941'}.cf-icon.Undo:before{content:'\e942'}.cf-icon.Upload_New:before{content:'\e943'}.cf-icon.Upload_Outline:before{content:'\e944'}.cf-icon.User:before{content:'\e945'}.cf-icon.Zap:before{content:'\e946'}@font-face{font-family:'alert-icons';src:url("fonts/alert-icons.eot?d0dznh");src:url("fonts/alert-icons.eot?d0dznh#iefix") format("embedded-opentype"),url("fonts/alert-icons.ttf?d0dznh") format("truetype"),url("fonts/alert-icons.woff?d0dznh") format("woff"),url("fonts/alert-icons.svg?d0dznh#icomoon") format("svg");font-weight:normal;font-style:normal;font-display:block}[class^="alert-icon-"],[class*=" alert-icon-"]{font-family:'alert-icons' !important;speak:never;font-style:normal;font-weight:normal;font-variant:normal;text-transform:none;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.alert-icon-caution:before{content:"\43"}.alert-icon-important:before{content:"\49"}.alert-icon-note:before{content:"\4e"}.alert-icon-tip:before{content:"\54"}.alert-icon-warning:before{content:"\57"}.v3{font-family:'icomoon-v3'}.v4{font-family:'icomoon-v4'}#loading{position:fixed;width:100vw;height:100vh;z-index:1000;background-color:#fff;opacity:1;transition:opacity .5s}@keyframes spinner{to{transform:rotate(360deg)}}.spinner:before{content:'';box-sizing:border-box;position:absolute;top:50%;left:50%;width:50px;height:50px;margin-top:-25px;margin-left:-25px;border-radius:50%;border:3px solid #E7E8EB;border-top-color:#513CC6;animation:spinner .6s linear infinite}#influx-header{font-family:"Proxima Nova",sans-serif;padding:10px;display:flex;align-items:center;justify-content:space-between;background-color:#202028}#influx-header a{text-decoration:none}#influx-header a.back{color:#fff;transition:color .2s}#influx-header a.back:hover{color:#00A3FF}#influx-header a.back:before{content:"\e919";font-family:'icomoon-v2';margin-right:.65rem}#influx-header a.btn{padding:.5rem .75rem .5rem .65rem;font-size:.85rem;font-weight:500;color:#D4D7DD;background:#383846;border-radius:4.5px;transition:all .2s}#influx-header a.btn:before{content:"\e934";display:inline-block;font-size:.95rem;margin-right:.5rem;font-family:'icomoon-v2'}#influx-header a.btn:hover{color:#fff;background:#00A3FF}@media (max-width: 600px){#influx-header span.version{display:none}}.cjtbAK h1,.cjtbAK h2,.cjtbAK h3,.cjtbAK h4,.cjtbAK h5,.cjtbAK h6,.cjtbAK p,.cjtbAK li,.cjtbAK th,.cjtbAK td{font-family:"Proxima Nova",sans-serif !important}#redoc h1,#redoc h2,#redoc h3{font-weight:500 !important}.dluJDj{padding:20px 0}.dTJWQH{color:#545667;font-size:2rem}.jIdpVJ{background:#2AA3FF;color:#fff;border:none;border-radius:3px;font-family:"Proxima Nova",sans-serif;font-size:.85rem;font-weight:500;transition:background-color .2s}.jIdpVJ:hover{background-color:#00A3FF}.WxWXp{color:#545667;font-size:1.75rem}.ioYTqA,.bxcHYI,.hoUoen{color:#545667}.espozG{color:#676978}.bnFPhO a{color:#2AA3FF}.bnFPhO a:visited{color:#2AA3FF}.redoc-json{font-family:"IBM Plex Mono",monospace !important}.flfxUM code,.gDsWLk code,.kTVySD{font-family:"IBM Plex Mono",monospace !important;color:#736ECD;background:#EDEDFF;border-color:#EDEDFF}.jsTAxL{color:#F95F53}.hLVzSF,.fDvFMp{background-color:rgba(103,215,78,0.2);color:#006F49}.byLrBg{background-color:rgba(249,95,83,0.1);color:#F95F53}.gZdDsM{background-color:#FAFAFC}.gpbcFk:hover,.sc-eTuwsz.active{background-color:#EEEFF2}.SmuWE,.gcUzvG,.bbViyS,.sc-hrWEMg label{font-family:"Proxima Nova",sans-serif !important}.fyUykq{font-weight:500}.cFwMcp.post{background-color:#066FC5}.cFwMcp.get{background-color:#34BB55}.cFwMcp.put{background-color:#9394FF}.cFwMcp.patch{background-color:#FFD255;color:rgba(56,56,70,0.75)}.cFwMcp.delete{background-color:#F95F53}.gcUzvG,.iNzLCk:hover{color:#BF2FE5}.dtUibw,.fLUKgj{background-color:#202028}.dtUibw h3,.dtUibw h4,.dtUibw h5,.dtUibw h6,.fLUKgj h3,.fLUKgj h4,.fLUKgj h5,.fLUKgj h6{font-family:"Proxima Nova",sans-serif !important;font-weight:500 !important}.irpqyy>.react-tabs__tab-panel{background-color:#0F0E15}.dHLKeu,.fVaxnA{padding-left:10px;background-color:#0F0E15}.irpqyy>ul>li{background-color:#0F0E15;border-radius:3px}.irpqyy>ul>li.react-tabs__tab--selected{color:#513CC6}.irpqyy>ul>li.tab-error{color:#DC4E58}.irpqyy>ul>li.tab-success{color:#009F5F}.bNYCAJ,.jBjYbV,.hOczRB,.fRsrDc,.hPskZd{font-family:"Proxima Nova",sans-serif;font-weight:500;letter-spacing:.04em;border-radius:3px}.bNYCAJ{background-color:#066FC5}.jBjYbV{background-color:#009F5F}.hOczRB{background-color:#9394FF}.fRsrDc{background-color:#FFD255;color:#383846}.hPskZd{background-color:#F95F53}.gzAoUb{background-color:#202028;font-family:"Proxima Nova",sans-serif}.iENVAs{font-family:"IBM Plex Mono",monospace}.dpMbau{font-family:"Proxima Nova",sans-serif}.fCJmC{font-family:"Proxima Nova",sans-serif}.fCJmC span{border-radius:3px}.kZHJcC{font-family:"IBM Plex Mono",monospace}.jCgylq .token.string{color:#67D74E}.jCgylq .token.string+a{color:#00A3FF}.jCgylq .token.boolean{color:#f955b0} -/*# sourceMappingURL=data:application/json;base64,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LHdDQUF3QyxxQ0FBcUMsQ0FBQyxlQUFlLENBQUMsb0JBQW9CLENBQUMsaUJBQWlCLENBQUMsUUFBUSx3QkFBd0IsQ0FBQyxRQUFRLHdCQUF3QixDQUFDLFFBQVEsd0JBQXdCLENBQUMsUUFBUSx3QkFBd0IsQ0FBQyxhQUFhLENBQUMsUUFBUSx3QkFBd0IsQ0FBQyxRQUFRLHdCQUF3QixDQUFDLHFDQUFxQyxDQUFDLFFBQVEscUNBQXFDLENBQUMsUUFBUSxxQ0FBcUMsQ0FBQyxPQUFPLHFDQUFxQyxDQUFDLFlBQVksaUJBQWlCLENBQUMsUUFBUSxxQ0FBcUMsQ0FBQyxzQkFBc0IsYUFBYSxDQUFDLHdCQUF3QixhQUFhLENBQUMsdUJBQXVCLGFBQWEiLCJmaWxlIjoic3RkaW4iLCJzb3VyY2VzQ29udGVudCI6WyJib2R5e2ZvbnQtc2l6ZToxOHB4Oy13ZWJraXQtZm9udC1zbW9vdGhpbmc6YW50aWFsaWFzZWQ7LW1vei1vc3gtZm9udC1zbW9vdGhpbmc6Z3JheXNjYWxlfUBmb250LWZhY2V7Zm9udC1mYW1pbHk6XCJQcm94aW1hIE5vdmFcIjtzcmM6dXJsKFwiZm9udHMvcHJveGltYS1ub3ZhLm90ZlwiKSBmb3JtYXQoXCJvcGVudHlwZVwiKTtmb250LXdlaWdodDozMDB9QGZvbnQtZmFjZXtmb250LWZhbWlseTonUHJveGltYSBOb3ZhJztzcmM6dXJsKFwiZm9udHMvcHJveGltYS1ub3ZhLW1lZGl1bS5vdGZcIikgZm9ybWF0KFwib3BlbnR5cGVcIik7Zm9udC13ZWlnaHQ6NDAwfUBmb250LWZhY2V7Zm9udC1mYW1pbHk6J1Byb3hpbWEgTm92YSc7c3JjOnVybChcImZvbnRzL3Byb3hpbWEtbm92YS1zZW1pYm9sZC5vdGZcIikgZm9ybWF0KFwib3BlbnR5cGVcIik7Zm9udC13ZWlnaHQ6NTAwIDYwMH1AZm9udC1mYWNle2ZvbnQtZmFtaWx5OidQcm94aW1hIE5vdmEnO3NyYzp1cmwoXCJmb250cy9wcm94aW1hLW5vdmEtYm9sZC5vdGZcIikgZm9ybWF0KFwib3BlbnR5cGVcIik7Zm9udC13ZWlnaHQ6NzAwfUBmb250LWZhY2V7Zm9udC1mYW1pbHk6J2ljb21vb24tdjInO3NyYzp1cmwoXCJmb250cy9pY29tb29uLXYyLmVvdD9pdG4ycGhcIik7c3JjOnVybChcImZvbnRzL2ljb21vb24tdjIuZW90P2l0bjJwaCNpZWZpeFwiKSBmb3JtYXQoXCJlbWJlZGRlZC1vcGVudHlwZVwiKSx1cmwoXCJmb250cy9pY29tb29uLXYyLnR0Zj9pdG4ycGhcIikgZm9ybWF0KFwidHJ1ZXR5cGVcIiksdXJsKFwiZm9udHMvaWNvbW9vbi12Mi53b2ZmP2l0bjJwaFwiKSBmb3JtYXQoXCJ3b2ZmXCIpLHVybChcImZvbnRzL2ljb21vb24tdjIuc3ZnP2l0bjJwaCNpY29tb29uLXYyXCIpIGZvcm1hdChcInN2Z1wiKTtmb250LXdlaWdodDpub3JtYWw7Zm9udC1zdHlsZTpub3JtYWw7Zm9udC1kaXNwbGF5OmJsb2NrfVtjbGFzc149XCJpY29uLVwiXSxbY2xhc3MqPVwiIGljb24tXCJde2ZvbnQtZmFtaWx5OidpY29tb29uLXYyJyAhaW1wb3J0YW50O3NwZWFrOm5ldmVyO2ZvbnQtc3R5bGU6bm9ybWFsO2ZvbnQtd2VpZ2h0Om5vcm1hbDtmb250LXZhcmlhbnQ6bm9ybWFsO3RleHQtdHJhbnNmb3JtOm5vbmU7bGluZS1oZWlnaHQ6MTstd2Via2l0LWZvbnQtc21vb3RoaW5nOmFudGlhbGlhc2VkOy1tb3otb3N4LWZvbnQtc21vb3RoaW5nOmdyYXlzY2FsZX0uaWNvbi1iYXItY2hhcnQ6YmVmb3Jle2NvbnRlbnQ6XCJcXGU5MTNcIn0uaWNvbi1pbmZsdXgtbG9nbzpiZWZvcmV7Y29udGVudDpcIlxcZTkwMFwifS5pY29uLWluZmx1eC1sb2dvdHlwZTpiZWZvcmV7Y29udGVudDpcIlxcZTkwMVwifS5pY29uLWFsZXJ0LXRyaWFuZ2xlOmJlZm9yZXtjb250ZW50OlwiXFxlOTAyXCJ9Lmljb24tYXJyb3ctZG93bjpiZWZvcmV7Y29udGVudDpcIlxcZTkwM1wifS5pY29uLW1vb24xOmJlZm9yZXtjb250ZW50OlwiXFxlOTA0XCJ9Lmljb24tc2VhcmNoOmJlZm9yZXtjb250ZW50OlwiXFxlOTA1XCJ9Lmljb24tc3VuMTpiZWZvcmV7Y29udGVudDpcIlxcZTkwNlwifS5pY29uLWFycm93LWRvd24tY2lyY2xlOmJlZm9yZXtjb250ZW50OlwiXFxlOTA3XCJ9Lmljb24tYXJyb3ctZG93bi1sZWZ0OmJlZm9yZXtjb250ZW50OlwiXFxlOTA4XCJ9Lmljb24tYXJyb3ctZG93bi1yaWdodDpiZWZvcmV7Y29udGVudDpcIlxcZTkwOVwifS5pY29uLWFycm93LWxlZnQ6YmVmb3Jle2NvbnRlbnQ6XCJcXGU5MGFcIn0uaWNvbi1hcnJvdy1sZWZ0LWNpcmNsZTpiZWZvcmV7Y29udGVudDpcIlxcZTkwYlwifS5pY29uLWFycm93LXJpZ2h0OmJlZm9yZXtjb250ZW50OlwiXFxlOTBjXCJ9Lmljb24tYXJyb3ctcmlnaHQtY2lyY2xlOmJlZm9yZXtjb250ZW50OlwiXFxlOTBkXCJ9Lmljb24tYXJyb3ctdXA6YmVmb3Jle2NvbnRlbnQ6XCJcXGU5MGVcIn0uaWNvbi1hcnJvdy11cC1jaXJjbGU6YmVmb3Jle2NvbnRlbnQ6XCJcXGU5MGZcIn0uaWNvbi1hcnJvdy11cC1sZWZ0OmJlZm9yZXtjb250ZW50OlwiXFxlOTEwXCJ9Lmljb24tYXJyb3ctdXAtcmlnaHQ6YmVmb3Jle2NvbnRlbnQ6XCJcXGU5MTFcIn0uaWNvbi1jaGVjazpiZWZvcmV7Y29udGVudDpcIlxcZTkxMlwifS5pY29uLWhlYXJ0MTpiZWZvcmV7Y29udGVudDpcIlxcZTkxNFwifS5pY29uLXNldHRpbmdzOmJlZm9yZXtjb250ZW50OlwiXFxlOTE1XCJ9Lmljb24tem9vbS1pbjpiZWZvcmV7Y29udGVudDpcIlxcZTkxNlwifS5pY29uLXpvb20tb3V0OmJlZm9yZXtjb250ZW50OlwiXFxlOTE3XCJ9Lmljb24tY2hldnJvbi1kb3duOmJlZm9yZXtjb250ZW50OlwiXFxlOTE4XCJ9Lmljb24tY2hldnJvbi1sZWZ0OmJlZm9yZXtjb250ZW50OlwiXFxlOTE5XCJ9Lmljb24tY2hldnJvbi1yaWdodDpiZWZvcmV7Y29udGVudDpcIlxcZTkxYVwifS5pY29uLWNoZXZyb24tdXA6YmVmb3Jle2NvbnRlbnQ6XCJcXGU5MWJcIn0uaWNvbi1tZW51OmJlZm9yZXtjb250ZW50OlwiXFxlOTFjXCJ9Lmljb24tZG93bmxvYWQ6YmVmb3Jle2NvbnRlbnQ6XCJcXGU5MWRcIn0uaWNvbi1taW51czpiZWZvcmV7Y29udGVudDpcIlxcZTkxZVwifS5pY29uLXBsdXM6YmVmb3Jle2NvbnRlbnQ6XCJcXGU5MWZcIn0uaWNvbi1hZGQtY2VsbDpiZWZvcmV7Y29udGVudDpcIlxcZTkyMFwifS5pY29uLWFsZXJ0OmJlZm9yZXtjb250ZW50OlwiXFxlOTIxXCJ9Lmljb24tY2FsZW5kYXI6YmVmb3Jle2NvbnRlbnQ6XCJcXGU5MjJcIn0uaWNvbi1jaGVja21hcms6YmVmb3Jle2NvbnRlbnQ6XCJcXGU5MjNcIn0uaWNvbi1jb2ctdGhpY2s6YmVmb3Jle2NvbnRlbnQ6XCJcXGU5MjRcIn0uaWNvbi1kYXNoYm9hcmRzOmJlZm9yZXtjb250ZW50OlwiXFxlOTI1XCJ9Lmljb24tZGF0YS1leHBsb3JlcjpiZWZvcmV7Y29udGVudDpcIlxcZTkyNlwifS5pY29uLXVpLWRvd25sb2FkOmJlZm9yZXtjb250ZW50OlwiXFxlOTI3XCJ9Lmljb24tZHVwbGljYXRlOmJlZm9yZXtjb250ZW50OlwiXFxlOTI4XCJ9Lmljb24tZXhwb3J0OmJlZm9yZXtjb250ZW50OlwiXFxlOTI5XCJ9Lmljb24tZnVsbHNjcmVlbjpiZWZvcmV7Y29udGVudDpcIlxcZTkyYVwifS5pY29uLWluZmx1eC1pY29uOmJlZm9yZXtjb250ZW50OlwiXFxlOTJiXCJ9Lmljb24tbm90ZTpiZWZvcmV7Y29udGVudDpcIlxcZTkyY1wifS5pY29uLW9yZ2FuaXphdGlvbnM6YmVmb3Jle2NvbnRlbnQ6XCJcXGU5MmRcIn0uaWNvbi1wYXVzZTpiZWZvcmV7Y29udGVudDpcIlxcZTkyZVwifS5pY29uLXBlbmNpbDpiZWZvcmV7Y29udGVudDpcIlxcZTkyZlwifS5pY29uLXBsYXk6YmVmb3Jle2NvbnRlbnQ6XCJcXGU5MzBcIn0uaWNvbi11aS1wbHVzOmJlZm9yZXtjb250ZW50OlwiXFxlOTMxXCJ9Lmljb24tcmVmcmVzaDpiZWZvcmV7Y29udGVudDpcIlxcZTkzMlwifS5pY29uLXJlbW92ZTpiZWZvcmV7Y29udGVudDpcIlxcZTkzM1wifS5pY29uLWFsZXJ0LWNpcmNsZTpiZWZvcmV7Y29udGVudDpcIlxcZTkzNFwifS5pY29uLWNyb3duOmJlZm9yZXtjb250ZW50OlwiXFxlOTM1XCJ9Lmljb24tdHJhc2g6YmVmb3Jle2NvbnRlbnQ6XCJcXGU5MzZcIn0uaWNvbi10cmlhbmdsZTpiZWZvcmV7Y29udGVudDpcIlxcZTkzN1wifS5pY29uLXg6YmVmb3Jle2NvbnRlbnQ6XCJcXGU5MzhcIn0uaWNvbi13cmVuY2gtMjpiZWZvcmV7Y29udGVudDpcIlxcZTkzOVwifS5pY29uLWNoYXQ6YmVmb3Jle2NvbnRlbnQ6XCJcXGU5M2FcIn0uaWNvbi1iZWxsOmJlZm9yZXtjb250ZW50OlwiXFxlOTNiXCJ9Lmljb24tZGlza3MtbmF2OmJlZm9yZXtjb250ZW50OlwiXFxlOTNjXCJ9Lmljb24td3JlbmNoLW5hdjpiZWZvcmV7Y29udGVudDpcIlxcZTkzZFwifS5pY29uLXVzZXI6YmVmb3Jle2NvbnRlbnQ6XCJcXGU5M2VcIn0uaWNvbi1jbG91ZDpiZWZvcmV7Y29udGVudDpcIlxcZTkzZlwifS5pY29uLXVzZXJzLXRyaW86YmVmb3Jle2NvbnRlbnQ6XCJcXGU5NDBcIn0uaWNvbi1uYXYtY2hhdDpiZWZvcmV7Y29udGVudDpcIlxcZTk0MVwifS5pY29uLW1hcDI6YmVmb3Jle2NvbnRlbnQ6XCJcXGU5NGNcIn0uaWNvbi1leWUtY2xvc2VkOmJlZm9yZXtjb250ZW50OlwiXFxlOTU2XCJ9Lmljb24tZXllLW9wZW46YmVmb3Jle2NvbnRlbnQ6XCJcXGU5NTdcIn0uaWNvbi1ib29rLXBlbmNpbDpiZWZvcmV7Y29udGVudDpcIlxcZTk2NVwifS5pY29uLWhlYXJ0OmJlZm9yZXtjb250ZW50OlwiXFxlOWRhXCJ9Lmljb24tbG9vcDI6YmVmb3Jle2NvbnRlbnQ6XCJcXGVhMmVcIn0uaWNvbi1naXRodWI6YmVmb3Jle2NvbnRlbnQ6XCJcXGVhYjBcIn0uaWNvbi10dXg6YmVmb3Jle2NvbnRlbnQ6XCJcXGVhYmRcIn0uaWNvbi1hcHBsZWluYzpiZWZvcmV7Y29udGVudDpcIlxcZWFiZVwifS5pY29uLXdpbmRvd3M4OmJlZm9yZXtjb250ZW50OlwiXFxlYWMyXCJ9QGZvbnQtZmFjZXtmb250LWZhbWlseTonaWNvbW9vbi12Myc7c3JjOnVybChcImZvbnRzL2ljb21vb24tdjMuZW90XCIpIGZvcm1hdChcImVtYmVkZGVkLW9wZW50eXBlXCIpO3NyYzp1cmwoXCJmb250cy9pY29tb29uLXYzLmVvdFwiKSBmb3JtYXQoXCJlbWJlZGRlZC1vcGVudHlwZVwiKSx1cmwoXCJmb250cy9pY29tb29uLXYzLndvZmYyXCIpIGZvcm1hdChcIndvZmYyXCIpLHVybChcImZvbnRzL2ljb21vb24tdjMudHRmXCIpIGZvcm1hdChcInRydWV0eXBlXCIpLHVybChcImZvbnRzL2ljb21vb24tdjMud29mZlwiKSBmb3JtYXQoXCJ3b2ZmXCIpLHVybChcImZvbnRzL2ljb21vb24tdjMuc3ZnXCIpIGZvcm1hdChcInN2Z1wiKTtmb250LXdlaWdodDpub3JtYWw7Zm9udC1zdHlsZTpub3JtYWx9LmNmLWljb257Zm9udC1mYW1pbHk6J2ljb21vb24tdjMnO2ZvbnQtc3R5bGU6bm9ybWFsO2ZvbnQtd2VpZ2h0Om5vcm1hbDtmb250LXZhcmlhbnQ6bm9ybWFsO3RleHQtdHJhbnNmb3JtOm5vbmU7bGluZS1oZWlnaHQ6MTstd2Via2l0LWZvbnQtc21vb3RoaW5nOmFudGlhbGlhc2VkOy1tb3otb3N4LWZvbnQtc21vb3RoaW5nOmdyYXlzY2FsZX0uY2YtaWNvbi5hZGQtY2VsbC1uZXc6YmVmb3Jle2NvbnRlbnQ6J1xcZTk3Nid9LmNmLWljb24uYWxlcnQtdHJpYW5nbGUtbmV3OmJlZm9yZXtjb250ZW50OidcXGU5NzcnfS5jZi1pY29uLmFubm90YXRlLW5ldzpiZWZvcmV7Y29udGVudDonXFxlOTc4J30uY2YtaWNvbi5hcnJvdy1kb3duLW5ldzpiZWZvcmV7Y29udGVudDonXFxlOTc5J30uY2YtaWNvbi5hcnJvdy1sZWZ0LW5ldzpiZWZvcmV7Y29udGVudDonXFxlOTdhJ30uY2YtaWNvbi5hcnJvdy1yaWdodC1uZXc6YmVmb3Jle2NvbnRlbnQ6J1xcZTk3Yid9LmNmLWljb24uYXJyb3ctdXAtbmV3OmJlZm9yZXtjb250ZW50OidcXGU5N2MnfS5jZi1pY29uLmJhci1jaGFydC1uZXc6YmVmb3Jle2NvbnRlbnQ6J1xcZTk3ZCd9LmNmLWljb24uYnVpbGQtb3V0bGluZS1uZXc6YmVmb3Jle2NvbnRlbnQ6J1xcZTk3ZSd9LmNmLWljb24uY2FyZXQtZG93bi1uZXc6YmVmb3Jle2NvbnRlbnQ6J1xcZTk3Zid9LmNmLWljb24uY2FyZXQtbGVmdC1uZXc6YmVmb3Jle2NvbnRlbnQ6J1xcZTk4MCd9LmNmLWljb24uY2FyZXQtcmlnaHQtbmV3OmJlZm9yZXtjb250ZW50OidcXGU5ODEnfS5jZi1pY29uLmNhcmV0LXVwLW5ldzpiZWZvcmV7Y29udGVudDonXFxlOTgyJ30uY2YtaWNvbi5jaGVja21hcmstbmV3OmJlZm9yZXtjb250ZW50OidcXGU5ODMnfS5jZi1pY29uLmNsaXBib2FyZC1uZXc6YmVmb3Jle2NvbnRlbnQ6J1xcZTk4NCd9LmNmLWljb24uY2xvY2stbmV3OmJlZm9yZXtjb250ZW50OidcXGU5ODUnfS5jZi1pY29uLmNvZy1vdXRsaW5lLW5ldzpiZWZvcmV7Y29udGVudDonXFxlOTg2J30uY2YtaWNvbi5jb2ctc29saWQtbmV3OmJlZm9yZXtjb250ZW50OidcXGU5ODcnfS5jZi1pY29uLmNyb3duLXNvbGlkLW5ldzpiZWZvcmV7Y29udGVudDonXFxlOTg4J30uY2YtaWNvbi5kYXJrLW1vZGUtbmV3OmJlZm9yZXtjb250ZW50OidcXGU5ODknfS5jZi1pY29uLmRvd25sb2FkLW5ldzpiZWZvcmV7Y29udGVudDonXFxlOThhJ30uY2YtaWNvbi5kdXBsaWNhdGUtbmV3OmJlZm9yZXtjb250ZW50OidcXGU5OGInfS5jZi1pY29uLmV4cGFuZC1uZXc6YmVmb3Jle2NvbnRlbnQ6J1xcZTk4Yyd9LmNmLWljb24uZXhwb3J0LW5ldzpiZWZvcmV7Y29udGVudDonXFxlOThkJ30uY2YtaWNvbi5leWUtb3Blbi1uZXc6YmVmb3Jle2NvbnRlbnQ6J1xcZTk4ZSd9LmNmLWljb24uZ3JhcGgtbGluZS1uZXc6YmVmb3Jle2NvbnRlbnQ6J1xcZTk4Zid9LmNmLWljb24uaGFuZGxlLW5ldzpiZWZvcmV7Y29udGVudDonXFxlOTkwJ30uY2YtaWNvbi5ob21lLW91dGxpbmUtbmV3OmJlZm9yZXtjb250ZW50OidcXGU5OTEnfS5jZi1pY29uLmluZm8tbmV3OmJlZm9yZXtjb250ZW50OidcXGU5OTInfS5jZi1pY29uLmluZ2VzdC1uZXc6YmVmb3Jle2NvbnRlbnQ6J1xcZTk5Myd9LmNmLWljb24ubGlnaHQtbW9kZS1uZXc6YmVmb3Jle2NvbnRlbnQ6J1xcZTk5NCd9LmNmLWljb24ubG9jay1vdXRsaW5lLW5ldzpiZWZvcmV7Y29udGVudDonXFxlOTk1J30uY2YtaWNvbi5sb2ctb3V0LW5ldzpiZWZvcmV7Y29udGVudDonXFxlOTk2J30uY2YtaWNvbi5waW4tbmV3OmJlZm9yZXtjb250ZW50OidcXGU5OTcnfS5jZi1pY29uLnBsdXMtbmV3OmJlZm9yZXtjb250ZW50OidcXGU5OTgnfS5jZi1pY29uLnF1ZXN0aW9uLW1hcmstbmV3OmJlZm9yZXtjb250ZW50OidcXGU5OTknfS5jZi1pY29uLnJlZnJlc2gtbmV3OmJlZm9yZXtjb250ZW50OidcXGU5OWEnfS5jZi1pY29uLnJlbW92ZS1uZXc6YmVmb3Jle2NvbnRlbnQ6J1xcZTk5Yid9LmNmLWljb24uc2VhcmNoLW5ldzpiZWZvcmV7Y29udGVudDonXFxlOTljJ30uY2YtaWNvbi5zaWRlYmFyLWNsb3NlLW5ldzpiZWZvcmV7Y29udGVudDonXFxlOTlkJ30uY2YtaWNvbi5zaWRlYmFyLW9wZW4tbmV3OmJlZm9yZXtjb250ZW50OidcXGU5OWUnfS5jZi1pY29uLnN0b3AtbmV3OmJlZm9yZXtjb250ZW50OidcXGU5OWYnfS5jZi1pY29uLnN3aXRjaC1uZXc6YmVmb3Jle2NvbnRlbnQ6J1xcZTlhMCd9LmNmLWljb24udGV4dC1uZXc6YmVmb3Jle2NvbnRlbnQ6J1xcZTlhMSd9LmNmLWljb24udHJhc2gtbmV3OmJlZm9yZXtjb250ZW50OidcXGU5YTInfS5jZi1pY29uLnVzZXItb3V0bGluZS1uZXc6YmVmb3Jle2NvbnRlbnQ6J1xcZTlhMyd9LmNmLWljb24ubW9yZTpiZWZvcmV7Y29udGVudDonXFxlOTc0J30uY2YtaWNvbi5kcmFnLXRvLWV4cGFuZC13aGl0ZTpiZWZvcmV7Y29udGVudDonXFxlOTAxJztjb2xvcjojZmZmfS5jZi1pY29uLmRyYWctdG8tZXhwYW5kOmJlZm9yZXtjb250ZW50OidcXGU5MDInfS5jZi1pY29uLnNoaWVsZC1zb2xpZDpiZWZvcmV7Y29udGVudDonXFxlOTAzJ30uY2YtaWNvbi5sb2NrOmJlZm9yZXtjb250ZW50OidcXGU5MDAnfS5jZi1pY29uLmhlYXJ0LXNvbGlkOmJlZm9yZXtjb250ZW50OidcXGU5NmYnfS5jZi1pY29uLmJ1Y2tldC1vdXRsaW5lOmJlZm9yZXtjb250ZW50OidcXGU5NjEnfS5jZi1pY29uLmNoYXQ6YmVmb3Jle2NvbnRlbnQ6J1xcZTkzMyd9LmNmLWljb24uY3VycmVuY3ktZXVyOmJlZm9yZXtjb250ZW50OidcXGU5NjgnfS5jZi1pY29uLmN1cnJlbmN5LWdicDpiZWZvcmV7Y29udGVudDonXFxlOTY5J30uY2YtaWNvbi5jdXJyZW5jeS11c2Q6YmVmb3Jle2NvbnRlbnQ6J1xcZTk2YSd9LmNmLWljb24ubW9vbjpiZWZvcmV7Y29udGVudDonXFxlOTVjJ30uY2YtaWNvbi5zaGFyZS1zb2xpZDpiZWZvcmV7Y29udGVudDonXFxlOTZlJ30uY2YtaWNvbi5zaGllbGQ6YmVmb3Jle2NvbnRlbnQ6J1xcZTk2Yid9LmNmLWljb24uc3VuOmJlZm9yZXtjb250ZW50OidcXGU5NWQnfS5jZi1pY29uLnVwZ3JhZGU6YmVmb3Jle2NvbnRlbnQ6J1xcZTk1Zid9LmNmLWljb24ubWVyZ2U6YmVmb3Jle2NvbnRlbnQ6J1xcZTk3NSd9LmNmLWljb24uYWRkLWNlbGw6YmVmb3Jle2NvbnRlbnQ6J1xcZTkyNSd9LmNmLWljb24uYWxlcnQtdHJpYW5nbGU6YmVmb3Jle2NvbnRlbnQ6J1xcZTkyNid9LmNmLWljb24uYWxlcnRzOmJlZm9yZXtjb250ZW50OidcXGU5MjEnfS5jZi1pY29uLmFubm90YXRlOmJlZm9yZXtjb250ZW50OidcXGU5NTMnfS5jZi1pY29uLmFubm90YXRlLXBsdXM6YmVmb3Jle2NvbnRlbnQ6J1xcZTk1Mid9LmNmLWljb24uYXV0aHplcm86YmVmb3Jle2NvbnRlbnQ6J1xcZTk1MSd9LmNmLWljb24uYmFyLWNoYXJ0OmJlZm9yZXtjb250ZW50OidcXGU5MTMnfS5jZi1pY29uLmJlbGw6YmVmb3Jle2NvbnRlbnQ6J1xcZTkzNCd9LmNmLWljb24uYmVsbC1zb2xpZDpiZWZvcmV7Y29udGVudDonXFxlOTM3J30uY2YtaWNvbi5icnVzaDpiZWZvcmV7Y29udGVudDonXFxlOTNkJ30uY2YtaWNvbi5jYXBhY2l0b3IyOmJlZm9yZXtjb250ZW50OidcXGU5MjMnfS5jZi1pY29uLmNhcmV0LWRvd246YmVmb3Jle2NvbnRlbnQ6J1xcZTkwNCd9LmNmLWljb24uY2FyZXQtbGVmdDpiZWZvcmV7Y29udGVudDonXFxlOTA1J30uY2YtaWNvbi5jYXJldC1yaWdodDpiZWZvcmV7Y29udGVudDonXFxlOTA2J30uY2YtaWNvbi5jYXJldC11cDpiZWZvcmV7Y29udGVudDonXFxlOTA3J30uY2YtaWNvbi5jaGVja21hcms6YmVmb3Jle2NvbnRlbnQ6J1xcZTkxOCd9LmNmLWljb24uY2lyY2xlOmJlZm9yZXtjb250ZW50OidcXGU5NDAnfS5jZi1pY29uLmNpcmNsZS10aGljazpiZWZvcmV7Y29udGVudDonXFxlOTBlJ30uY2YtaWNvbi5jbG9jazpiZWZvcmV7Y29udGVudDonXFxlOTIwJ30uY2YtaWNvbi5jb2ctb3V0bGluZTpiZWZvcmV7Y29udGVudDonXFxlOTFjJ30uY2YtaWNvbi5jb2ctdGhpY2s6YmVmb3Jle2NvbnRlbnQ6J1xcZTkwYyd9LmNmLWljb24uY29sbGFwc2U6YmVmb3Jle2NvbnRlbnQ6J1xcZTkxYid9LmNmLWljb24uY3Jvd24tb3V0bGluZTpiZWZvcmV7Y29udGVudDonXFxlOTA4J30uY2YtaWNvbi5jcm93bjI6YmVmb3Jle2NvbnRlbnQ6J1xcZTk0Yid9LmNmLWljb24uY3ViZTpiZWZvcmV7Y29udGVudDonXFxlOTBiJ30uY2YtaWNvbi5jdWJvOmJlZm9yZXtjb250ZW50OidcXGU5NWUnfS5jZi1pY29uLmN1Ym8tdW5pZm9ybTpiZWZvcmV7Y29udGVudDonXFxlOTNjJ30uY2YtaWNvbi5kYXNoLWY6YmVmb3Jle2NvbnRlbnQ6J1xcZTkyNyd9LmNmLWljb24uZGFzaC1oOmJlZm9yZXtjb250ZW50OidcXGU5MjknfS5jZi1pY29uLmRhc2gtajpiZWZvcmV7Y29udGVudDonXFxlOTJiJ30uY2YtaWNvbi5kaXNrczpiZWZvcmV7Y29udGVudDonXFxlOTUwJ30uY2YtaWNvbi5kb3dubG9hZDpiZWZvcmV7Y29udGVudDonXFxlOTFkJ30uY2YtaWNvbi5kdXBsaWNhdGU6YmVmb3Jle2NvbnRlbnQ6J1xcZTkxNyd9LmNmLWljb24uZXJsZW5tZXllcjpiZWZvcmV7Y29udGVudDonXFxlOTU4J30uY2YtaWNvbi5leHBhbmQtYTpiZWZvcmV7Y29udGVudDonXFxlOTQ0J30uY2YtaWNvbi5leHBhbmQtYjpiZWZvcmV7Y29udGVudDonXFxlOTQyJ30uY2YtaWNvbi5leHBvcnQ6YmVmb3Jle2NvbnRlbnQ6J1xcZTkwZid9LmNmLWljb24uZXllOmJlZm9yZXtjb250ZW50OidcXGU5MWYnfS5jZi1pY29uLmV5ZS1jbG9zZWQ6YmVmb3Jle2NvbnRlbnQ6J1xcZTk1Nid9LmNmLWljb24uZXllLW9wZW46YmVmb3Jle2NvbnRlbnQ6J1xcZTk1Nyd9LmNmLWljb24uZm46YmVmb3Jle2NvbnRlbnQ6J1xcZTk2MCd9LmNmLWljb24uZ2l0aHViOmJlZm9yZXtjb250ZW50OidcXGU5MjgnfS5jZi1pY29uLmdvb2dsZTpiZWZvcmV7Y29udGVudDonXFxlOTJhJ30uY2YtaWNvbi5ncm91cDpiZWZvcmV7Y29udGVudDonXFxlOTA5J30uY2YtaWNvbi5oZXJva3U6YmVmb3Jle2NvbnRlbnQ6J1xcZTk0Nyd9LmNmLWljb24uaGVyb2t1LXNpbXBsZTpiZWZvcmV7Y29udGVudDonXFxlOTQ4J30uY2YtaWNvbi5pbXBvcnQ6YmVmb3Jle2NvbnRlbnQ6J1xcZTkxMCd9LmNmLWljb24ubGluazpiZWZvcmV7Y29udGVudDonXFxlOTJlJ30uY2YtaWNvbi5tYXhpbWl6ZTpiZWZvcmV7Y29udGVudDonXFxlOTU1J30uY2YtaWNvbi5taW5pbWl6ZTpiZWZvcmV7Y29udGVudDonXFxlOTU0J30uY2YtaWNvbi5uYXYtY2hhdDpiZWZvcmV7Y29udGVudDonXFxlOTQxJ30uY2YtaWNvbi5vYXV0aDpiZWZvcmV7Y29udGVudDonXFxlOTRmJ30uY2YtaWNvbi5vY3RhZ29uOmJlZm9yZXtjb250ZW50OidcXGU5MmQnfS5jZi1pY29uLm9rdGE6YmVmb3Jle2NvbnRlbnQ6J1xcZTkxMid9LmNmLWljb24ucGF1c2U6YmVmb3Jle2NvbnRlbnQ6J1xcZTk0YSd9LmNmLWljb24ucGVuY2lsOmJlZm9yZXtjb250ZW50OidcXGU5MmYnfS5jZi1pY29uLnBsYXk6YmVmb3Jle2NvbnRlbnQ6J1xcZTkxNCd9LmNmLWljb24ucGx1czpiZWZvcmV7Y29udGVudDonXFxlOTBhJ30uY2YtaWNvbi5wbHVzLXNraW5ueTpiZWZvcmV7Y29udGVudDonXFxlOTIyJ30uY2YtaWNvbi5wb2xhcm9pZDpiZWZvcmV7Y29udGVudDonXFxlOTViJ30uY2YtaWNvbi5wdWxzZS1jOmJlZm9yZXtjb250ZW50OidcXGU5MzYnfS5jZi1pY29uLnJlZG86YmVmb3Jle2NvbnRlbnQ6J1xcZTk1OSd9LmNmLWljb24ucmVmcmVzaDpiZWZvcmV7Y29udGVudDonXFxlOTQ5J30uY2YtaWNvbi5yZW1vdmU6YmVmb3Jle2NvbnRlbnQ6J1xcZTkwZCd9LmNmLWljb24uc2VhcmNoOmJlZm9yZXtjb250ZW50OidcXGU5MTYnfS5jZi1pY29uLnNlcnZlcjI6YmVmb3Jle2NvbnRlbnQ6J1xcZTk0Yyd9LmNmLWljb24uc2h1ZmZsZTpiZWZvcmV7Y29udGVudDonXFxlOTRlJ30uY2YtaWNvbi5zcXVhcmU6YmVmb3Jle2NvbnRlbnQ6J1xcZTkzZSd9LmNmLWljb24uc3F1YXJlLWNoZWNrOmJlZm9yZXtjb250ZW50OidcXGU5NDMnfS5jZi1pY29uLnN0YXI6YmVmb3Jle2NvbnRlbnQ6J1xcZTkzMCd9LmNmLWljb24uc3RvcDpiZWZvcmV7Y29udGVudDonXFxlOTMxJ30uY2YtaWNvbi50ZXh0LWJsb2NrOmJlZm9yZXtjb250ZW50OidcXGU5MTEnfS5jZi1pY29uLnRyYXNoOmJlZm9yZXtjb250ZW50OidcXGU5MTUnfS5jZi1pY29uLnRyaWFuZ2xlOmJlZm9yZXtjb250ZW50OidcXGU5MmMnfS5jZi1pY29uLnVuZG86YmVmb3Jle2NvbnRlbnQ6J1xcZTk1YSd9LmNmLWljb24udXNlcjpiZWZvcmV7Y29udGVudDonXFxlOTE5J30uY2YtaWNvbi51c2VyLWFkZDpiZWZvcmV7Y29udGVudDonXFxlOTFlJ30uY2YtaWNvbi51c2VyLW91dGxpbmU6YmVmb3Jle2NvbnRlbnQ6J1xcZTkzMid9LmNmLWljb24udXNlci1yZW1vdmU6YmVmb3Jle2NvbnRlbnQ6J1xcZTkzOSd9LmNmLWljb24udXNlcnMtdHJpbzpiZWZvcmV7Y29udGVudDonXFxlOTQ1J30uY2YtaWNvbi53YW5kOmJlZm9yZXtjb250ZW50OidcXGU5NGQnfS5jZi1pY29uLndvb2Q6YmVmb3Jle2NvbnRlbnQ6J1xcZTk3MCd9LmNmLWljb24ud3JlbmNoOmJlZm9yZXtjb250ZW50OidcXGU5NzEnfS5jZi1pY29uLnphcDpiZWZvcmV7Y29udGVudDonXFxlOTczJ30uY2YtaWNvbi5iZWxsLXJpbmdpbmc6YmVmb3Jle2NvbnRlbnQ6J1xcZTkzNSd9LmNmLWljb24uY2FsZW5kYXI6YmVmb3Jle2NvbnRlbnQ6J1xcZTkzOCd9LmNmLWljb24uY2xvdWQ6YmVmb3Jle2NvbnRlbnQ6J1xcZTkzZid9LmNmLWljb24uY3Viby1uYXY6YmVmb3Jle2NvbnRlbnQ6J1xcZTkxYSd9LmNmLWljb24uZGFzaGJvYXJkczpiZWZvcmV7Y29udGVudDonXFxlOTNhJ30uY2YtaWNvbi5kaXNrcy1uYXY6YmVmb3Jle2NvbnRlbnQ6J1xcZTk0Nid9LmNmLWljb24uZ3JhcGhsaW5lLTI6YmVmb3Jle2NvbnRlbnQ6J1xcZTkyNCd9LmNmLWljb24udXNlcnMtZHVvOmJlZm9yZXtjb250ZW50OidcXGU5M2InfS5jZi1pY29uLndyZW5jaC1uYXY6YmVmb3Jle2NvbnRlbnQ6J1xcZTk3Mid9LmNmLWljb24uYm9vazpiZWZvcmV7Y29udGVudDonXFxlOTY2J30uY2YtaWNvbi5ib29rLWNvZGU6YmVmb3Jle2NvbnRlbnQ6J1xcZTk2Nyd9LmNmLWljb24uYm9vay1wZW5jaWw6YmVmb3Jle2NvbnRlbnQ6J1xcZTk2NSd9LmNmLWljb24uYnVja2V0LXNvbGlkOmJlZm9yZXtjb250ZW50OidcXGU5NjInfS5jZi1pY29uLmZ1bm5lbC1vdXRsaW5lOmJlZm9yZXtjb250ZW50OidcXGU5NjMnfS5jZi1pY29uLmZ1bm5lbC1zb2xpZDpiZWZvcmV7Y29udGVudDonXFxlOTY0J30uY2YtaWNvbi5sYXllcnM6YmVmb3Jle2NvbnRlbnQ6J1xcZTk2Yyd9LmNmLWljb24uc2hhcmU6YmVmb3Jle2NvbnRlbnQ6J1xcZTk2ZCd9QGZvbnQtZmFjZXtmb250LWZhbWlseTonaWNvbW9vbi12NCc7c3JjOnVybChcImZvbnRzL2ljb21vb24tdjQuZW90XCIpIGZvcm1hdChcImVtYmVkZGVkLW9wZW50eXBlXCIpO3NyYzp1cmwoXCJmb250cy9pY29tb29uLXY0LmVvdFwiKSBmb3JtYXQoXCJlbWJlZGRlZC1vcGVudHlwZVwiKSx1cmwoXCJmb250cy9pY29tb29uLXY0LndvZmYyXCIpIGZvcm1hdChcIndvZmYyXCIpLHVybChcImZvbnRzL2ljb21vb24tdjQudHRmXCIpIGZvcm1hdChcInRydWV0eXBlXCIpLHVybChcImZvbnRzL2ljb21vb24tdjQud29mZlwiKSBmb3JtYXQoXCJ3b2ZmXCIpLHVybChcImZvbnRzL2ljb21vb24tdjQuc3ZnXCIpIGZvcm1hdChcInN2Z1wiKTtmb250LXdlaWdodDpub3JtYWw7Zm9udC1zdHlsZTpub3JtYWx9LmNmLWljb257Zm9udC1mYW1pbHk6J2ljb21vb24tdjQnO2ZvbnQtc3R5bGU6bm9ybWFsO2ZvbnQtd2VpZ2h0Om5vcm1hbDtmb250LXZhcmlhbnQ6bm9ybWFsO3RleHQtdHJhbnNmb3JtOm5vbmU7bGluZS1oZWlnaHQ6MTstd2Via2l0LWZvbnQtc21vb3RoaW5nOmFudGlhbGlhc2VkOy1tb3otb3N4LWZvbnQtc21vb3RoaW5nOmdyYXlzY2FsZX0uY2YtaWNvbi5Gb2xkZXJPcGVuOmJlZm9yZXtjb250ZW50OidcXGU5NTYnfS5jZi1pY29uLkJpbGw6YmVmb3Jle2NvbnRlbnQ6J1xcZTk1NCd9LmNmLWljb24uTG9nb3V0OmJlZm9yZXtjb250ZW50OidcXGU5NTAnfS5jZi1pY29uLlBpZUNoYXJ0OmJlZm9yZXtjb250ZW50OidcXGU5NTcnfS5jZi1pY29uLkN1cnJlbmN5RG9sbGFyOmJlZm9yZXtjb250ZW50OidcXGU5NTInfS5jZi1pY29uLlN5bmM6YmVmb3Jle2NvbnRlbnQ6J1xcZTk1NSd9LmNmLWljb24uU3VidHJhY3Q6YmVmb3Jle2NvbnRlbnQ6J1xcZTk1Myd9LmNmLWljb24uVGltZXI6YmVmb3Jle2NvbnRlbnQ6J1xcZTk0Zid9LmNmLWljb24uQ2FyZXRPdXRsaW5lUmlnaHQ6YmVmb3Jle2NvbnRlbnQ6J1xcZTk0Yid9LmNmLWljb24uQ29sbGFwc2VMZWZ0OmJlZm9yZXtjb250ZW50OidcXGU5NGMnfS5jZi1pY29uLkNvbGxhcHNlUmlnaHQ6YmVmb3Jle2NvbnRlbnQ6J1xcZTk0ZCd9LmNmLWljb24uRG91YmxlQ2FyZXRWZXJ0aWNhbDpiZWZvcmV7Y29udGVudDonXFxlOTRlJ30uY2YtaWNvbi5RdWVzdGlvbk1hcmtfT3V0bGluZTpiZWZvcmV7Y29udGVudDonXFxlOTRhJ30uY2YtaWNvbi5JbmZvX05ldzpiZWZvcmV7Y29udGVudDonXFxlOTQ5J30uY2YtaWNvbi5TaWRlYmFyQ2xvc2U6YmVmb3Jle2NvbnRlbnQ6J1xcZTk0Nyd9LmNmLWljb24uU2lkZWJhck9wZW46YmVmb3Jle2NvbnRlbnQ6J1xcZTk0OCd9LmNmLWljb24uQ2FyZXREb3duX05ldzpiZWZvcmV7Y29udGVudDonXFxlOTEyJ30uY2YtaWNvbi5DYXJldExlZnRfTmV3OmJlZm9yZXtjb250ZW50OidcXGU5MTMnfS5jZi1pY29uLkNhcmV0UmlnaHRfTmV3OmJlZm9yZXtjb250ZW50OidcXGU5MTQnfS5jZi1pY29uLkNhcmV0VXBfTmV3OmJlZm9yZXtjb250ZW50OidcXGU5MTUnfS5jZi1pY29uLlBsYXk6YmVmb3Jle2NvbnRlbnQ6J1xcZTkwMCd9LmNmLWljb24uUGF1c2U6YmVmb3Jle2NvbnRlbnQ6J1xcZTkwMSd9LmNmLWljb24uRXllT3BlbjpiZWZvcmV7Y29udGVudDonXFxlOTAyJ30uY2YtaWNvbi5GbGFzazpiZWZvcmV7Y29udGVudDonXFxlOTAzJ30uY2YtaWNvbi5BZGRDZWxsX05ldzpiZWZvcmV7Y29udGVudDonXFxlOTA0J30uY2YtaWNvbi5RdWVzdGlvbk1hcms6YmVmb3Jle2NvbnRlbnQ6J1xcZTkwNSd9LmNmLWljb24uQWxlcnRUcmlhbmdsZTpiZWZvcmV7Y29udGVudDonXFxlOTA2J30uY2YtaWNvbi5Bbm5vdGF0ZV9OZXc6YmVmb3Jle2NvbnRlbnQ6J1xcZTkwNyd9LmNmLWljb24uQXJyb3dEb3duX05ldzpiZWZvcmV7Y29udGVudDonXFxlOTA4J30uY2YtaWNvbi5BcnJvd0xlZnRfTmV3OmJlZm9yZXtjb250ZW50OidcXGU5MDknfS5jZi1pY29uLkFycm93UmlnaHRfTmV3OmJlZm9yZXtjb250ZW50OidcXGU5MGEnfS5jZi1pY29uLkJhckNoYXJ0X05ldzpiZWZvcmV7Y29udGVudDonXFxlOTBiJ30uY2YtaWNvbi5CZWxsOmJlZm9yZXtjb250ZW50OidcXGU5MGMnfS5jZi1pY29uLkJvb2tDb2RlOmJlZm9yZXtjb250ZW50OidcXGU5MGQnfS5jZi1pY29uLkJvb2tPdXRsaW5lOmJlZm9yZXtjb250ZW50OidcXGU5MGUnfS5jZi1pY29uLkJyYWNlczpiZWZvcmV7Y29udGVudDonXFxlOTBmJ30uY2YtaWNvbi5CdWNrZXRTb2xpZDpiZWZvcmV7Y29udGVudDonXFxlOTEwJ30uY2YtaWNvbi5DYWxlbmRhcjpiZWZvcmV7Y29udGVudDonXFxlOTExJ30uY2YtaWNvbi5DaGF0OmJlZm9yZXtjb250ZW50OidcXGU5MTYnfS5jZi1pY29uLkNoZWNrbWFya19OZXc6YmVmb3Jle2NvbnRlbnQ6J1xcZTkxNyd9LmNmLWljb24uQ2lyY2xlVGhpY2s6YmVmb3Jle2NvbnRlbnQ6J1xcZTkxOCd9LmNmLWljb24uQ2xpcGJvYXJkX05ldzpiZWZvcmV7Y29udGVudDonXFxlOTE5J30uY2YtaWNvbi5DbG9ja19OZXc6YmVmb3Jle2NvbnRlbnQ6J1xcZTkxYSd9LmNmLWljb24uQ2xvdWQ6YmVmb3Jle2NvbnRlbnQ6J1xcZTkxYid9LmNmLWljb24uQ29nT3V0bGluZV9OZXc6YmVmb3Jle2NvbnRlbnQ6J1xcZTkxYyd9LmNmLWljb24uQ29nU29saWRfTmV3OmJlZm9yZXtjb250ZW50OidcXGU5MWQnfS5jZi1pY29uLkNvcHBlcmNvaW46YmVmb3Jle2NvbnRlbnQ6J1xcZTkxZSd9LmNmLWljb24uQ3Jvd25Tb2xpZF9OZXc6YmVmb3Jle2NvbnRlbnQ6J1xcZTkxZid9LmNmLWljb24uQ3ViZTpiZWZvcmV7Y29udGVudDonXFxlOTIwJ30uY2YtaWNvbi5DdWJvU29saWQ6YmVmb3Jle2NvbnRlbnQ6J1xcZTkyMSd9LmNmLWljb24uQ3Vib3VuaWZvcm06YmVmb3Jle2NvbnRlbnQ6J1xcZTkyMid9LmNmLWljb24uRGFya21vZGVfTmV3OmJlZm9yZXtjb250ZW50OidcXGU5MjMnfS5jZi1pY29uLkRhc2hIOmJlZm9yZXtjb250ZW50OidcXGU5MjQnfS5jZi1pY29uLkRvd25sb2FkX05ldzpiZWZvcmV7Y29udGVudDonXFxlOTI1J30uY2YtaWNvbi5FeHBhbmRCOmJlZm9yZXtjb250ZW50OidcXGU5MjYnfS5jZi1pY29uLkV4cG9ydF9OZXc6YmVmb3Jle2NvbnRlbnQ6J1xcZTkyNyd9LmNmLWljb24uRXllQ2xvc2VkOmJlZm9yZXtjb250ZW50OidcXGU5MjgnfS5jZi1pY29uLkZ1bm5lbFNvbGlkOmJlZm9yZXtjb250ZW50OidcXGU5MjknfS5jZi1pY29uLkdyYXBoTGluZV9OZXc6YmVmb3Jle2NvbnRlbnQ6J1xcZTkyYSd9LmNmLWljb24uR3JvdXA6YmVmb3Jle2NvbnRlbnQ6J1xcZTkyYid9LmNmLWljb24uSGlzdG9yeTpiZWZvcmV7Y29udGVudDonXFxlOTJjJ30uY2YtaWNvbi5EdXBsaWNhdGVfTmV3OmJlZm9yZXtjb250ZW50OidcXGU5MmQnfS5jZi1pY29uLkluc3RhbGw6YmVmb3Jle2NvbnRlbnQ6J1xcZTkyZSd9LmNmLWljb24uTGF5ZXJzOmJlZm9yZXtjb250ZW50OidcXGU5MmYnfS5jZi1pY29uLkxpZ2h0bW9kZV9OZXc6YmVmb3Jle2NvbnRlbnQ6J1xcZTkzMCd9LmNmLWljb24uTGluazpiZWZvcmV7Y29udGVudDonXFxlOTMxJ30uY2YtaWNvbi5Mb2NrOmJlZm9yZXtjb250ZW50OidcXGU5MzInfS5jZi1pY29uLk1vcmU6YmVmb3Jle2NvbnRlbnQ6J1xcZTkzMyd9LmNmLWljb24uUGVuY2lsOmJlZm9yZXtjb250ZW50OidcXGU5MzQnfS5jZi1pY29uLlBsdXNfTmV3OmJlZm9yZXtjb250ZW50OidcXGU5MzUnfS5jZi1pY29uLlJlZnJlc2hfTmV3OmJlZm9yZXtjb250ZW50OidcXGU5MzYnfS5jZi1pY29uLlJlbW92ZV9OZXc6YmVmb3Jle2NvbnRlbnQ6J1xcZTkzNyd9LmNmLWljb24uU2F2ZTpiZWZvcmV7Y29udGVudDonXFxlOTM4J30uY2YtaWNvbi5TYXZlT3V0bGluZTpiZWZvcmV7Y29udGVudDonXFxlOTUxJ30uY2YtaWNvbi5TZWFyY2hfTmV3OmJlZm9yZXtjb250ZW50OidcXGU5MzknfS5jZi1pY29uLlNoYXJlOmJlZm9yZXtjb250ZW50OidcXGU5M2EnfS5jZi1pY29uLlNoaWVsZDpiZWZvcmV7Y29udGVudDonXFxlOTNiJ30uY2YtaWNvbi5TdGFyOmJlZm9yZXtjb250ZW50OidcXGU5M2MnfS5jZi1pY29uLlN0YXJTbWlsZTpiZWZvcmV7Y29udGVudDonXFxlOTNkJ30uY2YtaWNvbi5TdWJzY3JpYmU6YmVmb3Jle2NvbnRlbnQ6J1xcZTkzZSd9LmNmLWljb24uU3dpdGNoX05ldzpiZWZvcmV7Y29udGVudDonXFxlOTNmJ30uY2YtaWNvbi5UZXh0X05ldzpiZWZvcmV7Y29udGVudDonXFxlOTQwJ30uY2YtaWNvbi5UcmFzaF9OZXc6YmVmb3Jle2NvbnRlbnQ6J1xcZTk0MSd9LmNmLWljb24uVW5kbzpiZWZvcmV7Y29udGVudDonXFxlOTQyJ30uY2YtaWNvbi5VcGxvYWRfTmV3OmJlZm9yZXtjb250ZW50OidcXGU5NDMnfS5jZi1pY29uLlVwbG9hZF9PdXRsaW5lOmJlZm9yZXtjb250ZW50OidcXGU5NDQnfS5jZi1pY29uLlVzZXI6YmVmb3Jle2NvbnRlbnQ6J1xcZTk0NSd9LmNmLWljb24uWmFwOmJlZm9yZXtjb250ZW50OidcXGU5NDYnfUBmb250LWZhY2V7Zm9udC1mYW1pbHk6J2FsZXJ0LWljb25zJztzcmM6dXJsKFwiZm9udHMvYWxlcnQtaWNvbnMuZW90P2QwZHpuaFwiKTtzcmM6dXJsKFwiZm9udHMvYWxlcnQtaWNvbnMuZW90P2QwZHpuaCNpZWZpeFwiKSBmb3JtYXQoXCJlbWJlZGRlZC1vcGVudHlwZVwiKSx1cmwoXCJmb250cy9hbGVydC1pY29ucy50dGY/ZDBkem5oXCIpIGZvcm1hdChcInRydWV0eXBlXCIpLHVybChcImZvbnRzL2FsZXJ0LWljb25zLndvZmY/ZDBkem5oXCIpIGZvcm1hdChcIndvZmZcIiksdXJsKFwiZm9udHMvYWxlcnQtaWNvbnMuc3ZnP2QwZHpuaCNpY29tb29uXCIpIGZvcm1hdChcInN2Z1wiKTtmb250LXdlaWdodDpub3JtYWw7Zm9udC1zdHlsZTpub3JtYWw7Zm9udC1kaXNwbGF5OmJsb2NrfVtjbGFzc149XCJhbGVydC1pY29uLVwiXSxbY2xhc3MqPVwiIGFsZXJ0LWljb24tXCJde2ZvbnQtZmFtaWx5OidhbGVydC1pY29ucycgIWltcG9ydGFudDtzcGVhazpuZXZlcjtmb250LXN0eWxlOm5vcm1hbDtmb250LXdlaWdodDpub3JtYWw7Zm9udC12YXJpYW50Om5vcm1hbDt0ZXh0LXRyYW5zZm9ybTpub25lO2xpbmUtaGVpZ2h0OjE7LXdlYmtpdC1mb250LXNtb290aGluZzphbnRpYWxpYXNlZDstbW96LW9zeC1mb250LXNtb290aGluZzpncmF5c2NhbGV9LmFsZXJ0LWljb24tY2F1dGlvbjpiZWZvcmV7Y29udGVudDpcIlxcNDNcIn0uYWxlcnQtaWNvbi1pbXBvcnRhbnQ6YmVmb3Jle2NvbnRlbnQ6XCJcXDQ5XCJ9LmFsZXJ0LWljb24tbm90ZTpiZWZvcmV7Y29udGVudDpcIlxcNGVcIn0uYWxlcnQtaWNvbi10aXA6YmVmb3Jle2NvbnRlbnQ6XCJcXDU0XCJ9LmFsZXJ0LWljb24td2FybmluZzpiZWZvcmV7Y29udGVudDpcIlxcNTdcIn0udjN7Zm9udC1mYW1pbHk6J2ljb21vb24tdjMnfS52NHtmb250LWZhbWlseTonaWNvbW9vbi12NCd9I2xvYWRpbmd7cG9zaXRpb246Zml4ZWQ7d2lkdGg6MTAwdnc7aGVpZ2h0OjEwMHZoO3otaW5kZXg6MTAwMDtiYWNrZ3JvdW5kLWNvbG9yOiNmZmY7b3BhY2l0eToxO3RyYW5zaXRpb246b3BhY2l0eSAuNXN9QGtleWZyYW1lcyBzcGlubmVye3Rve3RyYW5zZm9ybTpyb3RhdGUoMzYwZGVnKX19LnNwaW5uZXI6YmVmb3Jle2NvbnRlbnQ6Jyc7Ym94LXNpemluZzpib3JkZXItYm94O3Bvc2l0aW9uOmFic29sdXRlO3RvcDo1MCU7bGVmdDo1MCU7d2lkdGg6NTBweDtoZWlnaHQ6NTBweDttYXJnaW4tdG9wOi0yNXB4O21hcmdpbi1sZWZ0Oi0yNXB4O2JvcmRlci1yYWRpdXM6NTAlO2JvcmRlcjozcHggc29saWQgI0U3RThFQjtib3JkZXItdG9wLWNvbG9yOiM1MTNDQzY7YW5pbWF0aW9uOnNwaW5uZXIgLjZzIGxpbmVhciBpbmZpbml0ZX0jaW5mbHV4LWhlYWRlcntmb250LWZhbWlseTpcIlByb3hpbWEgTm92YVwiLHNhbnMtc2VyaWY7cGFkZGluZzoxMHB4O2Rpc3BsYXk6ZmxleDthbGlnbi1pdGVtczpjZW50ZXI7anVzdGlmeS1jb250ZW50OnNwYWNlLWJldHdlZW47YmFja2dyb3VuZC1jb2xvcjojMjAyMDI4fSNpbmZsdXgtaGVhZGVyIGF7dGV4dC1kZWNvcmF0aW9uOm5vbmV9I2luZmx1eC1oZWFkZXIgYS5iYWNre2NvbG9yOiNmZmY7dHJhbnNpdGlvbjpjb2xvciAuMnN9I2luZmx1eC1oZWFkZXIgYS5iYWNrOmhvdmVye2NvbG9yOiMwMEEzRkZ9I2luZmx1eC1oZWFkZXIgYS5iYWNrOmJlZm9yZXtjb250ZW50OlwiXFxlOTE5XCI7Zm9udC1mYW1pbHk6J2ljb21vb24tdjInO21hcmdpbi1yaWdodDouNjVyZW19I2luZmx1eC1oZWFkZXIgYS5idG57cGFkZGluZzouNXJlbSAuNzVyZW0gLjVyZW0gLjY1cmVtO2ZvbnQtc2l6ZTouODVyZW07Zm9udC13ZWlnaHQ6NTAwO2NvbG9yOiNENEQ3REQ7YmFja2dyb3VuZDojMzgzODQ2O2JvcmRlci1yYWRpdXM6NC41cHg7dHJhbnNpdGlvbjphbGwgLjJzfSNpbmZsdXgtaGVhZGVyIGEuYnRuOmJlZm9yZXtjb250ZW50OlwiXFxlOTM0XCI7ZGlzcGxheTppbmxpbmUtYmxvY2s7Zm9udC1zaXplOi45NXJlbTttYXJnaW4tcmlnaHQ6LjVyZW07Zm9udC1mYW1pbHk6J2ljb21vb24tdjInfSNpbmZsdXgtaGVhZGVyIGEuYnRuOmhvdmVye2NvbG9yOiNmZmY7YmFja2dyb3VuZDojMDBBM0ZGfUBtZWRpYSAobWF4LXdpZHRoOiA2MDBweCl7I2luZmx1eC1oZWFkZXIgc3Bhbi52ZXJzaW9ue2Rpc3BsYXk6bm9uZX19LmNqdGJBSyBoMSwuY2p0YkFLIGgyLC5janRiQUsgaDMsLmNqdGJBSyBoNCwuY2p0YkFLIGg1LC5janRiQUsgaDYsLmNqdGJBSyBwLC5janRiQUsgbGksLmNqdGJBSyB0aCwuY2p0YkFLIHRke2ZvbnQtZmFtaWx5OlwiUHJveGltYSBOb3ZhXCIsc2Fucy1zZXJpZiAhaW1wb3J0YW50fSNyZWRvYyBoMSwjcmVkb2MgaDIsI3JlZG9jIGgze2ZvbnQtd2VpZ2h0OjUwMCAhaW1wb3J0YW50fS5kbHVKRGp7cGFkZGluZzoyMHB4IDB9LmRUSldRSHtjb2xvcjojNTQ1NjY3O2ZvbnQtc2l6ZToycmVtfS5qSWRwVkp7YmFja2dyb3VuZDojMkFBM0ZGO2NvbG9yOiNmZmY7Ym9yZGVyOm5vbmU7Ym9yZGVyLXJhZGl1czozcHg7Zm9udC1mYW1pbHk6XCJQcm94aW1hIE5vdmFcIixzYW5zLXNlcmlmO2ZvbnQtc2l6ZTouODVyZW07Zm9udC13ZWlnaHQ6NTAwO3RyYW5zaXRpb246YmFja2dyb3VuZC1jb2xvciAuMnN9LmpJZHBWSjpob3ZlcntiYWNrZ3JvdW5kLWNvbG9yOiMwMEEzRkZ9Lld4V1hwe2NvbG9yOiM1NDU2Njc7Zm9udC1zaXplOjEuNzVyZW19LmlvWVRxQSwuYnhjSFlJLC5ob1VvZW57Y29sb3I6IzU0NTY2N30uZXNwb3pHe2NvbG9yOiM2NzY5Nzh9LmJuRlBoTyBhe2NvbG9yOiMyQUEzRkZ9LmJuRlBoTyBhOnZpc2l0ZWR7Y29sb3I6IzJBQTNGRn0ucmVkb2MtanNvbntmb250LWZhbWlseTpcIklCTSBQbGV4IE1vbm9cIixtb25vc3BhY2UgIWltcG9ydGFudH0uZmxmeFVNIGNvZGUsLmdEc1dMayBjb2RlLC5rVFZ5U0R7Zm9udC1mYW1pbHk6XCJJQk0gUGxleCBNb25vXCIsbW9ub3NwYWNlICFpbXBvcnRhbnQ7Y29sb3I6IzczNkVDRDtiYWNrZ3JvdW5kOiNFREVERkY7Ym9yZGVyLWNvbG9yOiNFREVERkZ9LmpzVEF4THtjb2xvcjojRjk1RjUzfS5oTFZ6U0YsLmZEdkZNcHtiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMTAzLDIxNSw3OCwwLjIpO2NvbG9yOiMwMDZGNDl9LmJ5THJCZ3tiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMjQ5LDk1LDgzLDAuMSk7Y29sb3I6I0Y5NUY1M30uZ1pkRHNNe2JhY2tncm91bmQtY29sb3I6I0ZBRkFGQ30uZ3BiY0ZrOmhvdmVyLC5zYy1lVHV3c3ouYWN0aXZle2JhY2tncm91bmQtY29sb3I6I0VFRUZGMn0uU211V0UsLmdjVXp2RywuYmJWaXlTLC5zYy1ocldFTWcgbGFiZWx7Zm9udC1mYW1pbHk6XCJQcm94aW1hIE5vdmFcIixzYW5zLXNlcmlmICFpbXBvcnRhbnR9LmZ5VXlrcXtmb250LXdlaWdodDo1MDB9LmNGd01jcC5wb3N0e2JhY2tncm91bmQtY29sb3I6IzA2NkZDNX0uY0Z3TWNwLmdldHtiYWNrZ3JvdW5kLWNvbG9yOiMzNEJCNTV9LmNGd01jcC5wdXR7YmFja2dyb3VuZC1jb2xvcjojOTM5NEZGfS5jRndNY3AucGF0Y2h7YmFja2dyb3VuZC1jb2xvcjojRkZEMjU1O2NvbG9yOnJnYmEoNTYsNTYsNzAsMC43NSl9LmNGd01jcC5kZWxldGV7YmFja2dyb3VuZC1jb2xvcjojRjk1RjUzfS5nY1V6dkcsLmlOekxDazpob3Zlcntjb2xvcjojQkYyRkU1fS5kdFVpYncsLmZMVUtnantiYWNrZ3JvdW5kLWNvbG9yOiMyMDIwMjh9LmR0VWlidyBoMywuZHRVaWJ3IGg0LC5kdFVpYncgaDUsLmR0VWlidyBoNiwuZkxVS2dqIGgzLC5mTFVLZ2ogaDQsLmZMVUtnaiBoNSwuZkxVS2dqIGg2e2ZvbnQtZmFtaWx5OlwiUHJveGltYSBOb3ZhXCIsc2Fucy1zZXJpZiAhaW1wb3J0YW50O2ZvbnQtd2VpZ2h0OjUwMCAhaW1wb3J0YW50fS5pcnBxeXk+LnJlYWN0LXRhYnNfX3RhYi1wYW5lbHtiYWNrZ3JvdW5kLWNvbG9yOiMwRjBFMTV9LmRITEtldSwuZlZheG5Be3BhZGRpbmctbGVmdDoxMHB4O2JhY2tncm91bmQtY29sb3I6IzBGMEUxNX0uaXJwcXl5PnVsPmxpe2JhY2tncm91bmQtY29sb3I6IzBGMEUxNTtib3JkZXItcmFkaXVzOjNweH0uaXJwcXl5PnVsPmxpLnJlYWN0LXRhYnNfX3RhYi0tc2VsZWN0ZWR7Y29sb3I6IzUxM0NDNn0uaXJwcXl5PnVsPmxpLnRhYi1lcnJvcntjb2xvcjojREM0RTU4fS5pcnBxeXk+dWw+bGkudGFiLXN1Y2Nlc3N7Y29sb3I6IzAwOUY1Rn0uYk5ZQ0FKLC5qQmpZYlYsLmhPY3pSQiwuZlJzckRjLC5oUHNrWmR7Zm9udC1mYW1pbHk6XCJQcm94aW1hIE5vdmFcIixzYW5zLXNlcmlmO2ZvbnQtd2VpZ2h0OjUwMDtsZXR0ZXItc3BhY2luZzouMDRlbTtib3JkZXItcmFkaXVzOjNweH0uYk5ZQ0FKe2JhY2tncm91bmQtY29sb3I6IzA2NkZDNX0uakJqWWJWe2JhY2tncm91bmQtY29sb3I6IzAwOUY1Rn0uaE9jelJCe2JhY2tncm91bmQtY29sb3I6IzkzOTRGRn0uZlJzckRje2JhY2tncm91bmQtY29sb3I6I0ZGRDI1NTtjb2xvcjojMzgzODQ2fS5oUHNrWmR7YmFja2dyb3VuZC1jb2xvcjojRjk1RjUzfS5nekFvVWJ7YmFja2dyb3VuZC1jb2xvcjojMjAyMDI4O2ZvbnQtZmFtaWx5OlwiUHJveGltYSBOb3ZhXCIsc2Fucy1zZXJpZn0uaUVOVkFze2ZvbnQtZmFtaWx5OlwiSUJNIFBsZXggTW9ub1wiLG1vbm9zcGFjZX0uZHBNYmF1e2ZvbnQtZmFtaWx5OlwiUHJveGltYSBOb3ZhXCIsc2Fucy1zZXJpZn0uZkNKbUN7Zm9udC1mYW1pbHk6XCJQcm94aW1hIE5vdmFcIixzYW5zLXNlcmlmfS5mQ0ptQyBzcGFue2JvcmRlci1yYWRpdXM6M3B4fS5rWkhKY0N7Zm9udC1mYW1pbHk6XCJJQk0gUGxleCBNb25vXCIsbW9ub3NwYWNlfS5qQ2d5bHEgLnRva2VuLnN0cmluZ3tjb2xvcjojNjdENzRFfS5qQ2d5bHEgLnRva2VuLnN0cmluZythe2NvbG9yOiMwMEEzRkZ9LmpDZ3lscSAudG9rZW4uYm9vbGVhbntjb2xvcjojZjk1NWIwfVxuXG4vKiMgc291cmNlTWFwcGluZ1VSTD1hcGkuY3NzLm1hcCAqLyJdfQ== */ \ No newline at end of file diff --git a/pr-preview/pr-6954/dark-theme.56ede7c71d3385876a1c762e207372a1699e829612d789f952885f820d50394a.css b/pr-preview/pr-6954/dark-theme.56ede7c71d3385876a1c762e207372a1699e829612d789f952885f820d50394a.css deleted file mode 100644 index e058229c4..000000000 --- a/pr-preview/pr-6954/dark-theme.56ede7c71d3385876a1c762e207372a1699e829612d789f952885f820d50394a.css +++ /dev/null @@ -1,2 +0,0 @@ -.sidebar{transition:all .2s}.sidebar .search-and-nav-toggle,.sidebar #nav-tree{opacity:1;transition:all .3s;transition-delay:.1s}.search-btn{opacity:0;width:0;overflow:visible;transition:opacity .2s, width .2s .2s !important} -/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInN0ZGluIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLFNBQVMsa0JBQWtCLENBQUMsbURBQW1ELFNBQVMsQ0FBQyxrQkFBa0IsQ0FBQyxvQkFBb0IsQ0FBQyxZQUFZLFNBQVMsQ0FBQyxPQUFPLENBQUMsZ0JBQWdCLENBQUMsZ0RBQWdEIiwiZmlsZSI6InN0ZGluIiwic291cmNlc0NvbnRlbnQiOlsiLnNpZGViYXJ7dHJhbnNpdGlvbjphbGwgLjJzfS5zaWRlYmFyIC5zZWFyY2gtYW5kLW5hdi10b2dnbGUsLnNpZGViYXIgI25hdi10cmVle29wYWNpdHk6MTt0cmFuc2l0aW9uOmFsbCAuM3M7dHJhbnNpdGlvbi1kZWxheTouMXN9LnNlYXJjaC1idG57b3BhY2l0eTowO3dpZHRoOjA7b3ZlcmZsb3c6dmlzaWJsZTt0cmFuc2l0aW9uOm9wYWNpdHkgLjJzLCB3aWR0aCAuMnMgLjJzICFpbXBvcnRhbnR9XG5cbi8qIyBzb3VyY2VNYXBwaW5nVVJMPWRhcmstdGhlbWUuY3NzLm1hcCAqLyJdfQ== */ \ No newline at end of file diff --git a/pr-preview/pr-6954/dark-theme.b3a8ef60ebd199a0faa15cafe8348d73875cf6152e056e32f98e114b8b5c2ace.css b/pr-preview/pr-6954/dark-theme.b3a8ef60ebd199a0faa15cafe8348d73875cf6152e056e32f98e114b8b5c2ace.css deleted file mode 100644 index 63be2c5ae..000000000 --- a/pr-preview/pr-6954/dark-theme.b3a8ef60ebd199a0faa15cafe8348d73875cf6152e056e32f98e114b8b5c2ace.css +++ /dev/null @@ -1,2 +0,0 @@ -body{font-size:18px;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}@font-face{font-family:"Proxima Nova";src:url("fonts/proxima-nova.otf") format("opentype");font-weight:300}@font-face{font-family:'Proxima Nova';src:url("fonts/proxima-nova-medium.otf") format("opentype");font-weight:400}@font-face{font-family:'Proxima Nova';src:url("fonts/proxima-nova-semibold.otf") format("opentype");font-weight:500 600}@font-face{font-family:'Proxima Nova';src:url("fonts/proxima-nova-bold.otf") format("opentype");font-weight:700}@font-face{font-family:'icomoon-v2';src:url("fonts/icomoon-v2.eot?itn2ph");src:url("fonts/icomoon-v2.eot?itn2ph#iefix") format("embedded-opentype"),url("fonts/icomoon-v2.ttf?itn2ph") format("truetype"),url("fonts/icomoon-v2.woff?itn2ph") format("woff"),url("fonts/icomoon-v2.svg?itn2ph#icomoon-v2") format("svg");font-weight:normal;font-style:normal;font-display:block}[class^="icon-"],[class*=" icon-"]{font-family:'icomoon-v2' !important;speak:never;font-style:normal;font-weight:normal;font-variant:normal;text-transform:none;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.icon-bar-chart:before{content:"\e913"}.icon-influx-logo:before{content:"\e900"}.icon-influx-logotype:before{content:"\e901"}.icon-alert-triangle:before{content:"\e902"}.icon-arrow-down:before{content:"\e903"}.icon-moon1:before{content:"\e904"}.icon-search:before{content:"\e905"}.icon-sun1:before{content:"\e906"}.icon-arrow-down-circle:before{content:"\e907"}.icon-arrow-down-left:before{content:"\e908"}.icon-arrow-down-right:before{content:"\e909"}.icon-arrow-left:before{content:"\e90a"}.icon-arrow-left-circle:before{content:"\e90b"}.icon-arrow-right:before{content:"\e90c"}.icon-arrow-right-circle:before{content:"\e90d"}.icon-arrow-up:before{content:"\e90e"}.icon-arrow-up-circle:before{content:"\e90f"}.icon-arrow-up-left:before{content:"\e910"}.icon-arrow-up-right:before{content:"\e911"}.icon-check:before{content:"\e912"}.icon-heart1:before{content:"\e914"}.icon-settings:before{content:"\e915"}.icon-zoom-in:before{content:"\e916"}.icon-zoom-out:before{content:"\e917"}.icon-chevron-down:before{content:"\e918"}.icon-chevron-left:before{content:"\e919"}.icon-chevron-right:before{content:"\e91a"}.icon-chevron-up:before{content:"\e91b"}.icon-menu:before{content:"\e91c"}.icon-download:before{content:"\e91d"}.icon-minus:before{content:"\e91e"}.icon-plus:before{content:"\e91f"}.icon-add-cell:before{content:"\e920"}.icon-alert:before{content:"\e921"}.icon-calendar:before{content:"\e922"}.icon-checkmark:before{content:"\e923"}.icon-cog-thick:before{content:"\e924"}.icon-dashboards:before{content:"\e925"}.icon-data-explorer:before{content:"\e926"}.icon-ui-download:before{content:"\e927"}.icon-duplicate:before{content:"\e928"}.icon-export:before{content:"\e929"}.icon-fullscreen:before{content:"\e92a"}.icon-influx-icon:before{content:"\e92b"}.icon-note:before{content:"\e92c"}.icon-organizations:before{content:"\e92d"}.icon-pause:before{content:"\e92e"}.icon-pencil:before{content:"\e92f"}.icon-play:before{content:"\e930"}.icon-ui-plus:before{content:"\e931"}.icon-refresh:before{content:"\e932"}.icon-remove:before{content:"\e933"}.icon-alert-circle:before{content:"\e934"}.icon-crown:before{content:"\e935"}.icon-trash:before{content:"\e936"}.icon-triangle:before{content:"\e937"}.icon-x:before{content:"\e938"}.icon-wrench-2:before{content:"\e939"}.icon-chat:before{content:"\e93a"}.icon-bell:before{content:"\e93b"}.icon-disks-nav:before{content:"\e93c"}.icon-wrench-nav:before{content:"\e93d"}.icon-user:before{content:"\e93e"}.icon-cloud:before{content:"\e93f"}.icon-users-trio:before{content:"\e940"}.icon-nav-chat:before{content:"\e941"}.icon-map2:before{content:"\e94c"}.icon-eye-closed:before{content:"\e956"}.icon-eye-open:before{content:"\e957"}.icon-book-pencil:before{content:"\e965"}.icon-heart:before{content:"\e9da"}.icon-loop2:before{content:"\ea2e"}.icon-github:before{content:"\eab0"}.icon-tux:before{content:"\eabd"}.icon-appleinc:before{content:"\eabe"}.icon-windows8:before{content:"\eac2"}@font-face{font-family:'icomoon-v3';src:url("fonts/icomoon-v3.eot") format("embedded-opentype");src:url("fonts/icomoon-v3.eot") format("embedded-opentype"),url("fonts/icomoon-v3.woff2") format("woff2"),url("fonts/icomoon-v3.ttf") format("truetype"),url("fonts/icomoon-v3.woff") format("woff"),url("fonts/icomoon-v3.svg") format("svg");font-weight:normal;font-style:normal}.cf-icon{font-family:'icomoon-v3';font-style:normal;font-weight:normal;font-variant:normal;text-transform:none;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.cf-icon.add-cell-new:before{content:'\e976'}.cf-icon.alert-triangle-new:before{content:'\e977'}.cf-icon.annotate-new:before{content:'\e978'}.cf-icon.arrow-down-new:before{content:'\e979'}.cf-icon.arrow-left-new:before{content:'\e97a'}.cf-icon.arrow-right-new:before{content:'\e97b'}.cf-icon.arrow-up-new:before{content:'\e97c'}.cf-icon.bar-chart-new:before{content:'\e97d'}.cf-icon.build-outline-new:before{content:'\e97e'}.cf-icon.caret-down-new:before{content:'\e97f'}.cf-icon.caret-left-new:before{content:'\e980'}.cf-icon.caret-right-new:before{content:'\e981'}.cf-icon.caret-up-new:before{content:'\e982'}.cf-icon.checkmark-new:before{content:'\e983'}.cf-icon.clipboard-new:before{content:'\e984'}.cf-icon.clock-new:before{content:'\e985'}.cf-icon.cog-outline-new:before{content:'\e986'}.cf-icon.cog-solid-new:before{content:'\e987'}.cf-icon.crown-solid-new:before{content:'\e988'}.cf-icon.dark-mode-new:before{content:'\e989'}.cf-icon.download-new:before{content:'\e98a'}.cf-icon.duplicate-new:before{content:'\e98b'}.cf-icon.expand-new:before{content:'\e98c'}.cf-icon.export-new:before{content:'\e98d'}.cf-icon.eye-open-new:before{content:'\e98e'}.cf-icon.graph-line-new:before{content:'\e98f'}.cf-icon.handle-new:before{content:'\e990'}.cf-icon.home-outline-new:before{content:'\e991'}.cf-icon.info-new:before{content:'\e992'}.cf-icon.ingest-new:before{content:'\e993'}.cf-icon.light-mode-new:before{content:'\e994'}.cf-icon.lock-outline-new:before{content:'\e995'}.cf-icon.log-out-new:before{content:'\e996'}.cf-icon.pin-new:before{content:'\e997'}.cf-icon.plus-new:before{content:'\e998'}.cf-icon.question-mark-new:before{content:'\e999'}.cf-icon.refresh-new:before{content:'\e99a'}.cf-icon.remove-new:before{content:'\e99b'}.cf-icon.search-new:before{content:'\e99c'}.cf-icon.sidebar-close-new:before{content:'\e99d'}.cf-icon.sidebar-open-new:before{content:'\e99e'}.cf-icon.stop-new:before{content:'\e99f'}.cf-icon.switch-new:before{content:'\e9a0'}.cf-icon.text-new:before{content:'\e9a1'}.cf-icon.trash-new:before{content:'\e9a2'}.cf-icon.user-outline-new:before{content:'\e9a3'}.cf-icon.more:before{content:'\e974'}.cf-icon.drag-to-expand-white:before{content:'\e901';color:#fff}.cf-icon.drag-to-expand:before{content:'\e902'}.cf-icon.shield-solid:before{content:'\e903'}.cf-icon.lock:before{content:'\e900'}.cf-icon.heart-solid:before{content:'\e96f'}.cf-icon.bucket-outline:before{content:'\e961'}.cf-icon.chat:before{content:'\e933'}.cf-icon.currency-eur:before{content:'\e968'}.cf-icon.currency-gbp:before{content:'\e969'}.cf-icon.currency-usd:before{content:'\e96a'}.cf-icon.moon:before{content:'\e95c'}.cf-icon.share-solid:before{content:'\e96e'}.cf-icon.shield:before{content:'\e96b'}.cf-icon.sun:before{content:'\e95d'}.cf-icon.upgrade:before{content:'\e95f'}.cf-icon.merge:before{content:'\e975'}.cf-icon.add-cell:before{content:'\e925'}.cf-icon.alert-triangle:before{content:'\e926'}.cf-icon.alerts:before{content:'\e921'}.cf-icon.annotate:before{content:'\e953'}.cf-icon.annotate-plus:before{content:'\e952'}.cf-icon.authzero:before{content:'\e951'}.cf-icon.bar-chart:before{content:'\e913'}.cf-icon.bell:before{content:'\e934'}.cf-icon.bell-solid:before{content:'\e937'}.cf-icon.brush:before{content:'\e93d'}.cf-icon.capacitor2:before{content:'\e923'}.cf-icon.caret-down:before{content:'\e904'}.cf-icon.caret-left:before{content:'\e905'}.cf-icon.caret-right:before{content:'\e906'}.cf-icon.caret-up:before{content:'\e907'}.cf-icon.checkmark:before{content:'\e918'}.cf-icon.circle:before{content:'\e940'}.cf-icon.circle-thick:before{content:'\e90e'}.cf-icon.clock:before{content:'\e920'}.cf-icon.cog-outline:before{content:'\e91c'}.cf-icon.cog-thick:before{content:'\e90c'}.cf-icon.collapse:before{content:'\e91b'}.cf-icon.crown-outline:before{content:'\e908'}.cf-icon.crown2:before{content:'\e94b'}.cf-icon.cube:before{content:'\e90b'}.cf-icon.cubo:before{content:'\e95e'}.cf-icon.cubo-uniform:before{content:'\e93c'}.cf-icon.dash-f:before{content:'\e927'}.cf-icon.dash-h:before{content:'\e929'}.cf-icon.dash-j:before{content:'\e92b'}.cf-icon.disks:before{content:'\e950'}.cf-icon.download:before{content:'\e91d'}.cf-icon.duplicate:before{content:'\e917'}.cf-icon.erlenmeyer:before{content:'\e958'}.cf-icon.expand-a:before{content:'\e944'}.cf-icon.expand-b:before{content:'\e942'}.cf-icon.export:before{content:'\e90f'}.cf-icon.eye:before{content:'\e91f'}.cf-icon.eye-closed:before{content:'\e956'}.cf-icon.eye-open:before{content:'\e957'}.cf-icon.fn:before{content:'\e960'}.cf-icon.github:before{content:'\e928'}.cf-icon.google:before{content:'\e92a'}.cf-icon.group:before{content:'\e909'}.cf-icon.heroku:before{content:'\e947'}.cf-icon.heroku-simple:before{content:'\e948'}.cf-icon.import:before{content:'\e910'}.cf-icon.link:before{content:'\e92e'}.cf-icon.maximize:before{content:'\e955'}.cf-icon.minimize:before{content:'\e954'}.cf-icon.nav-chat:before{content:'\e941'}.cf-icon.oauth:before{content:'\e94f'}.cf-icon.octagon:before{content:'\e92d'}.cf-icon.okta:before{content:'\e912'}.cf-icon.pause:before{content:'\e94a'}.cf-icon.pencil:before{content:'\e92f'}.cf-icon.play:before{content:'\e914'}.cf-icon.plus:before{content:'\e90a'}.cf-icon.plus-skinny:before{content:'\e922'}.cf-icon.polaroid:before{content:'\e95b'}.cf-icon.pulse-c:before{content:'\e936'}.cf-icon.redo:before{content:'\e959'}.cf-icon.refresh:before{content:'\e949'}.cf-icon.remove:before{content:'\e90d'}.cf-icon.search:before{content:'\e916'}.cf-icon.server2:before{content:'\e94c'}.cf-icon.shuffle:before{content:'\e94e'}.cf-icon.square:before{content:'\e93e'}.cf-icon.square-check:before{content:'\e943'}.cf-icon.star:before{content:'\e930'}.cf-icon.stop:before{content:'\e931'}.cf-icon.text-block:before{content:'\e911'}.cf-icon.trash:before{content:'\e915'}.cf-icon.triangle:before{content:'\e92c'}.cf-icon.undo:before{content:'\e95a'}.cf-icon.user:before{content:'\e919'}.cf-icon.user-add:before{content:'\e91e'}.cf-icon.user-outline:before{content:'\e932'}.cf-icon.user-remove:before{content:'\e939'}.cf-icon.users-trio:before{content:'\e945'}.cf-icon.wand:before{content:'\e94d'}.cf-icon.wood:before{content:'\e970'}.cf-icon.wrench:before{content:'\e971'}.cf-icon.zap:before{content:'\e973'}.cf-icon.bell-ringing:before{content:'\e935'}.cf-icon.calendar:before{content:'\e938'}.cf-icon.cloud:before{content:'\e93f'}.cf-icon.cubo-nav:before{content:'\e91a'}.cf-icon.dashboards:before{content:'\e93a'}.cf-icon.disks-nav:before{content:'\e946'}.cf-icon.graphline-2:before{content:'\e924'}.cf-icon.users-duo:before{content:'\e93b'}.cf-icon.wrench-nav:before{content:'\e972'}.cf-icon.book:before{content:'\e966'}.cf-icon.book-code:before{content:'\e967'}.cf-icon.book-pencil:before{content:'\e965'}.cf-icon.bucket-solid:before{content:'\e962'}.cf-icon.funnel-outline:before{content:'\e963'}.cf-icon.funnel-solid:before{content:'\e964'}.cf-icon.layers:before{content:'\e96c'}.cf-icon.share:before{content:'\e96d'}@font-face{font-family:'icomoon-v4';src:url("fonts/icomoon-v4.eot") format("embedded-opentype");src:url("fonts/icomoon-v4.eot") format("embedded-opentype"),url("fonts/icomoon-v4.woff2") format("woff2"),url("fonts/icomoon-v4.ttf") format("truetype"),url("fonts/icomoon-v4.woff") format("woff"),url("fonts/icomoon-v4.svg") format("svg");font-weight:normal;font-style:normal}.cf-icon{font-family:'icomoon-v4';font-style:normal;font-weight:normal;font-variant:normal;text-transform:none;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.cf-icon.FolderOpen:before{content:'\e956'}.cf-icon.Bill:before{content:'\e954'}.cf-icon.Logout:before{content:'\e950'}.cf-icon.PieChart:before{content:'\e957'}.cf-icon.CurrencyDollar:before{content:'\e952'}.cf-icon.Sync:before{content:'\e955'}.cf-icon.Subtract:before{content:'\e953'}.cf-icon.Timer:before{content:'\e94f'}.cf-icon.CaretOutlineRight:before{content:'\e94b'}.cf-icon.CollapseLeft:before{content:'\e94c'}.cf-icon.CollapseRight:before{content:'\e94d'}.cf-icon.DoubleCaretVertical:before{content:'\e94e'}.cf-icon.QuestionMark_Outline:before{content:'\e94a'}.cf-icon.Info_New:before{content:'\e949'}.cf-icon.SidebarClose:before{content:'\e947'}.cf-icon.SidebarOpen:before{content:'\e948'}.cf-icon.CaretDown_New:before{content:'\e912'}.cf-icon.CaretLeft_New:before{content:'\e913'}.cf-icon.CaretRight_New:before{content:'\e914'}.cf-icon.CaretUp_New:before{content:'\e915'}.cf-icon.Play:before{content:'\e900'}.cf-icon.Pause:before{content:'\e901'}.cf-icon.EyeOpen:before{content:'\e902'}.cf-icon.Flask:before{content:'\e903'}.cf-icon.AddCell_New:before{content:'\e904'}.cf-icon.QuestionMark:before{content:'\e905'}.cf-icon.AlertTriangle:before{content:'\e906'}.cf-icon.Annotate_New:before{content:'\e907'}.cf-icon.ArrowDown_New:before{content:'\e908'}.cf-icon.ArrowLeft_New:before{content:'\e909'}.cf-icon.ArrowRight_New:before{content:'\e90a'}.cf-icon.BarChart_New:before{content:'\e90b'}.cf-icon.Bell:before{content:'\e90c'}.cf-icon.BookCode:before{content:'\e90d'}.cf-icon.BookOutline:before{content:'\e90e'}.cf-icon.Braces:before{content:'\e90f'}.cf-icon.BucketSolid:before{content:'\e910'}.cf-icon.Calendar:before{content:'\e911'}.cf-icon.Chat:before{content:'\e916'}.cf-icon.Checkmark_New:before{content:'\e917'}.cf-icon.CircleThick:before{content:'\e918'}.cf-icon.Clipboard_New:before{content:'\e919'}.cf-icon.Clock_New:before{content:'\e91a'}.cf-icon.Cloud:before{content:'\e91b'}.cf-icon.CogOutline_New:before{content:'\e91c'}.cf-icon.CogSolid_New:before{content:'\e91d'}.cf-icon.Coppercoin:before{content:'\e91e'}.cf-icon.CrownSolid_New:before{content:'\e91f'}.cf-icon.Cube:before{content:'\e920'}.cf-icon.CuboSolid:before{content:'\e921'}.cf-icon.Cubouniform:before{content:'\e922'}.cf-icon.Darkmode_New:before{content:'\e923'}.cf-icon.DashH:before{content:'\e924'}.cf-icon.Download_New:before{content:'\e925'}.cf-icon.ExpandB:before{content:'\e926'}.cf-icon.Export_New:before{content:'\e927'}.cf-icon.EyeClosed:before{content:'\e928'}.cf-icon.FunnelSolid:before{content:'\e929'}.cf-icon.GraphLine_New:before{content:'\e92a'}.cf-icon.Group:before{content:'\e92b'}.cf-icon.History:before{content:'\e92c'}.cf-icon.Duplicate_New:before{content:'\e92d'}.cf-icon.Install:before{content:'\e92e'}.cf-icon.Layers:before{content:'\e92f'}.cf-icon.Lightmode_New:before{content:'\e930'}.cf-icon.Link:before{content:'\e931'}.cf-icon.Lock:before{content:'\e932'}.cf-icon.More:before{content:'\e933'}.cf-icon.Pencil:before{content:'\e934'}.cf-icon.Plus_New:before{content:'\e935'}.cf-icon.Refresh_New:before{content:'\e936'}.cf-icon.Remove_New:before{content:'\e937'}.cf-icon.Save:before{content:'\e938'}.cf-icon.SaveOutline:before{content:'\e951'}.cf-icon.Search_New:before{content:'\e939'}.cf-icon.Share:before{content:'\e93a'}.cf-icon.Shield:before{content:'\e93b'}.cf-icon.Star:before{content:'\e93c'}.cf-icon.StarSmile:before{content:'\e93d'}.cf-icon.Subscribe:before{content:'\e93e'}.cf-icon.Switch_New:before{content:'\e93f'}.cf-icon.Text_New:before{content:'\e940'}.cf-icon.Trash_New:before{content:'\e941'}.cf-icon.Undo:before{content:'\e942'}.cf-icon.Upload_New:before{content:'\e943'}.cf-icon.Upload_Outline:before{content:'\e944'}.cf-icon.User:before{content:'\e945'}.cf-icon.Zap:before{content:'\e946'}@font-face{font-family:'alert-icons';src:url("fonts/alert-icons.eot?d0dznh");src:url("fonts/alert-icons.eot?d0dznh#iefix") format("embedded-opentype"),url("fonts/alert-icons.ttf?d0dznh") format("truetype"),url("fonts/alert-icons.woff?d0dznh") format("woff"),url("fonts/alert-icons.svg?d0dznh#icomoon") format("svg");font-weight:normal;font-style:normal;font-display:block}[class^="alert-icon-"],[class*=" alert-icon-"]{font-family:'alert-icons' !important;speak:never;font-style:normal;font-weight:normal;font-variant:normal;text-transform:none;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.alert-icon-caution:before{content:"\43"}.alert-icon-important:before{content:"\49"}.alert-icon-note:before{content:"\4e"}.alert-icon-tip:before{content:"\54"}.alert-icon-warning:before{content:"\57"}.v3{font-family:'icomoon-v3'}.v4{font-family:'icomoon-v4'}.tooltip{position:relative;display:inline-block;font-weight:500;color:#D6F622}.tooltip:hover{cursor:help}.tooltip:hover .tooltip-container{visibility:visible}.tooltip:hover .tooltip-text{opacity:1;transform:translate(-50%, -2.5rem)}.tooltip .tooltip-container{position:absolute;top:0;left:50%;transform:translateX(-50%);overflow:visible;visibility:hidden}.tooltip .tooltip-text{font-weight:500;position:absolute;border-radius:2px;padding:.15rem .75rem;font-size:0.9rem;line-height:1.75rem;left:50%;transform:translate(-50%, -1.75rem);transition:all 0.2s ease;white-space:nowrap;opacity:0;color:#202028;background-color:#D6F622}.tooltip .tooltip-text:after{content:'';position:absolute;left:50%;bottom:-14px;transform:translateX(-50%);border-top:8px solid #D6F622;border-right:8px solid transparent;border-bottom:8px solid transparent;border-left:8px solid transparent}.tooltip.shift-left .tooltip-text{left:75%;transform:translate(-75%, -1.75rem)}.tooltip.shift-left .tooltip-text:after{left:75%;transform:translateX(-75%)}.tooltip.shift-left:hover .tooltip-text{transform:translate(-75%, -2.5rem)}.tooltip.shift-right .tooltip-text{left:25%;transform:translate(-25%, -1.75rem)}.tooltip.shift-right .tooltip-text:after{left:25%;transform:translateX(-25%)}.tooltip.shift-right:hover .tooltip-text{transform:translate(-25%, -2.5rem)}.tooltip.right:hover .tooltip-container{visibility:visible}.tooltip.right:hover .tooltip-text{opacity:1;transform:translate(70%)}.tooltip.right .tooltip-container{left:0%;transform:translateX(60%)}.tooltip.right .tooltip-text{left:60%;transform:translate(60%);transition:all 0.2s ease}.tooltip.right .tooltip-text:after{top:50%;left:-14px;transform:translateY(-50%);border-top:16px solid transparent;border-right:16px solid #D6F622;border-bottom:16px solid transparent;border-left:8px solid transparent}th .tooltip{color:#D6F622}th .tooltip:hover .tooltip-container{visibility:visible}th .tooltip:hover .tooltip-text{opacity:1;transform:translate(-50%, 1.75rem)}th .tooltip .tooltip-text{transform:translate(-50%, 1rem)}th .tooltip .tooltip-text:after{content:'';position:absolute;height:0;left:50%;top:-14px;transform:translateX(-50%);border-top:8px solid transparent;border-right:8px solid transparent;border-bottom:8px solid #D6F622;border-left:8px solid transparent}.datepicker{display:none}.datepicker.active{display:block}.datepicker-picker{background-color:#14141F;border-radius:2px;display:inline-block}.datepicker-picker span{-webkit-touch-callout:none;border:0;border-radius:2px;cursor:default;display:block;flex:1;text-align:center;-webkit-user-select:none;-moz-user-select:none;user-select:none}.datepicker-main{padding:2px}.datepicker-controls{display:flex}.datepicker-controls .button{align-items:center;background-color:#14141F;border:1px solid #dbdbdb;border-radius:2px;box-shadow:none;color:#FAFAFC;cursor:pointer;display:inline-flex;font-size:1rem;height:2.25em;justify-content:center;line-height:1.5;margin:0;padding:calc(.375em - 1px) 0.75em;position:relative;text-align:center;vertical-align:top;white-space:nowrap;transition:all .2s}.datepicker-controls .button:active{outline:none;border-color:#4a4a4a;color:#D4D7DD}.datepicker-controls .button:focus{outline:none;border-color:#3273dc;color:#D4D7DD}.datepicker-controls .button:focus:not(:active){box-shadow:0 0 0 0.125em rgba(50,115,220,0.25)}.datepicker-controls .button:hover{border-color:#b5b5b5;color:#FAFAFC}.datepicker-controls .button[disabled]{cursor:not-allowed}.datepicker-controls .view-switch{flex:auto}.datepicker-controls .next-btn{padding-left:.375rem;padding-right:.375rem;width:2.25rem}.datepicker-controls .prev-btn{padding-left:.375rem;padding-right:.375rem;width:2.25rem}.datepicker-controls .next-btn.disabled{visibility:hidden}.datepicker-controls .prev-btn.disabled{visibility:hidden}.datepicker-grid{display:flex;flex-wrap:wrap;width:15.75rem}.datepicker-view{display:flex}.datepicker-view .days-of-week{display:flex}.datepicker-view .days .datepicker-cell{flex-basis:14.2857142857%}.datepicker-view .dow{flex-basis:14.2857142857%;font-size:.875rem;font-weight:700;height:1.5rem;line-height:1.5rem}.datepicker-view .week{height:2.25rem;line-height:2.25rem;color:#b5b5b5;font-size:.75rem;width:2.25rem}.datepicker-view.datepicker-grid .datepicker-cell{flex-basis:25%;height:4.5rem;line-height:4.5rem}.datepicker-cell{height:2.25rem;line-height:2.25rem}.datepicker-cell:not(.disabled):hover{background-color:rgba(212,215,221,0.15);cursor:pointer}.datepicker-title{background-color:#f5f5f5;box-shadow:inset 0 -1px 1px rgba(10,10,10,0.1);font-weight:700;padding:.375rem .75rem;text-align:center}.datepicker-header .datepicker-controls{padding:2px 2px 0}.datepicker-header .datepicker-controls .button{border-color:transparent;font-weight:700}.datepicker-header .datepicker-controls .button:hover{background-color:rgba(212,215,221,0.15)}.datepicker-header .datepicker-controls .button:focus:not(:active){box-shadow:0 0 0 0.125em rgba(255,255,255,0.25)}.datepicker-header .datepicker-controls .button:active{background-color:#00A3FF}.datepicker-header .datepicker-controls .button[disabled]{box-shadow:none}.datepicker-cell.focused:not(.selected){background-color:#00A3FF;color:#fff}.datepicker-cell.selected{background-color:#00A3FF;color:#fff;font-weight:600}.datepicker-cell.selected:hover{background-color:#00A3FF;color:#fff;font-weight:600}.datepicker-cell.disabled{color:#dbdbdb}.datepicker-cell.next:not(.disabled){color:#7a7a7a}.datepicker-cell.prev:not(.disabled){color:#7a7a7a}.datepicker-cell.next.selected{color:#e6e6e6}.datepicker-cell.prev.selected{color:#e6e6e6}.datepicker-cell.highlighted:not(.selected):not(.range):not(.today){background-color:rgba(212,215,221,0.25);border-radius:0}.datepicker-cell.highlighted:not(.selected):not(.range):not(.today):not(.disabled):hover{background-color:#eee}.datepicker-cell.highlighted:not(.selected):not(.range):not(.today).focused{background-color:#00A3FF;color:#fff}.datepicker-cell.today:not(.selected){background-color:#00d1b2}.datepicker-cell.today:not(.selected):not(.disabled){color:#fff}.datepicker-cell.today.focused:not(.selected){background-color:#00c4a7}.datepicker-input.in-edit{border-color:#2366d1}.datepicker-input.in-edit:active{box-shadow:0 0 0.25em 0.25em rgba(35,102,209,0.2)}.datepicker-input.in-edit:focus{box-shadow:0 0 0.25em 0.25em rgba(35,102,209,0.2)}@media (max-width: 22.5rem){.datepicker-view .week{width:1.96875rem}.calendar-weeks+.days .datepicker-grid{width:13.78125rem}}/*! normalize.scss v0.1.0 | MIT License | based on git.io/normalize */html{font-family:sans-serif;-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%}body{margin:0}article,aside,details,figcaption,figure,footer,header,hgroup,main,menu,nav,section,summary{display:block}audio,canvas,progress,video{display:inline-block;vertical-align:baseline}audio:not([controls]){display:none;height:0}[hidden],template{display:none}a{background-color:transparent}a:active,a:hover{outline:0}abbr[title]{border-bottom:1px dotted}b,strong{font-weight:bold}dfn{font-style:italic}h1{font-size:2em;margin:0.67em 0}mark{background:#ff0;color:#000}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sup{top:-0.5em}sub{bottom:-0.25em}img{border:0}svg:not(:root){overflow:hidden}figure{margin:1em 40px}hr{box-sizing:content-box;height:0}pre{overflow:auto}code,kbd,pre,samp{font-family:monospace, monospace;font-size:1em}button,input,optgroup,select,textarea{color:inherit;font:inherit;margin:0}button{overflow:visible}button,select{text-transform:none}button,html input[type="button"],input[type="reset"],input[type="submit"]{-webkit-appearance:button;cursor:pointer}button[disabled],html input[disabled]{cursor:default}button::-moz-focus-inner,input::-moz-focus-inner{border:0;padding:0}input{line-height:normal}input[type="checkbox"],input[type="radio"]{box-sizing:border-box;padding:0}input[type="number"]::-webkit-inner-spin-button,input[type="number"]::-webkit-outer-spin-button{height:auto}input[type="search"]{-webkit-appearance:textfield;box-sizing:content-box}input[type="search"]::-webkit-search-cancel-button,input[type="search"]::-webkit-search-decoration{-webkit-appearance:none}fieldset{border:1px solid #c0c0c0;margin:0 2px;padding:0.35em 0.625em 0.75em}legend{border:0;padding:0}textarea{overflow:auto}optgroup{font-weight:bold}table{border-collapse:collapse;border-spacing:0}td,th{padding:0}html{height:100%}body{min-height:100%;font-family:"Proxima Nova",sans-serif;background:#07070E}body>img[referrerpolicy="no-referrer-when-downgrade"]{display:none}*{box-sizing:border-box}a{transition:color .2s, background-color .2s}.page-wrapper{display:flex;flex-grow:1}.bowlofsweets{display:none}@media (max-width: 800px){.page-wrapper{flex-direction:column}}.topnav{display:flex;padding:.75rem .75rem .65rem;justify-content:space-between;position:relative;box-sizing:border-box;z-index:99}.topnav .influx-home{font-family:'icomoon-v2';font-size:1.4rem;color:#fff;text-decoration:none;vertical-align:middle}.topnav .influx-home:hover{color:#00A3FF}.topnav .influx-home .icon-influx-logotype{margin-left:.6rem}.topnav .divider{height:100%;border-left:1px solid rgba(255,255,255,0.5);margin:0 1rem 0 .65rem}.topnav .docs-home{display:inline-block;vertical-align:text-top;font-weight:500;font-size:1.1rem;color:#fff;text-decoration:none}.topnav .docs-home:hover{color:#00A3FF}.topnav .topnav-left{margin-right:.15rem;padding:.25rem .15rem;z-index:1}.topnav .topnav-right{display:flex;position:absolute;right:.75rem;top:.75rem}.topnav .selector-dropdowns{display:flex;z-index:100;padding-right:.25rem}.topnav .product-list{position:relative}.topnav .product-list #product-dropdown{display:inline-block;width:100%;color:#fff;height:2rem;background:linear-gradient(225deg, #d30971,#9b2aff);background-attachment:fixed;font-weight:500;font-size:1.05rem;border-radius:6px;overflow:hidden;cursor:pointer}.topnav .product-list #product-dropdown:after{content:"\e918";font-family:'icomoon-v2';position:absolute;top:.45rem;right:.4rem;transition:all .3s}.topnav .product-list #product-dropdown .selected{padding:0 1.75rem 0 .75rem;line-height:0}.topnav .product-list #product-dropdown.open:after{transform:rotate(180deg)}.topnav .product-list #dropdown-items{opacity:0;height:0;pointer-events:none;margin-top:-10px;transition:opacity .2s, margin-top .5s}.topnav .product-list #dropdown-items.open{opacity:1;pointer-events:auto;margin-top:0;height:auto}.topnav .product-list #dropdown-items.open .product-group{margin:0 0 5px}.topnav .product-list #dropdown-items .product-group{background:linear-gradient(225deg, #d30971,#9b2aff);background-attachment:fixed;border-radius:6px;box-shadow:1px 3px 10px #07070E;margin:0 0 -10px;transition:margin .5s}.topnav .product-list #dropdown-items .product-group:last-child{margin:0}.topnav .product-list #dropdown-items .group-title{padding:.5rem .75rem .2rem;font-weight:bold;color:#181820;font-size:1rem}.topnav .product-list #dropdown-items .group-title p{margin:0;padding:.1rem .1rem .3rem;-o-border-image:linear-gradient(to right, rgba(255,255,255,0.5) 0%, rgba(255,255,255,0) 100%) 1;border-image:linear-gradient(to right, rgba(255,255,255,0.5) 0%, rgba(255,255,255,0) 100%) 1;border-bottom:2px solid}.topnav .product-list #dropdown-items ul.item-list{padding:0;margin:0;list-style:none}.topnav .product-list #dropdown-items ul.item-list.products[data-category]:before{content:attr(data-category);display:inline-block;margin:.5rem .75rem .15rem;font-size:.85rem;color:#181820,0.8;text-transform:uppercase;font-weight:bold;letter-spacing:.04rem;opacity:.75;mix-blend-mode:multiply}.topnav .product-list #dropdown-items a{display:block;text-decoration:none;font-size:1.05rem;font-weight:500;white-space:nowrap;color:#fff;padding:.3rem 1.5rem .3rem .75rem;background:rgba(255,255,255,0)}.topnav .product-list #dropdown-items a:hover{background:rgba(255,255,255,0.3)}.topnav .product-list #dropdown-items a.active{background:rgba(255,255,255,0.3)}.topnav .product-list #dropdown-items a:last-child{border-radius:0 0 2px 2px;position:relative}.topnav .product-list #dropdown-items a span.state{font-size:.9em;opacity:.65;font-style:italic}.topnav .buttons{display:flex;margin-left:.5rem}.topnav .theme-switch,.topnav #search-btn,.topnav .url-trigger{display:inline-block;padding:0;line-height:0;color:rgba(255,255,255,0.5);background:none;height:30px;width:30px;border:none;transition:color .2s, opacity .2s;-webkit-appearance:none;-moz-appearance:none;appearance:none;overflow:visible}.topnav .theme-switch:focus,.topnav #search-btn:focus,.topnav .url-trigger:focus{outline:none}.topnav .theme-switch:hover,.topnav #search-btn:hover,.topnav .url-trigger:hover{color:#fff;cursor:pointer}.topnav .theme-switch.theme-switch-dark,.topnav #search-btn.theme-switch-dark,.topnav .url-trigger.theme-switch-dark{display:none;font-size:1.15rem}.topnav .theme-switch.theme-switch-light,.topnav #search-btn.theme-switch-light,.topnav .url-trigger.theme-switch-light{display:inline-block;font-size:1.3rem}.topnav .url-trigger{font-size:1.1rem;vertical-align:top;z-index:1}.topnav .search-btn{width:0;opacity:0}.topnav.feature-board .back-btn{color:#FAFAFC;background:rgba(212,215,221,0.15);border:1px solid rgba(212,215,221,0);font-weight:500;text-decoration:none;padding:.35rem 1rem;border-radius:2px;font-size:.9rem;transition:border .2s}.topnav.feature-board .back-btn:before{content:'\e909';font-family:'icomoon-v4';font-weight:bold;line-height:0;margin:0 .5rem 0 -.25rem;vertical-align:middle}.topnav.feature-board .back-btn:hover{text-decoration:none;border:1px solid rgba(212,215,221,0.25)}@media (max-width: 800px){.docs-home .long{display:none}.docs-home .short:after{content:"s"}}@media (max-width: 600px){.icon-influx-logotype{display:none}.topnav{min-height:5.75rem}.topnav.feature-board{min-height:auto}.topnav-right{flex-direction:column-reverse;align-items:flex-end;width:calc(100% - 1.5rem)}.search-btn{display:none}.topnav .selector-dropdowns{width:100%;margin-top:.6rem;padding-right:0}.topnav .selector-dropdowns .product-list{width:calc(100vw - 1.6rem)}.topnav .selector-dropdowns .product-list .product-dropdown{width:100%}}.home-content{color:#FAFAFC;width:100%;max-width:1300px;margin:0 auto}.home-content .section{width:100%;margin:0 auto;padding:2rem 2rem 0;display:block;position:relative}.home-content .search .sidebar--search{font-size:1.1rem}.home-content .search .sidebar--search input{padding:.75em 2.35rem .75rem 1rem;border-radius:6px;position:relative;box-shadow:none}.home-content .search .sidebar--search input::-moz-placeholder{color:rgba(255,255,255,0.65)}.home-content .search .sidebar--search input::placeholder{color:rgba(255,255,255,0.65)}.home-content .search .sidebar--search:after{font-size:2rem;top:.45rem;right:.45rem}.home-content .search .sidebar--search .algolia-autocomplete{position:relative}.home-content .search .sidebar--search .algolia-autocomplete:after{content:"";position:absolute;display:block;border-radius:6px;top:0;left:0;box-shadow:2px 2px 6px rgba(15,14,21,0.5);height:100%;width:100%;mix-blend-mode:multiply;z-index:-1}.home-content .search .sidebar--search .algolia-autocomplete.algolia-autocomplete-left .ds-dropdown-menu,.home-content .search .sidebar--search .algolia-autocomplete.algolia-autocomplete-right .ds-dropdown-menu{top:auto !important;left:0 !important;margin-bottom:1.5rem}.home-content .search .sidebar--search .algolia-autocomplete.algolia-autocomplete-left .ds-dropdown-menu:after,.home-content .search .sidebar--search .algolia-autocomplete.algolia-autocomplete-right .ds-dropdown-menu:after{content:"";box-shadow:2px 2px 6px rgba(15,14,21,0.5);height:100%;width:100%;mix-blend-mode:multiply}.home-content .padding-wrapper{padding:0 2rem}.home-content h1{text-align:center;color:#fff}.home-content .product-group{background:#14141F;padding:3rem;margin-bottom:2rem;border-radius:30px}.home-content .product-group .products{display:flex;flex-wrap:wrap;width:100%;margin:0 -1rem}.home-content .product-group .product{padding:0 1rem;display:flex;flex:1 1 33%;flex-direction:column;justify-content:space-between;max-width:33%;min-width:200px}.home-content .product-group .product .product-info p{margin-bottom:.5rem;font-size:1.1rem;line-height:1.5rem;color:rgba(212,215,221,0.7)}.home-content .product-group .product .product-info h3[state]::after{content:attr(state);margin-left:.5rem;font-size:1rem;padding:.25em .5em .25em .4em;background:linear-gradient(45deg, #d30971,#9b2aff);color:#fff;border-radius:4px;font-style:italic;vertical-align:middle}.home-content .product-group .product ul.product-links{padding-left:0;list-style:none}.home-content .product-group .product ul.product-links li:not(:last-child){margin-bottom:.35rem}.home-content .product-group .product ul.product-links a{text-decoration:none;color:#fff;font-weight:500;position:relative}.home-content .product-group .product ul.product-links a::before{content:"";position:absolute;bottom:-2px;height:2px;width:0%;background:linear-gradient(45deg, #d30971,#9b2aff);transition:width .2s}.home-content .product-group .product ul.product-links a::after{content:"\e90a";font-family:'icomoon-v4';font-weight:bold;font-size:1.3rem;display:inline-block;position:absolute;background:linear-gradient(45deg, #d30971,#9b2aff);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;right:0;transform:translateX(0.25rem);opacity:0;transition:transform .2s, opacity .2s}.home-content .product-group .product ul.product-links a:hover::before{width:100%}.home-content .product-group .product ul.product-links a:hover::after{transform:translateX(1.5rem);opacity:1}.home-content .product-group h2{display:inline-block;font-size:2.75rem;margin:0;color:#14141F;background:linear-gradient(45deg, #d30971,#9b2aff);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}.home-content .product-group h3{font-size:1.6rem;margin:1rem 0 0}.home-content .product-group h3 a{text-decoration:none;color:#fff;position:relative}.home-content .product-group h3 a::before{content:"";position:absolute;bottom:-2px;height:2px;width:0%;background:linear-gradient(45deg, #d30971,#9b2aff);transition:width .2s}.home-content .product-group h3 a:hover::before{width:100%}.home-content .product-group h3 .version{font-size:.9em;opacity:.5}.home-content .product-group h4{font-size:1.1rem;margin:1.5rem 0 .5rem;display:inline-block;padding-right:1rem;color:rgba(212,215,221,0.7);background:#14141F}.home-content .product-group .categories{display:flex;flex-direction:row;flex-wrap:wrap;width:calc(100% + 2rem)}.home-content .product-group .categories .category.full-width{width:100%}.home-content .product-group .categories .category.two-thirds{width:66.66%}.home-content .product-group .categories .category.two-thirds .product{max-width:50%}.home-content .product-group .categories .category.one-third{width:33.33%}.home-content .product-group .categories .category.one-third .product{max-width:100%}.home-content .product-group .category-head{margin:1rem 0 2rem}.home-content .product-group .category-head::after{content:"";display:block;border-top:1px solid #383846;margin-top:-1.15rem;width:calc(100% - 2rem)}.home-content #influxdb3{margin-top:1.75rem}.home-content #influxdb3 h2+p{margin-top:.75rem}.home-content #telegraf{background:linear-gradient(65deg, #020d66, #020a47);color:#fff;position:relative;overflow:hidden;display:flex;flex-direction:row;align-items:center;justify-content:space-between}.home-content #telegraf .bg-overlay{position:absolute;top:0;left:0;width:100%;height:100%;background-image:url("/img/bg-texture-new.png");background-position:bottom}.home-content #telegraf h2{font-size:2.5rem;background:linear-gradient(270deg, #00A3FF,#5ee4e4);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}.home-content #telegraf h2+p{margin-top:.65rem}.home-content #telegraf ul.product-links{padding-left:0;margin:0 3rem 0 2rem;list-style:none}.home-content #telegraf ul.product-links li:not(:last-child){margin-bottom:.35rem}.home-content #telegraf ul.product-links a{text-decoration:none;color:#fff;font-weight:500;position:relative}.home-content #telegraf ul.product-links a::before{content:"";position:absolute;bottom:-2px;height:2px;width:0%;background:linear-gradient(270deg, #00A3FF,#5ee4e4);transition:width .2s}.home-content #telegraf ul.product-links a::after{content:"\e90a";font-family:'icomoon-v4';font-weight:bold;font-size:1.3rem;display:inline-block;position:absolute;background:linear-gradient(270deg, #00A3FF,#5ee4e4);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;right:0;transform:translateX(0.25rem);opacity:0;transition:transform .2s, opacity .2s}.home-content #telegraf ul.product-links a:hover::before{width:100%}.home-content #telegraf ul.product-links a:hover::after{transform:translateX(1.5rem);opacity:1}.home-content #learn-more{margin-bottom:2rem}.home-content #learn-more h3{font-size:1.8rem;margin:1rem 0 2rem}.home-content #learn-more .learn-items{display:flex;flex-direction:row;justify-content:flex-start}.home-content #learn-more .learn-items .item{max-width:25%;flex:1 1 0;display:flex;flex-direction:column;margin:0 .75rem}.home-content #learn-more .learn-items .item .icon svg{max-height:60px;max-width:60px}.home-content #learn-more .learn-items .item .icon .c1{fill:#fff}.home-content #learn-more .learn-items .item .icon .c2{fill:#07070E}.home-content #learn-more .learn-items .item .icon .magenta{fill:#d30971}.home-content #learn-more .learn-items .item h4{font-size:1.4rem;margin:1rem 0 0}.home-content #learn-more .learn-items .item p{margin:.5rem 0 1.5rem;line-height:1.7rem}.home-content #learn-more .learn-items .item p:last-child{margin-bottom:0}.home-content #learn-more .learn-items .item a{position:relative;display:inline;color:#fff;font-weight:500;text-decoration:none}.home-content #learn-more .learn-items .item a::before{content:"";display:inline-block;position:absolute;left:0;bottom:-4px;margin-top:.25rem;height:2px;background:linear-gradient(45deg, #d30971,#9b2aff);width:0;transition:width .2s}.home-content #learn-more .learn-items .item a::after{content:"\e90a";font-family:'icomoon-v4';font-weight:bold;font-size:1.3rem;display:inline-block;position:absolute;background:linear-gradient(270deg, #d30971,#9b2aff);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;right:0;transform:translateX(0.25rem);opacity:0;transition:transform .2s, opacity .2s}.home-content #learn-more .learn-items .item a:hover::before{width:100%}.home-content #learn-more .learn-items .item a:hover::after{transform:translateX(1.5rem);opacity:1}.home-content #learn-more .learn-items .item>*:last-child{margin-top:auto}.home-content #copyright{width:100%;padding:1rem 3rem;color:rgba(212,215,221,0.5)}.home-content #copyright p{margin:0;text-align:right;font-size:.9rem}@media (max-width: 900px){.home-content .product-group .products .product{max-width:50%;margin-bottom:2rem}}@media (max-width: 720px){.home-content .product-group .products{flex-direction:column}.home-content .product-group .products .product{margin-bottom:1rem;max-width:100%}.home-content .product-group .products .product ul{margin-bottom:0}.home-content .product-group .categories .category.two-thirds{width:100%}.home-content .product-group .categories .category.two-thirds .product{max-width:100%}.home-content .product-group .categories .category.one-third{width:100%}.home-content .product-group .categories .category.one-third .product{max-width:100%}.home-content #telegraf{flex-direction:column;align-items:flex-start}.home-content #telegraf ul.product-links{margin:1rem 0 0}}@media (max-width: 800px){.home-content #learn-more{margin-bottom:0}.home-content #learn-more h4{margin-top:0}.home-content #learn-more .learn-items{flex-wrap:wrap}.home-content #learn-more .learn-items .item{max-width:45%;flex:1 1 50%;margin-bottom:2rem}}@media (max-width: 600px){.home-content .section,.home-content .padding-wrapper{padding:0 1rem}.home-content h1{font-size:1.55rem;line-height:1.5rem;padding:0 1.75rem;margin-bottom:-.5rem}.home-content .product-group{padding:1.5rem}.home-content .product-group p,.home-content .product-group .product .product-info p{font-size:1.05rem}.home-content .product-group h2{font-size:2.1rem}.home-content .product-group h3{font-size:1.5rem}.home-content .product-group h4{font-size:1rem}.home-content #telegraf{padding:1.75rem}.home-content #telegraf h2{font-size:2rem}.home-content #learn-more h3{font-size:1.5rem}.home-content #learn-more .learn-items .item h4{font-size:1.2rem}.home-content #copyright p{text-align:center}}@media (max-width: 540px){.home-content #learn-more .learn-items{flex-direction:column}.home-content #learn-more .learn-items .item{max-width:100%;margin:0 0 2rem}}.sidebar{display:block;position:relative;flex-grow:1;padding:0 1em;width:25%}.sidebar--search{position:relative;flex-grow:1}.sidebar--search:after{content:"\e905";display:block;font-family:'icomoon-v2';position:absolute;top:.25rem;right:.25rem;color:#D4D7DD;font-size:1.8rem}.sidebar--search input{font-family:"Proxima Nova",sans-serif;font-weight:500;font-size:1.1rem;background:#1A1A2A;border-radius:2px;border:1px solid #1A1A2A;padding:.5em 2.15rem .5rem .5rem;width:100%;color:#fff;transition-property:border, box-shadow;transition-duration:.2s;box-shadow:2px 2px 6px rgba(15,14,21,0.5)}.sidebar--search input:focus{outline:none;border-color:#00A3FF;box-shadow:1px 1px 10px rgba(0,163,255,0.5);border-radius:2px}.sidebar--search input::-moz-placeholder{color:rgba(255,255,255,0.35);font-weight:normal}.sidebar--search input::placeholder{color:rgba(255,255,255,0.35);font-weight:normal}.sidebar .search-and-nav-toggle{display:flex;width:100%;margin-bottom:.7rem}.sidebar #contents-toggle-btn{display:block;margin:.35rem .05rem .25rem 1.2rem;width:20px;height:20px}.sidebar #contents-toggle-btn .toggle-hamburger{display:block;position:relative;margin-top:.65rem;background:rgba(255,255,255,0.5);width:20px;height:2px;transition:all .3s;transform:rotate(0deg)}.sidebar #contents-toggle-btn .toggle-hamburger:before,.sidebar #contents-toggle-btn .toggle-hamburger:after{content:"";display:block;position:absolute;width:20px;height:2px;border-radius:1px;background:rgba(255,255,255,0.5);transform:rotate(0deg);transition:all .3s}.sidebar #contents-toggle-btn .toggle-hamburger:before{top:-6px}.sidebar #contents-toggle-btn .toggle-hamburger:after{top:6px}.sidebar #contents-toggle-btn:hover .toggle-hamburger{background:#fff}.sidebar #contents-toggle-btn:hover .toggle-hamburger:before,.sidebar #contents-toggle-btn:hover .toggle-hamburger:after{background:#fff}.sidebar #contents-toggle-btn.open .toggle-hamburger{background:#07070E;transform:rotate(90deg)}.sidebar #contents-toggle-btn.open .toggle-hamburger:before{transform:rotate(-135deg);top:0}.sidebar #contents-toggle-btn.open .toggle-hamburger:after{transform:rotate(-45deg);top:0}.sidebar #nav-tree{list-style:none;padding-left:1.5rem;margin-bottom:1rem}.sidebar #nav-tree ul{list-style:none;padding-left:2.3rem;border-left:2px solid #333346}.sidebar #nav-tree li{margin-top:.5rem;position:relative}.sidebar #nav-tree li:before{content:"";width:4px;height:4px;top:.45em;left:-1em;display:block;position:absolute;background:#333346}.sidebar #nav-tree li ul{margin-left:-.96em}.sidebar #nav-tree li ul li:before{top:.4em}.sidebar #nav-tree li ul.open{margin-top:-.25em;padding-top:.25em}.sidebar #nav-tree li.active:before{background:#D6F622}.sidebar #nav-tree li.active>a{color:#D6F622}.sidebar #nav-tree li.active>a:hover{color:#D6F622}.sidebar #nav-tree li.active>.children-toggle{background:#D6F622}.sidebar #nav-tree li.active>.children-toggle:before,.sidebar #nav-tree li.active>.children-toggle:after{background:#07070E}.sidebar #nav-tree li.active>ul{border-left:2px solid #D6F622}.sidebar #nav-tree a{text-decoration:none;font-weight:500;display:inline-block}.sidebar #nav-tree .nav-category>a{color:#00A3FF;font-size:1.2rem}.sidebar #nav-tree .nav-category>a:hover{color:#fff}.sidebar #nav-tree .nav-item>a{color:#D4D7DD}.sidebar #nav-tree .nav-item>a:hover{color:#00A3FF}.sidebar #nav-tree .children{height:0;overflow:hidden}.sidebar #nav-tree .children.open{height:auto}.sidebar #nav-tree .children-toggle{width:1.12rem;height:1.12rem;position:absolute;top:.1rem;left:-1.6rem;display:block;background:#333346;border-radius:50%}.sidebar #nav-tree .children-toggle:before,.sidebar #nav-tree .children-toggle:after{content:"";position:absolute;display:block;background:#E7E8EB;transition:all .3s}.sidebar #nav-tree .children-toggle:before{top:4px;left:8px;height:10px;width:2px}.sidebar #nav-tree .children-toggle:after{top:8px;left:4px;height:2px;width:10px}.sidebar #nav-tree .children-toggle:hover{background:#00A3FF}.sidebar #nav-tree .children-toggle:hover:before,.sidebar #nav-tree .children-toggle:hover:after{background:#E7E8EB}.sidebar #nav-tree .children-toggle.open:before{transform:rotate(90deg)}.sidebar #nav-tree .children-toggle.open:after{transform:rotate(180deg)}.sidebar #nav-tree h4{margin:2rem 0 0 -1rem;color:rgba(255,255,255,0.5);font-weight:700;text-transform:uppercase;font-size:.95rem;letter-spacing:.08rem}.sidebar #nav-tree h4.platform:after,.sidebar #nav-tree h4.flux:after{content:"\e911";font-family:"icomoon-v2";font-style:normal;font-size:1rem;opacity:.4;margin-left:.25rem}.sidebar .feature-board-badge{position:relative;padding:1rem;margin:2rem 0 1.5rem -1.5rem;background:rgba(0,163,255,0.05);border:1px solid rgba(0,163,255,0.2);border-radius:8px;text-decoration:none;transition:background .2s, border-color .2s;overflow:hidden}.sidebar .feature-board-badge:before{content:"NEW";position:absolute;padding:.1rem 1.2rem;font-size:.65rem;letter-spacing:.03rem;font-weight:bold;top:6px;right:-17px;color:#fff;background:#d30971;transform:rotate(45deg)}.sidebar .feature-board-badge h5{margin:0 0 .25rem 0;color:#00A3FF;font-size:1.2rem}.sidebar .feature-board-badge p{margin:0;color:#D4D7DD;font-size:0.9rem;line-height:1.4rem;font-weight:normal;font-style:italic}.sidebar .feature-board-badge:hover{border-color:rgba(0,163,255,0.75)}@media (max-width: 800px){.sidebar{width:100%}.sidebar #nav-tree{height:0;overflow:hidden;margin:0}.sidebar #nav-tree.open{height:auto;overflow:auto;margin-bottom:2rem}}@media (min-width: 801px){.sidebar #contents-toggle-btn{display:none}}@media (min-width: 801px) and (max-width: 1200px){.sidebar{width:30%}}.sidebar-toggle{position:absolute;display:block;height:35px;top:3.25rem;z-index:100}.sidebar-toggle:hover{cursor:pointer}.sidebar-toggle:hover:before,.sidebar-toggle:hover:after{cursor:default}.sidebar-toggle:hover a{color:#d4d7dd}.sidebar-toggle:before,.sidebar-toggle:after{display:block;position:absolute;width:10px;height:10px}.sidebar-toggle:before{top:-14px}.sidebar-toggle:after{bottom:-14px;transform:rotateX(180deg)}.sidebar-toggle>a{font-family:"icomoon-v2";color:rgba(212,215,221,0.5);text-decoration:none}.sidebar-toggle{padding:0.4rem 0.6rem;width:35px}.sidebar-toggle>a{font-size:1rem}.content-wrapper .sidebar-toggle{display:none;left:0;background-color:#07070E;border-radius:0 2px 2px 0}.content-wrapper .sidebar-toggle:before,.content-wrapper .sidebar-toggle:after{content:url("data:image/svg+xml;charset=UTF-8,\a \a \a ");left:0}.content-wrapper .sidebar-toggle:before{transform:rotateY(180deg)}.content-wrapper .sidebar-toggle:after{transform:rotate(180deg)}.sidebar .sidebar-toggle{right:0;background-color:#14141F;border-radius:2px 0 0 2px}.sidebar .sidebar-toggle:before,.sidebar .sidebar-toggle:after{content:url("data:image/svg+xml;charset=UTF-8,\a \a \a ");right:0}@media (max-width: 800px){.sidebar-toggle{display:none}}.content-wrapper{flex-grow:1;width:75%;position:relative;border-radius:2px 0 0 2px;overflow:hidden;z-index:0}.content-wrapper .copyright{padding:.5rem 1rem .5rem .5rem;text-align:right;font-size:.9rem;color:rgba(212,215,221,0.5)}@media (max-width: 800px){.content-wrapper{width:100%}}@media (min-width: 801px) and (max-width: 1200px){.content-wrapper{width:70%}}.article{background:#14141F;border-radius:2px 0 0 2px;padding:2rem 4rem 3rem}.article--content{max-width:850px;font-size:1.1rem}.article--content h1,.article--content h2,.article--content h3,.article--content h4,.article--content h5,.article--content h6{color:#fff}.article--content h1 a,.article--content h2 a,.article--content h3 a,.article--content h4 a,.article--content h5 a,.article--content h6 a{color:inherit !important;font-weight:inherit !important;text-decoration:none}.article--content h1 a code:after,.article--content h2 a code:after,.article--content h3 a code:after,.article--content h4 a code:after,.article--content h5 a code:after,.article--content h6 a code:after{border:none}.article--content h2+.highlight pre,.article--content h3+.highlight pre,.article--content h4+.highlight pre,.article--content h5+.highlight pre,.article--content h6+.highlight pre{margin-top:.5rem}.article--content h2+pre,.article--content h3+pre,.article--content h4+pre,.article--content h5+pre,.article--content h6+pre{margin-top:.5rem}.article--content h2+.code-tabs-wrapper,.article--content h3+.code-tabs-wrapper,.article--content h4+.code-tabs-wrapper,.article--content h5+.code-tabs-wrapper,.article--content h6+.code-tabs-wrapper{margin-top:0}.article--content h2.monospace,.article--content h3.monospace,.article--content h4.monospace,.article--content h5.monospace,.article--content h6.monospace{font-family:"IBM Plex Mono",monospace}.article--content h2.green,.article--content h3.green,.article--content h4.green,.article--content h5.green,.article--content h6.green{color:#34BB55}.article--content h2.orange,.article--content h3.orange,.article--content h4.orange,.article--content h5.orange,.article--content h6.orange{color:#FF8564}.article--content h2.checkpoint::before,.article--content h3.checkpoint::before,.article--content h4.checkpoint::before,.article--content h5.checkpoint::before,.article--content h6.checkpoint::before{content:'\e93b';font-family:'icomoon-v4';font-size:2.25rem;color:#d30971;display:inline;margin:0 .5rem 0 0;vertical-align:top}.article--content h2[metadata]::after,.article--content h3[metadata]::after,.article--content h4[metadata]::after,.article--content h5[metadata]::after,.article--content h6[metadata]::after{content:attr(metadata);margin-left:.65rem;padding:.1em .5em;color:#fff;background:rgba(255,255,255,0.12);font-size:.75em;font-style:normal;font-weight:500;border-radius:1em;display:inline-block;vertical-align:middle}.article--content h2[date]::after,.article--content h2[note]::after,.article--content h3[date]::after,.article--content h3[note]::after,.article--content h4[date]::after,.article--content h4[note]::after,.article--content h5[date]::after,.article--content h5[note]::after,.article--content h6[date]::after,.article--content h6[note]::after{margin-left:.65rem;opacity:.4;font-size:.75em;font-weight:500;font-style:inherit}.article--content h2[date]::after,.article--content h3[date]::after,.article--content h4[date]::after,.article--content h5[date]::after,.article--content h6[date]::after{content:attr(date)}.article--content h2[note]::after,.article--content h3[note]::after,.article--content h4[note]::after,.article--content h5[note]::after,.article--content h6[note]::after{content:attr(note);font-size:.85em}.article--content h1{font-weight:bold;font-size:2.75rem;margin:.4em 0 .2em}.article--content h2{font-size:2.1rem;margin:-.25rem 0 .5rem;padding-top:1.75rem;font-weight:500;color:#FAFAFC}.article--content h3{font-size:1.75rem;font-weight:500;margin:-1rem 0 .5rem;padding-top:1.75rem}.article--content h4{font-size:1.35rem;font-style:italic;font-weight:500;margin:-1.25rem 0 .5rem;padding-top:1.75rem;color:#FAFAFC}.article--content h5{font-size:1.1rem;margin:-1.25rem 0 .25rem;padding-top:1.75rem}.article--content h6{font-size:1.1rem;font-style:italic;margin:-1.25rem 0 .25rem;padding-top:1.75rem}.article--content p,.article--content li{color:#D4D7DD;line-height:1.8rem}.article--content p{margin:0 0 1.5em}.article--content a{color:#00A3FF;font-weight:500;text-decoration:none}.article--content a:hover{color:#fff}.article--content a.help-link{display:inline-block;width:1rem;height:1rem;border-radius:50%;background:#14141F}.article--content strong{color:#FAFAFC}.article--content img{max-width:100%;margin-bottom:2rem;border-radius:3px;box-shadow:1px 3px 10px #07070E}.article--content ul+p>img{margin-top:1.5rem}.article--content hr{border-width:1px 0 0;border-color:#383846;border-style:solid;margin:1.85rem 0 1.75rem}.article--content .badge{font-size:.7rem;margin:0 .2rem;padding:.1rem .4rem;border-radius:.6rem;font-weight:bold;vertical-align:top}.article--content .badge.dvc{color:#2e7d2e;background-color:#e8f5e8}.article--content .badge.lvc{color:#1976d2;background-color:#e3f2fd}.article--content .badge.experimental{color:#fe9dbc;background-color:rgba(211,9,113,0.12)}.article--content blockquote,.article--content .block{padding:1.65rem 2rem .1rem 2rem;margin:1rem 0 2rem;border-width:0 0 0 4px;border-style:solid;border-radius:0 2px 2px 0;font-size:1.05rem}.article--content blockquote ul:last-child,.article--content blockquote ol:last-child,.article--content .block ul:last-child,.article--content .block ol:last-child{margin-bottom:1.85rem}.article--content blockquote>h2:first-child,.article--content blockquote>h3:first-child,.article--content blockquote>h4:first-child,.article--content blockquote>h5:first-child,.article--content blockquote>h6:first-child,.article--content .block>h2:first-child,.article--content .block>h3:first-child,.article--content .block>h4:first-child,.article--content .block>h5:first-child,.article--content .block>h6:first-child{margin-top:0;padding-top:0.25em}.article--content blockquote.note,.article--content blockquote.tip,.article--content blockquote.important,.article--content blockquote.warning,.article--content blockquote.warn,.article--content blockquote.caution,.article--content .block.note,.article--content .block.tip,.article--content .block.important,.article--content .block.warning,.article--content .block.warn,.article--content .block.caution{position:relative}.article--content blockquote.note:before,.article--content blockquote.tip:before,.article--content blockquote.important:before,.article--content blockquote.warning:before,.article--content blockquote.warn:before,.article--content blockquote.caution:before,.article--content .block.note:before,.article--content .block.tip:before,.article--content .block.important:before,.article--content .block.warning:before,.article--content .block.warn:before,.article--content .block.caution:before{position:absolute;font-family:"alert-icons";font-size:1em;line-height:1em;padding:.3rem;text-align:center;top:-.5rem;left:-.95rem;display:block;border-radius:50%;box-shadow:1px 3px 5px rgba(7,7,14,0.5)}.article--content h2+.note,.article--content h2+.tip,.article--content h2+.important,.article--content h2+.warning,.article--content h2+.caution,.article--content h3+.note,.article--content h3+.tip,.article--content h3+.important,.article--content h3+.warning,.article--content h3+.caution,.article--content h4+.note,.article--content h4+.tip,.article--content h4+.important,.article--content h4+.warning,.article--content h4+.caution,.article--content h5+.note,.article--content h5+.tip,.article--content h5+.important,.article--content h5+.warning,.article--content h5+.caution,.article--content h6+.note,.article--content h6+.tip,.article--content h6+.important,.article--content h6+.warning,.article--content h6+.caution{margin-top:1.25rem}.article--content blockquote{padding:1rem 1rem 1rem 1.25rem;border-color:rgba(212,215,221,0.25)}.article--content blockquote p,.article--content blockquote li{font-size:1.15rem;font-style:italic;color:rgba(212,215,221,0.5)}.article--content blockquote *:last-child{margin-bottom:0}.article--content blockquote .cite{display:block;margin-top:-1rem;font-style:italic;font-size:.85rem;opacity:.8}.article--content>p span.cite{vertical-align:super;line-height:0;font-size:.7rem;font-style:italic}@media (max-width: 600px){.article--content blockquote,.article--content .block{padding:1.35rem 1.25rem .1rem 1.25rem;margin:.5rem 0 1rem}}.article--content .note:before{content:"N";color:#fff;background:#00A3FF}.article--content .note{border-color:#00A3FF;background:rgba(0,163,255,0.1)}.article--content .note h1,.article--content .note h2,.article--content .note h3,.article--content .note h4,.article--content .note h5,.article--content .note h6{color:#fff}.article--content .note h1 a,.article--content .note h2 a,.article--content .note h3 a,.article--content .note h4 a,.article--content .note h5 a,.article--content .note h6 a{color:inherit !important}.article--content .note h1 a:hover,.article--content .note h2 a:hover,.article--content .note h3 a:hover,.article--content .note h4 a:hover,.article--content .note h5 a:hover,.article--content .note h6 a:hover{color:inherit !important}.article--content .note p,.article--content .note li{color:#BEF0FF}.article--content .note strong{color:#fff}.article--content .note a{color:#fff}.article--content .note a code:after{border-color:transparent rgba(0,201,255,0.35) transparent transparent}.article--content .note a:hover{color:#6BDFFF}.article--content .note a:hover code:after{border-color:transparent #6BDFFF transparent transparent}.article--content .note ol li:before{color:#BEF0FF}.article--content .note code,.article--content .note pre{color:#00C9FF;background:#0a071c}.article--content .note img{box-shadow:1px 3px 10px #0F0E15}.article--content .note table{color:#BEF0FF;box-shadow:1px 3px 10px #0F0E15}.article--content .note table thead{background:linear-gradient(45deg, #0B3A8D,#066FC5)}.article--content .note table tr:nth-child(even) td{background:#1b3a58}.article--content .note blockquote{border-color:rgba(190,240,255,0.25)}.article--content .note blockquote p{color:rgba(190,240,255,0.6)}.article--content .note .code-tabs-wrapper .code-tabs a{background:transparent;color:rgba(190,240,255,0.5)}.article--content .note .code-tabs-wrapper .code-tabs a:hover{color:#bef0ff}.article--content .note .code-tabs-wrapper .code-tabs a.is-active{color:#bef0ff;background:#0a071c}.article--content .note hr,.article--content .note .expand{border-color:rgba(0,163,255,0.4) !important}.article--content .note pre::-webkit-scrollbar{background-color:rgba(10,7,28,0);width:12px;height:12px}.article--content .note pre::-webkit-scrollbar-track{background-color:#0a071c;border-radius:0 0 2px 2px}.article--content .note pre::-webkit-scrollbar-thumb{background-color:#192a3a;border:3px solid #0a071c;border-radius:6px}.article--content .note table::-webkit-scrollbar{background-color:rgba(27,58,88,0);width:12px;height:12px}.article--content .note table::-webkit-scrollbar-track{background-color:#1b3a58;border-radius:0 0 2px 2px}.article--content .note table::-webkit-scrollbar-thumb{background-color:#192a3a;border:3px solid #1b3a58;border-radius:6px}.article--content .note .highlight{color:#00C9FF}.article--content .note .highlight .gh,.article--content .note .highlight .go,.article--content .note .highlight .na,.article--content .note .highlight .nt,.article--content .note .highlight .nv,.article--content .note .highlight .ow{color:#00C9FF}.article--content .note .highlight .c,.article--content .note .highlight .ch,.article--content .note .highlight .cm,.article--content .note .highlight .cpf,.article--content .note .highlight .c1,.article--content .note .highlight .cs,.article--content .note .highlight .w{color:#567375}.article--content .note .highlight .gi{background-color:#567375}.article--content .note .highlight .k,.article--content .note .highlight .kc,.article--content .note .highlight .kd,.article--content .note .highlight .kn,.article--content .note .highlight .kp,.article--content .note .highlight .kr,.article--content .note .highlight .nn{color:#00A3FF}.article--content .note .highlight .bp,.article--content .note .highlight .cp,.article--content .note .highlight .dl,.article--content .note .highlight .gt,.article--content .note .highlight .gu,.article--content .note .highlight .kt,.article--content .note .highlight .nb,.article--content .note .highlight .nc,.article--content .note .highlight .no,.article--content .note .highlight .sa,.article--content .note .highlight .sb,.article--content .note .highlight .sc,.article--content .note .highlight .sd,.article--content .note .highlight .se,.article--content .note .highlight .sh,.article--content .note .highlight .sx,.article--content .note .highlight .sr,.article--content .note .highlight .s1,.article--content .note .highlight .s2{color:#009F5F}.article--content .note .highlight .err,.article--content .note .highlight .fm,.article--content .note .highlight .gr,.article--content .note .highlight .gd,.article--content .note .highlight .nd,.article--content .note .highlight .ne,.article--content .note .highlight .nf,.article--content .note .highlight .nl,.article--content .note .highlight .si{color:#BF3D5E}.article--content .note .highlight .m,.article--content .note .highlight .ni,.article--content .note .highlight .mb,.article--content .note .highlight .mf,.article--content .note .highlight .mh,.article--content .note .highlight .mi,.article--content .note .highlight .mo,.article--content .note .highlight .vc,.article--content .note .highlight .vg,.article--content .note .highlight .vi,.article--content .note .highlight .vm,.article--content .note .highlight .il{color:#ff6db0}.article--content .note .highlight .gp,.article--content .note .highlight .o{color:#00A3FF}.article--content .note .highlight .ss{color:#e90}.article--content .note .highlight .language-js .mi+.nx,.article--content .note .highlight .language-js .mf+.nx{color:#ff6db0}.article--content .note .highlight .language-sql .mi+.n{color:#ff6db0}.article--content .tip{border-color:#009F5F;background:rgba(0,159,95,0.12)}.article--content .tip:before{content:"T";color:#fff;background:#009F5F}.article--content .tip h1,.article--content .tip h2,.article--content .tip h3,.article--content .tip h4,.article--content .tip h5,.article--content .tip h6{color:#fff}.article--content .tip h1 a,.article--content .tip h2 a,.article--content .tip h3 a,.article--content .tip h4 a,.article--content .tip h5 a,.article--content .tip h6 a{color:inherit !important}.article--content .tip h1 a:hover,.article--content .tip h2 a:hover,.article--content .tip h3 a:hover,.article--content .tip h4 a:hover,.article--content .tip h5 a:hover,.article--content .tip h6 a:hover{color:inherit !important}.article--content .tip p,.article--content .tip li{color:#67D74E}.article--content .tip strong{color:#fff}.article--content .tip a{color:#C6F98E}.article--content .tip a code:after{border-color:transparent rgba(147,148,255,0.35) transparent transparent}.article--content .tip a:hover{color:#fff}.article--content .tip a:hover code:after{border-color:transparent #fff transparent transparent}.article--content .tip ol li:before{color:#67D74E}.article--content .tip code,.article--content .tip pre{color:#9394FF;background:#040d0e}.article--content .tip img{box-shadow:1px 3px 10px #0F0E15}.article--content .tip table{color:#67D74E;box-shadow:1px 3px 10px #0F0E15}.article--content .tip table thead{background:linear-gradient(45deg, #006F49,#009F5F)}.article--content .tip table tr:nth-child(even) td{background:#1a3c34}.article--content .tip blockquote{border-color:rgba(103,215,78,0.25)}.article--content .tip blockquote p{color:rgba(103,215,78,0.6)}.article--content .tip .code-tabs-wrapper .code-tabs a{background:transparent;color:rgba(103,215,78,0.5)}.article--content .tip .code-tabs-wrapper .code-tabs a:hover{color:#67d74e}.article--content .tip .code-tabs-wrapper .code-tabs a.is-active{color:#67d74e;background:#040d0e}.article--content .tip.flex{font-style:italic;display:flex}.article--content .tip.flex div:first-child{position:relative;margin:.25rem 2rem 0 0}.article--content .tip hr,.article--content .tip .expand{border-color:rgba(0,159,95,0.4) !important}.article--content .tip pre::-webkit-scrollbar{background-color:rgba(4,13,14,0);width:12px;height:12px}.article--content .tip pre::-webkit-scrollbar-track{background-color:#040d0e;border-radius:0 0 2px 2px}.article--content .tip pre::-webkit-scrollbar-thumb{background-color:#162627;border:3px solid #040d0e;border-radius:6px}.article--content .tip table::-webkit-scrollbar{background-color:rgba(26,60,52,0);width:12px;height:12px}.article--content .tip table::-webkit-scrollbar-track{background-color:#1a3c34;border-radius:0 0 2px 2px}.article--content .tip table::-webkit-scrollbar-thumb{background-color:#162627;border:3px solid #1a3c34;border-radius:6px}.article--content .tip .highlight{color:#9394FF}.article--content .tip .highlight .gh,.article--content .tip .highlight .go,.article--content .tip .highlight .na,.article--content .tip .highlight .nt,.article--content .tip .highlight .nv,.article--content .tip .highlight .ow{color:#9394FF}.article--content .tip .highlight .c,.article--content .tip .highlight .ch,.article--content .tip .highlight .cm,.article--content .tip .highlight .cpf,.article--content .tip .highlight .c1,.article--content .tip .highlight .cs,.article--content .tip .highlight .w{color:#567375}.article--content .tip .highlight .gi{background-color:#567375}.article--content .tip .highlight .k,.article--content .tip .highlight .kc,.article--content .tip .highlight .kd,.article--content .tip .highlight .kn,.article--content .tip .highlight .kp,.article--content .tip .highlight .kr,.article--content .tip .highlight .nn{color:#00A3FF}.article--content .tip .highlight .bp,.article--content .tip .highlight .cp,.article--content .tip .highlight .dl,.article--content .tip .highlight .gt,.article--content .tip .highlight .gu,.article--content .tip .highlight .kt,.article--content .tip .highlight .nb,.article--content .tip .highlight .nc,.article--content .tip .highlight .no,.article--content .tip .highlight .sa,.article--content .tip .highlight .sb,.article--content .tip .highlight .sc,.article--content .tip .highlight .sd,.article--content .tip .highlight .se,.article--content .tip .highlight .sh,.article--content .tip .highlight .sx,.article--content .tip .highlight .sr,.article--content .tip .highlight .s1,.article--content .tip .highlight .s2{color:#009F5F}.article--content .tip .highlight .err,.article--content .tip .highlight .fm,.article--content .tip .highlight .gr,.article--content .tip .highlight .gd,.article--content .tip .highlight .nd,.article--content .tip .highlight .ne,.article--content .tip .highlight .nf,.article--content .tip .highlight .nl,.article--content .tip .highlight .si{color:#BF3D5E}.article--content .tip .highlight .m,.article--content .tip .highlight .ni,.article--content .tip .highlight .mb,.article--content .tip .highlight .mf,.article--content .tip .highlight .mh,.article--content .tip .highlight .mi,.article--content .tip .highlight .mo,.article--content .tip .highlight .vc,.article--content .tip .highlight .vg,.article--content .tip .highlight .vi,.article--content .tip .highlight .vm,.article--content .tip .highlight .il{color:#ff6db0}.article--content .tip .highlight .gp,.article--content .tip .highlight .o{color:#00A3FF}.article--content .tip .highlight .ss{color:#e90}.article--content .tip .highlight .language-js .mi+.nx,.article--content .tip .highlight .language-js .mf+.nx{color:#ff6db0}.article--content .tip .highlight .language-sql .mi+.n{color:#ff6db0}.article--content .important{border-color:#9394FF;background:rgba(147,148,255,0.15)}.article--content .important:before{content:"I";color:#fff;background:#9394FF}.article--content .important h1,.article--content .important h2,.article--content .important h3,.article--content .important h4,.article--content .important h5,.article--content .important h6{color:#fff}.article--content .important h1 a,.article--content .important h2 a,.article--content .important h3 a,.article--content .important h4 a,.article--content .important h5 a,.article--content .important h6 a{color:inherit !important}.article--content .important h1 a:hover,.article--content .important h2 a:hover,.article--content .important h3 a:hover,.article--content .important h4 a:hover,.article--content .important h5 a:hover,.article--content .important h6 a:hover{color:inherit !important}.article--content .important p,.article--content .important li{color:#B7B8FF}.article--content .important strong{color:#fff}.article--content .important a{color:#797aff}.article--content .important a code:after{border-color:transparent rgba(159,146,255,0.35) transparent transparent}.article--content .important a:hover{color:#fff}.article--content .important a:hover code:after{border-color:transparent #fff transparent transparent}.article--content .important ol li:before{color:#B7B8FF}.article--content .important code,.article--content .important pre{color:#9f92ff;background:#0a071c}.article--content .important img{box-shadow:1px 3px 10px #11111d}.article--content .important table{color:#B7B8FF;box-shadow:1px 3px 10px #11111d}.article--content .important table thead{background:linear-gradient(45deg, #513CC6,#9394FF)}.article--content .important table tr:nth-child(even) td{background:#1b1b33}.article--content .important blockquote{border-color:rgba(183,184,255,0.25)}.article--content .important blockquote p{color:rgba(183,184,255,0.6)}.article--content .important .code-tabs-wrapper .code-tabs a{background:transparent;color:rgba(183,184,255,0.5)}.article--content .important .code-tabs-wrapper .code-tabs a:hover{color:#b7b8ff}.article--content .important .code-tabs-wrapper .code-tabs a.is-active{color:#b7b8ff;background:#0a071c}.article--content .important hr,.article--content .important .expand{border-color:rgba(147,148,255,0.4) !important}.article--content .important pre::-webkit-scrollbar{background-color:rgba(10,7,28,0);width:12px;height:12px}.article--content .important pre::-webkit-scrollbar-track{background-color:#0a071c;border-radius:0 0 2px 2px}.article--content .important pre::-webkit-scrollbar-thumb{background-color:#56519e;border:3px solid #0a071c;border-radius:6px}.article--content .important table::-webkit-scrollbar{background-color:rgba(27,27,51,0);width:12px;height:12px}.article--content .important table::-webkit-scrollbar-track{background-color:#1b1b33;border-radius:0 0 2px 2px}.article--content .important table::-webkit-scrollbar-thumb{background-color:#56519e;border:3px solid #1b1b33;border-radius:6px}.article--content .important .highlight{color:#9f92ff}.article--content .important .highlight .gh,.article--content .important .highlight .go,.article--content .important .highlight .na,.article--content .important .highlight .nt,.article--content .important .highlight .nv,.article--content .important .highlight .ow{color:#9f92ff}.article--content .important .highlight .c,.article--content .important .highlight .ch,.article--content .important .highlight .cm,.article--content .important .highlight .cpf,.article--content .important .highlight .c1,.article--content .important .highlight .cs,.article--content .important .highlight .w{color:#5f51ac}.article--content .important .highlight .gi{background-color:#5f51ac}.article--content .important .highlight .k,.article--content .important .highlight .kc,.article--content .important .highlight .kd,.article--content .important .highlight .kn,.article--content .important .highlight .kp,.article--content .important .highlight .kr,.article--content .important .highlight .nn{color:#513CC6}.article--content .important .highlight .bp,.article--content .important .highlight .cp,.article--content .important .highlight .dl,.article--content .important .highlight .gt,.article--content .important .highlight .gu,.article--content .important .highlight .kt,.article--content .important .highlight .nb,.article--content .important .highlight .nc,.article--content .important .highlight .no,.article--content .important .highlight .sa,.article--content .important .highlight .sb,.article--content .important .highlight .sc,.article--content .important .highlight .sd,.article--content .important .highlight .se,.article--content .important .highlight .sh,.article--content .important .highlight .sx,.article--content .important .highlight .sr,.article--content .important .highlight .s1,.article--content .important .highlight .s2{color:#009a64}.article--content .important .highlight .err,.article--content .important .highlight .fm,.article--content .important .highlight .gr,.article--content .important .highlight .gd,.article--content .important .highlight .nd,.article--content .important .highlight .ne,.article--content .important .highlight .nf,.article--content .important .highlight .nl,.article--content .important .highlight .si{color:#BF3D5E}.article--content .important .highlight .m,.article--content .important .highlight .ni,.article--content .important .highlight .mb,.article--content .important .highlight .mf,.article--content .important .highlight .mh,.article--content .important .highlight .mi,.article--content .important .highlight .mo,.article--content .important .highlight .vc,.article--content .important .highlight .vg,.article--content .important .highlight .vi,.article--content .important .highlight .vm,.article--content .important .highlight .il{color:#e24bbb}.article--content .important .highlight .gp,.article--content .important .highlight .o{color:#00a5eb}.article--content .important .highlight .ss{color:#e90}.article--content .important .highlight .language-js .mi+.nx,.article--content .important .highlight .language-js .mf+.nx{color:#e24bbb}.article--content .important .highlight .language-sql .mi+.n{color:#e24bbb}.article--content .warn,.article--content .warning{border-color:#FF8564;background:rgba(255,97,133,0.101961)}.article--content .warn:before,.article--content .warning:before{content:"W";color:#fff;background:#FF8564}.article--content .warn h1,.article--content .warn h2,.article--content .warn h3,.article--content .warn h4,.article--content .warn h5,.article--content .warn h6,.article--content .warning h1,.article--content .warning h2,.article--content .warning h3,.article--content .warning h4,.article--content .warning h5,.article--content .warning h6{color:#fff}.article--content .warn h1 a,.article--content .warn h2 a,.article--content .warn h3 a,.article--content .warn h4 a,.article--content .warn h5 a,.article--content .warn h6 a,.article--content .warning h1 a,.article--content .warning h2 a,.article--content .warning h3 a,.article--content .warning h4 a,.article--content .warning h5 a,.article--content .warning h6 a{color:inherit !important}.article--content .warn h1 a:hover,.article--content .warn h2 a:hover,.article--content .warn h3 a:hover,.article--content .warn h4 a:hover,.article--content .warn h5 a:hover,.article--content .warn h6 a:hover,.article--content .warning h1 a:hover,.article--content .warning h2 a:hover,.article--content .warning h3 a:hover,.article--content .warning h4 a:hover,.article--content .warning h5 a:hover,.article--content .warning h6 a:hover{color:inherit !important}.article--content .warn p,.article--content .warn li,.article--content .warning p,.article--content .warning li{color:#FFB6A0}.article--content .warn strong,.article--content .warning strong{color:#fff}.article--content .warn a,.article--content .warning a{color:#FFDCCF !important}.article--content .warn a code:after,.article--content .warning a code:after{border-color:transparent rgba(236,110,110,0.35) transparent transparent}.article--content .warn a:hover,.article--content .warning a:hover{color:#fff !important}.article--content .warn a:hover code:after,.article--content .warning a:hover code:after{border-color:transparent #fff transparent transparent}.article--content .warn ol li:before,.article--content .warning ol li:before{color:#FFB6A0}.article--content .warn code,.article--content .warn pre,.article--content .warning code,.article--content .warning pre{color:#ec6e6e;background:#0d0610}.article--content .warn img,.article--content .warning img{box-shadow:1px 3px 10px #0d0610}.article--content .warn table,.article--content .warning table{color:#FFB6A0;box-shadow:1px 3px 10px #0d0610}.article--content .warn table thead,.article--content .warning table thead{background:linear-gradient(45deg, #F95F53,#FF8564)}.article--content .warn table tr:nth-child(even) td,.article--content .warning table tr:nth-child(even) td{background:#4a2a2a}.article--content .warn blockquote,.article--content .warning blockquote{border-color:rgba(255,182,160,0.25)}.article--content .warn blockquote p,.article--content .warning blockquote p{color:rgba(255,182,160,0.6)}.article--content .warn .code-tabs-wrapper .code-tabs a,.article--content .warning .code-tabs-wrapper .code-tabs a{background:transparent;color:rgba(255,182,160,0.5)}.article--content .warn .code-tabs-wrapper .code-tabs a:hover,.article--content .warning .code-tabs-wrapper .code-tabs a:hover{color:#ffb6a0}.article--content .warn .code-tabs-wrapper .code-tabs a.is-active,.article--content .warning .code-tabs-wrapper .code-tabs a.is-active{color:#ffb6a0;background:#0d0610}.article--content .warn hr,.article--content .warn .expand,.article--content .warning hr,.article--content .warning .expand{border-color:rgba(255,133,100,0.4) !important}.article--content .warn pre::-webkit-scrollbar,.article--content .warning pre::-webkit-scrollbar{background-color:rgba(13,6,16,0);width:12px;height:12px}.article--content .warn pre::-webkit-scrollbar-track,.article--content .warning pre::-webkit-scrollbar-track{background-color:#0d0610;border-radius:0 0 2px 2px}.article--content .warn pre::-webkit-scrollbar-thumb,.article--content .warning pre::-webkit-scrollbar-thumb{background-color:#2a2025;border:3px solid #0d0610;border-radius:6px}.article--content .warn table::-webkit-scrollbar,.article--content .warning table::-webkit-scrollbar{background-color:rgba(74,42,42,0);width:12px;height:12px}.article--content .warn table::-webkit-scrollbar-track,.article--content .warning table::-webkit-scrollbar-track{background-color:#4a2a2a;border-radius:0 0 2px 2px}.article--content .warn table::-webkit-scrollbar-thumb,.article--content .warning table::-webkit-scrollbar-thumb{background-color:#1f181b;border:3px solid #4a2a2a;border-radius:6px}.article--content .warn .highlight,.article--content .warning .highlight{color:#ec6e6e}.article--content .warn .highlight .gh,.article--content .warn .highlight .go,.article--content .warn .highlight .na,.article--content .warn .highlight .nt,.article--content .warn .highlight .nv,.article--content .warn .highlight .ow,.article--content .warning .highlight .gh,.article--content .warning .highlight .go,.article--content .warning .highlight .na,.article--content .warning .highlight .nt,.article--content .warning .highlight .nv,.article--content .warning .highlight .ow{color:#ec6e6e}.article--content .warn .highlight .c,.article--content .warn .highlight .ch,.article--content .warn .highlight .cm,.article--content .warn .highlight .cpf,.article--content .warn .highlight .c1,.article--content .warn .highlight .cs,.article--content .warn .highlight .w,.article--content .warning .highlight .c,.article--content .warning .highlight .ch,.article--content .warning .highlight .cm,.article--content .warning .highlight .cpf,.article--content .warning .highlight .c1,.article--content .warning .highlight .cs,.article--content .warning .highlight .w{color:#844c4c}.article--content .warn .highlight .gi,.article--content .warning .highlight .gi{background-color:#844c4c}.article--content .warn .highlight .k,.article--content .warn .highlight .kc,.article--content .warn .highlight .kd,.article--content .warn .highlight .kn,.article--content .warn .highlight .kp,.article--content .warn .highlight .kr,.article--content .warn .highlight .nn,.article--content .warning .highlight .k,.article--content .warning .highlight .kc,.article--content .warning .highlight .kd,.article--content .warning .highlight .kn,.article--content .warning .highlight .kp,.article--content .warning .highlight .kr,.article--content .warning .highlight .nn{color:#00A3FF}.article--content .warn .highlight .bp,.article--content .warn .highlight .cp,.article--content .warn .highlight .dl,.article--content .warn .highlight .gt,.article--content .warn .highlight .gu,.article--content .warn .highlight .kt,.article--content .warn .highlight .nb,.article--content .warn .highlight .nc,.article--content .warn .highlight .no,.article--content .warn .highlight .sa,.article--content .warn .highlight .sb,.article--content .warn .highlight .sc,.article--content .warn .highlight .sd,.article--content .warn .highlight .se,.article--content .warn .highlight .sh,.article--content .warn .highlight .sx,.article--content .warn .highlight .sr,.article--content .warn .highlight .s1,.article--content .warn .highlight .s2,.article--content .warning .highlight .bp,.article--content .warning .highlight .cp,.article--content .warning .highlight .dl,.article--content .warning .highlight .gt,.article--content .warning .highlight .gu,.article--content .warning .highlight .kt,.article--content .warning .highlight .nb,.article--content .warning .highlight .nc,.article--content .warning .highlight .no,.article--content .warning .highlight .sa,.article--content .warning .highlight .sb,.article--content .warning .highlight .sc,.article--content .warning .highlight .sd,.article--content .warning .highlight .se,.article--content .warning .highlight .sh,.article--content .warning .highlight .sx,.article--content .warning .highlight .sr,.article--content .warning .highlight .s1,.article--content .warning .highlight .s2{color:#009F5F}.article--content .warn .highlight .err,.article--content .warn .highlight .fm,.article--content .warn .highlight .gr,.article--content .warn .highlight .gd,.article--content .warn .highlight .nd,.article--content .warn .highlight .ne,.article--content .warn .highlight .nf,.article--content .warn .highlight .nl,.article--content .warn .highlight .si,.article--content .warning .highlight .err,.article--content .warning .highlight .fm,.article--content .warning .highlight .gr,.article--content .warning .highlight .gd,.article--content .warning .highlight .nd,.article--content .warning .highlight .ne,.article--content .warning .highlight .nf,.article--content .warning .highlight .nl,.article--content .warning .highlight .si{color:#BF3D5E}.article--content .warn .highlight .m,.article--content .warn .highlight .ni,.article--content .warn .highlight .mb,.article--content .warn .highlight .mf,.article--content .warn .highlight .mh,.article--content .warn .highlight .mi,.article--content .warn .highlight .mo,.article--content .warn .highlight .vc,.article--content .warn .highlight .vg,.article--content .warn .highlight .vi,.article--content .warn .highlight .vm,.article--content .warn .highlight .il,.article--content .warning .highlight .m,.article--content .warning .highlight .ni,.article--content .warning .highlight .mb,.article--content .warning .highlight .mf,.article--content .warning .highlight .mh,.article--content .warning .highlight .mi,.article--content .warning .highlight .mo,.article--content .warning .highlight .vc,.article--content .warning .highlight .vg,.article--content .warning .highlight .vi,.article--content .warning .highlight .vm,.article--content .warning .highlight .il{color:#ffb4fb}.article--content .warn .highlight .gp,.article--content .warn .highlight .o,.article--content .warning .highlight .gp,.article--content .warning .highlight .o{color:#00A3FF}.article--content .warn .highlight .ss,.article--content .warning .highlight .ss{color:#e90}.article--content .warn .highlight .language-js .mi+.nx,.article--content .warn .highlight .language-js .mf+.nx,.article--content .warning .highlight .language-js .mi+.nx,.article--content .warning .highlight .language-js .mf+.nx{color:#ffb4fb}.article--content .warn .highlight .language-sql .mi+.n,.article--content .warning .highlight .language-sql .mi+.n{color:#ffb4fb}.article--content .caution{border-color:#d30971;background:rgba(211,9,113,0.12)}.article--content .caution:before{content:"C";color:#fff;background:#d30971}.article--content .caution h1,.article--content .caution h2,.article--content .caution h3,.article--content .caution h4,.article--content .caution h5,.article--content .caution h6{color:#fff}.article--content .caution h1 a,.article--content .caution h2 a,.article--content .caution h3 a,.article--content .caution h4 a,.article--content .caution h5 a,.article--content .caution h6 a{color:inherit !important}.article--content .caution h1 a:hover,.article--content .caution h2 a:hover,.article--content .caution h3 a:hover,.article--content .caution h4 a:hover,.article--content .caution h5 a:hover,.article--content .caution h6 a:hover{color:inherit !important}.article--content .caution p,.article--content .caution li{color:#fe9dbc}.article--content .caution strong{color:#fff}.article--content .caution a{color:#f3d5e1 !important}.article--content .caution a code:after{border-color:transparent rgba(255,103,155,0.35) transparent transparent}.article--content .caution a:hover{color:#fff !important}.article--content .caution a:hover code:after{border-color:transparent #fff transparent transparent}.article--content .caution ol li:before{color:#fe9dbc}.article--content .caution code,.article--content .caution pre{color:#ff679b;background:#0d0610}.article--content .caution img{box-shadow:1px 3px 10px #0f050e}.article--content .caution table{color:#fe9dbc;box-shadow:1px 3px 10px #0f050e}.article--content .caution table thead{background:linear-gradient(45deg, #d30971,#ff598f)}.article--content .caution table tr:nth-child(even) td{background:#391b35}.article--content .caution blockquote{border-color:rgba(254,157,188,0.25)}.article--content .caution blockquote p{color:rgba(254,157,188,0.6)}.article--content .caution .code-tabs-wrapper .code-tabs a{background:transparent;color:rgba(254,157,188,0.5)}.article--content .caution .code-tabs-wrapper .code-tabs a:hover{color:#fe9dbc}.article--content .caution .code-tabs-wrapper .code-tabs a.is-active{color:#fe9dbc;background:#0d0610}.article--content .caution hr,.article--content .caution .expand{border-color:rgba(211,9,113,0.4) !important}.article--content .caution pre::-webkit-scrollbar{background-color:rgba(13,6,16,0);width:12px;height:12px}.article--content .caution pre::-webkit-scrollbar-track{background-color:#0d0610;border-radius:0 0 2px 2px}.article--content .caution pre::-webkit-scrollbar-thumb{background-color:#5c1b38;border:3px solid #0d0610;border-radius:6px}.article--content .caution table::-webkit-scrollbar{background-color:rgba(57,27,53,0);width:12px;height:12px}.article--content .caution table::-webkit-scrollbar-track{background-color:#391b35;border-radius:0 0 2px 2px}.article--content .caution table::-webkit-scrollbar-thumb{background-color:#912a58;border:3px solid #391b35;border-radius:6px}.article--content .caution .highlight{color:#ff679b}.article--content .caution .highlight .gh,.article--content .caution .highlight .go,.article--content .caution .highlight .na,.article--content .caution .highlight .nt,.article--content .caution .highlight .nv,.article--content .caution .highlight .ow{color:#ff679b}.article--content .caution .highlight .c,.article--content .caution .highlight .ch,.article--content .caution .highlight .cm,.article--content .caution .highlight .cpf,.article--content .caution .highlight .c1,.article--content .caution .highlight .cs,.article--content .caution .highlight .w{color:#8f3f5a}.article--content .caution .highlight .gi{background-color:#8f3f5a}.article--content .caution .highlight .k,.article--content .caution .highlight .kc,.article--content .caution .highlight .kd,.article--content .caution .highlight .kn,.article--content .caution .highlight .kp,.article--content .caution .highlight .kr,.article--content .caution .highlight .nn{color:#3d97e5}.article--content .caution .highlight .bp,.article--content .caution .highlight .cp,.article--content .caution .highlight .dl,.article--content .caution .highlight .gt,.article--content .caution .highlight .gu,.article--content .caution .highlight .kt,.article--content .caution .highlight .nb,.article--content .caution .highlight .nc,.article--content .caution .highlight .no,.article--content .caution .highlight .sa,.article--content .caution .highlight .sb,.article--content .caution .highlight .sc,.article--content .caution .highlight .sd,.article--content .caution .highlight .se,.article--content .caution .highlight .sh,.article--content .caution .highlight .sx,.article--content .caution .highlight .sr,.article--content .caution .highlight .s1,.article--content .caution .highlight .s2{color:#947eff}.article--content .caution .highlight .err,.article--content .caution .highlight .fm,.article--content .caution .highlight .gr,.article--content .caution .highlight .gd,.article--content .caution .highlight .nd,.article--content .caution .highlight .ne,.article--content .caution .highlight .nf,.article--content .caution .highlight .nl,.article--content .caution .highlight .si{color:#BF3D5E}.article--content .caution .highlight .m,.article--content .caution .highlight .ni,.article--content .caution .highlight .mb,.article--content .caution .highlight .mf,.article--content .caution .highlight .mh,.article--content .caution .highlight .mi,.article--content .caution .highlight .mo,.article--content .caution .highlight .vc,.article--content .caution .highlight .vg,.article--content .caution .highlight .vi,.article--content .caution .highlight .vm,.article--content .caution .highlight .il{color:#ffa0de}.article--content .caution .highlight .gp,.article--content .caution .highlight .o{color:#3d97e5}.article--content .caution .highlight .ss{color:#e90}.article--content .caution .highlight .language-js .mi+.nx,.article--content .caution .highlight .language-js .mf+.nx{color:#ffa0de}.article--content .caution .highlight .language-sql .mi+.n{color:#ffa0de}.article--content .block.special-state{background:linear-gradient(45deg, #d30971,#9b2aff);padding:4px;border:none;border-radius:25px !important}.article--content .block.special-state .state-content{background:#14141F;border-radius:21px;padding:calc(1.65rem - 4px) calc(2rem - 4px) calc(.1rem + 4px) calc(2rem - 4px)}.article--content .block.special-state .state-content h4{color:#fff}.article--content .block.special-state .state-content p{margin-bottom:1rem}.article--content .block.special-state .state-content .btn{border-radius:4px;background:linear-gradient(45deg, #d30971,#9b2aff)}.article--content .block.special-state .state-content .btn:after{background:linear-gradient(45deg, #a8085a, #7b14d6)}.article--content .block.special-state .state-content .expand-wrapper{border:none;margin:.5rem 0 1.5rem}.article--content .block.special-state .state-content .expand{border:none;padding:0}.article--content .block.special-state .state-content .expand .expand-content p{margin-left:2rem}.article--content .block.special-state .state-content .expand ul{margin-top:-1rem}.article--content .block.special-state .state-content .expand ul.feedback-channels{padding:0;margin:-1rem 0 1.5rem 2rem;list-style:none}.article--content .block.special-state .state-content .expand ul.feedback-channels a{color:#fff;font-weight:500;position:relative}.article--content .block.special-state .state-content .expand ul.feedback-channels a.discord:before{content:url("/svgs/discord.svg");display:inline-block;height:1.1rem;width:1.25rem;vertical-align:top;margin:2px .65rem 0 0}.article--content .block.special-state .state-content .expand ul.feedback-channels a.community:before{content:"\e900";color:#fff;margin:0 .65rem 0 0;font-size:1.2rem;font-family:'icomoon-v2';vertical-align:middle}.article--content .block.special-state .state-content .expand ul.feedback-channels a.slack:before{content:url("/svgs/slack.svg");display:inline-block;height:1.1rem;width:1.1rem;vertical-align:text-top;margin-right:.65rem}.article--content .block.special-state .state-content .expand ul.feedback-channels a.reddit:before{content:url("/svgs/reddit.svg");display:inline-block;height:1.1rem;width:1.2rem;vertical-align:top;margin:2px .65rem 0 0}.article--content .block.special-state .state-content .expand ul.feedback-channels a::after{content:"\e90a";font-family:'icomoon-v4';font-weight:bold;font-size:1.3rem;display:inline-block;position:absolute;background:linear-gradient(45deg, #d30971,#9b2aff);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;right:0;transform:translateX(0.25rem);opacity:0;transition:transform .2s, opacity .2s}.article--content .block.special-state .state-content .expand ul.feedback-channels a:hover::after{transform:translateX(1.5rem);opacity:1}.article--content a.btn{position:relative;display:inline-block;margin:.5rem .25rem .5rem 0;padding:0.85rem 1.5rem;color:#fff !important;border-radius:2px;font-size:1.05rem;z-index:1;background:linear-gradient(45deg, #066FC5,#00A3FF)}.article--content a.btn:after{content:"";position:absolute;display:block;top:0;right:0;width:100%;height:100%;border-radius:2px;background:linear-gradient(45deg, #00A3FF,#6BDFFF);opacity:0;transition:opacity .2s;z-index:-1}.article--content a.btn:hover{cursor:pointer}.article--content a.btn:hover:after{opacity:1}.article--content a.btn.download:before{content:"\e91d";font-family:"icomoon-v2";margin-right:.5rem;font-size:1.1rem}.article--content a.btn.github:before{content:"\eab0";font-family:"icomoon-v2";margin-right:.5rem;font-size:1.1rem}.article--content a.btn.arrow span.CaretOutlineRight{font-size:1.5rem;line-height:0;vertical-align:sub;display:inline-block;margin-right:-.65rem}.article--content a.btn.small{padding:.4rem 1rem}.article--content a.btn.small-plus{padding:.25em;line-height:.65rem}.article--content .select-url{margin:-2.5rem 0 1rem;text-align:right;display:none}.article--content .url-trigger{padding:.25rem .5rem;display:inline-block;font-size:.85rem;font-style:italic;color:rgba(255,255,255,0.5);background:#07070E;border-radius:0 0 2px 2px}.article--content .url-trigger:before{content:"\e924";display:inline-block;margin-right:.35rem;font-family:"icomoon-v2";font-style:normal;font-size:.8rem}.article--content .url-trigger:hover{color:#fff}.article--content li .url-trigger{padding:0rem .5rem}.article--content .code-tab-content .select-url{margin-top:-3.15rem}.article--content .caption{margin:-1.8rem 0 2rem;padding-left:.25rem;font-size:.95rem;font-style:italic}.article--content .caption p{line-height:1.25rem;color:rgba(212,215,221,0.8)}.article--content .caption code{font-size:.9rem}.article--content p+.caption,.article--content li+.caption,.article--content ol+.caption,.article--content ul+.caption{padding:0;margin:-.75rem 0 0;opacity:1}.article--content h2+.caption,.article--content h3+.caption,.article--content h4+.caption,.article--content h5+.caption,.article--content h6+.caption{padding:0;margin:0;opacity:1}.article--content #query-plan-diagram+.caption{margin-top:0}.article--content .children-links h2,.article--content .children-links h3,.article--content .children-links h4,.article--content .list-links h2,.article--content .list-links h3,.article--content .list-links h4{margin-top:-.5rem}.article--content .children-links h2 a a:after,.article--content .children-links h3 a a:after,.article--content .children-links h4 a a:after,.article--content .list-links h2 a a:after,.article--content .list-links h3 a a:after,.article--content .list-links h4 a a:after{content:"\e91a";font-family:"icomoon-v2";color:rgba(255,255,255,0.35);vertical-align:bottom;transition:color .2s;margin-left:.4rem}.article--content .children-links h2 a:hover:after,.article--content .children-links h3 a:hover:after,.article--content .children-links h4 a:hover:after,.article--content .list-links h2 a:hover:after,.article--content .list-links h3 a:hover:after,.article--content .list-links h4 a:hover:after{color:#00A3FF}.article--content .children-links>hr:last-child,.article--content .list-links>hr:last-child{display:none}.article--content ul.children-list+ul{margin-top:-1.25rem}.article--content code,.article--content pre{background:#07070E;font-family:"IBM Plex Mono",monospace;color:#B7B8FF}.article--content p code,.article--content li code,.article--content table code{padding:.1rem .4rem .2rem;border-radius:2px;color:#B7B8FF;white-space:nowrap;font-size:1rem;font-style:normal}.article--content h1 code,.article--content h2 code,.article--content h3 code,.article--content h4 code,.article--content h5 code,.article--content h6 code{padding:inherit !important;background:inherit !important;font-size:inherit !important;font-weight:inherit !important;font-family:"Proxima Nova",sans-serif;color:inherit !important}.article--content a code{font-weight:normal;transition:color .2s;position:relative;color:#00A3FF}.article--content a code:after{content:"";position:absolute;display:block;top:0;right:0;border-style:solid;border-width:0 .4rem .4rem 0;border-color:transparent rgba(0,163,255,0.35) transparent transparent;transition:border .2s}.article--content a:hover code{color:#fff}.article--content a:hover code:after{border-color:transparent #fff transparent transparent}.article--content pre{margin:2rem 0 2.25rem;padding:1.75rem 1.75rem 1.25rem;border-radius:2px;overflow-x:scroll;overflow-y:hidden;font-size:1rem}.article--content pre code{padding:0;line-height:1.7rem;white-space:pre}.article--content pre .api{margin-right:.35rem;padding:.15rem .5rem .25rem;border-radius:2px;color:#fff;font-family:"IBM Plex Mono",monospace;font-weight:bold;font-size:1rem}.article--content pre .api.get{background:#009F5F}.article--content pre .api.post{background:#066FC5}.article--content pre .api.patch{background:#E85B1C}.article--content pre .api.delete{background:#BF3D5E}.article--content pre .api.put{background:#513CC6}.article--content pre.api-endpoint a{position:relative;color:#00A3FF;text-decoration:none}.article--content pre.api-endpoint a:after{content:"\e90d";position:absolute;right:-1.45rem;top:0.65rem;font-family:"icomoon-v4";color:#fff;display:inline-block;font-size:1.1rem;line-height:0;opacity:0;transition:opacity .2s}.article--content pre.api-endpoint a:hover{color:#fff}.article--content pre.api-endpoint a:hover:after{opacity:.6}.article--content span.code-callout,.article--content .code-placeholder{font-weight:bold;margin:0 .15rem}.article--content span.code-callout.green,.article--content .code-placeholder.green{color:#009F5F}.article--content span.code-callout.magenta,.article--content .code-placeholder.magenta{color:#d30971}.article--content span.code-callout.orange,.article--content .code-placeholder.orange{color:#F95F53}.article--content span.code-callout.delete,.article--content span.code-callout.strike,.article--content .code-placeholder.delete,.article--content .code-placeholder.strike{text-decoration:line-through}.article--content .code-placeholder-wrapper{display:inline;position:relative}.article--content .code-placeholder-wrapper .code-placeholder{display:inline-block;margin:0 .15rem;padding:0;line-height:1.4em;color:#e659a2;font-weight:normal;font-style:normal;border-bottom:1px dotted;transition:color .2s;cursor:pointer}.article--content .code-placeholder-wrapper .code-placeholder .code-placeholder-edit-icon{font-style:normal}.article--content .code-placeholder-wrapper .code-placeholder .code-placeholder-edit-icon::before{margin-left:.2rem;font-size:.8em;transition:opacity .2s;opacity:.65;z-index:-1}.article--content .code-placeholder-wrapper .code-placeholder:hover{color:#5ee4e4}.article--content .code-placeholder-wrapper .code-placeholder:hover .code-placeholder-edit-icon::before{opacity:1}.article--content .code-placeholder-wrapper .code-input-wrapper{position:absolute;top:-3px;left:-4.5px;z-index:1;color:inherit}.article--content .code-placeholder-wrapper .code-input-wrapper input.placeholder-edit{width:100%;max-width:100%;border:1px solid #1A1A2A;border-radius:4px;background-color:#1A1A2A;padding:2px 20px 2px 6px;color:#5ee4e4;font-weight:normal}.article--content .code-placeholder-wrapper .code-input-wrapper input.placeholder-edit:focus{outline:none;border-color:rgba(94,228,228,0.75);box-shadow:1px 1px 8px rgba(94,228,228,0.5);border-radius:2px}.article--content .code-placeholder-wrapper .code-input-wrapper:hover{cursor:pointer}.article--content .code-placeholder-wrapper .code-input-wrapper:after{content:"\e937";color:#5ee4e4;font-family:'icomoon-v4';display:block;position:absolute;top:0;right:3px}.article--content .code-placeholder-key code{color:#e659a2 !important}.article--content pre span.tc-dynamic-value{border:1px solid;border-radius:6px;padding:0 .25rem;--param-color: #ff79c6;--param-bg: #ff79c633;--env-color: #0092b8;--env-bg: #0092b833;--secret-color: #9a09ff;--secret-bg: #9809ff33}.article--content pre span.tc-dynamic-value.param{color:var(--param-color);background:var(--param-bg);border-color:var(--param-color)}.article--content pre span.tc-dynamic-value.env{color:var(--env-color);background:var(--env-bg);border-color:var(--env-color)}.article--content pre span.tc-dynamic-value.secret{color:var(--secret-color);background:var(--secret-bg);border-color:var(--secret-color)}@media (max-width: 600px){.article--content pre{padding:1.2em 1.2em .75rem}}.article--content div.columns-wrapper{container-type:inline-size;container-name:columns}.article--content div.columns-2{-moz-columns:2;columns:2}.article--content div.columns-3{-moz-columns:3;columns:3}.article--content div.columns-4{-moz-columns:4;columns:4}.article--content div.columns-2,.article--content div.columns-3,.article--content div.columns-4{margin:1.5rem 0 2.5rem}.article--content div.columns-2>*:first-child,.article--content div.columns-3>*:first-child,.article--content div.columns-4>*:first-child{margin-top:0}@container columns (max-width: 780px){.article--content div.columns-4{-moz-columns:3;columns:3}}@container columns (max-width: 550px){.article--content div.columns-3,.article--content div.columns-4{-moz-columns:2;columns:2}}@container columns (max-width: 350px){.article--content div.columns-2,.article--content div.columns-3,.article--content div.columns-4{-moz-columns:1;columns:1}}.article--content .mermaid{opacity:0;color:#14141F;margin:3rem 0;transition:opacity .5s;font-family:"Proxima Nova",sans-serif}.article--content .mermaid .arrowheadPath,.article--content .mermaid .arrowMarkerPath{fill:#434453 !important}.article--content .mermaid .edgePath .path,.article--content .mermaid .flowchart-link{stroke:#434453 !important}.article--content .mermaid .label,.article--content .mermaid .nodeLabel{color:#D4D7DD !important}.article--content .mermaid .cluster-label .nodeLabel{color:#B7B8FF !important}.article--content .mermaid .edgeLabel{color:#D4D7DD !important;background:#07070E !important;font-size:.85em;font-weight:500}.article--content .mermaid .edgeLabel p{background:#14141F !important}.article--content .mermaid .node rect,.article--content .mermaid .node circle,.article--content .mermaid .node ellipse,.article--content .mermaid .node polygon,.article--content .mermaid .node path{fill:#14141F !important;stroke:#434453 !important;stroke-width:2px !important}.article--content .mermaid .node span.label{color:#D4D7DD !important}.article--content .mermaid .cluster rect,.article--content .mermaid .cluster circle,.article--content .mermaid .cluster ellipse,.article--content .mermaid .cluster polygon,.article--content .mermaid .cluster path{fill:#07070E !important;stroke:none !important}.article--content .mermaid[data-processed="true"]{opacity:1}.article--content .expand-wrapper{margin:2rem 0 2rem}.article--content h5+.expand-wrapper,.article--content h6+.expand-wrapper{margin-top:.75rem}.article--content .expand{position:relative;border-top:1px solid #383846;padding:.75rem 0}.article--content .expand:last-of-type,.article--content .expand:only-child{border-bottom:1px solid #383846}.article--content .expand-label{display:flex;align-items:center;font-weight:bold;margin-bottom:0;padding-right:2.5rem;cursor:pointer}.article--content .expand-label:hover .expand-toggle{background:#00C9FF}.article--content .expand-link{display:block;position:absolute;top:1rem;right:.75rem;min-height:20px;min-width:20px;font-size:1.25rem;color:#FAFAFC;opacity:.3;transition:opacity .2s}.article--content .expand-link:hover{color:#FAFAFC;opacity:1}.article--content .expand-toggle{position:relative;display:inline-block;min-height:20px;min-width:20px;background:#2AA3FF;border-radius:50%;margin-right:.75rem;transition:background-color .2s}.article--content .expand-toggle:before,.article--content .expand-toggle:after{content:"";display:block;width:10px;height:2px;position:absolute;background:#14141F;transition:all .4s;top:9px;left:5px}.article--content .expand-toggle:after{transform:rotate(90deg)}.article--content .expand-toggle.open:before,.article--content .expand-toggle.open:after{transform:rotate(180deg)}.article--content .expand-content{padding-top:1rem}.article--content .feedback{display:flex;justify-content:space-between;border:none;border-radius:2px;box-shadow:1px 2px 6px #07070E;background:rgba(212,215,221,0.03)}.article--content .feedback h4{color:#fff}.article--content .support{padding-right:2rem}.article--content .support ul{margin-bottom:1.25rem;padding:0;list-style:none}.article--content .support ul a{color:#fff;font-weight:500;position:relative}.article--content .support ul a::after{content:"\e90a";font-family:'icomoon-v4';font-weight:bold;font-size:1.3rem;display:inline-block;position:absolute;background:linear-gradient(45deg, #d30971,#9b2aff);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;right:0;transform:translateX(0.25rem);opacity:0;transition:transform .2s, opacity .2s}.article--content .support ul a:hover::after{transform:translateX(1.5rem);opacity:1}.article--content .support ul a.discord:before{content:url("/svgs/discord.svg");display:inline-block;height:1.1rem;width:1.25rem;vertical-align:top;margin:2px .65rem 0 0}.article--content .support ul a.community:before{content:"\e900";color:#fff;margin-right:.75rem;font-size:1.2rem;font-family:'icomoon-v2';vertical-align:middle}.article--content .support ul a.slack:before{content:url("/svgs/slack.svg");display:inline-block;height:1.1rem;width:1.1rem;vertical-align:text-top;margin-right:.8rem}.article--content .support ul a.reddit:before{content:url("/svgs/reddit.svg");display:inline-block;height:1.1rem;width:1.2rem;vertical-align:top;margin:2px .75rem 0 0}.article--content .actions{min-width:230px;padding-bottom:1.75rem}.article--content .actions a{display:block;padding-left:1rem;font-size:.95rem}.article--content .actions a.btn{color:#D4D7DD !important;background:#333346 !important}.article--content .actions a.btn:after{background:linear-gradient(45deg, #066FC5,#00A3FF)}.article--content .actions a.btn:hover{color:#fff !important}.article--content .actions a:before{display:inline-block;margin-right:.7rem;font-family:'icomoon-v2'}.article--content .actions a.edit:before{content:"\e92f";font-size:.85rem}.article--content .actions a.issue:before{content:"\e934";font-size:1rem}.article--content .helpful{position:relative;display:flex;flex-direction:row;justify-content:space-between}.article--content .helpful p{margin-bottom:0}.article--content .helpful label.radio-btns{position:relative;display:inline-block;min-width:4rem;padding:.5rem 1rem;font-size:.95rem;font-weight:500;text-align:center;color:#FAFAFC;border-radius:3px;background:rgba(212,215,221,0.1);cursor:pointer;z-index:1}.article--content .helpful label.radio-btns:after{content:"";display:block;position:absolute;margin:0;padding:0;top:0;left:0;width:100%;height:100%;border-radius:3px;min-width:4rem;z-index:-1;opacity:0;transition:opacity .2s, color .2s}.article--content .helpful label.radio-btns#helpful:after{background:linear-gradient(45deg, #009F5F,#34BB55)}.article--content .helpful label.radio-btns#not-helpful:after{background:linear-gradient(45deg, #F95F53,#FF8564)}.article--content .helpful label.radio-btns:hover{color:#fff}.article--content .helpful label.radio-btns:hover:after{opacity:1}.article--content .helpful input[type='radio']{display:none}.article--content .helpful .loader-wrapper,.article--content .helpful #thank-you{position:absolute;display:none;top:0;left:0;width:100%;height:100%;background-color:#14141F}.article--content .helpful .loader-wrapper{z-index:5}.article--content .helpful .loader-wrapper .loader{margin:0 auto}.article--content .helpful #thank-you{z-index:10}.article--content .helpful #thank-you p{text-align:center}@media (max-width: 800px){.article--content .feedback{flex-direction:column}}@media (max-width: 600px){.article--content .actions{padding-bottom:1rem}}.article--content .flex-wrapper{display:flex;flex-wrap:wrap;margin:1.5rem 0}.article--content .flex-container{margin-right:1.5rem}.article--content .flex-container.half{width:calc(50% - 1.5rem)}.article--content .flex-container.third{width:calc(33.33% - 1.5rem)}.article--content .flex-container.quarter{width:calc(25% - 1.5rem)}.article--content .flex-container.two-thirds{width:calc(66% - 2rem)}.article--content .flex-container.half table:not(:last-child),.article--content .flex-container.third table:not(:last-child),.article--content .flex-container.quarter table:not(:last-child){margin-right:1.5rem}.article--content .flex-container img{margin-bottom:0}.article--content .flex-container table{display:table}.article--content .flex-container p:last-child{margin-bottom:0.5rem}.article--content .flex-container.operator-example .highlight:first-child .codeblock pre{margin-top:0;margin-bottom:1.5rem}.article--content .flex-container.operator-example table:first-child{margin-top:0;margin-bottom:1.5rem}.article--content .flex-container.operator-example table:first-child th{font-size:1.05rem}.article--content .flex-container.operator-example table:first-child th,.article--content .flex-container.operator-example table:first-child td{padding:.65rem 1.15rem}@media (max-width: 600px){.article--content .flex-container.half,.article--content .flex-container.third,.article--content .flex-container.two-thirds{width:calc(100% - 1rem)}.article--content .flex-container.quarter{width:calc(50% - 1rem)}.article--content .flex-container p:last-child{margin-bottom:1.5rem}}.article--content h2:after,.article--content h3:after,.article--content h4:after{content:attr(data-type);display:inline-block;margin-left:.5rem;font-style:italic;font-size:.62em;font-weight:200;opacity:.5}.article--content .function-list a.experimental::after{content:'\e903';font-family:'icomoon-v4';margin-left:.45rem;color:rgba(212,215,221,0.35);font-style:normal;display:inline-block;vertical-align:middle}.article--content #flux-group-keys-demo table{margin-bottom:1.25rem}.article--content #flux-group-keys-demo table td:first-child,.article--content #flux-group-keys-demo table th:first-child{text-align:left}.article--content #flux-group-keys-demo table td:last-child,.article--content #flux-group-keys-demo table th:last-child{text-align:right}.article--content #flux-group-keys-demo table td.grouped-by,.article--content #flux-group-keys-demo table th.grouped-by{font-weight:bold}.article--content #flux-group-keys-demo table th.grouped-by{color:#D6F622}.article--content #flux-group-keys-demo table td.grouped-by{color:#D6F622}.article--content #flux-group-keys-demo #group-by-columns .column-list{padding:0;margin:.5rem 0 0;list-style:none}.article--content #flux-group-keys-demo #group-by-columns .column-list li{margin:0;line-height:1.35rem}.article--content #flux-group-keys-demo #group-by-columns label{display:inline-block;padding:.25rem 0;color:#D4D7DD;position:relative}.article--content #flux-group-keys-demo #group-by-columns label:after{content:attr(data-count);margin-left:0;font-size:.85rem;opacity:.5}.article--content #flux-group-keys-demo #group-by-columns .checkbox{display:inline-block;position:relative;height:1.15em;width:1.15em;background:rgba(212,215,221,0.05);margin-right:.3rem;vertical-align:text-top;border-radius:2px;cursor:pointer;border:1.5px solid rgba(212,215,221,0.2);-webkit-user-select:none;-moz-user-select:none;user-select:none}.article--content #flux-group-keys-demo #group-by-columns input[type='checkbox']{margin-right:-1.1rem;padding:0;vertical-align:top;opacity:0;cursor:pointer}.article--content #flux-group-keys-demo #group-by-columns input[type='checkbox']+.checkbox:after{content:"";display:block;position:absolute;height:.5rem;width:.5rem;border-radius:50%;background:#00A3FF;top:50%;left:50%;opacity:0;transform:scale(2) translate(-20%, -20%);transition:all .2s}.article--content #flux-group-keys-demo #group-by-columns input[type='checkbox']:checked+.checkbox:after{opacity:1;transform:scale(1) translate(-50%, -50%)}.article--content #flux-group-keys-demo pre#group-by-example{line-height:1.4rem;font-size:.95rem}.article--content #flux-group-keys-demo pre#group-by-example .nx{color:#00A3FF}.article--content #flux-group-keys-demo pre#group-by-example .s2{color:#009F5F}.article--content .flux-water-diagram{background:url("/img/flux/0-x-water-process-dark.svg");margin:2rem 0 .5rem;width:100%;height:0;padding-top:63.71%;background-repeat:no-repeat}.article--content #flux-data-model{max-width:500px;margin:3rem 0}.article--content #flux-data-model .stream-of-tables{position:relative;border:1px dashed #D4D7DD;padding:1rem;border-radius:4px}.article--content #flux-data-model .stream-of-tables:before{content:"Stream of tables";font-weight:500;color:#FAFAFC;background:#14141F;position:absolute;padding:0 1rem;top:-.65rem}.article--content #flux-data-model table{display:table;width:100%;overflow:visible;margin:0}.article--content #flux-data-model table th,.article--content #flux-data-model table td{border-right:1px dashed rgba(212,215,221,0.25)}.article--content #flux-data-model table th:last-child,.article--content #flux-data-model table td:last-child{border:none}.article--content #flux-data-model table th{border-color:rgba(255,255,255,0.25)}.article--content #flux-data-model .table-group{padding:1rem}.article--content #flux-data-model .table-group:first-child{border:1px dashed #D4D7DD;border-radius:2px;position:relative;margin-bottom:.25rem}.article--content #flux-data-model .table-group:first-child:before{content:"Table";font-weight:500;color:#FAFAFC;background:#14141F;position:absolute;padding:0 .75rem;top:-.65rem;right:1rem}.article--content #flux-data-model .table-group:nth-child(2) th:first-child{border:none}.article--content #flux-data-model .table-group:nth-child(2) th:nth-child(2){border-top:1px dashed #D4D7DD;border-left:1px dashed rgba(255,255,255,0.85);border-right:1px dashed rgba(255,255,255,0.85);position:relative}.article--content #flux-data-model .table-group:nth-child(2) th:nth-child(2):before{content:"Column";font-weight:500;color:#fff,0.85;position:absolute;top:.2rem;left:.5rem}.article--content #flux-data-model .table-group:nth-child(2) td:first-child{border:none}.article--content #flux-data-model .table-group:nth-child(2) td:nth-child(2){border-left:1px dashed #D4D7DD;border-right:1px dashed #D4D7DD}.article--content #flux-data-model .table-group:nth-child(2) tr:last-child td:nth-child(2){border-bottom:1px dashed #D4D7DD}.article--content #flux-data-model .table-group:nth-child(3) tr:nth-child(2){border-top:1px dashed #D4D7DD;border-bottom:1px dashed #D4D7DD}.article--content #flux-data-model .table-group:nth-child(3) tr:nth-child(2) td:first-child{border-left:1px dashed #D4D7DD;position:relative}.article--content #flux-data-model .table-group:nth-child(3) tr:nth-child(2) td:first-child:before{content:"Row";font-weight:500;color:#FAFAFC;position:absolute;top:.15rem;left:.5rem}.article--content #flux-data-model .table-group:nth-child(3) tr:nth-child(2) td:last-child{border-right:1px dashed #D4D7DD}.article--content #flux-table-ops{display:flex;justify-content:space-between;align-items:center;max-width:650px;margin-bottom:2rem}.article--content #flux-table-ops .stream-of-tables{flex-grow:1}.article--content #flux-table-ops .stream-of-tables:first-child{padding-left:0}.article--content #flux-table-ops .stream-of-tables:last-child{padding-right:0}.article--content #flux-table-ops .operation{display:flex;flex-grow:1;align-items:center}.article--content #flux-table-ops .operation .arrow{position:relative;background:#D4D7DD;flex-grow:1;height:1px;margin:0 .75rem;opacity:.35}.article--content #flux-table-ops .operation .arrow:after{content:"";position:absolute;width:0;height:0;border-style:solid;border-width:7px 0 7px 8px;border-color:transparent transparent transparent #D4D7DD;right:-1px;top:-7px}.article--content #flux-table-ops .operation p{margin:0;text-align:center}.article--content #flux-table-ops table{display:table;width:100%;overflow:visible;margin:1rem 0}.article--content #flux-table-ops table th,.article--content #flux-table-ops table td{border-right:1px dashed rgba(212,215,221,0.25)}.article--content #flux-table-ops table th:last-child,.article--content #flux-table-ops table td:last-child{border:none}.article--content #flux-table-ops table th{border-color:rgba(255,255,255,0.25)}@media (max-width: 600px){.article--content #flux-table-ops th:last-child,.article--content #flux-table-ops td:last-child{display:none}.article--content #flux-table-ops th:nth-child(2),.article--content #flux-table-ops td:nth-child(2){border:none}.article--content #flux-table-ops th:nth-child(2){border-radius:0 2px 0 0}.article--content #flux-table-ops tr:last-child td:nth-child(2){border-radius:0 0 2px 0}}.article--content .fs-diagram{display:inline-block;margin:1rem 0 2rem;padding:1.5rem 2.5rem 1.5rem 1.5rem;font-family:"IBM Plex Mono",monospace;border-radius:2px;box-shadow:1px 3px 10px #07070E}.article--content .fs-diagram>ul{padding:0;margin:0}.article--content .fs-diagram>ul li{line-height:2rem;color:#B7B8FF}.article--content .fs-diagram>ul ul{padding-left:2rem;margin:0}.article--content .fs-diagram>ul ul li{position:relative;margin:0 0 0 -1.45rem;padding-left:1.45rem;line-height:2.5rem;border-left:1px solid #B7B8FF}.article--content .fs-diagram>ul ul li:before{content:"";display:inline-block;width:1rem;height:.25rem;margin-right:.55rem;margin-left:-1.45rem;border-top:1px solid #B7B8FF}.article--content .fs-diagram>ul ul li:last-child{border:none}.article--content .fs-diagram>ul ul li:last-child:after{content:"";position:absolute;margin:0;padding:0;left:0;top:0;height:1.4rem;border-left:1px solid #B7B8FF}.article--content .fs-diagram ul{list-style:none}.article--content #shard-diagram,.article--content #data-retention{display:flex;flex-direction:column;max-width:550px;margin:2.5rem auto 3rem}.article--content #shard-diagram p,.article--content #data-retention p{margin-bottom:0;line-height:1.25em}.article--content #shard-diagram .periods,.article--content #data-retention .periods{display:flex;flex-direction:row;justify-content:space-between}.article--content #shard-diagram .timeline,.article--content #data-retention .timeline{display:flex;flex-direction:row;margin-top:.25rem;padding:0 .5rem}.article--content #shard-diagram .timeline .interval,.article--content #data-retention .timeline .interval{border-top:1px solid #D4D7DD;border-right:1px solid #D4D7DD;height:.75rem;flex-grow:1}.article--content #shard-diagram .timeline .interval:first-child,.article--content #data-retention .timeline .interval:first-child{border-left:1px solid #D4D7DD}.article--content #shard-diagram .timeline .one-quarter,.article--content #data-retention .timeline .one-quarter{width:25%;height:.75rem}.article--content #shard-diagram .timeline .three-quarters,.article--content #data-retention .timeline .three-quarters{width:75%;height:.75rem}.article--content #shard-diagram .timeline .border-left,.article--content #data-retention .timeline .border-left{border-left:1px solid #D4D7DD}.article--content #shard-diagram .timeline .retention-label,.article--content #data-retention .timeline .retention-label{position:relative}.article--content #shard-diagram .timeline .retention-label:before,.article--content #data-retention .timeline .retention-label:before{content:"";display:inline-block;width:.65rem;margin-right:.5rem;border-top:1px solid #D4D7DD;vertical-align:middle}.article--content #shard-diagram .timeline .deleted-label,.article--content #data-retention .timeline .deleted-label{color:#BF3D5E;text-align:center;font-size:.9rem}.article--content #shard-diagram .shard-groups,.article--content #data-retention .shard-groups{display:flex;flex-direction:row;justify-content:space-around;margin-top:.25rem;padding:.5rem;line-height:1rem}.article--content #shard-diagram .shard-groups .shard-group,.article--content #data-retention .shard-groups .shard-group{margin:0 .25rem;text-align:center;padding:.5rem;border-radius:.5rem;background:#262738;flex-grow:1;box-shadow:2px 2px 8px #07070E}.article--content #shard-diagram .shard-groups .shard-group p:first-child,.article--content #data-retention .shard-groups .shard-group p:first-child{margin-bottom:.75rem}.article--content #shard-diagram .shard-groups .shard-group .shard,.article--content #data-retention .shard-groups .shard-group .shard{display:block;margin-top:.5rem;padding:.65rem 1rem;color:#fff;border-radius:.25rem;background:linear-gradient(90deg, #8E1FC3,#066FC5);background-attachment:fixed}.article--content #shard-diagram .shard-groups .shard-group.deleted,.article--content #data-retention .shard-groups .shard-group.deleted{opacity:.3}.article--content #shard-diagram .shard-groups .shard-group.deleted .shard,.article--content #data-retention .shard-groups .shard-group.deleted .shard{background:linear-gradient(45deg, #BF3D5E,#DC4E58)}.article--content .series-diagram{display:flex;width:-moz-fit-content;width:fit-content;max-width:100%;margin:1rem 3.25rem 1.75rem 0;padding-right:1.5rem;border-right:2px solid #D6F622}.article--content .series-diagram table{margin:0}.article--content .series-diagram:after{content:"Series";top:4rem;right:-3.5rem}.article--content .series-diagram:last-child{margin-bottom:3rem}.article--content table tr.point{border:2px solid #D6F622}.article--content table tr.point:after{content:"Point";bottom:-.8rem;left:1rem}.article--content .series-diagram,.article--content table tr.point{position:relative}.article--content .series-diagram:after,.article--content table tr.point:after{color:#202028;background:#D6F622;border-radius:2px;position:absolute;font-size:.9rem;font-weight:500;padding:.2rem .5rem;line-height:.9rem}.article--content .sql table tr.points{position:relative}.article--content .sql table tr.points td:first-child:before,.article--content .sql table tr.points td:first-child:after{display:block;border-radius:2px;position:absolute;font-size:.9rem;font-weight:500;padding:.2rem .5rem;line-height:.9rem;z-index:1;top:-.25rem;opacity:0;transition:opacity .2s, top .2s}.article--content .sql table tr.points td:first-child:before{content:"Point 1";color:#fff;background:#d30971}.article--content .sql table tr.points td:first-child:after{content:"Point 2";color:#202028;background:#D6F622;left:5rem}.article--content .sql table tr.points:hover td:first-child:before,.article--content .sql table tr.points:hover td:first-child:after{opacity:1;top:-.65rem}.article--content .sql table span.point{position:relative;display:inline-block}.article--content .sql table span.point.one:before{content:"";display:block;position:absolute;width:100%;height:2px;border-top:2px solid #d30971;bottom:-2px}.article--content .sql table span.point.two:after{content:"";display:block;position:absolute;width:100%;height:2px;border-top:2px solid #D6F622;bottom:-8px}.article--content #line-protocol-anatomy{overflow:scroll;margin:3rem 0 2.5rem}.article--content #line-protocol-anatomy p{padding:3rem 0 2rem;white-space:nowrap;font-family:"IBM Plex Mono",monospace;overflow:visible;text-align:center}.article--content #line-protocol-anatomy p span{padding:.75rem 0 .75rem}.article--content #line-protocol-anatomy p span.el{position:relative;border-top:2px solid #D6F622}.article--content #line-protocol-anatomy p span.el:before{display:block;position:absolute;font-family:"Proxima Nova",sans-serif;font-size:.95rem;color:#D6F622;font-weight:500;top:-2.75rem;left:50%;transform:translateX(-50%)}.article--content #line-protocol-anatomy p span.el:after{content:"";display:block;position:absolute;height:1rem;width:2px;top:-1rem;left:50%;transform:translateX(-50%);background:#D6F622}.article--content #line-protocol-anatomy p span.el.measurement:before{content:"measurement"}.article--content #line-protocol-anatomy p span.el.tagset:before{content:"tag set"}.article--content #line-protocol-anatomy p span.el.fieldset:before{content:"field set"}.article--content #line-protocol-anatomy p span.el.timestamp:before{content:"timestamp"}.article--content #line-protocol-anatomy p span.whitespace,.article--content #line-protocol-anatomy p span.comma{position:relative;border-bottom:2px solid #D6F622}.article--content #line-protocol-anatomy p span.whitespace:before,.article--content #line-protocol-anatomy p span.comma:before{white-space:nowrap;display:block;position:absolute;font-family:"Proxima Nova",sans-serif;font-size:.95rem;color:#D6F622;font-weight:500;bottom:-2.75rem;left:50%;transform:translateX(-50%)}.article--content #line-protocol-anatomy p span.whitespace:after,.article--content #line-protocol-anatomy p span.comma:after{content:"";display:block;position:absolute;height:1rem;width:2px;bottom:-1rem;left:50%;transform:translateX(-50%);background:#D6F622}.article--content #line-protocol-anatomy p span.whitespace.whitespace:before,.article--content #line-protocol-anatomy p span.comma.whitespace:before{content:attr(data-whitespace) " whitespace"}.article--content #line-protocol-anatomy p span.whitespace.comma:before,.article--content #line-protocol-anatomy p span.comma.comma:before{content:attr(data-whitespace) "1st comma"}.article--content #line-protocol-anatomy.v3 p span.measurement::before{content:"table"}.article--content #line-protocol-anatomy.hide-elements p span.el{border:none}.article--content #line-protocol-anatomy.hide-elements p span.el:before,.article--content #line-protocol-anatomy.hide-elements p span.el:after{display:none}.article--content #line-protocol-anatomy.hide-commas p span.comma{border:none}.article--content #line-protocol-anatomy.hide-commas p span.comma:before,.article--content #line-protocol-anatomy.hide-commas p span.comma:after{display:none}.article--content #line-protocol-anatomy.hide-whitespace p span.whitespace{border:none}.article--content #line-protocol-anatomy.hide-whitespace p span.whitespace:before,.article--content #line-protocol-anatomy.hide-whitespace p span.whitespace:after{display:none}.article--content #influxql-window-diagram{min-width:520px;overflow:scroll;display:flex;flex-direction:row}.article--content #influxql-window-diagram #timerange-label{position:relative;width:.7rem;margin:10.5rem .5rem 6.5rem .5rem;border-width:1px 0 1px 1px;border-style:solid;border-color:rgba(212,215,221,0.3)}.article--content #influxql-window-diagram #timerange-label::before{content:"Queried time range";display:block;position:absolute;background:#14141F;padding:0 .75rem;font-weight:500;font-size:.9rem;color:rgba(212,215,221,0.5);transform:rotate(-90deg);white-space:nowrap;top:13.5rem;left:-4.7rem}.article--content #influxql-window-diagram td{font-weight:medium;color:#FAFAFC}.article--content #influxql-window-diagram td span.exclude{opacity:.35;font-weight:normal}.article--content #influxql-window-diagram .windows{display:flex;flex-direction:column;justify-content:space-between;padding:4rem 0 2.5rem .25rem}.article--content #influxql-window-diagram .window-hour{justify-content:space-between;height:100%;margin-bottom:.5rem;border-left:1px solid rgba(212,215,221,0.3);flex:1 1 0;position:relative}.article--content #influxql-window-diagram .window-hour::before,.article--content #influxql-window-diagram .window-hour::after{content:"";position:absolute;display:block;width:9px;height:1px;left:-10px;border-top:1px solid rgba(212,215,221,0.3)}.article--content #influxql-window-diagram .window-hour::before{top:0}.article--content #influxql-window-diagram .window-hour::after{bottom:-1px}.article--content #influxql-window-diagram .window-hour p{white-space:nowrap;margin-top:.55rem;position:relative}.article--content #influxql-window-diagram .window-hour p::before{content:"";display:inline-block;margin-right:.5rem;width:1rem;height:0;border-top:1px solid rgba(212,215,221,0.3);vertical-align:middle}.article--content #influxql-window-diagram .window-hour p::after{content:"Predefined window boundary";display:block;position:absolute;top:1.25rem;left:1.5rem;font-size:.9rem;font-weight:500;color:rgba(212,215,221,0.5)}.article--content .scaling-strategy{margin:2rem 0 3rem}.article--content .scaling-strategy .node{border:2px solid #D4D7DD;border-radius:6px;height:6rem;width:4rem}.article--content .scaling-strategy .dashed{border-style:dashed;border-color:rgba(212,215,221,0.5)}.article--content .scaling-strategy .outer{height:auto;width:-moz-fit-content;width:fit-content;position:relative}.article--content .scaling-strategy .inner{margin:2rem 1.25rem -2px}.article--content .scaling-strategy.horizontal{display:flex}.article--content .scaling-strategy.horizontal .node:not(:first-child){margin-left:1.25rem}.article--content #query-plan-diagram{display:flex;flex-direction:column;font-size:1rem;margin:3rem 0 3.5rem;max-width:800px}.article--content #query-plan-diagram .plan-column{padding:0 .5rem}.article--content #query-plan-diagram .plan-block{background:#07070E;color:#B7B8FF;text-align:center;padding:1rem 1.5rem;border-radius:4px}.article--content #query-plan-diagram .plan-arrow{margin:.5rem auto;height:1.5rem;width:1px;border-left:1px solid #B7B8FF;position:relative}.article--content #query-plan-diagram .plan-arrow:before{content:"\25B2";position:absolute;top:.25rem;left:-.32rem;color:#B7B8FF;line-height:0}.article--content #query-plan-diagram .plan-arrow.split{width:50%;margin-top:2rem;height:1rem;display:flex;justify-content:center;border-width:1px 1px 0 1px;border-style:solid;border-color:#B7B8FF}.article--content #query-plan-diagram .plan-arrow.split:before{position:relative;top:-1.25rem;left:-0.26rem;width:0;margin-left:.2rem}.article--content #query-plan-diagram .plan-arrow.split:after{content:"";display:block;height:1rem;width:0;border-left:1px solid #B7B8FF;margin:-1rem 0}.article--content #query-plan-diagram .plan-single-column{display:flex;justify-content:center}.article--content #query-plan-diagram .plan-double-column{display:flex;justify-content:space-around}.article--content #sso-auth-flow{max-width:650px;margin:2rem auto}.article--content #sso-auth-flow .row{display:flex}.article--content #sso-auth-flow .row.left{justify-content:start}.article--content #sso-auth-flow .row.center{justify-content:center}.article--content #sso-auth-flow .row.right{justify-content:end}.article--content #sso-auth-flow .auth-item{margin:1rem;color:#fff;display:flex;justify-content:center;align-items:center;flex-direction:column;padding:1.5rem 1.75rem;background:linear-gradient(-135deg, #8E1FC3,#066FC5);border-radius:4px;min-width:220px;min-height:90px;text-align:center;font-weight:500}.article--content #sso-auth-flow #auth0::after,.article--content #sso-auth-flow #idp::after{display:block;margin-top:.25rem;font-weight:normal;font-style:italic;font-size:1rem;opacity:.75}.article--content #sso-auth-flow #auth0::after{content:"Managed by InfluxData"}.article--content #sso-auth-flow #idp::after{content:"Managed by you"}.article--content #sso-auth-flow .arrow{display:block;width:65px;height:65px;position:relative;display:flex;justify-content:center;align-items:center;color:#D4D7DD;border-style:dashed;border-color:#D4D7DD}.article--content #sso-auth-flow .arrow.right:before,.article--content #sso-auth-flow .arrow.left:before{content:attr(step);background:#14141F;font-size:.9rem;width:1.5rem;height:1.5rem;border:1px solid #D4D7DD;text-align:center;line-height:1.5rem;border-radius:50%}.article--content #sso-auth-flow .arrow.right:after,.article--content #sso-auth-flow .arrow.left:after{position:absolute;line-height:0;font-size:1.35rem}.article--content #sso-auth-flow .arrow.right{border-radius:0 100% 0 0;border-width:2px 2px 0 0;align-self:flex-end}.article--content #sso-auth-flow .arrow.right:before{translate:45% -45%}.article--content #sso-auth-flow .arrow.right:after{content:"⏷";bottom:0;right:-.4rem}.article--content #sso-auth-flow .arrow.left{border-radius:0 0 0 100%;border-width:0 0 2px 2px;align-self:flex-start}.article--content #sso-auth-flow .arrow.left:before{translate:-45% 45%}.article--content #sso-auth-flow .arrow.left:after{content:"⏶";top:0;left:-.4rem}@media (max-width: 600px){.article--content #sso-auth-flow{max-width:350px;margin:6rem auto}.article--content #sso-auth-flow .row{flex-direction:column;margin:-50px 0}.article--content #sso-auth-flow .auth-item{margin:.5rem 0}.article--content #sso-auth-flow .arrow{width:2rem;height:55px}.article--content #sso-auth-flow .arrow.right,.article--content #sso-auth-flow .arrow.left{border-width:0 2px 0 0;border-radius:0}.article--content #sso-auth-flow .arrow.right{align-self:flex-start;margin-left:4rem}.article--content #sso-auth-flow .arrow.right:before{translate:60% -15%}.article--content #sso-auth-flow .arrow.left{align-self:flex-end;margin-right:6rem}.article--content #sso-auth-flow .arrow.left:before{translate:60% 10%}.article--content #sso-auth-flow .arrow.left:after{right:-.4rem;left:unset}}.article--content #quix-downsample-pipeline{margin:3rem auto}.article--content #quix-downsample-pipeline .logo-row{display:flex}.article--content #quix-downsample-pipeline .logo-row.top{justify-content:flex-start;margin-bottom:-2.6rem}.article--content #quix-downsample-pipeline .logo-row.top .quix-connector{margin-top:.5rem}.article--content #quix-downsample-pipeline .logo-row.bottom{justify-content:flex-end;margin-top:-2.6rem}.article--content #quix-downsample-pipeline .influxdb-connector{display:flex;flex-direction:column;align-items:center;width:29%}.article--content #quix-downsample-pipeline .influxdb-logo{background:url("/svgs/influxdb-logo-white.svg");width:175px;height:55px;background-repeat:no-repeat;background-size:contain;position:relative}.article--content #quix-downsample-pipeline .influxdb-logo:after{content:attr(data-precision) " data db";position:absolute;bottom:-2px;left:45px;width:100%;color:#D4D7DD;font-style:italic;font-size:1rem}.article--content #quix-downsample-pipeline .quix-connector{display:block;height:80px;width:20px;position:relative}.article--content #quix-downsample-pipeline .quix-connector:before{content:"";display:block;height:100%;width:100%;background-color:#D4D7DD;-webkit-mask-image:url("/svgs/quix-connector-plug.svg");mask-image:url("/svgs/quix-connector-plug.svg");-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;background-size:contain}.article--content #quix-downsample-pipeline .quix-connector:after{content:"Connector";display:block;position:absolute;top:1.5rem;left:1.75rem;padding:.25rem .5rem;color:#D4D7DD;font-size:1rem;font-style:italic;background-color:#14141F;border-radius:6px;border:1.5px solid rgba(212,215,221,0.5);box-shadow:2px 2px 6px rgba(15,14,21,0.5)}.article--content #quix-downsample-pipeline .quix-stream-container{display:flex;flex-direction:row;border:2px dashed #D4D7DD;background:rgba(212,215,221,0.1);border-radius:8px;padding:2.5rem;justify-content:space-between;align-items:center}.article--content #quix-downsample-pipeline .quix-stream-component{padding:1rem;border-radius:4px;border-style:dashed;border-width:2px;position:relative}.article--content #quix-downsample-pipeline .quix-stream-component p{margin:0;line-height:1.2rem;font-size:1rem;text-align:center;color:#FAFAFC}.article--content #quix-downsample-pipeline .quix-stream-component:before{content:url("/svgs/quix-python-heart.svg");display:block;position:absolute;width:40px;height:40px;top:-15px;left:-15px;filter:drop-shadow(2px 0px 0px #14141F) drop-shadow(-2px 0px 0px #14141F) drop-shadow(0px 2px 0px #14141F) drop-shadow(0px -2px 0px #14141F)}.article--content #quix-downsample-pipeline .quix-stream-component#source-producer{background:rgba(42,163,255,0.2);border-color:#2AA3FF}.article--content #quix-downsample-pipeline .quix-stream-component#downsampling-process{background:rgba(191,47,229,0.2);border-color:#BF2FE5}.article--content #quix-downsample-pipeline .quix-stream-component#sink-consumer{background:rgba(244,141,56,0.2);border-color:#F48D38}.article--content #quix-downsample-pipeline .arrow{margin:.5rem .75rem .5rem .5rem;height:2px;width:auto;min-width:25px;background:#D4D7DD;position:relative}.article--content #quix-downsample-pipeline .arrow:after{content:"▶";position:absolute;right:-4px;top:-.48em;font-size:.75rem;color:#D4D7DD}.article--content #quix-downsample-pipeline .kafka-toggle{display:flex;justify-content:flex-end;width:60px;min-width:60px;height:40px;border-radius:20px;background:#07070E;position:relative}.article--content #quix-downsample-pipeline .kafka-toggle:after{content:"TOPIC:\a" attr(topic);position:absolute;width:215%;color:#D4D7DD;text-align:center;font-style:italic;bottom:-42px;font-size:.9rem;left:-60%;white-space:pre-wrap}.article--content #quix-downsample-pipeline .kafka-toggle .toggle-icon{display:block;height:34px;width:34px;margin:3px;border-radius:50%;background:url("/svgs/apache-kafka-icon.svg");background-color:#fff;background-size:86%;background-position:90%;background-repeat:no-repeat}.article--content #quix-downsample-pipeline #quix-brand-icons{height:50px;display:flex;align-items:flex-start;margin-top:-3rem}.article--content #quix-downsample-pipeline #quix-brand-icons>*{height:45px;display:inline-block;background-color:#0F0E15;border-radius:6px;margin-right:.25rem;box-shadow:0 1px 10px rgba(255,255,255,0.1)}.article--content #quix-downsample-pipeline #quix-brand-icons>* img{margin:0;box-shadow:none;border-radius:0;height:100%}.article--content #quix-downsample-pipeline #quix-brand-icons .quix-logo{padding:.75rem}.article--content #quix-downsample-pipeline #quix-brand-icons .quix-streams-logo{position:relative;padding:.6rem}.article--content #quix-downsample-pipeline #quix-brand-icons .quix-streams-logo::after{content:"Quix\A Streams";display:inline-block;white-space:pre-wrap;font-size:.92rem;font-weight:500;color:#fff;line-height:.9rem;margin-left:.15rem}.article--content table.window-frame-units.groups .group{position:relative;outline-style:solid;outline-width:3px;outline-offset:-5px;border-radius:10px}.article--content table.window-frame-units.groups .group::before{content:"Row Group";display:block;padding:.25rem .5rem;position:absolute;top:3px;left:3px;border-radius:4px;color:#fff;font-size:.8rem;font-weight:bold;text-transform:uppercase;letter-spacing:.02em;box-shadow:4px 4px 4px #14141F}.article--content table.window-frame-units.groups .group td:nth-child(2),.article--content table.window-frame-units.groups .group td:nth-child(3){font-weight:bold;text-decoration:underline;text-decoration-thickness:2px;text-underline-offset:5px}.article--content table.window-frame-units.groups .group:nth-of-type(1){outline-color:#d30971}.article--content table.window-frame-units.groups .group:nth-of-type(1)::before{background:#d30971}.article--content table.window-frame-units.groups .group:nth-of-type(1) td:nth-child(2),.article--content table.window-frame-units.groups .group:nth-of-type(1) td:nth-child(3){text-decoration-color:#d30971}.article--content table.window-frame-units.groups .group:nth-of-type(2){outline-color:#9b2aff}.article--content table.window-frame-units.groups .group:nth-of-type(2)::before{background:#9b2aff}.article--content table.window-frame-units.groups .group:nth-of-type(2) td:nth-child(2),.article--content table.window-frame-units.groups .group:nth-of-type(2) td:nth-child(3){text-decoration-color:#9b2aff}.article--content table.window-frame-units.groups .group:nth-of-type(3){outline-color:#2AA3FF}.article--content table.window-frame-units.groups .group:nth-of-type(3)::before{background:#2AA3FF}.article--content table.window-frame-units.groups .group:nth-of-type(3) td:nth-child(2),.article--content table.window-frame-units.groups .group:nth-of-type(3) td:nth-child(3){text-decoration-color:#2AA3FF}.article--content table.window-frame-units.groups .group:nth-of-type(4){outline-color:#0B3A8D}.article--content table.window-frame-units.groups .group:nth-of-type(4)::before{background:#0B3A8D}.article--content table.window-frame-units.groups .group:nth-of-type(4) td:nth-child(2),.article--content table.window-frame-units.groups .group:nth-of-type(4) td:nth-child(3){text-decoration-color:#0B3A8D}.article--content table.window-frame-units.groups-with-frame .frame,.article--content table.window-frame-units.groups-with-frame tr.current-row{position:relative;outline-style:solid;outline-width:3px;outline-offset:-5px;border-radius:10px}.article--content table.window-frame-units.groups-with-frame .frame::after,.article--content table.window-frame-units.groups-with-frame tr.current-row::after{display:block;padding:.25rem .5rem;position:absolute;top:3px;left:3px;border-radius:4px;color:#fff;font-size:.8rem;font-weight:bold;text-transform:uppercase;letter-spacing:.02em;box-shadow:4px 4px 4px #14141F}.article--content table.window-frame-units.groups-with-frame .frame tr:nth-child(n + 1):nth-child(-n + 3) td,.article--content table.window-frame-units.groups-with-frame tr.current-row tr:nth-child(n + 1):nth-child(-n + 3) td{text-decoration-color:#d30971}.article--content table.window-frame-units.groups-with-frame .frame tr:nth-child(n + 4):nth-child(-n + 6) td,.article--content table.window-frame-units.groups-with-frame tr.current-row tr:nth-child(n + 4):nth-child(-n + 6) td{text-decoration-color:#BF2FE5}.article--content table.window-frame-units.groups-with-frame .frame tr:nth-child(n + 7):nth-child(-n + 8) td,.article--content table.window-frame-units.groups-with-frame tr.current-row tr:nth-child(n + 7):nth-child(-n + 8) td{text-decoration-color:#2AA3FF}.article--content table.window-frame-units.groups-with-frame .frame td:nth-child(n + 2):nth-child(-n + 3),.article--content table.window-frame-units.groups-with-frame tr.current-row td:nth-child(n + 2):nth-child(-n + 3){font-weight:bold;text-decoration:underline;text-decoration-thickness:2px;text-underline-offset:5px}.article--content table.window-frame-units.groups-with-frame tr.current-row{outline-color:#d30971}.article--content table.window-frame-units.groups-with-frame tr.current-row::after{content:"Current Row";background:#d30971}.article--content table.window-frame-units.groups-with-frame tr.current-row td{text-decoration-color:#2AA3FF !important}.article--content table.window-frame-units.groups-with-frame .frame{outline-color:#9b2aff}.article--content table.window-frame-units.groups-with-frame .frame::after{content:"Frame";background:#9b2aff}.article--content table.window-frame-units.groups-with-frame .group{position:relative;outline-color:#0B3A8D}.article--content table.window-frame-units.groups-with-frame .group td:nth-child(2),.article--content table.window-frame-units.groups-with-frame .group td:nth-child(3){font-weight:bold;text-decoration:underline;text-decoration-thickness:2px;text-underline-offset:5px;text-decoration-color:#0B3A8D}.article--content table.window-frame-units.range-interval .frame,.article--content table.window-frame-units.range-interval tr.current-row{position:relative;outline-style:solid;outline-width:3px;outline-offset:-5px;border-radius:10px}.article--content table.window-frame-units.range-interval .frame td:first-child,.article--content table.window-frame-units.range-interval tr.current-row td:first-child{font-weight:bold;text-decoration:underline;text-decoration-thickness:2px;text-underline-offset:5px;text-decoration-color:#9b2aff}.article--content table.window-frame-units.range-interval .frame::after,.article--content table.window-frame-units.range-interval tr.current-row::after{display:block;padding:.25rem .5rem;position:absolute;top:3px;right:3px;border-radius:4px;color:#fff;font-size:.8rem;font-weight:bold;text-transform:uppercase;letter-spacing:.02em;box-shadow:-4px 4px 4px #14141F}.article--content table.window-frame-units.range-interval tr.current-row{outline-color:#d30971}.article--content table.window-frame-units.range-interval tr.current-row td:first-child{text-decoration-color:#d30971}.article--content table.window-frame-units.range-interval tr.current-row::after{content:"Current Row";background:#d30971;box-shadow:-4px 4px 4px #262738}.article--content table.window-frame-units.range-interval .frame{outline-color:#9b2aff}.article--content table.window-frame-units.range-interval .frame::after{content:"Frame";background:#9b2aff}.article--content table.window-frame-units.range-numeric .frame,.article--content table.window-frame-units.range-numeric tr.current-row,.article--content table.window-frame-units.rows .frame,.article--content table.window-frame-units.rows tr.current-row{position:relative;outline-style:solid;outline-width:3px;outline-offset:-5px;border-radius:10px}.article--content table.window-frame-units.range-numeric .frame::after,.article--content table.window-frame-units.range-numeric tr.current-row::after,.article--content table.window-frame-units.rows .frame::after,.article--content table.window-frame-units.rows tr.current-row::after{display:block;padding:.25rem .5rem;position:absolute;top:3px;left:3px;border-radius:4px;color:#fff;font-size:.8rem;font-weight:bold;text-transform:uppercase;letter-spacing:.02em;box-shadow:4px 4px 4px #14141F}.article--content table.window-frame-units.range-numeric tr.current-row,.article--content table.window-frame-units.rows tr.current-row{outline-color:#d30971}.article--content table.window-frame-units.range-numeric tr.current-row::after,.article--content table.window-frame-units.rows tr.current-row::after{content:"Current Row";background:#d30971}.article--content table.window-frame-units.range-numeric .frame,.article--content table.window-frame-units.rows .frame{outline-color:#9b2aff}.article--content table.window-frame-units.range-numeric .frame::after,.article--content table.window-frame-units.rows .frame::after{content:"Frame";background:#9b2aff}.article--content table.window-frame-units.range-numeric .frame td:nth-child(3){font-weight:bold;text-decoration:underline;text-decoration-thickness:2px;text-underline-offset:5px;text-decoration-color:#9b2aff}.article--content table.window-frame-units.range-numeric .frame tr.current-row td:nth-child(3){text-decoration-color:#d30971}@media (max-width: 1280px){.article--content #quix-downsample-pipeline{max-width:325px}.article--content #quix-downsample-pipeline .logo-row .influxdb-connector{width:100%}.article--content #quix-downsample-pipeline .quix-stream-container{flex-direction:column}.article--content #quix-downsample-pipeline .arrow{margin:.5rem .5rem .75rem .5rem;width:2px;min-width:2px;height:auto;min-height:25px}.article--content #quix-downsample-pipeline .arrow:after{content:"▼";right:-4.25px;bottom:-.5em;top:unset;font-size:1rem}.article--content #quix-downsample-pipeline .kafka-toggle{margin-bottom:1.5rem}.article--content #quix-downsample-pipeline .kafka-toggle:after{content:"TOPIC: " attr(topic);width:400%;bottom:-25px;left:-150%}.article--content #quix-downsample-pipeline #quix-brand-icons{margin-top:1.5rem;align-items:center;justify-content:center}}@media (max-width: 600px){.article--content #shard-diagram{flex-direction:row}.article--content #shard-diagram .periods{flex-direction:column;margin-right:.5rem}.article--content #shard-diagram .timeline{flex-direction:column;padding:.5rem 0}.article--content #shard-diagram .timeline .interval{width:.75rem;border-top:none;border-right:none;border-left:1px solid #D4D7DD;border-bottom:1px solid #D4D7DD}.article--content #shard-diagram .timeline .interval:first-child{border-top:1px solid #D4D7DD}.article--content #shard-diagram .shard-groups{flex-direction:column}.article--content #shard-diagram .shard-groups .shard-group{margin:.25rem 0}.article--content .series-diagram{width:auto}.article--content #influxql-window-diagram{justify-content:flex-start;min-width:300px}.article--content #influxql-window-diagram .window-hour{width:60px}.article--content #influxql-window-diagram .window-hour p{transform:rotate(-90deg);position:relative;margin-top:8.75rem;font-size:.95rem}.article--content #influxql-window-diagram .window-hour p::before{transform:rotate(90deg);position:absolute;top:-.5rem;left:4.5rem}.article--content #influxql-window-diagram .window-hour p::after{left:0}}.article--content .influxdbu-banner{background-color:#020a47;margin:2.5rem 0 3rem;padding:2.5rem;border-radius:1.5rem;box-shadow:2px 2px 8px #07070E;background-image:url("/svgs/home-bg-circle-right.svg");background-size:cover;display:flex;justify-content:space-between;align-items:center}.article--content .influxdbu-banner .influxdbu-logo{max-width:170px;margin:0 0 1rem;box-shadow:none}.article--content .influxdbu-banner .banner-content{margin-right:1rem;max-width:65%}.article--content .influxdbu-banner .banner-content h4{margin-top:-1.75rem;font-size:1.5rem;font-style:normal;color:#fff}.article--content .influxdbu-banner .banner-content p{margin-bottom:0;color:#fff}.article--content .influxdbu-banner .banner-content p strong{color:#fff}.article--content .influxdbu-banner .banner-cta{position:relative}.article--content .influxdbu-banner .banner-cta a{display:block;position:relative;padding:1rem 1.5rem;color:#fff;text-align:center;border-radius:2px;background:linear-gradient(45deg, #d30971,#9b2aff);z-index:1}.article--content .influxdbu-banner .banner-cta a:after{content:"";position:absolute;padding:0;top:0;right:0;width:100%;height:100%;border-radius:2px;background:linear-gradient(270deg, #771cc7,#b2025b);transition:opacity .2s;z-index:-1;opacity:0}.article--content .influxdbu-banner .banner-cta a:hover:after{opacity:1}@media (max-width: 600px){.article--content .influxdbu-banner{flex-direction:column}.article--content .influxdbu-banner .banner-content{max-width:100%}.article--content .influxdbu-banner .banner-content h4{margin-top:-1.25rem}.article--content .influxdbu-banner .banner-cta{margin-top:1.75rem;width:100%}}.article--content .influxql-table-meta p{font-size:.9rem;line-height:1.25rem}.article--content .influxql-table-meta p:last-child{margin-bottom:0rem}.article--content table+.influxql-table-meta{margin-top:-1.5rem}.article--content .keybinding{font-family:"Proxima Nova",sans-serif}.article--content .keybinding code{font-family:"Proxima Nova",sans-serif}.article--content .keybinding.osx code{font-family:-apple-system,BlinkMacSystemFont,"Proxima Nova",sans-serif,"Helvetica Neue",Arial,sans-serif}.article--content .keybinding code.osx{font-family:-apple-system,BlinkMacSystemFont,"Proxima Nova",sans-serif,"Helvetica Neue",Arial,sans-serif}.article--content #list-filters{display:flex;flex-flow:row wrap;align-items:flex-start}.article--content #list-filters .filter-category{flex:1 1 200px;margin:0 1.25rem 1.25rem 0;max-width:33%}.article--content #list-filters .filter-category.two-columns{flex:1 2 400px;max-width:66%}.article--content #list-filters .filter-category.two-columns .filter-list{-moz-columns:2;columns:2}.article--content #list-filters h5{border-bottom:1px solid rgba(212,215,221,0.25);padding-bottom:.65rem}.article--content #list-filters .filter-list{padding:0;margin:.5rem 0 0;list-style:none}.article--content #list-filters .filter-list li{margin:0;line-height:1.35rem}.article--content #list-filters label{display:block;padding:.25rem 0;color:#D4D7DD;position:relative}.article--content #list-filters label:after{content:attr(data-count);margin-left:0;font-size:.85rem;opacity:.5}.article--content #list-filters .checkbox{display:inline-block;position:relative;height:1.15em;width:1.15em;background:rgba(212,215,221,0.05);margin-right:.3rem;vertical-align:text-top;border-radius:2px;cursor:pointer;border:1.5px solid rgba(212,215,221,0.2);-webkit-user-select:none;-moz-user-select:none;user-select:none}.article--content #list-filters input[type='checkbox']{margin-right:-1.1rem;padding:0;vertical-align:top;opacity:0;cursor:pointer}.article--content #list-filters input[type='checkbox']+.checkbox:after{content:"";display:block;position:absolute;height:.5rem;width:.5rem;border-radius:50%;background:#00A3FF;top:50%;left:50%;opacity:0;transform:scale(2) translate(-20%, -20%);transition:all .2s}.article--content #list-filters input[type='checkbox']:checked+.checkbox:after{opacity:1;transform:scale(1) translate(-50%, -50%)}@media (max-width: 1100px){.article--content #list-filters .filter-category{max-width:50%}.article--content #list-filters .filter-category.two-columns,.article--content #list-filters .filter-category.three-columns{max-width:100%}}@media (max-width: 600px){.article--content #list-filters .filter-category{max-width:100%}}.article--content ol,.article--content ul{padding-left:1.6rem;margin:1rem 0 1.5rem 0}.article--content ol ol,.article--content ol ul,.article--content ul ol,.article--content ul ul{margin:0}.article--content ul{list-style-type:disc}.article--content ul li:before{content:"" !important;display:none}.article--content ul ol{list-style:revert}.article--content ul ol li::marker{font-weight:bold;color:#FAFAFC}.article--content ol{list-style:none;counter-reset:item}.article--content ol li{position:relative;counter-increment:item}.article--content ol li:before{content:counter(item) ". ";position:absolute;left:-1.6em;color:#FAFAFC;font-weight:bold}.article--content ol li>ol li:before{content:counter(item, lower-latin) ". "}.article--content ol li>ol li ol li:before{content:counter(item) ". "}.article--content ol li>ol li ol li ol li:before{content:counter(item, lower-latin) ". "}.article--content ol li>ol li ol li ol li ol li:before{content:counter(item) ". "}.article--content ol li ul{counter-reset:item}.article--content ol li ul>ol{counter-reset:item}.article--content li{margin:.25rem 0}.article--content li:not(:last-child)>p:only-child{margin-bottom:0}.article--content li p+ul,.article--content li p+ol{margin:-.9rem 0 .5rem}.article--content li .list-note{font-size:.85rem}.article--content li h4,.article--content li h5,.article--content li h6{margin-top:1em;padding-top:0}.article--content em.op90,.article--content span.op90,.article--content strong.op90{opacity:.9}.article--content em.op85,.article--content span.op85,.article--content strong.op85{opacity:.85}.article--content em.op80,.article--content span.op80,.article--content strong.op80{opacity:.8}.article--content em.op75,.article--content span.op75,.article--content strong.op75{opacity:.75}.article--content em.op70,.article--content span.op70,.article--content strong.op70{opacity:.7}.article--content em.op65,.article--content span.op65,.article--content strong.op65{opacity:.65}.article--content em.op60,.article--content span.op60,.article--content strong.op60{opacity:.6}.article--content em.op55,.article--content span.op55,.article--content strong.op55{opacity:.55}.article--content em.op50,.article--content span.op50,.article--content strong.op50{opacity:.5}.article--content em.op45,.article--content span.op45,.article--content strong.op45{opacity:.45}.article--content em.op40,.article--content span.op40,.article--content strong.op40{opacity:.4}.article--content em.op35,.article--content span.op35,.article--content strong.op35{opacity:.35}.article--content em.op30,.article--content span.op30,.article--content strong.op30{opacity:.3}.article--content em.op25,.article--content span.op25,.article--content strong.op25{opacity:.25}.article--content em.op20,.article--content span.op20,.article--content strong.op20{opacity:.2}.article--content em.op15,.article--content span.op15,.article--content strong.op15{opacity:.15}.article--content em.op10,.article--content span.op10,.article--content strong.op10{opacity:.1}.article--content .page-nav-btns{display:flex;justify-content:space-between;margin:3rem 0 1rem}.article--content .page-nav-btns .btn{display:flex;max-width:49%;text-align:center;align-items:center}.article--content .page-nav-btns .btn.prev{margin:0 auto 0 0;padding:.75rem 1.25rem .75rem .75rem}.article--content .page-nav-btns .btn.prev:before{content:"\e90a";display:inline-block;font-family:"icomoon-v2";margin-right:.5rem;vertical-align:middle}.article--content .page-nav-btns .btn.next{margin:0 0 0 auto;padding:.75rem .75rem .75rem 1.25rem;flex-direction:row-reverse}.article--content .page-nav-btns .btn.next:before{content:"\e90c";display:inline-block;font-family:"icomoon-v2";margin-left:.5rem;vertical-align:middle}.article--content .page-nav-btns .btn:only-child{max-width:none}.article--content .related{border-top:1px solid #383846;padding-top:1.5rem}.article--content .related h4{font-size:1.15rem}.article--content .related ul{list-style:none;padding:0;margin-top:0}.article--content .related li{margin:.5rem 0;line-height:1.25rem}.article--content .expand-wrapper+.related{border-top:none;margin-top:-2rem}.article--content #release-toc{margin:2rem 0 3rem}.article--content #release-toc ul{list-style:none;overflow:hidden;padding-left:0;margin-bottom:.75rem;transition:height .2s}.article--content #release-toc ul li{line-height:1.2em;margin:.5rem 0}.article--content #release-toc ul li::after{content:attr(date);font-size:1rem;margin-left:.5rem;color:rgba(212,215,221,0.5)}.article--content #release-toc.clustered ul{padding-left:1.5rem}.article--content #release-toc.clustered ul .checkpoint{margin-left:-1.5rem}.article--content #release-toc.clustered ul .checkpoint::before{content:'\e93b' !important;font-family:'icomoon-v4';color:#d30971;display:inline-block;margin:0 .5rem 0 0;vertical-align:top}.article--content #release-toc .show-more{color:#00A3FF;transition:color .2s;font-weight:500;font-size:1rem}.article--content #release-toc .show-more::before{content:'\e935';font-family:'icomoon-v4';font-size:.9rem;color:#14141F;background:#00A3FF;border-radius:50%;margin-right:.5rem;transition:background .15s}.article--content #release-toc .show-more:hover{cursor:pointer;color:#fff}.article--content #release-toc .show-more:hover::before{background:#fff}.article--content pre::-webkit-scrollbar{background-color:rgba(7,7,14,0);width:12px;height:12px}.article--content pre::-webkit-scrollbar-track{background-color:#07070E;border-radius:0 0 2px 2px}.article--content pre::-webkit-scrollbar-thumb{background-color:#292933;border:3px solid #07070E;border-radius:6px}.article--content table::-webkit-scrollbar{background-color:rgba(38,39,56,0);width:12px;height:12px}.article--content table::-webkit-scrollbar-track{background-color:#262738;border-radius:0 0 2px 2px}.article--content table::-webkit-scrollbar-thumb{background-color:#0F0E15;border:3px solid #262738;border-radius:6px}.article--content svg[id^='geo-s2-cells-']{max-width:250px}.article--content svg[id^='geo-s2-cells-'] .geo-cell{fill:rgba(42,163,255,0.25);stroke:#2AA3FF;stroke-width:3;stroke-linejoin:round;stroke-miterlimit:10}.article--content svg[id^='geo-s2-cells-'] .geo-region{fill:rgba(206,88,235,0.35);stroke:#CE58EB;stroke-width:3;stroke-linejoin:round;stroke-miterlimit:10}.article--content svg[id^='geo-s2-cells-'] .geo-point{fill:#D6F622}.article--content svg#timed-moving-average{margin:1rem 0 3rem;max-width:425px}.article--content svg#timed-moving-average .st0{stroke:#D4D7DD}.article--content svg#timed-moving-average .st1{fill:#D4D7DD}.article--content svg#timed-moving-average .st2{font-family:"Proxima Nova",sans-serif;font-weight:500}.article--content svg#join-diagram{display:block;max-width:250px;margin:1rem 0 2rem}.article--content svg#join-diagram.center{margin:0 auto 2rem auto}.article--content svg#join-diagram.small{max-width:125px}.article--content svg#join-diagram.small path{stroke-width:3}.article--content svg#join-diagram path{stroke:#D4D7DD;stroke-width:2;stroke-miterlimit:10;fill:none}.article--content svg#join-diagram.inner path#center{fill:rgba(212,215,221,0.35)}.article--content svg#join-diagram.left path#left,.article--content svg#join-diagram.left path#center{fill:rgba(212,215,221,0.35)}.article--content svg#join-diagram.right path#center,.article--content svg#join-diagram.right path#right{fill:rgba(212,215,221,0.35)}.article--content svg#join-diagram.full path#left,.article--content svg#join-diagram.full path#center,.article--content svg#join-diagram.full path#right{fill:rgba(212,215,221,0.35)}.article--content svg#influxdb-v3-storage-architecture{margin:2rem 0 3rem;max-width:750px}.article--content svg#influxdb-v3-storage-architecture .shape{fill:none;stroke:#D4D7DD;stroke-width:1.5;stroke-miterlimit:10}.article--content svg#influxdb-v3-storage-architecture .shape.op70{opacity:0.7}.article--content svg#influxdb-v3-storage-architecture .shape.op50{opacity:0.5}.article--content svg#influxdb-v3-storage-architecture .shape.op25{opacity:0.25}.article--content svg#influxdb-v3-storage-architecture .shape.dashed{stroke-width:1;stroke-dasharray:4,3}.article--content svg#influxdb-v3-storage-architecture .title{fill:#9394FF;font-weight:500;font-size:20px}.article--content svg#influxdb-v3-storage-architecture .text{fill:#D4D7DD;font-size:18px}.article--content svg#influxdb-v3-storage-architecture .text.small{font-size:16px}.article--content svg#influxdb-v3-storage-architecture .text.bold{font-weight:500;color:#FAFAFC}.article--content svg#influxdb-v3-storage-architecture .text.italic{font-style:italic}.article--content svg#influxdb-v3-storage-architecture .diagram-line{fill:none;stroke:#D6F622;stroke-width:1.5;stroke-miterlimit:10}.article--content svg#influxdb-v3-storage-architecture .diagram-line.dashed{stroke-dasharray:2,4}.article--content svg#influxdb-v3-storage-architecture .arrow{fill:#D6F622}@media (max-width: 600px){.article--content svg#join-diagram{margin:1rem auto 2rem}}.article--content span.key-geo-cell{display:inline-block;vertical-align:middle;margin:0 .5rem .25rem 0;width:1.1em;height:1.1em;border:2px solid #2AA3FF;background:rgba(42,163,255,0.25);border-radius:2px}.article--content span.key-geo-region{display:inline-block;vertical-align:middle;margin:0 .5rem .25rem 0;width:1.1em;height:1.1em;border:2px solid #CE58EB;background:rgba(206,88,235,0.35);border-radius:2px}.article--content span.key-geo-point{display:inline-block;margin:0 .7rem 0 .25rem;width:.65rem;height:.65rem;border-radius:50%;background:#D6F622}.article--content .tabs-wrapper{margin:2.5rem 0 .5rem}.article--content .code-tabs-wrapper{margin:1.5rem 0 .5rem}.article--content .tabs p{display:flex;flex-wrap:wrap}.article--content .tabs a{flex-grow:1;margin:2px;position:relative;font-size:1rem;font-weight:500;padding:.65rem 1.25rem;display:inline-block;white-space:nowrap;text-align:center;color:#A4A8B6 !important;border-radius:2px;background-color:#07070E;transition:background-color .2s, color .2s;z-index:1}.article--content .tabs a:after{content:"";position:absolute;display:block;top:0;right:0;width:100%;height:100%;border-radius:2px;background:linear-gradient(45deg, #066FC5,#00A3FF);opacity:0;transition:opacity .2s;z-index:-1}.article--content .tabs a:hover{color:#fff !important}.article--content .tabs a:hover:after{opacity:1}.article--content .tabs a.is-active{color:#fff !important}.article--content .tabs a.is-active:after{opacity:1;background:linear-gradient(45deg, #066FC5,#00A3FF)}.article--content .tabs.small p{justify-content:flex-start}.article--content .tabs.small a{flex-grow:unset;padding:.35rem 1rem}.article--content .tabs.small .tab-view-output{padding:.5rem .5rem 0;font-size:.9rem;opacity:.65;font-style:italic;transition:opacity .2s}.article--content .tabs.small .tab-view-output:before{content:"\e97a";margin-right:0.25em;font-family:'icomoon-v3';font-style:normal}.article--content .tabs.small a.is-active+.tab-view-output{opacity:0}.article--content .tabs.medium p{justify-content:flex-start}.article--content .tabs.medium a{flex-grow:unset}.article--content .tabs.even-wrap a{flex-basis:25%}.article--content .code-tabs p{margin:0;text-align:right;display:block}.article--content .code-tabs a{padding:.1rem .75rem;margin:0;border-radius:2px 2px 0 0;display:inline-block;font-size:1rem;background:#14141F;color:rgba(255,255,255,0.5)}.article--content .code-tabs a:hover{color:#fff}.article--content .code-tabs a.is-active{background-color:#07070E;color:#fff}.article--content .code-tab-content{padding:0}.article--content .code-tab-content pre{margin:0 0 3rem;border-radius:2px 0 2px 2px}.article--content .tab-content,.article--content .code-tabs-content{margin:.75rem 0 3rem;width:100%}.article--content .tab-content>:not(table,.fs-diagram,img),.article--content .code-tabs-content>:not(table,.fs-diagram,img){width:100%;margin-left:0}.article--content .tab-content table:last-child,.article--content .code-tabs-content table:last-child{margin-bottom:0}.article--content .tab-content:not(:first-of-type){display:none}.article--content .code-tab-content:not(:first-of-type){display:none}.article--content table{display:inline-block;margin:1rem 1rem 3rem 0;border-spacing:0;color:#D4D7DD;max-width:100%;overflow-x:auto;overflow-y:hidden;box-shadow:1px 3px 10px #07070E;border-radius:2px}.article--content table th,.article--content table td{padding:.85rem 1.25rem}.article--content table thead{background:linear-gradient(90deg, #8E1FC3,#066FC5);background-attachment:fixed}.article--content table th{color:#fff}.article--content table th strong{color:#fff}.article--content table th:first-child{border-radius:2px 0 0 0}.article--content table th:last-child{border-radius:0 2px 0 0}.article--content table td{font-size:1.05rem;line-height:1.5em}.article--content table td code{font-size:.95rem}.article--content table tr:nth-child(even){background:#262738}.article--content table tr:last-child td:first-child{border-radius:0 0 0 2px}.article--content table tr:last-child td:last-child{border-radius:0 0 2px 0}.article--content table img{margin-bottom:0}.article--content table.cloud-urls a{white-space:nowrap}.article--content table.cloud-urls p{margin:0 0 .5rem 0}.article--content table.cloud-urls p:last-child{margin-bottom:0}.article--content table.cloud-urls .cluster-name{font-weight:500;color:#FAFAFC}.article--content table+table{margin-top:-1.5rem}.article--content #flags:not(.no-shorthand)+table td:nth-child(2) code,.article--content #options:not(.no-shorthand)+table td:nth-child(2) code,.article--content #global-flags+table td:nth-child(2) code,.article--content #global-options+table td:nth-child(2) code,.article--content .shorthand-flags+table td:nth-child(2) code{margin-left:-2rem}.article--content p.table-group-key{margin:1rem 0 -.75rem;font-weight:500;font-size:.95rem}.article--content table+.table-group-key{margin-top:-2rem}.article--content table.flux-influxdb-versions tbody{display:flex;flex-direction:column-reverse}.article--content table.flux-influxdb-versions tbody tr{display:flex;justify-content:space-between}.article--content .tags{border-top:1px solid #383846;padding-top:1.75rem;margin:2rem 0 1rem}.article--content .tags .tag{background:#07070E;margin:.12rem 0;padding:.4rem .65rem;font-style:italic;font-weight:500;color:rgba(212,215,221,0.75) !important;font-size:.9rem;border-radius:1rem}.article--content .tags .tag:after{border-radius:1rem;background:linear-gradient(45deg, #BF2FE5,#9394FF)}.article--content .tags .tag:hover{color:#fff !important}.article--content .related+.tags,.article--content .expand-wrapper+.tags{border:none;padding-top:0;margin:1.5rem 0 1rem}.article--content .plugin-card{position:relative;padding:1rem 1.5rem;margin-bottom:.5rem;justify-content:center;align-items:center;background:rgba(7,7,14,0.4);border-radius:2px}.article--content .plugin-card h3{padding:0;margin-top:.25rem}.article--content .plugin-card.new h3:after{content:"New";margin-left:.3rem;padding:.25rem .5rem;font-style:italic;color:#D6F622;font-size:1.2rem;opacity:1}.article--content .plugin-card p.meta{margin:.75rem 0;font-weight:500;line-height:1.75rem}.article--content .plugin-card p.meta .deprecated{margin-left:.5rem;font-style:italic;color:#e90}.article--content .plugin-card .info>p:last-child{margin-bottom:.5rem}.article--content .plugin-card .info>ul:last-child{margin-bottom:.5rem}.article--content .plugin-card .info>ol:last-child{margin-bottom:.5rem}.article--content .plugin-card .plugin-link{position:absolute;top:0;right:0.5rem;opacity:0.25;transition:opacity .2s, background .2s, color .2s;background:linear-gradient(45deg, #066FC5,#00A3FF)}.article--content .plugin-card:hover .plugin-link{opacity:1;background:linear-gradient(45deg, #066FC5,#00A3FF)}.article--content .plugin-card blockquote{border-color:#00A3FF;background:rgba(0,163,255,0.12)}.article--content .plugin-card blockquote h3,.article--content .plugin-card blockquote h4,.article--content .plugin-card blockquote h5,.article--content .plugin-card blockquote h6{color:#fff}.article--content .plugin-card blockquote p,.article--content .plugin-card blockquote li{color:#BEF0FF;font-size:1rem;font-style:normal}.article--content .plugin-card blockquote strong{color:inherit}.article--content .plugin-card blockquote a{color:#fff}.article--content .plugin-card blockquote a code:after{border-color:transparent rgba(0,201,255,0.35) transparent transparent}.article--content .plugin-card blockquote a:hover{color:#6BDFFF}.article--content .plugin-card blockquote a:hover code:after{border-color:transparent #6BDFFF transparent transparent}.article--content .plugin-card blockquote ol li:before{color:#BEF0FF}.article--content .plugin-card blockquote code,.article--content .plugin-card blockquote pre{color:#00C9FF;background:#0a071c}@media (max-width: 600px){.article--content .plugin-card .plugin-link{opacity:1;background:linear-gradient(45deg, #066FC5,#00A3FF);padding:.25rem .35rem .35rem;line-height:0}.article--content .plugin-card .plugin-link .icon-github{margin:0}.article--content .plugin-card .plugin-link .hide{display:none}}.article--content .title{margin-bottom:2.65rem}.article--content .title .metadata{padding:0;margin:0}.article--content .title .metadata li{margin-bottom:0;padding:.45em .75em;color:#fff;background:rgba(255,255,255,0.07);font-size:.95rem;font-weight:500;line-height:1.1rem;border-radius:1.1em;display:inline-block}.article--content .title .metadata li.updated-in,.article--content .title .metadata li.date,.article--content .title .metadata li.flux-influxdb{padding:0 0 0 .4em;background:none;font-weight:normal;font-style:italic;color:rgba(255,255,255,0.6)}.article--content .title .metadata .updated-in+.date::before{content:"•" !important;display:inline;margin-right:.5rem}.article--content .title .metadata .flux-influxdb a{cursor:pointer;opacity:.9;transition:color .2s, opacity .2s}.article--content .title .metadata .flux-influxdb a:hover{opacity:1}@media (max-width: 600px){.article--content .title{margin-bottom:2rem}.article--content .title h1{margin:.35em 0 .2em;font-size:2.4rem}}.article--content .truncate{position:relative;margin-bottom:3.5rem}.article--content .truncate .truncate-content{overflow:hidden;max-height:9999px;transition:max-height .4s}.article--content .truncate .truncate-content.closed{min-height:250px;max-height:25vh}.article--content .truncate .truncate-bottom{position:absolute;bottom:-30px;width:100%;z-index:100;height:auto}.article--content .truncate a.truncate-toggle{display:block;width:100px;margin:0 auto;color:#D4D7DD;background:#14141F;padding:.45rem;text-align:center;font-size:.75rem;text-transform:uppercase;border-radius:2px;transition:color .2s}.article--content .truncate a.truncate-toggle:before{content:"Show Less"}.article--content .truncate a.truncate-toggle:hover{color:#00A3FF}.article--content .truncate.closed .truncate-bottom{bottom:0;background-image:linear-gradient(to bottom, rgba(20,20,31,0), #14141f);height:100px}.article--content .truncate.closed a.truncate-toggle{margin-top:75px}.article--content .truncate.closed a.truncate-toggle:before{content:"Show More"}.article--content .videos-wrapper{display:flex;flex-wrap:wrap;margin-top:1.5rem}.article--content .video-card{max-width:240px;margin:0 1.75rem .75rem 0}.article--content .video-card a{display:block;position:relative}.article--content .video-card a:after{content:"\e914";position:absolute;display:flex;align-items:center;justify-content:center;font-family:"icomoon";top:.65rem;right:.65rem;height:1.5rem;width:1.5rem;color:#fff;padding:.35rem;border-radius:50%;background-color:rgba(255,255,255,0.25);opacity:0;transition:opacity .3s}.article--content .video-card a:hover:after{opacity:1}.article--content .video-card img{margin-bottom:0}.article--content .video-card .video-title{margin:.25rem 0 0;font-weight:500;font-size:.9rem;color:#FAFAFC;line-height:1.25rem}.article--content .video-card .video-date{font-size:.8rem;color:rgba(212,215,221,0.6);line-height:1rem}.article--content .video-content .video-date{color:rgba(212,215,221,0.6);margin-top:-1.75rem;font-weight:500;font-size:.9rem}.article--content .video-content .video{max-width:none;margin:0 0 2rem}.article--content .video{width:100%;max-width:620px;margin:2rem 0}@media (max-width: 600px){.article--content .video-card{max-width:100%;margin-right:0}}.article--content .required,.article--content .req{color:#FF8564;font-weight:500;font-style:italic;margin:0 .15rem 0 .1rem}.article--content .required.asterisk,.article--content .req.asterisk{margin:0 -.1rem 0 -.5rem}.article--content .required.key,.article--content .req.key{font-size:.9rem;font-weight:500}.article--content .required.normal,.article--content .req.normal{font-style:normal}.article--content .required.blue,.article--content .req.blue{color:#2AA3FF}.article--content .required.green,.article--content .req.green{color:#009F5F}.article--content .required.magenta,.article--content .req.magenta{color:#CE58EB}.article--content .required.pink,.article--content .req.pink{color:#d30971}.article--content h2+.keep-url,.article--content h3+.keep-url,.article--content h4+.keep-url,.article--content h5+.keep-url,.article--content h6+.keep-url{margin-top:-1.5rem;z-index:-100}.article--content a.q-link{font-size:.8rem;vertical-align:super;line-height:0;color:#fff;opacity:.5;transition:opacity .2s}.article--content a.q-link:hover{opacity:1}.article--content p.read-more{text-align:right;font-style:italic}.article--content .highlight+p.read-more,.article--content pre+p.read-more,.article--content code+p.read-more,.article--content .flex-wrapper+p.read-more{margin:-.75rem 0 .5rem}.article--content .nowrap{white-space:nowrap}.article--content .all-caps{text-transform:uppercase;font-size:1.05rem;letter-spacing:.1em;font-weight:500 !important}.article--content span.orange,.article--content strong.orange,.article--content em.orange{color:#FF8564}.article--content span.blue,.article--content strong.blue,.article--content em.blue{color:#2AA3FF}.article--content span.green,.article--content strong.green,.article--content em.green{color:#009F5F}.article--content span.magenta,.article--content strong.magenta,.article--content em.magenta{color:#CE58EB}.article--content span.pink,.article--content strong.pink,.article--content em.pink{color:#d30971}.article--content .get-started-btns{display:flex;flex-direction:column;justify-content:space-around;align-items:flex-start;margin-bottom:2rem}.article--content .get-started-btns a.btn{max-width:300px;width:100%;text-align:center;padding:1rem}@media (max-width: 600px){.article{padding:1.5rem 1.5rem 3rem}.article h2{font-size:1.9rem}.article h3{font-size:1.55rem}.article h4{font-size:1.3rem}}.article--content .inline{margin:0 .15rem}.article--content .inline.middle:before{vertical-align:middle}.article--content .inline.top:before{vertical-align:text-top}.article--content .inline.bottom:before{vertical-align:bottom}.article--content .inline.xsmall:before{font-size:.8rem}.article--content .inline.small:before{font-size:.9rem}.article--content .inline.large:before{font-size:1.1rem}.article--content .inline.add-btn-round{font-family:"icomoon-v2";color:#fff;background:linear-gradient(45deg, #5c10a0, #8e1fc3);border-radius:50%;margin:0 .25rem;display:inline-block;vertical-align:text-top;font-size:.7rem;width:20px;height:20px;padding-left:.29rem;line-height:1.25rem}.article--content .inline.add-btn-round.v3,.article--content .inline.add-btn-round.v4{position:relative;background:#383846;width:18px;height:18px;font-size:.65rem;line-height:0rem;padding:9px 0 0 4px}.article--content .inline.ui-toggle{display:inline-block;position:relative;width:28px;height:16px;border-radius:.7rem;vertical-align:text-top;margin-top:2px}.article--content .inline.ui-toggle .circle{display:inline-block;position:absolute;border-radius:50%;height:8px;width:8px;background:#fff;top:4px;right:4px}.article--content .inline.ui-toggle.blue{background:#00A3FF}.article--content .inline.ui-toggle.green{background:#009F5F}.article--content .inline.ui-toggle.off{background:#333346}.article--content .inline.ui-toggle.off .circle{left:4px}.article--content .inline.ui-toggle.v3,.article--content .inline.ui-toggle.v4{width:26px}.article--content .inline.ui-toggle.v3 .circle,.article--content .inline.ui-toggle.v4 .circle{height:12px;width:12px;top:2px;right:2px}.article--content .inline.ui-toggle.v3.off .circle,.article--content .inline.ui-toggle.v4.off .circle{left:2px}.article--content .inline.notebook-add-cell{display:inline-block;position:relative;border-radius:50%;height:1.3rem;width:1.3rem;background:linear-gradient(45deg, #5c10a0 0%, #8e1fc3 100%);vertical-align:text-bottom;text-align:center;color:#fff;font-size:.8rem}.article--content .inline.notebook-add-cell>span{display:block;margin:0.3rem 0}.article--content .nav-item{display:inline-block;position:relative;vertical-align:top;margin-bottom:1.25rem}.article--content .nav-item:after{content:"";position:absolute;top:0;left:0;width:2px;height:100%;background:#be2ee4;background:linear-gradient(180deg, #be2ee4 0, #00a3ff)}.article--content .nav-item:first-child{margin-right:1.25rem}.article--content .nav-item.account{padding:.25rem;position:relative;width:210px;height:56px}.article--content .nav-item.account:after{display:none}.article--content .nav-item.account .acct-inner{display:flex;position:relative;align-items:center;width:100%;height:100%;background:#292933;border-radius:6px;border:3px solid #676978}.article--content .nav-item.account .acct-inner:after{content:"";position:absolute;right:1rem;width:0;height:0;border-style:solid;border-width:5px 5px 0 5px;border-color:#E7E8EB transparent transparent transparent}.article--content .nav-item.account .acct-icon{margin:0 .9rem 0 .5rem;border-radius:50%;height:28px;width:28px;background:linear-gradient(45deg, #00a3ff, #67d74e);color:#fff;text-align:center;line-height:0;overflow:hidden}.article--content .nav-item.account .acct-icon .icon{margin-left:-.1rem;font-size:2rem}.article--content .nav-item.account .acct-label .username{color:#E7E8EB;font-weight:500;font-size:.85rem;line-height:1.2rem}.article--content .nav-item.account .acct-label .orgname{color:#999DAB;font-size:.75rem;line-height:.75rem}.article--content .nav-item.account.small{width:56px}.article--content .nav-item.account.small .acct-inner{justify-content:center;align-items:center}.article--content .nav-item.account.small .acct-inner:after{display:none}.article--content .nav-item.account.small .acct-icon{margin:0}.article--content .nav-icon{display:flex;justify-content:left;align-items:center;color:#fff;width:210px;height:56px;font-family:"Rubik",sans-serif;font-weight:500;padding:.9rem 1.1rem;font-size:1rem;position:relative;background:#383846}.article--content .nav-icon .icon{display:inline-block;font-size:1.35rem;margin-right:1rem}.article--content .nav-icon .nav-icon-label{display:inline-block;padding:0;font-size:1rem}.article--content .nav-icon:before,.article--content .nav-icon:after{content:"";position:absolute;left:0;height:2px;z-index:2;width:12px}.article--content .nav-icon:before{top:0;background:#be2ee4;background:linear-gradient(90deg, #be2ee4 0, rgba(190,46,228,0))}.article--content .nav-icon:after{bottom:0;background:#00a3ff;background:linear-gradient(90deg, #00a3ff 0, rgba(190,46,228,0))}.article--content .nav-icon.small{display:flex;justify-content:center;align-items:center;padding:0;width:56px;flex-direction:column}.article--content .nav-icon.small .icon{position:relative;margin:0}.article--content .nav-icon.small .nav-icon-label{padding:0;margin-top:.75rem;font-size:.67rem;line-height:0}.nav-items-v3 .nav-item-v3,.nav-items-v3 .nav-item-v4,.nav-items-v4 .nav-item-v3,.nav-items-v4 .nav-item-v4{display:inline-flex;align-items:center;margin:0 1rem 1.25rem 0;max-width:225px;background:linear-gradient(rgba(5,41,67,0.9), rgba(6,34,56,0.9));color:#fff;height:60px;border-radius:2px}.nav-items-v3 .nav-item-v3.account,.nav-items-v3 .nav-item-v4.account,.nav-items-v4 .nav-item-v3.account,.nav-items-v4 .nav-item-v4.account{padding:8px}.nav-items-v3 .nav-item-v3.account .acct-inner-v3,.nav-items-v3 .nav-item-v3.account .acct-inner-v4,.nav-items-v3 .nav-item-v4.account .acct-inner-v3,.nav-items-v3 .nav-item-v4.account .acct-inner-v4,.nav-items-v4 .nav-item-v3.account .acct-inner-v3,.nav-items-v4 .nav-item-v3.account .acct-inner-v4,.nav-items-v4 .nav-item-v4.account .acct-inner-v3,.nav-items-v4 .nav-item-v4.account .acct-inner-v4{display:flex;background-color:#f1f1f30d;border-radius:2px}.nav-items-v3 .nav-item-v3.account .acct-icon-v3,.nav-items-v3 .nav-item-v3.account .acct-icon-v4,.nav-items-v3 .nav-item-v4.account .acct-icon-v3,.nav-items-v3 .nav-item-v4.account .acct-icon-v4,.nav-items-v4 .nav-item-v3.account .acct-icon-v3,.nav-items-v4 .nav-item-v3.account .acct-icon-v4,.nav-items-v4 .nav-item-v4.account .acct-icon-v3,.nav-items-v4 .nav-item-v4.account .acct-icon-v4{display:flex;align-content:center;justify-content:center;font-weight:bold;width:44px;height:44px;background:linear-gradient(54deg, #BE2EE4,#00A3FF);border-radius:2px}.nav-items-v3 .nav-item-v3.account .acct-icon-v3 .initial,.nav-items-v3 .nav-item-v3.account .acct-icon-v4 .initial,.nav-items-v3 .nav-item-v4.account .acct-icon-v3 .initial,.nav-items-v3 .nav-item-v4.account .acct-icon-v4 .initial,.nav-items-v4 .nav-item-v3.account .acct-icon-v3 .initial,.nav-items-v4 .nav-item-v3.account .acct-icon-v4 .initial,.nav-items-v4 .nav-item-v4.account .acct-icon-v3 .initial,.nav-items-v4 .nav-item-v4.account .acct-icon-v4 .initial{align-self:center}.nav-items-v3 .nav-item-v3.account .acct-label-v3,.nav-items-v3 .nav-item-v3.account .acct-label-v4,.nav-items-v3 .nav-item-v4.account .acct-label-v3,.nav-items-v3 .nav-item-v4.account .acct-label-v4,.nav-items-v4 .nav-item-v3.account .acct-label-v3,.nav-items-v4 .nav-item-v3.account .acct-label-v4,.nav-items-v4 .nav-item-v4.account .acct-label-v3,.nav-items-v4 .nav-item-v4.account .acct-label-v4{display:inline-block;padding:8px 0px 0px 8px;width:165px}.nav-items-v3 .nav-item-v3.account .acct-label-v3 .username,.nav-items-v3 .nav-item-v3.account .acct-label-v4 .username,.nav-items-v3 .nav-item-v4.account .acct-label-v3 .username,.nav-items-v3 .nav-item-v4.account .acct-label-v4 .username,.nav-items-v4 .nav-item-v3.account .acct-label-v3 .username,.nav-items-v4 .nav-item-v3.account .acct-label-v4 .username,.nav-items-v4 .nav-item-v4.account .acct-label-v3 .username,.nav-items-v4 .nav-item-v4.account .acct-label-v4 .username{font-size:.75rem;line-height:.75rem;font-weight:500;color:#9e9ead}.nav-items-v3 .nav-item-v3.account .acct-label-v3 .orgname,.nav-items-v3 .nav-item-v3.account .acct-label-v4 .orgname,.nav-items-v3 .nav-item-v4.account .acct-label-v3 .orgname,.nav-items-v3 .nav-item-v4.account .acct-label-v4 .orgname,.nav-items-v4 .nav-item-v3.account .acct-label-v3 .orgname,.nav-items-v4 .nav-item-v3.account .acct-label-v4 .orgname,.nav-items-v4 .nav-item-v4.account .acct-label-v3 .orgname,.nav-items-v4 .nav-item-v4.account .acct-label-v4 .orgname{font-size:.85rem;line-height:1rem}.nav-items-v3 .nav-icon-v3,.nav-items-v3 .nav-icon-v4,.nav-items-v4 .nav-icon-v3,.nav-items-v4 .nav-icon-v4{display:flex;justify-content:center;align-items:center;height:100%;width:60px;flex-shrink:0}.nav-items-v3 p.nav-label-v3,.nav-items-v3 p.nav-label-v4,.nav-items-v4 p.nav-label-v3,.nav-items-v4 p.nav-label-v4{display:inline-block;margin:0;padding:0;font-family:"Rubik",sans-serif;font-weight:500;font-size:1.15rem;min-width:225px;color:#fff}.nav-items-v3 .cf-icon,.nav-items-v4 .cf-icon{display:inline-block;font-size:1.35rem}.nav-items-v3 .cf-icon.v3,.nav-items-v4 .cf-icon.v3{font-family:'icomoon-v3'}.nav-items-v3 .cf-icon.v4,.nav-items-v4 .cf-icon.v4{font-family:'icomoon-v4'}@media (max-width: 600px){.article--content.nav-item:nth-child(2){display:none}.article--content.nav-item-v3:nth-child(2){display:none}.article--content.nav-item-v4:nth-child(2){display:none}}pre{line-height:1.25rem}code[class*="language-"],pre[class*="language-"]{direction:ltr;text-align:left;word-spacing:normal;word-break:normal;word-wrap:normal;-moz-tab-size:4;-o-tab-size:4;tab-size:4;hyphens:none}pre[class*="language-"]::-moz-selection,pre[class*="language-"] ::-moz-selection,code[class*="language-"]::-moz-selection,code[class*="language-"] ::-moz-selection{background:rgba(0,163,255,0.25)}pre[class*="language-"]::-moz-selection, pre[class*="language-"] ::-moz-selection, code[class*="language-"]::-moz-selection, code[class*="language-"] ::-moz-selection{background:rgba(0,163,255,0.25)}pre[class*="language-"]::selection,pre[class*="language-"] ::selection,code[class*="language-"]::selection,code[class*="language-"] ::selection{background:rgba(0,163,255,0.25)}@media print{code[class*="language-"],pre[class*="language-"]{text-shadow:none}}pre[class*="language-"]{overflow:auto}:not(pre)>code[class*="language-"]{white-space:normal}.highlight{color:#B7B8FF}.highlight .gh,.highlight .go,.highlight .na,.highlight .nt,.highlight .nv,.highlight .ow{color:#B7B8FF}.highlight .c,.highlight .ch,.highlight .cm,.highlight .cpf,.highlight .c1,.highlight .cs,.highlight .w{color:#545667}.highlight .gi{background-color:#545667}.highlight .k,.highlight .kc,.highlight .kd,.highlight .kn,.highlight .kp,.highlight .kr,.highlight .nn{color:#00A3FF}.highlight .bp,.highlight .cp,.highlight .dl,.highlight .gt,.highlight .gu,.highlight .kt,.highlight .nb,.highlight .nc,.highlight .no,.highlight .sa,.highlight .sb,.highlight .sc,.highlight .sd,.highlight .se,.highlight .sh,.highlight .sx,.highlight .sr,.highlight .s1,.highlight .s2{color:#009F5F}.highlight .err,.highlight .fm,.highlight .gr,.highlight .gd,.highlight .nd,.highlight .ne,.highlight .nf,.highlight .nl,.highlight .si{color:#BF3D5E}.highlight .gd{text-decoration:line-through}.highlight .m,.highlight .ni,.highlight .mb,.highlight .mf,.highlight .mh,.highlight .mi,.highlight .mo,.highlight .vc,.highlight .vg,.highlight .vi,.highlight .vm,.highlight .il{color:#ff6db0}.highlight .gp,.highlight .o{color:#00A3FF}.highlight .ss{color:#e90}.highlight .cs .gh,.highlight .gu,.highlight .gp,.highlight .gs,.highlight .k,.highlight .kc,.highlight .kd,.highlight .kn,.highlight .kp,.highlight .kr,.highlight .kt,.highlight .nc,.highlight .ne,.highlight .ni,.highlight .nn .nt,.highlight .ow,.highlight .se{font-weight:bold}.highlight .c,.highlight .ch,.highlight .cm,.highlight .cpf,.highlight .c1,.highlight .cs,.highlight .ge,.highlight .sd,.highlight .w{font-style:italic}.highlight .language-js .mi+.nx,.highlight .language-js .mf+.nx{color:#ff6db0}.highlight .language-sql .mi+.n{color:#ff6db0}.algolia-autocomplete{width:100%}.algolia-autocomplete #algolia-search-input{background:#1A1A2A !important}.algolia-autocomplete .ds-dropdown-menu{width:74vw;max-width:800px;background:#1A1A2A;background-color:#1A1A2A;border:none;box-shadow:2px 2px 10px rgba(15,14,21,0.5);transition:background-color 0.2s}.algolia-autocomplete .ds-dropdown-menu [class^=ds-dataset-]{border:none;background:#1A1A2A;background-color:#1A1A2A}.algolia-autocomplete .ds-dropdown-menu:before{display:none}.algolia-autocomplete .ds-dropdown-menu .ds-suggestions{padding:.5rem 2rem 2rem}.algolia-autocomplete .algolia-docsearch-suggestion{background:#1A1A2A}.algolia-autocomplete .algolia-docsearch-suggestion--category-header{color:#fff;border-color:#383846;text-decoration:none}.algolia-autocomplete .algolia-docsearch-suggestion--category-header-lvl0{font-size:1.5rem;font-weight:bold !important;padding-bottom:1rem}.algolia-autocomplete .algolia-docsearch-suggestion--subcategory-column{color:rgba(212,215,221,0.5) !important}.algolia-autocomplete .algolia-docsearch-suggestion--subcategory-column:before{background:#383846}.algolia-autocomplete .algolia-docsearch-suggestion--title{font-weight:bold;color:#fff}.algolia-autocomplete .algolia-docsearch-suggestion--text{font-size:0.8rem;color:#D4D7DD}.algolia-autocomplete .algolia-docsearch-suggestion--highlight{color:#00A3FF}.algolia-autocomplete .algolia-docsearch-suggestion--content:before{background:#383846}.algolia-autocomplete .algolia-docsearch-suggestion.algolia-docsearch-suggestion__main .algolia-docsearch-suggestion--category-header,.algolia-autocomplete .algolia-docsearch-suggestion.algolia-docsearch-suggestion__secondary{text-decoration:none}.algolia-autocomplete .algolia-docsearch-suggestion.algolia-docsearch-suggestion__main .algolia-docsearch-suggestion--category-header{padding-bottom:.75rem;margin-bottom:.5rem}.algolia-autocomplete.algolia-autocomplete-left .ds-dropdown-menu{left:24vw !important;top:-.45rem !important}.ds-suggestion:not(:first-child) .algolia-docsearch-suggestion--category-header{margin-top:1.5rem}.algolia-autocomplete .algolia-docsearch-suggestion .algolia-docsearch-suggestion--wrapper{padding:0}.algolia-autocomplete .algolia-docsearch-suggestion .algolia-docsearch-suggestion--subcategory-column{display:none}.algolia-autocomplete .algolia-docsearch-suggestion .algolia-docsearch-suggestion--content{margin:2px 0;padding:.75rem;width:100%;float:none}.algolia-autocomplete .algolia-docsearch-suggestion .algolia-docsearch-suggestion--content:before{display:none}.algolia-docsearch-suggestion--content.algolia-docsearch-suggestion--no-results{text-align:center}.algolia-autocomplete .algolia-docsearch-suggestion .search-product-version{font-size:.8em;font-weight:500;opacity:.5;margin-left:.35rem}.algolia-autocomplete .algolia-docsearch-suggestion--title .search-product-version{display:none}.search-all-content{padding:0.5rem 0.75rem;font-size:0.8rem;text-align:right}.search-all-content a{color:#D4D7DD;opacity:.6;text-decoration:none;transition:opacity .2s}.search-all-content a:hover{opacity:1}.search-no-results{padding:2rem;text-align:center;font-size:1.1rem;color:rgba(212,215,221,0.75);font-style:italic}.search-no-results a{position:relative;display:inline-block;margin:.5rem .25rem .5rem 0;padding:0.85rem 1.5rem;color:#fff !important;border-radius:2px;font-size:1.1rem;font-weight:500;font-style:normal;text-decoration:none;z-index:1;background:linear-gradient(45deg, #066FC5,#00A3FF)}.search-no-results a:after{content:"";position:absolute;display:block;top:0;right:0;width:100%;height:100%;border-radius:2px;background:linear-gradient(45deg, #00A3FF,#6BDFFF);opacity:0;transition:opacity .2s;z-index:-1}.search-no-results a:hover{cursor:pointer}.search-no-results a:hover:after{opacity:1}@media (min-width: 801px) and (max-width: 1200px){.algolia-autocomplete .ds-dropdown-menu{max-width:70vw}.algolia-autocomplete.algolia-autocomplete-left .ds-dropdown-menu{left:28.5vw !important;top:-.45rem !important}}@media (max-width: 800px){.algolia-autocomplete .ds-dropdown-menu{max-width:100vw;width:100vw;min-width:0}.algolia-autocomplete.algolia-autocomplete-left .ds-dropdown-menu{left:-1rem !important;top:112% !important}}@media (max-width: 600px){.algolia-autocomplete .ds-dropdown-menu{width:100vw}.algolia-autocomplete .ds-dropdown-menu .ds-suggestions{padding:.5rem}}.cards{display:flex;flex-direction:row;position:relative;overflow:visible;border-radius:2px 0 0 2px;min-height:700px;background:linear-gradient(45deg, #13002D,#8E1FC3)}.cards a{text-decoration:none;color:inherit}.cards #landing-hive{position:absolute;top:0;left:0;z-index:0}.cards #landing-hive path,.cards #landing-hive ellipse{fill:rgba(147,148,255,0.25)}.cards .main{width:66%;padding:5rem 2vw 5rem 4.5vw;display:flex;justify-content:center;align-items:center;flex-direction:column;text-align:center;z-index:1}.cards .group{display:flex;flex-wrap:wrap;width:34%;justify-content:flex-end}.cards .card.sm{display:flex;flex-direction:column;justify-content:center;text-align:left;width:90%;position:relative;margin-bottom:1px;padding:0 3.5vw 0 3vw;min-height:140px;background:rgba(24,24,32,0.4);transition:background-color .4s, width .2s}.cards .card.sm:last-child{margin-bottom:0}.cards .card.sm:hover{background:#00A3FF;width:100%}.cards .card.sm:hover h3{font-weight:500;font-size:1.2rem}.cards .card.sm:hover p{opacity:1;max-height:3.75rem}.cards .card.sm h3{font-size:1.1rem;transition:all .2s;margin:0}.cards .card.sm p{margin:.5rem 0 0;max-height:0;width:80%;color:#fff;font-size:.95rem;line-height:1.25rem;opacity:0;transition:opacity .2s .1s, max-height .2s}.cards .card h1,.cards .card h2,.cards .card h3,.cards .card h4{font-weight:300;color:#fff}.cards .card h1{margin:0 0 1.25rem;font-size:2.5rem;z-index:1}.cards .card#get-started .avoid-wrap{display:inline-block}.cards .card#get-started .btn{position:relative;display:block;padding:1.25rem 4rem;color:#fff;font-size:1.2rem;font-weight:500;background:linear-gradient(45deg, #066FC5,#00A3FF);transition:background-color .2s, color .2s;border-radius:2px;z-index:1}.cards .card#get-started .btn:before{content:"";position:absolute;display:block;top:0;right:0;width:100%;height:100%;border-radius:2px;background:linear-gradient(45deg, #00A3FF,#6BDFFF);opacity:0;transition:opacity .2s;z-index:-1}.cards .card#get-started .btn:hover:before{opacity:1}.cards .card#get-started .beta:after{content:'beta';display:inline-block;vertical-align:middle;font-style:italic;font-size:.45em;margin:-8px 0 0 .5em;padding:.1rem .6rem .12rem;border-radius:1rem;border:0.15rem solid rgba(255,255,255,0.5);transition:border-color .2s}@media (max-width: 1280px){.cards .card.full{padding:3.5rem}.cards .card.quarter{width:48%}}@media (max-width: 1150px){.cards{flex-direction:column}.cards .main{width:100%}.cards .group{width:100%}.cards .group .card.sm{margin-right:1px;padding:2rem;flex-grow:2;width:49%;text-align:center}.cards .group .card.sm h3{margin:0 0 .5rem;font-size:1.1rem;font-weight:500}.cards .group .card.sm p{opacity:.6;position:relative;max-height:-moz-fit-content;max-height:fit-content;width:auto;margin:0}.cards .group .card.sm:hover{background:#00A3FF}.cards .group .card.sm:hover h3{transform:none}.cards .group .card.sm:hover p{opacity:1;max-height:-moz-fit-content;max-height:fit-content}}@media (max-width: 600px){.cards .group{flex-direction:column}.cards .group .card.sm{width:100%;max-width:100%;padding:1.25rem}.cards .card h1{font-size:2rem}.cards .card.main{padding:2.5rem}.cards .card.main#get-started .btn{font-size:1rem;margin:0 0 .35rem}}.current-timestamp,.current-date,.current-time,.enterprise-eol-date{color:#D4D7DD;display:inline-block;font-family:"Proxima Nova",sans-serif;white-space:nowrap}.nowrap{white-space:nowrap}.error-page{padding:1rem;display:flex;align-items:center;vertical-align:middle;justify-content:space-around}.error-page .error-content{margin-top:10vh;max-width:380px}.error-page .error-code{display:flex;align-items:center;justify-content:space-around;margin:0 auto;width:15rem;height:15rem;max-width:80vw;max-height:80vw;border-radius:50%;box-shadow:5px 5px 30px rgba(15,14,21,0.5)}.error-page .error-code .error-code-border{display:flex;align-items:center;justify-content:space-around;border:2px solid rgba(0,163,255,0.5);width:90%;height:90%;border-radius:50%}.error-page .error-code h1{color:#00A3FF;font-size:5rem;font-weight:300;text-align:center}.error-page a{color:#00A3FF;text-decoration:none;font-weight:bold}.error-page a:hover{color:#fff}.error-page .wayfinding{display:flex;justify-content:space-around;align-content:center;margin:2rem 0 1.5rem}.error-page .wayfinding .btn{display:flex;position:relative;flex-grow:1;margin-right:4px;padding:.75rem 1rem;border-radius:2px;text-align:center;justify-content:center;align-items:center;color:#fff;transition:background-color .2s;z-index:1;background:linear-gradient(45deg, #066FC5,#00A3FF)}.error-page .wayfinding .btn.back:before{content:"\e90a";font-family:"icomoon-v2";margin-right:.35rem;vertical-align:text-top}.error-page .wayfinding .btn:after{content:"";position:absolute;display:block;top:0;right:0;width:100%;height:100%;border-radius:2px;background:linear-gradient(45deg, #00A3FF,#6BDFFF);opacity:0;transition:opacity .2s;z-index:-1}.error-page .wayfinding .btn:hover{cursor:pointer}.error-page .wayfinding .btn:hover:after{opacity:1}.error-page p{color:#D4D7DD;line-height:1.5rem}.footer-widgets{position:fixed;bottom:1rem;right:1rem;width:auto;height:auto;display:flex;flex-direction:column;justify-content:flex-end;align-items:flex-end;z-index:100}.footer-widgets .widget{height:50px;width:50px;border-radius:6px;position:relative;box-shadow:2px 2px 6px rgba(15,14,21,0.5);color:#fff}.footer-widgets .widget:not(:last-child){margin-bottom:5px}.footer-widgets .widget:before{content:attr(data-tooltip);padding:.25rem .5rem;display:flex;position:absolute;top:11px;right:60px;width:auto;white-space:nowrap;font-size:.9rem;font-weight:bold;border-radius:6px;background:linear-gradient(270deg, #d30971,#9b2aff);pointer-events:none;z-index:-1;opacity:0;transform:translateX(15px);transition:opacity .2s, transform .2s}.footer-widgets .widget:after{content:"";position:absolute;top:14px;right:56px;width:0px;height:0px;opacity:0;transform:translateX(15px);transition:opacity .2s, transform .2s}.footer-widgets .widget:hover{cursor:pointer}.footer-widgets .widget:hover:before,.footer-widgets .widget:hover:after{opacity:1;transform:translateX(0)}.footer-widgets .widget.magenta{background:linear-gradient(90deg, #d30971,#9b2aff)}.footer-widgets .widget.magenta:before{background:linear-gradient(270deg, #d30971,#9b2aff)}.footer-widgets .widget.magenta:after{border-style:solid;border-width:10px 0 10px 5px;border-color:transparent transparent transparent #d30971}.footer-widgets .widget.blue{color:rgba(2,10,71,0.7);background:linear-gradient(270deg, #00A3FF,#5ee4e4)}.footer-widgets .widget.blue:before{background:linear-gradient(90deg, #00A3FF,#5ee4e4)}.footer-widgets .widget.blue:after{border-style:solid;border-width:10px 0 10px 5px;border-color:transparent transparent transparent #5ee4e4}.custom-time-trigger a{display:flex;justify-content:center;align-items:center;width:100%;height:100%;font-size:1.2rem;color:rgba(2,10,71,0.8);text-decoration:none}.ask-ai-trigger .ask-ai-open{width:100%;height:100%;display:flex;justify-content:center;text-align:center;align-items:center;flex-direction:column;font-size:.8rem;font-weight:bold}.ask-ai-trigger .ask-ai-open .icon-influx-logo{margin-bottom:.15rem;font-size:1rem}.ask-ai-trigger .ask-ai-open:hover{cursor:pointer}@keyframes fadeInAnimation{0%{opacity:0}100%{opacity:1}}@media (max-width: 600px){.footer-widgets{bottom:.75rem;right:.75rem}}.modal{display:none;padding:1rem;position:fixed;top:0;width:100%;height:100%;z-index:101}.modal .modal-overlay{position:absolute;top:0;left:0;width:100%;height:100%;background:linear-gradient(45deg, #BE2EE4,#00A3FF);opacity:.85}.modal .modal-wrapper{display:flex;justify-content:center;align-items:flex-start}.modal .modal-body{position:relative;display:flex;overflow-y:auto;overflow-x:hidden;max-width:650px;max-height:97.5vh;margin-top:10vh;padding:.75rem 2rem 1.5rem;border-radius:3px;background:#14141F;color:#D4D7DD;font-size:1rem;transition:margin .4s;scroll-behavior:smooth;-webkit-overflow-scrolling:touch}.modal .modal-body::-webkit-scrollbar{width:8px}.modal .modal-body::-webkit-scrollbar-track{background:rgba(56,56,70,0.2);border-radius:4px}.modal .modal-body::-webkit-scrollbar-thumb{background:rgba(212,215,221,0.3);border-radius:4px}.modal .modal-body::-webkit-scrollbar-thumb:hover{background:rgba(212,215,221,0.5)}.modal.open .modal-body{margin-top:0}.modal #modal-close{position:absolute;padding:.25rem;top:1rem;right:1rem;color:rgba(212,215,221,0.5);transition:color .2s;text-decoration:none}.modal #modal-close:hover{color:#D4D7DD}.modal .modal-content{display:none;overflow:visible;width:586px;max-width:100%;flex-shrink:0}.modal .modal-content h3{color:#fff;font-weight:500;font-size:1.4rem;margin-bottom:1rem}.modal .modal-content h4{color:#fff;font-weight:500;margin:1rem 0 0.5rem 2px}.modal .modal-content h5{margin:.5rem 0 0;color:#FAFAFC}.modal .modal-content p,.modal .modal-content li{margin:.25rem 0;line-height:1.5rem}.modal .modal-content p strong,.modal .modal-content li strong{font-weight:500;color:#FAFAFC}.modal .modal-content p.note,.modal .modal-content li.note{padding-top:1.25rem;margin-top:1.5rem;color:rgba(212,215,221,0.5);border-top:1px solid rgba(212,215,221,0.25);font-size:.9rem;font-style:italic}.modal .modal-content a{color:#00A3FF;font-weight:500;text-decoration:none;transition:color .2s}.modal .modal-content a:hover{color:#fff}.modal .products{display:flex;flex-direction:column;flex-wrap:wrap;flex-grow:1;justify-content:flex-start}.modal .product .providers{display:flex;flex-wrap:wrap;padding:.5rem 1rem;background:rgba(212,215,221,0.05);border-radius:2px}.modal .product .providers .provider{flex-grow:1}.modal .product .providers .provider:not(:last-child){margin-right:1rem}.modal .product .providers ul{margin:.5rem .5rem .5rem 0;padding:0;list-style:none}.modal .product .providers ul.clusters{padding-left:1.75rem}.modal .product .providers p.region .fake-radio{position:relative;display:inline-block;height:1.15em;width:1.15em;margin:0 0.3rem 0 0.1rem;border-radius:2px;border:1.5px solid transparent;background:rgba(212,215,221,0.05);border:1.5px solid rgba(212,215,221,0.2);vertical-align:text-top;cursor:pointer}.modal .product .providers p.region .fake-radio:after{content:"";position:absolute;display:block;height:.5rem;width:.5rem;top:.23rem;left:.23rem;border-radius:50%;background:rgba(212,215,221,0.3);opacity:0;transition:opacity .2s}.modal .product .providers p.region .fake-radio.checked:after{opacity:1}.modal li.custom{display:flex;align-items:center}.modal #custom-url{display:inline-block;width:100%;padding-left:.5rem;position:relative}.modal #custom-url:after{display:none;content:attr(data-message);position:absolute;top:-1.8rem;right:0;font-size:.85rem;font-weight:500;color:#DC4E58}.modal #custom-url.error:after{display:block}.modal #custom-url.error input#custom-url-field,.modal #custom-url.error input#dedicated-url-field,.modal #custom-url.error input#clustered-url-field{border-color:#DC4E58}.modal #custom-url.error input#custom-url-field:focus,.modal #custom-url.error input#dedicated-url-field:focus,.modal #custom-url.error input#clustered-url-field:focus{border-color:#DC4E58;box-shadow:1px 1px 10px rgba(220,78,88,0.5)}.modal #custom-url input#custom-url-field,.modal #custom-url input#dedicated-url-field,.modal #custom-url input#clustered-url-field{font-family:"Proxima Nova",sans-serif;font-weight:500;background:#181820;border-radius:2px;border:1px solid #1A1A2A;padding:.5em;width:100%;color:#fff;transition-property:border, box-shadow;transition-duration:.2s;box-shadow:2px 2px 6px rgba(15,14,21,0.5)}.modal #custom-url input#custom-url-field:focus,.modal #custom-url input#dedicated-url-field:focus,.modal #custom-url input#clustered-url-field:focus{outline:none;border-color:#00A3FF;box-shadow:1px 1px 10px rgba(0,163,255,0.5);border-radius:2px}.modal #custom-url input#custom-url-field::-moz-placeholder, .modal #custom-url input#dedicated-url-field::-moz-placeholder, .modal #custom-url input#clustered-url-field::-moz-placeholder{color:rgba(255,255,255,0.45);font-weight:normal;font-style:italic}.modal #custom-url input#custom-url-field::placeholder,.modal #custom-url input#dedicated-url-field::placeholder,.modal #custom-url input#clustered-url-field::placeholder{color:rgba(255,255,255,0.45);font-weight:normal;font-style:italic}.modal #dedicated-urls .providers,.modal #clustered-urls .providers{padding-bottom:1rem}.modal #dedicated-urls #custom-url,.modal #clustered-urls #custom-url{margin-top:.5rem;padding:0}.modal .radio{position:relative;display:inline-block;height:1.15em;width:1.15em;background:rgba(212,215,221,0.05);margin:0 .3rem 0 .1rem;vertical-align:text-top;border-radius:2px;cursor:pointer;border:1.5px solid rgba(212,215,221,0.2);-webkit-user-select:none;-moz-user-select:none;user-select:none}.modal input[type='radio']{margin-right:-1.1rem;padding:0;vertical-align:top;opacity:0;cursor:pointer}.modal input[type='radio']+.radio:after{content:"";display:block;position:absolute;height:.5rem;width:.5rem;border-radius:50%;background:#00A3FF;top:50%;left:50%;opacity:0;transform:scale(2) translate(-20%, -20%);transition:all .2s}.modal input[type='radio']:checked+.radio:after{opacity:1;transform:scale(1) translate(-50%, -50%)}.modal td:after,.modal label:after,.modal li:after{display:inline;vertical-align:middle;font-style:italic;font-weight:500;font-size:.75em;margin-left:.35rem;padding:.1rem .3rem .12rem .32rem;line-height:.75rem;border-radius:1rem}.modal td.beta:after,.modal label.beta:after,.modal li.beta:after{content:"beta";color:#fff;background:linear-gradient(45deg, #066FC5,#00A3FF)}.modal label:after{margin-left:.15rem}.modal #pref-tabs{padding:0;margin:0 0 -5px;list-style:none;display:flex;justify-content:space-between;align-items:center}.modal .pref-tab{padding:.75rem 1.25rem;margin-right:5px;text-align:center;font-weight:bold;width:49%;color:rgba(212,215,221,0.7);background:rgba(212,215,221,0.05);border-radius:2px;cursor:pointer;transition:color .2s}.modal .pref-tab:last-child{margin-right:0}.modal .pref-tab:hover{color:#00A3FF}.modal .pref-tab.active{color:#fff;background:linear-gradient(45deg, #066FC5,#00A3FF)}.modal .pref-tab span.ephemeral{display:inline}.modal .pref-tab span.abbr:after{display:none;content:"."}.modal .product.active{display:block}.modal .product.inactive{display:none}@media (max-width: 600px){.modal .pref-tab span.ephemeral{display:none}.modal .pref-tab span.abbr:after{display:inline}}.modal .form-buttons{display:flex;justify-content:end;margin-top:1rem}.modal textarea{resize:vertical;font-family:"Proxima Nova",sans-serif;font-weight:500;background:#1A1A2A;border-radius:2px;border:1px solid #1A1A2A;margin-top:1rem;padding:.5em;width:100%;height:8rem;color:#fff;transition-property:border, box-shadow;transition-duration:.2s;box-shadow:2px 2px 6px rgba(15,14,21,0.5)}.modal textarea:focus{outline:none;border-color:#00A3FF;box-shadow:1px 1px 10px rgba(0,163,255,0.5);border-radius:2px}.modal textarea::-moz-placeholder{color:rgba(255,255,255,0.45);font-weight:normal;font-style:italic}.modal textarea::placeholder{color:rgba(255,255,255,0.45);font-weight:normal;font-style:italic}.modal input[type='submit']{padding:0.65rem 1.1rem;background:linear-gradient(45deg, #066FC5,#00A3FF);border:none;border-radius:2px;color:#fff;font-weight:500;opacity:1;transition:opacity .2s;z-index:1}.modal input[type='submit']:hover{opacity:0}.modal .submit-wrapper{position:relative;background:linear-gradient(45deg, #00A3FF,#6BDFFF);border-radius:2px;color:#fff;font-weight:500}.modal .submit-wrapper:before{content:"Submit";position:absolute;pointer-events:none;top:0;left:0;padding:0.65rem 1.1rem;z-index:0}.modal #no-thanks{margin-right:.5rem;padding:0.65rem 1.1rem;background:rgba(212,215,221,0.1);color:rgba(250,250,252,0.65);border-radius:2px;cursor:pointer;transition:color .2s}.modal #no-thanks:hover{color:#FAFAFC}.modal .lifecycle-wrapper{position:relative}.modal .loader-wrapper,.modal #thank-you{position:absolute;display:none;justify-content:center;align-items:center;top:0;left:0;width:100%;height:100%;background-color:#14141F}.modal .loader-wrapper{z-index:5}.modal .loader-wrapper .loader{margin:0 auto}.modal #thank-you{z-index:10;font-size:1.2rem;font-style:italic;font-weight:500;color:rgba(212,215,221,0.65)}.modal #thank-you p{text-align:center}.modal #flux-influxdb-versions{max-width:375px}.modal #flux-influxdb-versions .flex-wrapper{display:flex;flex-direction:column;height:100%}.modal #flux-influxdb-versions .influxdb-versions{margin-top:1.5rem;overflow:scroll}.modal #flux-influxdb-versions .version-list{display:flex;flex-direction:column-reverse}.modal #flux-influxdb-versions .version-row{display:flex;flex-direction:row;justify-content:space-between;align-items:center;padding:.15rem 0;border-bottom:1px solid #383846}.modal #flux-influxdb-versions .version-row:last-child{border-top:1px solid #383846}.modal #flux-influxdb-versions .version-row .version-col:last-child{padding-right:1rem;text-align:right}.modal #flux-influxdb-versions h4{margin-top:1.5rem}.modal #flux-influxdb-versions h4,.modal #flux-influxdb-versions span.medium{font-size:1.15rem}.modal #flux-influxdb-versions h3 code{background:#07070E;font-family:"IBM Plex Mono",monospace;color:#B7B8FF;padding:.1rem .4rem .2rem;border-radius:2px;white-space:nowrap;font-size:.85em;font-style:normal}.modal #flux-influxdb-versions span.medium{font-weight:500;color:#fff}.modal #flux-influxdb-versions span.flux-version{opacity:.5;font-size:.9rem}.modal #flux-influxdb-versions span.deprecated:before{content:'•';color:rgba(212,215,221,0.5);margin-right:.4rem}.modal #flux-influxdb-versions span.checkmark-new{font-size:1.1rem;font-weight:bold;color:#34BB55}.modal #flux-influxdb-versions span.checkmark-new.pending{color:#2AA3FF}.modal #flux-influxdb-versions .color-key{margin-top:1.5rem;padding:0;list-style:none}.modal #flux-influxdb-versions .color-key li{font-style:italic;color:rgba(212,215,221,0.65)}.modal #flux-influxdb-versions .color-key li#deprecated-key span{margin-left:.25rem}.modal #flux-influxdb-versions .more-info{margin-top:1.5rem}.modal #flux-influxdb-versions .no-support{margin:1rem 1rem 3rem;text-align:center;font-size:1.15rem;font-style:italic;color:rgba(212,215,221,0.65)}.modal #influxdb-gs-date-select{width:auto;max-width:260px}.modal #influxdb-gs-date-select p{margin-bottom:1.5rem}.modal #influxdb-gs-date-select a.btn{position:relative;display:inline-block;margin:1.25rem 0 .5rem;padding:0.85rem 1.5rem;color:#fff !important;border-radius:2px;text-transform:uppercase;letter-spacing:.06rem;font-size:1rem;float:right;z-index:1;background:linear-gradient(45deg, #066FC5,#00A3FF)}.modal #influxdb-gs-date-select a.btn:after{content:"";position:absolute;display:block;top:0;right:0;width:100%;height:100%;border-radius:2px;background:linear-gradient(45deg, #00A3FF,#6BDFFF);opacity:0;transition:opacity .2s;z-index:-1}.modal #influxdb-gs-date-select a.btn:hover{cursor:pointer}.modal #influxdb-gs-date-select a.btn:hover:after{opacity:1}@media (max-width: 600px){.modal{padding:.5rem;overflow:scroll}.modal .modal-body{padding:.5rem 1.5rem 1.5rem}}.loader,.loader:after{border-radius:50%;width:10em;height:10em}.loader{font-size:3px;position:relative;border-top:1.1em solid rgba(212,215,221,0.1);border-right:1.1em solid rgba(212,215,221,0.1);border-bottom:1.1em solid rgba(212,215,221,0.1);border-left:1.1em solid #2AA3FF;transform:translateZ(0);animation:load8 .6s infinite linear}@keyframes load8{0%{transform:rotate(0deg)}100%{transform:rotate(360deg)}}.feature-callout{padding:.5rem .5rem .5rem .75rem;background:linear-gradient(45deg, #F95F53,#BE2EE4);border-radius:2px;font-size:.95rem;font-style:italic;font-weight:500;color:#fff;box-shadow:2px 2px 6px rgba(32,32,40,0.35);z-index:100;transition:margin .3s ease-out;display:none}.feature-callout p{position:relative;margin:0}.feature-callout p:after{content:"";position:absolute;width:0;height:0;border-style:solid}.feature-callout p:hover{cursor:default}.feature-callout .new{display:inline-block;position:relative;margin-right:.25rem;font-size:.8rem;padding:.1rem .35rem;background:rgba(255,255,255,0.25);border-radius:1rem}.feature-callout .close{margin-left:.5rem;color:rgba(255,255,255,0.5);text-decoration:none}.feature-callout .close:hover{color:rgba(255,255,255,0.9)}.feature-callout #influxdb-url-selector{position:absolute;top:3rem;right:.75rem}.feature-callout #influxdb-url-selector p:after{top:-1rem;right:1.85rem;border-width:0 7px 8px 7px;border-color:transparent transparent #CB39C4 transparent}.feature-callout #influxdb-url-selector.start-position{margin-top:2.5rem}@media (max-width: 600px){.feature-callout#influxdb-url-selector{top:.55rem;right:5.15rem}.feature-callout#influxdb-url-selector p:after{top:.15rem;right:-16px;border-width:7px 0 7px 8px;border-color:transparent transparent transparent #C231D9}.feature-callout#influxdb-url-selector.start-position{margin-top:2.5rem}}body.v1 .article .article--content blockquote,body.platform .article .article--content blockquote{padding:1.65rem 2rem;margin:1rem 0 2rem;border-width:0 0 0 4px;border-style:solid;border-radius:0 2px 2px 0;border-color:#00A3FF;background:rgba(0,163,255,0.1)}body.v1 .article .article--content blockquote p,body.v1 .article .article--content blockquote li,body.platform .article .article--content blockquote p,body.platform .article .article--content blockquote li{font-size:.95rem;font-style:inherit}body.v1 .article .article--content blockquote ul:last-child,body.v1 .article .article--content blockquote ol:last-child,body.platform .article .article--content blockquote ul:last-child,body.platform .article .article--content blockquote ol:last-child{margin-bottom:1.85rem}body.v1 .article .article--content blockquote h1,body.v1 .article .article--content blockquote h2,body.v1 .article .article--content blockquote h3,body.v1 .article .article--content blockquote h4,body.v1 .article .article--content blockquote h5,body.v1 .article .article--content blockquote h6,body.platform .article .article--content blockquote h1,body.platform .article .article--content blockquote h2,body.platform .article .article--content blockquote h3,body.platform .article .article--content blockquote h4,body.platform .article .article--content blockquote h5,body.platform .article .article--content blockquote h6{color:#fff}body.v1 .article .article--content blockquote p,body.v1 .article .article--content blockquote li,body.platform .article .article--content blockquote p,body.platform .article .article--content blockquote li{color:#BEF0FF}body.v1 .article .article--content blockquote strong,body.platform .article .article--content blockquote strong{color:inherit}body.v1 .article .article--content blockquote a,body.platform .article .article--content blockquote a{color:#fff}body.v1 .article .article--content blockquote a code:after,body.platform .article .article--content blockquote a code:after{border-color:transparent rgba(0,201,255,0.35) transparent transparent}body.v1 .article .article--content blockquote a:hover,body.platform .article .article--content blockquote a:hover{color:#6BDFFF}body.v1 .article .article--content blockquote a:hover code:after,body.platform .article .article--content blockquote a:hover code:after{border-color:transparent #6BDFFF transparent transparent}body.v1 .article .article--content blockquote ol li:before,body.platform .article .article--content blockquote ol li:before{color:#BEF0FF}body.v1 .article .article--content blockquote code,body.v1 .article .article--content blockquote pre,body.platform .article .article--content blockquote code,body.platform .article .article--content blockquote pre{color:#00C9FF;background:#0a071c}body.v1 .article .article--content blockquote img,body.platform .article .article--content blockquote img{box-shadow:1px 3px 10px #0F0E15}body.v1 .article .article--content blockquote table,body.platform .article .article--content blockquote table{color:#BEF0FF;box-shadow:1px 3px 10px #0F0E15}body.v1 .article .article--content blockquote table thead,body.platform .article .article--content blockquote table thead{background:linear-gradient(45deg, #0B3A8D,#066FC5)}body.v1 .article .article--content blockquote table tr:nth-child(even) td,body.platform .article .article--content blockquote table tr:nth-child(even) td{background:#1b3a58}body.v1 .article .article--content blockquote blockquote,body.platform .article .article--content blockquote blockquote{border-color:rgba(190,240,255,0.25)}body.v1 .article .article--content blockquote blockquote p,body.platform .article .article--content blockquote blockquote p{color:rgba(190,240,255,0.6)}body.v1 .article .article--content blockquote .code-tabs-wrapper .code-tabs a,body.platform .article .article--content blockquote .code-tabs-wrapper .code-tabs a{background:transparent;color:rgba(190,240,255,0.5)}body.v1 .article .article--content blockquote .code-tabs-wrapper .code-tabs a:hover,body.platform .article .article--content blockquote .code-tabs-wrapper .code-tabs a:hover{color:#bef0ff}body.v1 .article .article--content blockquote .code-tabs-wrapper .code-tabs a.is-active,body.platform .article .article--content blockquote .code-tabs-wrapper .code-tabs a.is-active{color:#bef0ff;background:#0a071c}#docs-notifications{position:fixed;top:65px;right:10px;z-index:100;width:calc(100vw - 20px);max-width:450px;transition:all .4s ease, top 0s}#docs-notifications .notification{display:none;right:-50px;opacity:0;position:relative;padding:1.25rem 2.5rem 1.25rem 1.25rem;border-radius:2px;box-shadow:2px 2px 6px rgba(32,32,40,0.35);margin-bottom:10px;color:#fff}#docs-notifications .notification .notification-title h3{margin-bottom:1rem;transition:font-size .2s}#docs-notifications .notification .notification-content-wrapper{position:relative}#docs-notifications .notification code{font-size:.85rem}#docs-notifications .notification .notification-slug{font-size:.97rem;margin:-.5rem 0 1.5rem 0}#docs-notifications .notification .notification-slug+.notification-content{border-top:1px dotted rgba(255,255,255,0.5);padding-top:1.25rem}#docs-notifications .notification .notification-slug:last-child{margin-bottom:0}#docs-notifications .notification .notification-slug p:last-child{margin-bottom:0}#docs-notifications .notification .notification-content{font-size:1.05rem;opacity:1;max-height:500px;margin-bottom:1.5rem;transition:opacity .4s, max-height .2s ease-out, margin .2s ease-out, padding .2s}#docs-notifications .notification .notification-content h1,#docs-notifications .notification .notification-content h2,#docs-notifications .notification .notification-content h3,#docs-notifications .notification .notification-content h4,#docs-notifications .notification .notification-content h5,#docs-notifications .notification .notification-content h6{margin:1rem 0 .75rem}#docs-notifications .notification .notification-content h1:first-child,#docs-notifications .notification .notification-content h2:first-child,#docs-notifications .notification .notification-content h3:first-child,#docs-notifications .notification .notification-content h4:first-child,#docs-notifications .notification .notification-content h5:first-child,#docs-notifications .notification .notification-content h6:first-child{margin-top:0}#docs-notifications .notification .close-notification{position:absolute;top:8px;right:8px;font-size:1.7rem;cursor:pointer;transition:color .2s;font-weight:bold;color:rgba(255,255,255,0.5)}#docs-notifications .notification .close-notification:hover{color:#fff}#docs-notifications .notification .show{position:absolute;bottom:1rem;left:1.25rem;text-transform:uppercase;font-size:.8rem;font-weight:bold;opacity:.75;transition:opacity .2s}#docs-notifications .notification .show:hover{cursor:pointer;opacity:1}#docs-notifications .notification .show:before{content:"Show less"}#docs-notifications .notification.note{background:linear-gradient(45deg, #00A3FF,#34BB55)}#docs-notifications .notification.note a:hover{color:#003E34}#docs-notifications .notification.note code{color:#003E34;background:rgba(0,62,52,0.25)}#docs-notifications .notification.note pre{background:rgba(0,62,52,0.25)}#docs-notifications .notification.warn{background:linear-gradient(225deg, #F48D38,#DC4E58)}#docs-notifications .notification.warn a:hover{color:#2F1F29}#docs-notifications .notification.warn code{color:#ffbbdd;background:rgba(47,31,41,0.35)}#docs-notifications .notification.warn pre{background:rgba(47,31,41,0.35)}#docs-notifications .notification.ga-announcement{background-image:url("/svgs/influxdb3-ga-background.svg");background-size:cover}#docs-notifications .notification.ga-announcement a:hover{color:#020a47}#docs-notifications .notification.ga-announcement code{color:#003E34;background:rgba(0,62,52,0.25)}#docs-notifications .notification.ga-announcement pre{background:rgba(0,62,52,0.25)}#docs-notifications .notification.ga-announcement h3{font-size:1.4rem !important}#docs-notifications .notification.ga-announcement .notification-slug{font-size:1.15rem}#docs-notifications .notification.ga-announcement .notification-slug .btn{display:inline-block;background:#fff;color:#020a47;padding:.5rem 1rem;border-radius:4px;font-size:1rem}#docs-notifications .notification h1,#docs-notifications .notification h2,#docs-notifications .notification h3,#docs-notifications .notification h4,#docs-notifications .notification h5,#docs-notifications .notification h6{font-weight:500;margin:1rem 0 .75rem}#docs-notifications .notification h1:first-child,#docs-notifications .notification h2:first-child,#docs-notifications .notification h3:first-child,#docs-notifications .notification h4:first-child,#docs-notifications .notification h5:first-child,#docs-notifications .notification h6:first-child{margin-top:0}#docs-notifications .notification h1,#docs-notifications .notification h2{font-size:1.6rem}#docs-notifications .notification h3{font-size:1.35rem}#docs-notifications .notification h4{font-size:1.2rem}#docs-notifications .notification h5{font-size:1.1rem}#docs-notifications .notification h6{font-size:1.05rem;font-style:italic}#docs-notifications .notification p,#docs-notifications .notification li{line-height:1.5rem}#docs-notifications .notification p{margin:0 0 .75rem}#docs-notifications .notification a{font-weight:bold;text-decoration:none;color:#fff;transition:color .2s}#docs-notifications .notification ul,#docs-notifications .notification ol{padding-left:1.5rem}#docs-notifications .notification code{padding:.15rem .4rem;border-radius:2px;font-weight:bold}#docs-notifications .notification pre{padding:1rem;border-radius:2px;overflow:scroll}#docs-notifications .notification pre code{background:transparent !important}#docs-notifications .notification hr{border-width:1px 0 0 0;border-style:dotted;border-color:rgba(255,255,255,0.5)}#docs-notifications .notification.min .notification-title h3{font-size:1.15rem}#docs-notifications .notification.min .notification-content{max-height:0;margin:0;padding:0;opacity:0;pointer-events:none}#docs-notifications .notification.min .show::before{content:"Show more"}#docs-notifications .notification .title-tag{padding:.15rem .45rem;text-transform:uppercase;font-size:.85rem;border-radius:4px;font-family:"IBM Plex Mono",monospace;background:#020a47}#docs-notifications .notification .title-tag+h3{margin-top:.75rem}@media (max-width: 600px){#docs-notifications{top:50px}}.codeblock{position:relative}.code-controls{position:absolute;display:flex;flex-direction:column;align-items:flex-end;top:.5rem;right:.5rem}.code-controls .code-controls-toggle{padding:.05rem .15rem;display:inline-block;font-size:1.15rem;color:#B7B8FF;opacity:.5;transition:opacity .2s;border-radius:2px;line-height:0;cursor:pointer}.code-controls .code-controls-toggle:hover{opacity:1;background-color:rgba(212,215,221,0.1);backdrop-filter:blur(15px)}.code-controls ul.code-control-options{list-style:none;padding:.5rem;margin:0;border-radius:2px;background-color:rgba(212,215,221,0.05);backdrop-filter:blur(15px);display:none}.code-controls ul.code-control-options li{margin:0;padding:.4rem .5rem .6rem;border-radius:2px;color:#FAFAFC;font-size:.87rem;line-height:0;cursor:pointer}.code-controls ul.code-control-options li:hover{background-color:rgba(212,215,221,0.07)}.code-controls ul.code-control-options li.copy-code .cf-icon,.code-controls ul.code-control-options li.fullscreen-toggle .cf-icon{margin-right:.35rem}.code-controls ul.code-control-options li.copy-code .message{text-shadow:0px 0px 8px rgba(212,215,221,0);font-weight:normal;transition:color .2s, text-shadow .2s}.code-controls ul.code-control-options li.copy-code.success>.message{text-shadow:0px 0px 8px rgba(212,215,221,0.5);font-weight:bold}.code-controls ul.code-control-options li.copy-code.failed>.message{color:#DC4E58;text-shadow:0px 0px 8px rgba(220,78,88,0.5);font-weight:bold}.code-controls.open .code-controls-toggle{display:none}.code-controls.open .code-control-options{display:block}.fullscreen-code{display:none;z-index:1000;position:fixed;top:0;left:0;height:100vh;width:100vw;padding:2rem;background:#07070E;overflow:scroll !important}.fullscreen-code .fullscreen-close{position:fixed;padding:.1rem;right:.75rem;top:.5rem;display:block;color:#B7B8FF;font-size:2rem;text-decoration:none;background:#07070E;border-radius:2px}.fullscreen-code .fullscreen-close span{opacity:0.5;transition:opacity 0.2s}.fullscreen-code .fullscreen-close:hover span{opacity:1}.fullscreen-code pre{display:block;line-height:1.75rem;font-family:"IBM Plex Mono",monospace}.fullscreen-code pre code,.fullscreen-code pre pre{background:#07070E;font-family:"IBM Plex Mono",monospace;color:#B7B8FF}.fullscreen-code pre p code,.fullscreen-code pre li code,.fullscreen-code pre table code{padding:.1rem .4rem .2rem;border-radius:2px;color:#B7B8FF;white-space:nowrap;font-size:1rem;font-style:normal}.fullscreen-code pre h1 code,.fullscreen-code pre h2 code,.fullscreen-code pre h3 code,.fullscreen-code pre h4 code,.fullscreen-code pre h5 code,.fullscreen-code pre h6 code{padding:inherit !important;background:inherit !important;font-size:inherit !important;font-weight:inherit !important;font-family:"Proxima Nova",sans-serif;color:inherit !important}.fullscreen-code pre a code{font-weight:normal;transition:color .2s;position:relative;color:#00A3FF}.fullscreen-code pre a code:after{content:"";position:absolute;display:block;top:0;right:0;border-style:solid;border-width:0 .4rem .4rem 0;border-color:transparent rgba(0,163,255,0.35) transparent transparent;transition:border .2s}.fullscreen-code pre a:hover code{color:#fff}.fullscreen-code pre a:hover code:after{border-color:transparent #fff transparent transparent}.fullscreen-code pre pre{margin:2rem 0 2.25rem;padding:1.75rem 1.75rem 1.25rem;border-radius:2px;overflow-x:scroll;overflow-y:hidden;font-size:1rem}.fullscreen-code pre pre code{padding:0;line-height:1.7rem;white-space:pre}.fullscreen-code pre pre .api{margin-right:.35rem;padding:.15rem .5rem .25rem;border-radius:2px;color:#fff;font-family:"IBM Plex Mono",monospace;font-weight:bold;font-size:1rem}.fullscreen-code pre pre .api.get{background:#009F5F}.fullscreen-code pre pre .api.post{background:#066FC5}.fullscreen-code pre pre .api.patch{background:#E85B1C}.fullscreen-code pre pre .api.delete{background:#BF3D5E}.fullscreen-code pre pre .api.put{background:#513CC6}.fullscreen-code pre pre.api-endpoint a{position:relative;color:#00A3FF;text-decoration:none}.fullscreen-code pre pre.api-endpoint a:after{content:"\e90d";position:absolute;right:-1.45rem;top:0.65rem;font-family:"icomoon-v4";color:#fff;display:inline-block;font-size:1.1rem;line-height:0;opacity:0;transition:opacity .2s}.fullscreen-code pre pre.api-endpoint a:hover{color:#fff}.fullscreen-code pre pre.api-endpoint a:hover:after{opacity:.6}.fullscreen-code pre span.code-callout,.fullscreen-code pre .code-placeholder{font-weight:bold;margin:0 .15rem}.fullscreen-code pre span.code-callout.green,.fullscreen-code pre .code-placeholder.green{color:#009F5F}.fullscreen-code pre span.code-callout.magenta,.fullscreen-code pre .code-placeholder.magenta{color:#d30971}.fullscreen-code pre span.code-callout.orange,.fullscreen-code pre .code-placeholder.orange{color:#F95F53}.fullscreen-code pre span.code-callout.delete,.fullscreen-code pre span.code-callout.strike,.fullscreen-code pre .code-placeholder.delete,.fullscreen-code pre .code-placeholder.strike{text-decoration:line-through}.fullscreen-code pre .code-placeholder-wrapper{display:inline;position:relative}.fullscreen-code pre .code-placeholder-wrapper .code-placeholder{display:inline-block;margin:0 .15rem;padding:0;line-height:1.4em;color:#e659a2;font-weight:normal;font-style:normal;border-bottom:1px dotted;transition:color .2s;cursor:pointer}.fullscreen-code pre .code-placeholder-wrapper .code-placeholder .code-placeholder-edit-icon{font-style:normal}.fullscreen-code pre .code-placeholder-wrapper .code-placeholder .code-placeholder-edit-icon::before{margin-left:.2rem;font-size:.8em;transition:opacity .2s;opacity:.65;z-index:-1}.fullscreen-code pre .code-placeholder-wrapper .code-placeholder:hover{color:#5ee4e4}.fullscreen-code pre .code-placeholder-wrapper .code-placeholder:hover .code-placeholder-edit-icon::before{opacity:1}.fullscreen-code pre .code-placeholder-wrapper .code-input-wrapper{position:absolute;top:-3px;left:-4.5px;z-index:1;color:inherit}.fullscreen-code pre .code-placeholder-wrapper .code-input-wrapper input.placeholder-edit{width:100%;max-width:100%;border:1px solid #1A1A2A;border-radius:4px;background-color:#1A1A2A;padding:2px 20px 2px 6px;color:#5ee4e4;font-weight:normal}.fullscreen-code pre .code-placeholder-wrapper .code-input-wrapper input.placeholder-edit:focus{outline:none;border-color:rgba(94,228,228,0.75);box-shadow:1px 1px 8px rgba(94,228,228,0.5);border-radius:2px}.fullscreen-code pre .code-placeholder-wrapper .code-input-wrapper:hover{cursor:pointer}.fullscreen-code pre .code-placeholder-wrapper .code-input-wrapper:after{content:"\e937";color:#5ee4e4;font-family:'icomoon-v4';display:block;position:absolute;top:0;right:3px}.fullscreen-code pre .code-placeholder-key code{color:#e659a2 !important}.fullscreen-code pre pre span.tc-dynamic-value{border:1px solid;border-radius:6px;padding:0 .25rem;--param-color: #ff79c6;--param-bg: #ff79c633;--env-color: #0092b8;--env-bg: #0092b833;--secret-color: #9a09ff;--secret-bg: #9809ff33}.fullscreen-code pre pre span.tc-dynamic-value.param{color:var(--param-color);background:var(--param-bg);border-color:var(--param-color)}.fullscreen-code pre pre span.tc-dynamic-value.env{color:var(--env-color);background:var(--env-bg);border-color:var(--env-color)}.fullscreen-code pre pre span.tc-dynamic-value.secret{color:var(--secret-color);background:var(--secret-bg);border-color:var(--secret-color)}@media (max-width: 600px){.fullscreen-code pre pre{padding:1.2em 1.2em .75rem}}#v3-wayfinding-modal{display:flex;width:100%;justify-content:center;align-items:center;position:fixed;top:-100vh;padding:2rem;z-index:200;backdrop-filter:blur(15px);transition:top .75s ease-in-out}#v3-wayfinding-modal.open{top:0}#v3-wayfinding-modal .wayfinding-wrapper{background:linear-gradient(45deg, #d30971,#9b2aff);position:relative;max-width:800px;pointer-events:all;border-radius:4px}#v3-wayfinding-modal .wayfinding-content{padding:1.5rem;color:#fff}#v3-wayfinding-modal .wayfinding-content h4{font-size:1.25rem;margin:0}#v3-wayfinding-modal .wayfinding-content-info{display:flex;flex-direction:row}#v3-wayfinding-modal .wayfinding-content-info p{color:rgba(255,255,255,0.85);line-height:1.65rem}#v3-wayfinding-modal .wayfinding-content-info p strong{color:#fff}#v3-wayfinding-modal .wayfinding-content-info a#find-out-toggle{position:relative;color:inherit;font-size:.95rem;text-decoration:none;white-space:nowrap}#v3-wayfinding-modal .wayfinding-content-info a#find-out-toggle:after{position:absolute;display:block;content:"";border-top:1px solid #fff;bottom:-.1rem;left:0;height:1px;width:0%;transition:width .2s}#v3-wayfinding-modal .wayfinding-content-info a#find-out-toggle:hover{color:#fff}#v3-wayfinding-modal .wayfinding-content-info a#find-out-toggle:hover:after{width:100%}#v3-wayfinding-modal .wayfinding-content-info #find-out-instructions{text-align:center;line-height:1rem;transition:height .2s ease-out, opacity .2s;opacity:0;height:0;overflow:hidden}#v3-wayfinding-modal .wayfinding-content-info #find-out-instructions p{margin-top:0;font-size:.95rem;font-style:italic;line-height:1.3rem}#v3-wayfinding-modal .wayfinding-content-info #find-out-instructions a{position:relative;color:#fff;text-decoration:none;font-weight:bold}#v3-wayfinding-modal .wayfinding-content-info #find-out-instructions a:after{position:absolute;display:block;content:"";border-top:1px solid #fff;bottom:-.2rem;left:0;height:1px;width:0%;transition:width .2s}#v3-wayfinding-modal .wayfinding-content-info #find-out-instructions a:hover:after{width:100%}#v3-wayfinding-modal .wayfinding-content-info .powered-by-example{padding:1rem 1.25rem;display:inline-block;border-radius:2px;background:#0F0E15;color:#2AA3FF;font-size:.95rem;font-weight:bold;text-align:center}#v3-wayfinding-modal .wayfinding-content-info .powered-by-example span.storage-description{display:block;color:#828294;font-weight:normal;line-height:1.1rem}#v3-wayfinding-modal .wayfinding-content-info .powered-by-example span.storage-description.git-head::after{content:"(xxxxxx)";font-family:"IBM Plex Mono",monospace;margin-left:.2rem}#v3-wayfinding-modal .wayfinding-actions{min-width:33%;margin-left:2rem;display:flex;flex-direction:column;justify-content:center;align-content:center}#v3-wayfinding-modal .v3-wayfinding-btn{display:block;padding:1rem;margin-bottom:.5rem;border-radius:2px;background-color:#fff;text-align:center;text-decoration:none;color:#9b2aff;box-shadow:0px 0px 10px rgba(255,255,255,0);transition:color .2s, box-shadow .2s}#v3-wayfinding-modal .v3-wayfinding-btn:hover{color:#5C10A0;box-shadow:0 0 10px rgba(255,255,255,0.9)}#v3-wayfinding-modal .v3-wayfinding-btn .small{font-size:1rem}#v3-wayfinding-modal #v3-wayfinding-close{position:absolute;top:.75rem;right:.75rem;color:#fff;font-size:2rem;opacity:.65;transition:opacity .2s}#v3-wayfinding-modal #v3-wayfinding-close:hover{opacity:1;cursor:pointer}#v3-wayfinding-modal label{margin-top:.5rem;display:block;text-align:center;font-size:.95rem;font-style:italic;position:relative;cursor:pointer;-moz-user-select:none;user-select:none;-webkit-user-select:none}#v3-wayfinding-modal label .checkbox{display:inline-block;width:15px;height:15px;border:1.5px solid rgba(255,255,255,0.85);vertical-align:middle;border-radius:2px;position:relative}#v3-wayfinding-modal label .checkbox:before{content:'';display:inline-block;width:3px;height:7px;border-right:2px solid rgba(255,255,255,0.85);border-bottom:2px solid rgba(255,255,255,0.85);position:absolute;left:50%;top:50%;transform:translate(-50%, -50%) rotate(45deg) scale(0);transition:all 0.2s}#v3-wayfinding-modal label input{position:absolute;opacity:0;visibility:hidden}#v3-wayfinding-modal label input:checked+.checkbox{border-color:rgba(255,255,255,0.85)}#v3-wayfinding-modal label input:checked+.checkbox:before{transform:translate(-50%, -60%) rotate(45deg) scale(1)}#v3-wayfinding-modal label .checkbox-text{margin-left:4px;display:inline-block;vertical-align:middle}@media (max-width: 600px){#v3-wayfinding-modal .wayfinding-content-info{flex-direction:column}#v3-wayfinding-modal #find-out-instructions{padding-bottom:1.5rem}#v3-wayfinding-modal .wayfinding-actions{margin-left:0}}.influxdb-version-detector{--transition-fast: 0.2s ease;--transition-normal: 0.3s ease;--spacing-sm: 0.625rem;--spacing-md: 1.25rem;margin:2rem auto}.influxdb-version-detector .detector-title{color:#fff;margin-bottom:0.625rem;font-size:1.8em;font-weight:600}.influxdb-version-detector .detector-subtitle{color:#D4D7DD;margin-bottom:1.875rem;font-size:0.95em;opacity:0.8}.influxdb-version-detector .progress{margin-bottom:1.5625rem;height:6px;background:#383846;border-radius:3px;overflow:hidden}.influxdb-version-detector .progress .progress-bar{height:100%;background:#00A3FF;transition:width var(--transition-normal)}.influxdb-version-detector .question-container{min-height:150px}.influxdb-version-detector .question-container .question{display:none;animation:fadeIn var(--transition-normal)}.influxdb-version-detector .question-container .question.active{display:block}.influxdb-version-detector .question-container .question .question-text{font-size:1.1em;color:#fff;margin-bottom:1.25rem;font-weight:500}.influxdb-version-detector .url-suggestions .suggestion-button,.influxdb-version-detector .back-button,.influxdb-version-detector .restart-button,.influxdb-version-detector .submit-button,.influxdb-version-detector .option-button{border:none;border-radius:var(--border-radius);cursor:pointer;transition:all var(--transition-fast);font-family:inherit}.influxdb-version-detector .url-suggestions .suggestion-button:focus,.influxdb-version-detector .back-button:focus,.influxdb-version-detector .restart-button:focus,.influxdb-version-detector .submit-button:focus,.influxdb-version-detector .option-button:focus{outline:2px solid #00A3FF;outline-offset:2px}.influxdb-version-detector .option-button{display:block;width:100%;text-align:left;margin-bottom:0.75rem;padding:0.875rem 1.125rem;background:#14141F;color:#D4D7DD;border:2px solid #383846;font-size:15px}.influxdb-version-detector .option-button:hover{border-color:#00A3FF;background:#14141F;transform:translateX(3px)}.influxdb-version-detector .option-button:active{transform:translateX(1px)}.influxdb-version-detector .submit-button{background:#00A3FF;color:#fff;padding:0.75rem 1.5rem;font-size:15px;font-weight:500}.influxdb-version-detector .submit-button:hover{background:#066FC5;color:#fff}.influxdb-version-detector .submit-button:disabled{background:#676978;cursor:not-allowed}.influxdb-version-detector .back-button,.influxdb-version-detector .restart-button{background:#676978;color:#fff;padding:var(--spacing-sm) var(--spacing-md);font-size:14px;margin-right:var(--spacing-sm)}.influxdb-version-detector .back-button:hover,.influxdb-version-detector .restart-button:hover{background:#757888}.influxdb-version-detector .restart-button{margin-top:var(--spacing-md);margin-right:0}.influxdb-version-detector textarea,.influxdb-version-detector .input-group input{width:100%;border:2px solid #383846;border-radius:var(--border-radius);transition:border-color var(--transition-fast);background:#14141F;color:#D4D7DD}.influxdb-version-detector textarea:focus,.influxdb-version-detector .input-group input:focus{outline:none;border-color:#00A3FF}.influxdb-version-detector .input-group{margin-bottom:var(--spacing-md)}.influxdb-version-detector .input-group label{display:block;margin-bottom:0.5rem;color:#D4D7DD;font-weight:500}.influxdb-version-detector .input-group input{padding:0.75rem;font-size:14px}.influxdb-version-detector textarea{padding:var(--spacing-sm);font-family:var(--font-mono, "Courier New", monospace);font-size:12px;resize:vertical;min-height:120px}.influxdb-version-detector textarea::-moz-placeholder{color:rgba(212,215,221,0.6);opacity:1}.influxdb-version-detector textarea::placeholder{color:rgba(212,215,221,0.6);opacity:1}.influxdb-version-detector textarea::-webkit-input-placeholder{color:rgba(212,215,221,0.6)}.influxdb-version-detector textarea::-moz-placeholder{color:rgba(212,215,221,0.6);opacity:1}.influxdb-version-detector textarea:-ms-input-placeholder{color:rgba(212,215,221,0.6)}.influxdb-version-detector .code-block{background:#07070E;color:#B7B8FF;padding:1.75rem 1.75rem 1.25rem;border-radius:2px;font-family:"IBM Plex Mono",monospace;font-size:1rem;margin:2rem 0 2.25rem;overflow-x:scroll;overflow-y:hidden;line-height:1.7rem;white-space:pre}.influxdb-version-detector .url-pattern-hint{margin-bottom:var(--spacing-sm);padding:var(--spacing-sm);background:#00A3FF;border:1px solid #00A3FF;border-radius:var(--border-radius);color:#BEF0FF;font-size:13px}.influxdb-version-detector .url-suggestions{margin-bottom:var(--spacing-md)}.influxdb-version-detector .url-suggestions .suggestions-header{color:#fff;margin-bottom:var(--spacing-sm);font-size:14px}.influxdb-version-detector .url-suggestions .suggestion-button{display:block;width:100%;text-align:left;margin-bottom:var(--spacing-sm);padding:var(--spacing-sm);background:#14141F;border:1px solid #383846}.influxdb-version-detector .url-suggestions .suggestion-button:hover{border-color:#00A3FF;background:#14141F}.influxdb-version-detector .url-suggestions .suggestion-button .suggestion-url{font-family:var(--font-mono, "Courier New", monospace);font-size:13px;color:#00A3FF;margin-bottom:2px}.influxdb-version-detector .url-suggestions .suggestion-button .suggestion-product{font-size:12px;color:#D4D7DD;opacity:0.8}.influxdb-version-detector .url-suggestions .suggestion-button .suggestion-pattern{font-size:11px;color:#00A3FF;font-style:italic;margin-top:2px}.influxdb-version-detector .result{display:none;margin-top:var(--spacing-sm);padding:var(--spacing-md);border-radius:var(--border-radius);animation:fadeIn var(--transition-normal)}.influxdb-version-detector .result.show{display:block}.influxdb-version-detector .result.success{background:#14141F;border-left:3px solid #00A3FF;color:#D4D7DD}.influxdb-version-detector .result.error{background:#FFF7F4;border-left:3px solid #d30971;color:#2F1F29}.influxdb-version-detector .result.info{background:#00A3FF;border-left:3px solid #00A3FF;color:#BEF0FF}.influxdb-version-detector .result.warning{background:rgba(255,97,133,0.101961);border-left:3px solid #FF8564;color:#FFB6A0}.influxdb-version-detector .detected-version{font-size:1.3em;font-weight:bold;color:#00A3FF;margin-bottom:var(--spacing-sm);padding:var(--spacing-sm);background:rgba(0,163,255,0.1);border-radius:4px;border-left:4px solid #00A3FF}.influxdb-version-detector .url-prefilled-indicator{font-size:0.85em;color:#BEF0FF;margin-bottom:8px;padding:4px 8px;background:rgba(0,163,255,0.1);border-left:3px solid #00A3FF}.influxdb-version-detector .loading{display:inline-block;margin-left:var(--spacing-sm)}.influxdb-version-detector .loading:after{content:'...';animation:dots 1.5s steps(4, end) infinite}@keyframes dots{0%,20%{content:'.'}40%{content:'..'}60%,100%{content:'...'}}@keyframes fadeIn{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@media (max-width: 768px){.influxdb-version-detector{padding:1.5rem}.influxdb-version-detector .detector-title{font-size:1.5em}.influxdb-version-detector .option-button{padding:0.75rem 1rem;font-size:14px}.influxdb-version-detector .submit-button,.influxdb-version-detector .back-button,.influxdb-version-detector .restart-button{padding:var(--spacing-sm) var(--spacing-md);font-size:14px}}@media (max-width: 480px){.influxdb-version-detector{padding:1rem}.influxdb-version-detector .detector-title{font-size:1.3em}.influxdb-version-detector .detector-subtitle{font-size:0.9em}.influxdb-version-detector .question-text{font-size:1em}}.influxdb-version-detector .product-ranking{margin-bottom:var(--spacing-sm);padding:0.75rem;border-radius:var(--border-radius);border-left:4px solid #383846;background:#14141F}.influxdb-version-detector .product-ranking.top-result{background:rgba(0,163,255,0.1);border-color:#00A3FF}.influxdb-version-detector .product-ranking .product-title{font-weight:600;margin-bottom:0.25rem}.influxdb-version-detector .product-ranking .most-likely-label{color:#00A3FF;font-size:0.9em;margin-left:var(--spacing-sm)}.influxdb-version-detector .product-ranking .product-details{color:#D4D7DD;font-size:0.9em;margin-top:0.25rem;opacity:0.8}.influxdb-version-detector .grafana-tips{margin-top:var(--spacing-md);padding:1rem;background:rgba(0,163,255,0.1);border-left:4px solid #00A3FF;border-radius:var(--border-radius)}.influxdb-version-detector .grafana-tips .tips-title{margin:0 0 var(--spacing-sm) 0;color:#00A3FF;font-size:1.1em}.influxdb-version-detector .grafana-tips .tips-description{margin:0 0 var(--spacing-sm) 0;font-size:0.9em}.influxdb-version-detector .grafana-tips .tips-list{margin:0;padding-left:1.25rem;font-size:0.85em}.influxdb-version-detector .grafana-tips .tips-list li{margin-bottom:0.25rem}.influxdb-version-detector .grafana-tips .tips-list code{background:rgba(0,163,255,0.15);padding:0.125rem 0.25rem;border-radius:3px;font-size:0.9em}.influxdb-version-detector .grafana-tips .tips-link{margin:var(--spacing-sm) 0 0 0;font-size:0.85em}.influxdb-version-detector .expected-results{margin:1rem 0}.influxdb-version-detector .expected-results .results-title{font-weight:600;margin-bottom:0.5rem}.influxdb-version-detector .expected-results .results-list{margin:0;padding-left:1rem;font-size:0.9em}.influxdb-version-detector .expected-results .results-list li{margin-bottom:0.25rem}.influxdb-version-detector .question-text-spaced{margin-top:1rem;font-weight:normal;font-size:0.95em}.influxdb-version-detector .question-options{margin-top:1rem}.influxdb-version-detector .command-help{margin-top:var(--spacing-md)}.influxdb-version-detector .doc-link,.influxdb-version-detector .ask-ai-open{color:#00A3FF;text-decoration:underline;display:inline-block}.influxdb-version-detector .doc-link:hover,.influxdb-version-detector .ask-ai-open:hover{color:#fff}.influxdb-version-detector .ask-ai-open{margin-left:0.5rem}.influxdb-version-detector .manual-output{margin:1rem 0;padding:var(--spacing-sm);background:#14141F;border-left:4px solid #00A3FF;border-radius:var(--border-radius)}.influxdb-version-detector .action-section{margin-top:var(--spacing-md)}.influxdb-version-detector .quick-reference{margin-top:2rem}.influxdb-version-detector .quick-reference details{border:1px solid #383846;border-radius:var(--border-radius);padding:0.5rem}.influxdb-version-detector .quick-reference .reference-summary{cursor:pointer;font-weight:600;padding:0.5rem 0;-webkit-user-select:none;-moz-user-select:none;user-select:none;color:#00A3FF}.influxdb-version-detector .quick-reference .reference-summary:hover{color:#fff}.influxdb-version-detector .expandable-summary{cursor:pointer;font-weight:600;padding:0.5rem 0;-webkit-user-select:none;-moz-user-select:none;user-select:none;color:#00A3FF;position:relative;padding-left:1.5rem}.influxdb-version-detector .expandable-summary:hover{color:#fff}.influxdb-version-detector .expandable-summary::marker,.influxdb-version-detector .expandable-summary::-webkit-details-marker{display:none}.influxdb-version-detector .expandable-summary::before{content:'+';position:absolute;left:0;top:50%;transform:translateY(-50%);width:1rem;height:1rem;display:flex;align-items:center;justify-content:center;font-size:14px;font-weight:bold;color:#00A3FF;border:1px solid #00A3FF;border-radius:3px;background:transparent}details[open] .influxdb-version-detector .expandable-summary::before{content:'−'}.influxdb-version-detector .expandable-summary:hover::before{color:#fff;border-color:#fff}.influxdb-version-detector .quick-reference{margin-top:2rem}.influxdb-version-detector .quick-reference details{border:1px solid #383846;border-radius:var(--border-radius);padding:0.5rem}.influxdb-version-detector .quick-reference .reference-table{margin-top:1rem;width:100%;border-collapse:collapse;font-size:0.9em}.influxdb-version-detector .quick-reference .reference-table th,.influxdb-version-detector .quick-reference .reference-table td{padding:0.5rem;text-align:left;border:1px solid #383846}.influxdb-version-detector .quick-reference .reference-table th{padding:0.75rem 0.5rem;background:rgba(0,163,255,0.1);font-weight:600}.influxdb-version-detector .quick-reference .reference-table tbody tr:nth-child(even){background:rgba(212,215,221,0.02)}.influxdb-version-detector .quick-reference .reference-table .product-name{font-weight:600}.format-selector{position:relative;display:inline-flex;align-items:center;margin-left:auto;margin-top:0.5rem}.title .format-selector{margin-left:auto}.format-selector__button{display:inline-flex;align-items:center;gap:0.5rem;padding:0.5rem 0.75rem;background:#1A1A2A;color:#D4D7DD;border:1px solid #333346;border-radius:2px;font-size:14px;font-weight:500;line-height:1;cursor:pointer;transition:all 0.2s ease;white-space:nowrap;box-shadow:2px 2px 6px rgba(15,14,21,0.5)}.format-selector__button:hover{border-color:#00A3FF;box-shadow:1px 1px 10px rgba(0,163,255,0.5)}.format-selector__button:focus{outline:2px solid #00A3FF;outline-offset:2px}.format-selector__button[aria-expanded='true']{border-color:#00A3FF}.format-selector__button[aria-expanded='true'] .format-selector__button-arrow svg{transform:rotate(180deg)}.format-selector__button-icon{display:inline-flex;align-items:center;justify-content:center;width:16px;height:16px}.format-selector__button-icon svg{width:100%;height:100%;color:#D4D7DD}.format-selector__button-text{font-size:14px;font-weight:500}.format-selector__button-arrow{display:inline-flex;align-items:center;justify-content:center;width:12px;height:12px;margin-left:0.25rem}.format-selector__button-arrow svg{width:100%;height:100%;transition:transform 0.2s ease}.format-selector__dropdown{position:fixed;min-width:280px;max-width:320px;background:#14141F;border:1px solid #333346;border-radius:8px;box-shadow:2px 2px 6px #07070E;padding:0.5rem;z-index:10000;opacity:0;visibility:hidden;transform:translateY(-8px);transition:all 0.2s ease;pointer-events:none}.format-selector__dropdown.is-open{opacity:1;visibility:visible;transform:translateY(0);pointer-events:auto}.format-selector__option{display:flex;align-items:flex-start;gap:0.75rem;width:100%;padding:0.75rem;background:transparent;color:#D4D7DD;border:none;border-radius:2px;text-align:left;text-decoration:none;cursor:pointer;transition:background 0.15s ease}.format-selector__option:hover{background:#1A1A2A;color:#00A3FF}.format-selector__option:focus{outline:2px solid #00A3FF;outline-offset:-2px}.format-selector__option:not(:last-child){margin-bottom:0.25rem}.format-selector__icon{display:inline-flex;align-items:center;justify-content:center;width:20px;height:20px;flex-shrink:0;margin-top:2px}.format-selector__icon svg{width:100%;height:100%;stroke:#D4D7DD}.format-selector__icon svg [fill]:not([fill="none"]):not([fill="white"]){fill:#D4D7DD}.format-selector__label-group{display:flex;flex-direction:column;gap:0.25rem;flex:1;min-width:0}.format-selector__label{display:flex;align-items:center;gap:0.5rem;font-size:14px;font-weight:500;line-height:1.3;color:#D4D7DD}.format-selector__external{display:inline-flex;align-items:center;font-size:12px;color:#D4D7DD;margin-left:0.25rem;opacity:0.7}.format-selector__sublabel{font-size:12px;line-height:1.4;color:#D4D7DD}@media (max-width: 768px){.format-selector{margin-left:0;margin-top:1rem}.format-selector__dropdown{right:auto;left:0;min-width:100%;max-width:100%}}.format-selector__dropdown{isolation:isolate}@keyframes slideInUp{from{transform:translateY(100%);opacity:0}to{transform:translateY(0);opacity:1}}*{box-sizing:border-box} -/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInN0ZGluIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLEtBQUssY0FBYyxDQUFDLGtDQUFrQyxDQUFDLGlDQUFpQyxDQUFDLFdBQVcsMEJBQTBCLENBQUMsb0RBQW9ELENBQUMsZUFBZSxDQUFDLFdBQVcsMEJBQTBCLENBQUMsMkRBQTJELENBQUMsZUFBZSxDQUFDLFdBQVcsMEJBQTBCLENBQUMsNkRBQTZELENBQUMsbUJBQW1CLENBQUMsV0FBVywwQkFBMEIsQ0FBQyx5REFBeUQsQ0FBQyxlQUFlLENBQUMsV0FBVyx3QkFBd0IsQ0FBQyxzQ0FBc0MsQ0FBQyw2T0FBNk8sQ0FBQyxrQkFBa0IsQ0FBQyxpQkFBaUIsQ0FBQyxrQkFBa0IsQ0FBQyxtQ0FBbUMsbUNBQW1DLENBQUMsV0FBVyxDQUFDLGlCQUFpQixDQUFDLGtCQUFrQixDQUFDLG1CQUFtQixDQUFDLG1CQUFtQixDQUFDLGFBQWEsQ0FBQyxrQ0FBa0MsQ0FBQyxpQ0FBaUMsQ0FBQyx1QkFBdUIsZUFBZSxDQUFDLHlCQUF5QixlQUFlLENBQUMsNkJBQTZCLGVBQWUsQ0FBQyw0QkFBNEIsZUFBZSxDQUFDLHdCQUF3QixlQUFlLENBQUMsbUJBQW1CLGVBQWUsQ0FBQyxvQkFBb0IsZUFBZSxDQUFDLGtCQUFrQixlQUFlLENBQUMsK0JBQStCLGVBQWUsQ0FBQyw2QkFBNkIsZUFBZSxDQUFDLDhCQUE4QixlQUFlLENBQUMsd0JBQXdCLGVBQWUsQ0FBQywrQkFBK0IsZUFBZSxDQUFDLHlCQUF5QixlQUFlLENBQUMsZ0NBQWdDLGVBQWUsQ0FBQyxzQkFBc0IsZUFBZSxDQUFDLDZCQUE2QixlQUFlLENBQUMsMkJBQTJCLGVBQWUsQ0FBQyw0QkFBNEIsZUFBZSxDQUFDLG1CQUFtQixlQUFlLENBQUMsb0JBQW9CLGVBQWUsQ0FBQyxzQkFBc0IsZUFBZSxDQUFDLHFCQUFxQixlQUFlLENBQUMsc0JBQXNCLGVBQWUsQ0FBQywwQkFBMEIsZUFBZSxDQUFDLDBCQUEwQixlQUFlLENBQUMsMkJBQTJCLGVBQWUsQ0FBQyx3QkFBd0IsZUFBZSxDQUFDLGtCQUFrQixlQUFlLENBQUMsc0JBQXNCLGVBQWUsQ0FBQyxtQkFBbUIsZUFBZSxDQUFDLGtCQUFrQixlQUFlLENBQUMsc0JBQXNCLGVBQWUsQ0FBQyxtQkFBbUIsZUFBZSxDQUFDLHNCQUFzQixlQUFlLENBQUMsdUJBQXVCLGVBQWUsQ0FBQyx1QkFBdUIsZUFBZSxDQUFDLHdCQUF3QixlQUFlLENBQUMsMkJBQTJCLGVBQWUsQ0FBQyx5QkFBeUIsZUFBZSxDQUFDLHVCQUF1QixlQUFlLENBQUMsb0JBQW9CLGVBQWUsQ0FBQyx3QkFBd0IsZUFBZSxDQUFDLHlCQUF5QixlQUFlLENBQUMsa0JBQWtCLGVBQWUsQ0FBQywyQkFBMkIsZUFBZSxDQUFDLG1CQUFtQixlQUFlLENBQUMsb0JBQW9CLGVBQWUsQ0FBQyxrQkFBa0IsZUFBZSxDQUFDLHFCQUFxQixlQUFlLENBQUMscUJBQXFCLGVBQWUsQ0FBQyxvQkFBb0IsZUFBZSxDQUFDLDBCQUEwQixlQUFlLENBQUMsbUJBQW1CLGVBQWUsQ0FBQyxtQkFBbUIsZUFBZSxDQUFDLHNCQUFzQixlQUFlLENBQUMsZUFBZSxlQUFlLENBQUMsc0JBQXNCLGVBQWUsQ0FBQyxrQkFBa0IsZUFBZSxDQUFDLGtCQUFrQixlQUFlLENBQUMsdUJBQXVCLGVBQWUsQ0FBQyx3QkFBd0IsZUFBZSxDQUFDLGtCQUFrQixlQUFlLENBQUMsbUJBQW1CLGVBQWUsQ0FBQyx3QkFBd0IsZUFBZSxDQUFDLHNCQUFzQixlQUFlLENBQUMsa0JBQWtCLGVBQWUsQ0FBQyx3QkFBd0IsZUFBZSxDQUFDLHNCQUFzQixlQUFlLENBQUMseUJBQXlCLGVBQWUsQ0FBQyxtQkFBbUIsZUFBZSxDQUFDLG1CQUFtQixlQUFlLENBQUMsb0JBQW9CLGVBQWUsQ0FBQyxpQkFBaUIsZUFBZSxDQUFDLHNCQUFzQixlQUFlLENBQUMsc0JBQXNCLGVBQWUsQ0FBQyxXQUFXLHdCQUF3QixDQUFDLDJEQUEyRCxDQUFDLDhPQUE4TyxDQUFDLGtCQUFrQixDQUFDLGlCQUFpQixDQUFDLFNBQVMsd0JBQXdCLENBQUMsaUJBQWlCLENBQUMsa0JBQWtCLENBQUMsbUJBQW1CLENBQUMsbUJBQW1CLENBQUMsYUFBYSxDQUFDLGtDQUFrQyxDQUFDLGlDQUFpQyxDQUFDLDZCQUE2QixlQUFlLENBQUMsbUNBQW1DLGVBQWUsQ0FBQyw2QkFBNkIsZUFBZSxDQUFDLCtCQUErQixlQUFlLENBQUMsK0JBQStCLGVBQWUsQ0FBQyxnQ0FBZ0MsZUFBZSxDQUFDLDZCQUE2QixlQUFlLENBQUMsOEJBQThCLGVBQWUsQ0FBQyxrQ0FBa0MsZUFBZSxDQUFDLCtCQUErQixlQUFlLENBQUMsK0JBQStCLGVBQWUsQ0FBQyxnQ0FBZ0MsZUFBZSxDQUFDLDZCQUE2QixlQUFlLENBQUMsOEJBQThCLGVBQWUsQ0FBQyw4QkFBOEIsZUFBZSxDQUFDLDBCQUEwQixlQUFlLENBQUMsZ0NBQWdDLGVBQWUsQ0FBQyw4QkFBOEIsZUFBZSxDQUFDLGdDQUFnQyxlQUFlLENBQUMsOEJBQThCLGVBQWUsQ0FBQyw2QkFBNkIsZUFBZSxDQUFDLDhCQUE4QixlQUFlLENBQUMsMkJBQTJCLGVBQWUsQ0FBQywyQkFBMkIsZUFBZSxDQUFDLDZCQUE2QixlQUFlLENBQUMsK0JBQStCLGVBQWUsQ0FBQywyQkFBMkIsZUFBZSxDQUFDLGlDQUFpQyxlQUFlLENBQUMseUJBQXlCLGVBQWUsQ0FBQywyQkFBMkIsZUFBZSxDQUFDLCtCQUErQixlQUFlLENBQUMsaUNBQWlDLGVBQWUsQ0FBQyw0QkFBNEIsZUFBZSxDQUFDLHdCQUF3QixlQUFlLENBQUMseUJBQXlCLGVBQWUsQ0FBQyxrQ0FBa0MsZUFBZSxDQUFDLDRCQUE0QixlQUFlLENBQUMsMkJBQTJCLGVBQWUsQ0FBQywyQkFBMkIsZUFBZSxDQUFDLGtDQUFrQyxlQUFlLENBQUMsaUNBQWlDLGVBQWUsQ0FBQyx5QkFBeUIsZUFBZSxDQUFDLDJCQUEyQixlQUFlLENBQUMseUJBQXlCLGVBQWUsQ0FBQywwQkFBMEIsZUFBZSxDQUFDLGlDQUFpQyxlQUFlLENBQUMscUJBQXFCLGVBQWUsQ0FBQyxxQ0FBcUMsZUFBZSxDQUFDLFVBQVUsQ0FBQywrQkFBK0IsZUFBZSxDQUFDLDZCQUE2QixlQUFlLENBQUMscUJBQXFCLGVBQWUsQ0FBQyw0QkFBNEIsZUFBZSxDQUFDLCtCQUErQixlQUFlLENBQUMscUJBQXFCLGVBQWUsQ0FBQyw2QkFBNkIsZUFBZSxDQUFDLDZCQUE2QixlQUFlLENBQUMsNkJBQTZCLGVBQWUsQ0FBQyxxQkFBcUIsZUFBZSxDQUFDLDRCQUE0QixlQUFlLENBQUMsdUJBQXVCLGVBQWUsQ0FBQyxvQkFBb0IsZUFBZSxDQUFDLHdCQUF3QixlQUFlLENBQUMsc0JBQXNCLGVBQWUsQ0FBQyx5QkFBeUIsZUFBZSxDQUFDLCtCQUErQixlQUFlLENBQUMsdUJBQXVCLGVBQWUsQ0FBQyx5QkFBeUIsZUFBZSxDQUFDLDhCQUE4QixlQUFlLENBQUMseUJBQXlCLGVBQWUsQ0FBQywwQkFBMEIsZUFBZSxDQUFDLHFCQUFxQixlQUFlLENBQUMsMkJBQTJCLGVBQWUsQ0FBQyxzQkFBc0IsZUFBZSxDQUFDLDJCQUEyQixlQUFlLENBQUMsMkJBQTJCLGVBQWUsQ0FBQywyQkFBMkIsZUFBZSxDQUFDLDRCQUE0QixlQUFlLENBQUMseUJBQXlCLGVBQWUsQ0FBQywwQkFBMEIsZUFBZSxDQUFDLHVCQUF1QixlQUFlLENBQUMsNkJBQTZCLGVBQWUsQ0FBQyxzQkFBc0IsZUFBZSxDQUFDLDRCQUE0QixlQUFlLENBQUMsMEJBQTBCLGVBQWUsQ0FBQyx5QkFBeUIsZUFBZSxDQUFDLDhCQUE4QixlQUFlLENBQUMsdUJBQXVCLGVBQWUsQ0FBQyxxQkFBcUIsZUFBZSxDQUFDLHFCQUFxQixlQUFlLENBQUMsNkJBQTZCLGVBQWUsQ0FBQyx1QkFBdUIsZUFBZSxDQUFDLHVCQUF1QixlQUFlLENBQUMsdUJBQXVCLGVBQWUsQ0FBQyxzQkFBc0IsZUFBZSxDQUFDLHlCQUF5QixlQUFlLENBQUMsMEJBQTBCLGVBQWUsQ0FBQywyQkFBMkIsZUFBZSxDQUFDLHlCQUF5QixlQUFlLENBQUMseUJBQXlCLGVBQWUsQ0FBQyx1QkFBdUIsZUFBZSxDQUFDLG9CQUFvQixlQUFlLENBQUMsMkJBQTJCLGVBQWUsQ0FBQyx5QkFBeUIsZUFBZSxDQUFDLG1CQUFtQixlQUFlLENBQUMsdUJBQXVCLGVBQWUsQ0FBQyx1QkFBdUIsZUFBZSxDQUFDLHNCQUFzQixlQUFlLENBQUMsdUJBQXVCLGVBQWUsQ0FBQyw4QkFBOEIsZUFBZSxDQUFDLHVCQUF1QixlQUFlLENBQUMscUJBQXFCLGVBQWUsQ0FBQyx5QkFBeUIsZUFBZSxDQUFDLHlCQUF5QixlQUFlLENBQUMseUJBQXlCLGVBQWUsQ0FBQyxzQkFBc0IsZUFBZSxDQUFDLHdCQUF3QixlQUFlLENBQUMscUJBQXFCLGVBQWUsQ0FBQyxzQkFBc0IsZUFBZSxDQUFDLHVCQUF1QixlQUFlLENBQUMscUJBQXFCLGVBQWUsQ0FBQyxxQkFBcUIsZUFBZSxDQUFDLDRCQUE0QixlQUFlLENBQUMseUJBQXlCLGVBQWUsQ0FBQyx3QkFBd0IsZUFBZSxDQUFDLHFCQUFxQixlQUFlLENBQUMsd0JBQXdCLGVBQWUsQ0FBQyx1QkFBdUIsZUFBZSxDQUFDLHVCQUF1QixlQUFlLENBQUMsd0JBQXdCLGVBQWUsQ0FBQyx3QkFBd0IsZUFBZSxDQUFDLHVCQUF1QixlQUFlLENBQUMsNkJBQTZCLGVBQWUsQ0FBQyxxQkFBcUIsZUFBZSxDQUFDLHFCQUFxQixlQUFlLENBQUMsMkJBQTJCLGVBQWUsQ0FBQyxzQkFBc0IsZUFBZSxDQUFDLHlCQUF5QixlQUFlLENBQUMscUJBQXFCLGVBQWUsQ0FBQyxxQkFBcUIsZUFBZSxDQUFDLHlCQUF5QixlQUFlLENBQUMsNkJBQTZCLGVBQWUsQ0FBQyw0QkFBNEIsZUFBZSxDQUFDLDJCQUEyQixlQUFlLENBQUMscUJBQXFCLGVBQWUsQ0FBQyxxQkFBcUIsZUFBZSxDQUFDLHVCQUF1QixlQUFlLENBQUMsb0JBQW9CLGVBQWUsQ0FBQyw2QkFBNkIsZUFBZSxDQUFDLHlCQUF5QixlQUFlLENBQUMsc0JBQXNCLGVBQWUsQ0FBQyx5QkFBeUIsZUFBZSxDQUFDLDJCQUEyQixlQUFlLENBQUMsMEJBQTBCLGVBQWUsQ0FBQyw0QkFBNEIsZUFBZSxDQUFDLDBCQUEwQixlQUFlLENBQUMsMkJBQTJCLGVBQWUsQ0FBQyxxQkFBcUIsZUFBZSxDQUFDLDBCQUEwQixlQUFlLENBQUMsNEJBQTRCLGVBQWUsQ0FBQyw2QkFBNkIsZUFBZSxDQUFDLCtCQUErQixlQUFlLENBQUMsNkJBQTZCLGVBQWUsQ0FBQyx1QkFBdUIsZUFBZSxDQUFDLHNCQUFzQixlQUFlLENBQUMsV0FBVyx3QkFBd0IsQ0FBQywyREFBMkQsQ0FBQyw4T0FBOE8sQ0FBQyxrQkFBa0IsQ0FBQyxpQkFBaUIsQ0FBQyxTQUFTLHdCQUF3QixDQUFDLGlCQUFpQixDQUFDLGtCQUFrQixDQUFDLG1CQUFtQixDQUFDLG1CQUFtQixDQUFDLGFBQWEsQ0FBQyxrQ0FBa0MsQ0FBQyxpQ0FBaUMsQ0FBQywyQkFBMkIsZUFBZSxDQUFDLHFCQUFxQixlQUFlLENBQUMsdUJBQXVCLGVBQWUsQ0FBQyx5QkFBeUIsZUFBZSxDQUFDLCtCQUErQixlQUFlLENBQUMscUJBQXFCLGVBQWUsQ0FBQyx5QkFBeUIsZUFBZSxDQUFDLHNCQUFzQixlQUFlLENBQUMsa0NBQWtDLGVBQWUsQ0FBQyw2QkFBNkIsZUFBZSxDQUFDLDhCQUE4QixlQUFlLENBQUMsb0NBQW9DLGVBQWUsQ0FBQyxxQ0FBcUMsZUFBZSxDQUFDLHlCQUF5QixlQUFlLENBQUMsNkJBQTZCLGVBQWUsQ0FBQyw0QkFBNEIsZUFBZSxDQUFDLDhCQUE4QixlQUFlLENBQUMsOEJBQThCLGVBQWUsQ0FBQywrQkFBK0IsZUFBZSxDQUFDLDRCQUE0QixlQUFlLENBQUMscUJBQXFCLGVBQWUsQ0FBQyxzQkFBc0IsZUFBZSxDQUFDLHdCQUF3QixlQUFlLENBQUMsc0JBQXNCLGVBQWUsQ0FBQyw0QkFBNEIsZUFBZSxDQUFDLDZCQUE2QixlQUFlLENBQUMsOEJBQThCLGVBQWUsQ0FBQyw2QkFBNkIsZUFBZSxDQUFDLDhCQUE4QixlQUFlLENBQUMsOEJBQThCLGVBQWUsQ0FBQywrQkFBK0IsZUFBZSxDQUFDLDZCQUE2QixlQUFlLENBQUMscUJBQXFCLGVBQWUsQ0FBQyx5QkFBeUIsZUFBZSxDQUFDLDRCQUE0QixlQUFlLENBQUMsdUJBQXVCLGVBQWUsQ0FBQyw0QkFBNEIsZUFBZSxDQUFDLHlCQUF5QixlQUFlLENBQUMscUJBQXFCLGVBQWUsQ0FBQyw4QkFBOEIsZUFBZSxDQUFDLDRCQUE0QixlQUFlLENBQUMsOEJBQThCLGVBQWUsQ0FBQywwQkFBMEIsZUFBZSxDQUFDLHNCQUFzQixlQUFlLENBQUMsK0JBQStCLGVBQWUsQ0FBQyw2QkFBNkIsZUFBZSxDQUFDLDJCQUEyQixlQUFlLENBQUMsK0JBQStCLGVBQWUsQ0FBQyxxQkFBcUIsZUFBZSxDQUFDLDBCQUEwQixlQUFlLENBQUMsNEJBQTRCLGVBQWUsQ0FBQyw2QkFBNkIsZUFBZSxDQUFDLHNCQUFzQixlQUFlLENBQUMsNkJBQTZCLGVBQWUsQ0FBQyx3QkFBd0IsZUFBZSxDQUFDLDJCQUEyQixlQUFlLENBQUMsMEJBQTBCLGVBQWUsQ0FBQyw0QkFBNEIsZUFBZSxDQUFDLDhCQUE4QixlQUFlLENBQUMsc0JBQXNCLGVBQWUsQ0FBQyx3QkFBd0IsZUFBZSxDQUFDLDhCQUE4QixlQUFlLENBQUMsd0JBQXdCLGVBQWUsQ0FBQyx1QkFBdUIsZUFBZSxDQUFDLDhCQUE4QixlQUFlLENBQUMscUJBQXFCLGVBQWUsQ0FBQyxxQkFBcUIsZUFBZSxDQUFDLHFCQUFxQixlQUFlLENBQUMsdUJBQXVCLGVBQWUsQ0FBQyx5QkFBeUIsZUFBZSxDQUFDLDRCQUE0QixlQUFlLENBQUMsMkJBQTJCLGVBQWUsQ0FBQyxxQkFBcUIsZUFBZSxDQUFDLDRCQUE0QixlQUFlLENBQUMsMkJBQTJCLGVBQWUsQ0FBQyxzQkFBc0IsZUFBZSxDQUFDLHVCQUF1QixlQUFlLENBQUMscUJBQXFCLGVBQWUsQ0FBQywwQkFBMEIsZUFBZSxDQUFDLDBCQUEwQixlQUFlLENBQUMsMkJBQTJCLGVBQWUsQ0FBQyx5QkFBeUIsZUFBZSxDQUFDLDBCQUEwQixlQUFlLENBQUMscUJBQXFCLGVBQWUsQ0FBQywyQkFBMkIsZUFBZSxDQUFDLCtCQUErQixlQUFlLENBQUMscUJBQXFCLGVBQWUsQ0FBQyxvQkFBb0IsZUFBZSxDQUFDLFdBQVcseUJBQXlCLENBQUMsdUNBQXVDLENBQUMsOE9BQThPLENBQUMsa0JBQWtCLENBQUMsaUJBQWlCLENBQUMsa0JBQWtCLENBQUMsK0NBQStDLG9DQUFvQyxDQUFDLFdBQVcsQ0FBQyxpQkFBaUIsQ0FBQyxrQkFBa0IsQ0FBQyxtQkFBbUIsQ0FBQyxtQkFBbUIsQ0FBQyxhQUFhLENBQUMsa0NBQWtDLENBQUMsaUNBQWlDLENBQUMsMkJBQTJCLGFBQWEsQ0FBQyw2QkFBNkIsYUFBYSxDQUFDLHdCQUF3QixhQUFhLENBQUMsdUJBQXVCLGFBQWEsQ0FBQywyQkFBMkIsYUFBYSxDQUFDLElBQUksd0JBQXdCLENBQUMsSUFBSSx3QkFBd0IsQ0FBQyxTQUFTLGlCQUFpQixDQUFDLG9CQUFvQixDQUFDLGVBQWUsQ0FBQyxhQUFhLENBQUMsZUFBZSxXQUFXLENBQUMsa0NBQWtDLGtCQUFrQixDQUFDLDZCQUE2QixTQUFTLENBQUMsa0NBQWtDLENBQUMsNEJBQTRCLGlCQUFpQixDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsMEJBQTBCLENBQUMsZ0JBQWdCLENBQUMsaUJBQWlCLENBQUMsdUJBQXVCLGVBQWUsQ0FBQyxpQkFBaUIsQ0FBQyxpQkFBaUIsQ0FBQyxxQkFBcUIsQ0FBQyxnQkFBZ0IsQ0FBQyxtQkFBbUIsQ0FBQyxRQUFRLENBQUMsbUNBQW1DLENBQUMsd0JBQXdCLENBQUMsa0JBQWtCLENBQUMsU0FBUyxDQUFDLGFBQWEsQ0FBQyx3QkFBd0IsQ0FBQyw2QkFBNkIsVUFBVSxDQUFDLGlCQUFpQixDQUFDLFFBQVEsQ0FBQyxZQUFZLENBQUMsMEJBQTBCLENBQUMsNEJBQTRCLENBQUMsa0NBQWtDLENBQUMsbUNBQW1DLENBQUMsaUNBQWlDLENBQUMsa0NBQWtDLFFBQVEsQ0FBQyxtQ0FBbUMsQ0FBQyx3Q0FBd0MsUUFBUSxDQUFDLDBCQUEwQixDQUFDLHdDQUF3QyxrQ0FBa0MsQ0FBQyxtQ0FBbUMsUUFBUSxDQUFDLG1DQUFtQyxDQUFDLHlDQUF5QyxRQUFRLENBQUMsMEJBQTBCLENBQUMseUNBQXlDLGtDQUFrQyxDQUFDLHdDQUF3QyxrQkFBa0IsQ0FBQyxtQ0FBbUMsU0FBUyxDQUFDLHdCQUF3QixDQUFDLGtDQUFrQyxPQUFPLENBQUMseUJBQXlCLENBQUMsNkJBQTZCLFFBQVEsQ0FBQyx3QkFBd0IsQ0FBQyx3QkFBd0IsQ0FBQyxtQ0FBbUMsT0FBTyxDQUFDLFVBQVUsQ0FBQywwQkFBMEIsQ0FBQyxpQ0FBaUMsQ0FBQywrQkFBK0IsQ0FBQyxvQ0FBb0MsQ0FBQyxpQ0FBaUMsQ0FBQyxZQUFZLGFBQWEsQ0FBQyxxQ0FBcUMsa0JBQWtCLENBQUMsZ0NBQWdDLFNBQVMsQ0FBQyxrQ0FBa0MsQ0FBQywwQkFBMEIsK0JBQStCLENBQUMsZ0NBQWdDLFVBQVUsQ0FBQyxpQkFBaUIsQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQywwQkFBMEIsQ0FBQyxnQ0FBZ0MsQ0FBQyxrQ0FBa0MsQ0FBQywrQkFBK0IsQ0FBQyxpQ0FBaUMsQ0FBQyxZQUFZLFlBQVksQ0FBQyxtQkFBbUIsYUFBYSxDQUFDLG1CQUFtQix3QkFBd0IsQ0FBQyxpQkFBaUIsQ0FBQyxvQkFBb0IsQ0FBQyx3QkFBd0IsMEJBQTBCLENBQUMsUUFBUSxDQUFDLGlCQUFpQixDQUFDLGNBQWMsQ0FBQyxhQUFhLENBQUMsTUFBTSxDQUFDLGlCQUFpQixDQUFDLHdCQUF3QixDQUFDLHFCQUFxQixDQUFzQixnQkFBZ0IsQ0FBQyxpQkFBaUIsV0FBVyxDQUFDLHFCQUFxQixZQUFZLENBQUMsNkJBQTZCLGtCQUFrQixDQUFDLHdCQUF3QixDQUFDLHdCQUF3QixDQUFDLGlCQUFpQixDQUFDLGVBQWUsQ0FBQyxhQUFhLENBQUMsY0FBYyxDQUFDLG1CQUFtQixDQUFDLGNBQWMsQ0FBQyxhQUFhLENBQUMsc0JBQXNCLENBQUMsZUFBZSxDQUFDLFFBQVEsQ0FBQyxpQ0FBaUMsQ0FBQyxpQkFBaUIsQ0FBQyxpQkFBaUIsQ0FBQyxrQkFBa0IsQ0FBQyxrQkFBa0IsQ0FBQyxrQkFBa0IsQ0FBQyxvQ0FBb0MsWUFBWSxDQUFDLG9CQUFvQixDQUFDLGFBQWEsQ0FBQyxtQ0FBbUMsWUFBWSxDQUFDLG9CQUFvQixDQUFDLGFBQWEsQ0FBQyxnREFBZ0QsOENBQThDLENBQUMsbUNBQW1DLG9CQUFvQixDQUFDLGFBQWEsQ0FBQyx1Q0FBdUMsa0JBQWtCLENBQUMsa0NBQWtDLFNBQVMsQ0FBQywrQkFBK0Isb0JBQW9CLENBQUMscUJBQXFCLENBQUMsYUFBYSxDQUFDLCtCQUErQixvQkFBb0IsQ0FBQyxxQkFBcUIsQ0FBQyxhQUFhLENBQUMsd0NBQXdDLGlCQUFpQixDQUFDLHdDQUF3QyxpQkFBaUIsQ0FBQyxpQkFBaUIsWUFBWSxDQUFDLGNBQWMsQ0FBQyxjQUFjLENBQUMsaUJBQWlCLFlBQVksQ0FBQywrQkFBK0IsWUFBWSxDQUFDLHdDQUF3Qyx5QkFBeUIsQ0FBQyxzQkFBc0IseUJBQXlCLENBQUMsaUJBQWlCLENBQUMsZUFBZSxDQUFDLGFBQWEsQ0FBQyxrQkFBa0IsQ0FBQyx1QkFBdUIsY0FBYyxDQUFDLG1CQUFtQixDQUFDLGFBQWEsQ0FBQyxnQkFBZ0IsQ0FBQyxhQUFhLENBQUMsa0RBQWtELGNBQWMsQ0FBQyxhQUFhLENBQUMsa0JBQWtCLENBQUMsaUJBQWlCLGNBQWMsQ0FBQyxtQkFBbUIsQ0FBQyxzQ0FBc0MsdUNBQXVDLENBQUMsY0FBYyxDQUFDLGtCQUFrQix3QkFBd0IsQ0FBQyw4Q0FBOEMsQ0FBQyxlQUFlLENBQUMsc0JBQXNCLENBQUMsaUJBQWlCLENBQUMsd0NBQXdDLGlCQUFpQixDQUFDLGdEQUFnRCx3QkFBd0IsQ0FBQyxlQUFlLENBQUMsc0RBQXNELHVDQUF1QyxDQUFDLG1FQUFtRSwrQ0FBK0MsQ0FBQyx1REFBdUQsd0JBQXdCLENBQUMsMERBQTBELGVBQWUsQ0FBQyx3Q0FBd0Msd0JBQXdCLENBQUMsVUFBVSxDQUFDLDBCQUEwQix3QkFBd0IsQ0FBQyxVQUFVLENBQUMsZUFBZSxDQUFDLGdDQUFnQyx3QkFBd0IsQ0FBQyxVQUFVLENBQUMsZUFBZSxDQUFDLDBCQUEwQixhQUFhLENBQUMscUNBQXFDLGFBQWEsQ0FBQyxxQ0FBcUMsYUFBYSxDQUFDLCtCQUErQixhQUFhLENBQUMsK0JBQStCLGFBQWEsQ0FBQyxvRUFBb0UsdUNBQXVDLENBQUMsZUFBZSxDQUFDLHlGQUF5RixxQkFBcUIsQ0FBQyw0RUFBNEUsd0JBQXdCLENBQUMsVUFBVSxDQUFDLHNDQUFzQyx3QkFBd0IsQ0FBQyxxREFBcUQsVUFBVSxDQUFDLDhDQUE4Qyx3QkFBd0IsQ0FBQywwQkFBMEIsb0JBQW9CLENBQUMsaUNBQWlDLGlEQUFpRCxDQUFDLGdDQUFnQyxpREFBaUQsQ0FBQyw0QkFBNEIsdUJBQXVCLGdCQUFnQixDQUFDLHVDQUF1QyxpQkFBaUIsQ0FBQyxDQUFDLHFFQUFxRSxDQUFDLEtBQUssc0JBQXNCLENBQUMseUJBQXlCLENBQUMsNkJBQTZCLENBQUMsS0FBSyxRQUFRLENBQUMsMkZBQTJGLGFBQWEsQ0FBQyw0QkFBNEIsb0JBQW9CLENBQUMsdUJBQXVCLENBQUMsc0JBQXNCLFlBQVksQ0FBQyxRQUFRLENBQUMsa0JBQWtCLFlBQVksQ0FBQyxFQUFFLDRCQUE0QixDQUFDLGlCQUFpQixTQUFTLENBQUMsWUFBWSx3QkFBd0IsQ0FBQyxTQUFTLGdCQUFnQixDQUFDLElBQUksaUJBQWlCLENBQUMsR0FBRyxhQUFhLENBQUMsZUFBZSxDQUFDLEtBQUssZUFBZSxDQUFDLFVBQVUsQ0FBQyxNQUFNLGFBQWEsQ0FBQyxRQUFRLGFBQWEsQ0FBQyxhQUFhLENBQUMsaUJBQWlCLENBQUMsdUJBQXVCLENBQUMsSUFBSSxVQUFVLENBQUMsSUFBSSxjQUFjLENBQUMsSUFBSSxRQUFRLENBQUMsZUFBZSxlQUFlLENBQUMsT0FBTyxlQUFlLENBQUMsR0FBK0Isc0JBQXNCLENBQUMsUUFBUSxDQUFDLElBQUksYUFBYSxDQUFDLGtCQUFrQixnQ0FBZ0MsQ0FBQyxhQUFhLENBQUMsc0NBQXNDLGFBQWEsQ0FBQyxZQUFZLENBQUMsUUFBUSxDQUFDLE9BQU8sZ0JBQWdCLENBQUMsY0FBYyxtQkFBbUIsQ0FBQywwRUFBMEUseUJBQXlCLENBQUMsY0FBYyxDQUFDLHNDQUFzQyxjQUFjLENBQUMsaURBQWlELFFBQVEsQ0FBQyxTQUFTLENBQUMsTUFBTSxrQkFBa0IsQ0FBQywyQ0FBMkMscUJBQXFCLENBQUMsU0FBUyxDQUFDLGdHQUFnRyxXQUFXLENBQUMscUJBQXFCLDRCQUE0QixDQUE0RCxzQkFBc0IsQ0FBQyxtR0FBbUcsdUJBQXVCLENBQUMsU0FBUyx3QkFBd0IsQ0FBQyxZQUFZLENBQUMsNkJBQTZCLENBQUMsT0FBTyxRQUFRLENBQUMsU0FBUyxDQUFDLFNBQVMsYUFBYSxDQUFDLFNBQVMsZ0JBQWdCLENBQUMsTUFBTSx3QkFBd0IsQ0FBQyxnQkFBZ0IsQ0FBQyxNQUFNLFNBQVMsQ0FBQyxLQUFLLFdBQVcsQ0FBQyxLQUFLLGVBQWUsQ0FBQyxxQ0FBcUMsQ0FBQyxrQkFBa0IsQ0FBQyxzREFBc0QsWUFBWSxDQUFDLEVBQUUscUJBQXFCLENBQUMsRUFBRSwwQ0FBMEMsQ0FBQyxjQUFjLFlBQVksQ0FBQyxXQUFXLENBQUMsY0FBYyxZQUFZLENBQUMsMEJBQTBCLGNBQWMscUJBQXFCLENBQUMsQ0FBQyxRQUFRLFlBQVksQ0FBQyw0QkFBNEIsQ0FBQyw2QkFBNkIsQ0FBQyxpQkFBaUIsQ0FBQyxxQkFBcUIsQ0FBQyxVQUFVLENBQUMscUJBQXFCLHdCQUF3QixDQUFDLGdCQUFnQixDQUFDLFVBQVUsQ0FBQyxvQkFBb0IsQ0FBQyxxQkFBcUIsQ0FBQywyQkFBMkIsYUFBYSxDQUFDLDJDQUEyQyxpQkFBaUIsQ0FBQyxpQkFBaUIsV0FBVyxDQUFDLDJDQUEyQyxDQUFDLHNCQUFzQixDQUFDLG1CQUFtQixvQkFBb0IsQ0FBQyx1QkFBdUIsQ0FBQyxlQUFlLENBQUMsZ0JBQWdCLENBQUMsVUFBVSxDQUFDLG9CQUFvQixDQUFDLHlCQUF5QixhQUFhLENBQUMscUJBQXFCLG1CQUFtQixDQUFDLHFCQUFxQixDQUFDLFNBQVMsQ0FBQyxzQkFBc0IsWUFBWSxDQUFDLGlCQUFpQixDQUFDLFlBQVksQ0FBQyxVQUFVLENBQUMsNEJBQTRCLFlBQVksQ0FBQyxXQUFXLENBQUMsb0JBQW9CLENBQUMsc0JBQXNCLGlCQUFpQixDQUFDLHdDQUF3QyxvQkFBb0IsQ0FBQyxVQUFVLENBQUMsVUFBVSxDQUFDLFdBQVcsQ0FBQyxtREFBbUQsQ0FBQywyQkFBMkIsQ0FBQyxlQUFlLENBQUMsaUJBQWlCLENBQUMsaUJBQWlCLENBQUMsZUFBZSxDQUFDLGNBQWMsQ0FBQyw4Q0FBOEMsZUFBZSxDQUFDLHdCQUF3QixDQUFDLGlCQUFpQixDQUFDLFVBQVUsQ0FBQyxXQUFXLENBQUMsa0JBQWtCLENBQUMsa0RBQWtELDBCQUEwQixDQUFDLGFBQWEsQ0FBQyxtREFBbUQsd0JBQXdCLENBQUMsc0NBQXNDLFNBQVMsQ0FBQyxRQUFRLENBQUMsbUJBQW1CLENBQUMsZ0JBQWdCLENBQUMsc0NBQXNDLENBQUMsMkNBQTJDLFNBQVMsQ0FBQyxtQkFBbUIsQ0FBQyxZQUFZLENBQUMsV0FBVyxDQUFDLDBEQUEwRCxjQUFjLENBQUMscURBQXFELG1EQUFtRCxDQUFDLDJCQUEyQixDQUFDLGlCQUFpQixDQUFDLCtCQUErQixDQUFDLGdCQUFnQixDQUFDLHFCQUFxQixDQUFDLGdFQUFnRSxRQUFRLENBQUMsbURBQW1ELDBCQUEwQixDQUFDLGdCQUFnQixDQUFDLGFBQWEsQ0FBQyxjQUFjLENBQUMscURBQXFELFFBQVEsQ0FBQyx5QkFBeUIsQ0FBQywrRkFBNEYsQ0FBNUYsNEZBQTRGLENBQUMsdUJBQXVCLENBQUMsbURBQW1ELFNBQVMsQ0FBQyxRQUFRLENBQUMsZUFBZSxDQUFDLGtGQUFrRiwyQkFBMkIsQ0FBQyxvQkFBb0IsQ0FBQywwQkFBMEIsQ0FBQyxnQkFBZ0IsQ0FBQyxpQkFBaUIsQ0FBQyx3QkFBd0IsQ0FBQyxnQkFBZ0IsQ0FBQyxxQkFBcUIsQ0FBQyxXQUFXLENBQUMsdUJBQXVCLENBQUMsd0NBQXdDLGFBQWEsQ0FBQyxvQkFBb0IsQ0FBQyxpQkFBaUIsQ0FBQyxlQUFlLENBQUMsa0JBQWtCLENBQUMsVUFBVSxDQUFDLGlDQUFpQyxDQUFDLDhCQUE4QixDQUFDLDhDQUE4QyxnQ0FBZ0MsQ0FBQywrQ0FBK0MsZ0NBQWdDLENBQUMsbURBQW1ELHlCQUF5QixDQUFDLGlCQUFpQixDQUFDLG1EQUFtRCxjQUFjLENBQUMsV0FBVyxDQUFDLGlCQUFpQixDQUFDLGlCQUFpQixZQUFZLENBQUMsaUJBQWlCLENBQUMsK0RBQStELG9CQUFvQixDQUFDLFNBQVMsQ0FBQyxhQUFhLENBQUMsMkJBQTJCLENBQUMsZUFBZSxDQUFDLFdBQVcsQ0FBQyxVQUFVLENBQUMsV0FBVyxDQUFDLGlDQUFpQyxDQUFDLHVCQUFlLENBQWYsb0JBQWUsQ0FBZixlQUFlLENBQUMsZ0JBQWdCLENBQUMsaUZBQWlGLFlBQVksQ0FBQyxpRkFBaUYsVUFBVSxDQUFDLGNBQWMsQ0FBQyxxSEFBcUgsWUFBWSxDQUFDLGlCQUFpQixDQUFDLHdIQUF3SCxvQkFBb0IsQ0FBQyxnQkFBZ0IsQ0FBQyxxQkFBcUIsZ0JBQWdCLENBQUMsa0JBQWtCLENBQUMsU0FBUyxDQUFDLG9CQUFvQixPQUFPLENBQUMsU0FBUyxDQUFDLGdDQUFnQyxhQUFhLENBQUMsaUNBQWlDLENBQUMsb0NBQW9DLENBQUMsZUFBZSxDQUFDLG9CQUFvQixDQUFDLG1CQUFtQixDQUFDLGlCQUFpQixDQUFDLGVBQWUsQ0FBQyxxQkFBcUIsQ0FBQyx1Q0FBdUMsZUFBZSxDQUFDLHdCQUF3QixDQUFDLGdCQUFnQixDQUFDLGFBQWEsQ0FBQyx3QkFBd0IsQ0FBQyxxQkFBcUIsQ0FBQyxzQ0FBc0Msb0JBQW9CLENBQUMsdUNBQXVDLENBQUMsMEJBQTBCLGlCQUFpQixZQUFZLENBQUMsd0JBQXdCLFdBQVcsQ0FBQyxDQUFDLDBCQUEwQixzQkFBc0IsWUFBWSxDQUFDLFFBQVEsa0JBQWtCLENBQUMsc0JBQXNCLGVBQWUsQ0FBQyxjQUFjLDZCQUE2QixDQUFDLG9CQUFvQixDQUFDLHlCQUF5QixDQUFDLFlBQVksWUFBWSxDQUFDLDRCQUE0QixVQUFVLENBQUMsZ0JBQWdCLENBQUMsZUFBZSxDQUFDLDBDQUEwQywwQkFBMEIsQ0FBQyw0REFBNEQsVUFBVSxDQUFDLENBQUMsY0FBYyxhQUFhLENBQUMsVUFBVSxDQUFDLGdCQUFnQixDQUFDLGFBQWEsQ0FBQyx1QkFBdUIsVUFBVSxDQUFDLGFBQWEsQ0FBQyxtQkFBbUIsQ0FBQyxhQUFhLENBQUMsaUJBQWlCLENBQUMsdUNBQXVDLGdCQUFnQixDQUFDLDZDQUE2QyxpQ0FBaUMsQ0FBQyxpQkFBaUIsQ0FBQyxpQkFBaUIsQ0FBQyxlQUFlLENBQUMsK0RBQTBELDRCQUE0QixDQUF0RiwwREFBMEQsNEJBQTRCLENBQUMsNkNBQTZDLGNBQWMsQ0FBQyxVQUFVLENBQUMsWUFBWSxDQUFDLDZEQUE2RCxpQkFBaUIsQ0FBQyxtRUFBbUUsVUFBVSxDQUFDLGlCQUFpQixDQUFDLGFBQWEsQ0FBQyxpQkFBaUIsQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLHlDQUF5QyxDQUFDLFdBQVcsQ0FBQyxVQUFVLENBQUMsdUJBQXVCLENBQUMsVUFBVSxDQUFDLG1OQUFtTixtQkFBbUIsQ0FBQyxpQkFBaUIsQ0FBQyxvQkFBb0IsQ0FBQywrTkFBK04sVUFBVSxDQUFDLHlDQUF5QyxDQUFDLFdBQVcsQ0FBQyxVQUFVLENBQUMsdUJBQXVCLENBQUMsK0JBQStCLGNBQWMsQ0FBQyxpQkFBaUIsaUJBQWlCLENBQUMsVUFBVSxDQUFDLDZCQUE2QixrQkFBa0IsQ0FBQyxZQUFZLENBQUMsa0JBQWtCLENBQUMsa0JBQWtCLENBQUMsdUNBQXVDLFlBQVksQ0FBQyxjQUFjLENBQUMsVUFBVSxDQUFDLGNBQWMsQ0FBQyxzQ0FBc0MsY0FBYyxDQUFDLFlBQVksQ0FBQyxZQUFZLENBQUMscUJBQXFCLENBQUMsNkJBQTZCLENBQUMsYUFBYSxDQUFDLGVBQWUsQ0FBQyxzREFBc0QsbUJBQW1CLENBQUMsZ0JBQWdCLENBQUMsa0JBQWtCLENBQUMsMkJBQTJCLENBQUMscUVBQXFFLG1CQUFtQixDQUFDLGlCQUFpQixDQUFDLGNBQWMsQ0FBQyw2QkFBNkIsQ0FBQyxrREFBa0QsQ0FBQyxVQUFVLENBQUMsaUJBQWlCLENBQUMsaUJBQWlCLENBQUMscUJBQXFCLENBQUMsdURBQXVELGNBQWMsQ0FBQyxlQUFlLENBQUMsMkVBQTJFLG9CQUFvQixDQUFDLHlEQUF5RCxvQkFBb0IsQ0FBQyxVQUFVLENBQUMsZUFBZSxDQUFDLGlCQUFpQixDQUFDLGlFQUFpRSxVQUFVLENBQUMsaUJBQWlCLENBQUMsV0FBVyxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsa0RBQWtELENBQUMsb0JBQW9CLENBQUMsZ0VBQWdFLGVBQWUsQ0FBQyx3QkFBd0IsQ0FBQyxnQkFBZ0IsQ0FBQyxnQkFBZ0IsQ0FBQyxvQkFBb0IsQ0FBQyxpQkFBaUIsQ0FBQyxrREFBa0QsQ0FBQyw0QkFBb0IsQ0FBcEIsb0JBQW9CLENBQUMsbUNBQW1DLENBQUMsT0FBTyxDQUFDLDZCQUE2QixDQUFDLFNBQVMsQ0FBQyxxQ0FBcUMsQ0FBQyx1RUFBdUUsVUFBVSxDQUFDLHNFQUFzRSw0QkFBNEIsQ0FBQyxTQUFTLENBQUMsZ0NBQWdDLG9CQUFvQixDQUFDLGlCQUFpQixDQUFDLFFBQVEsQ0FBQyxhQUFhLENBQUMsa0RBQWtELENBQUMsNEJBQW9CLENBQXBCLG9CQUFvQixDQUFDLG1DQUFtQyxDQUFDLGdDQUFnQyxnQkFBZ0IsQ0FBQyxlQUFlLENBQUMsa0NBQWtDLG9CQUFvQixDQUFDLFVBQVUsQ0FBQyxpQkFBaUIsQ0FBQywwQ0FBMEMsVUFBVSxDQUFDLGlCQUFpQixDQUFDLFdBQVcsQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLGtEQUFrRCxDQUFDLG9CQUFvQixDQUFDLGdEQUFnRCxVQUFVLENBQUMseUNBQXlDLGNBQWMsQ0FBQyxVQUFVLENBQUMsZ0NBQWdDLGdCQUFnQixDQUFDLHFCQUFxQixDQUFDLG9CQUFvQixDQUFDLGtCQUFrQixDQUFDLDJCQUEyQixDQUFDLGtCQUFrQixDQUFDLHlDQUF5QyxZQUFZLENBQUMsa0JBQWtCLENBQUMsY0FBYyxDQUFDLHVCQUF1QixDQUFDLDhEQUE4RCxVQUFVLENBQUMsOERBQThELFlBQVksQ0FBQyx1RUFBdUUsYUFBYSxDQUFDLDZEQUE2RCxZQUFZLENBQUMsc0VBQXNFLGNBQWMsQ0FBQyw0Q0FBNEMsa0JBQWtCLENBQUMsbURBQW1ELFVBQVUsQ0FBQyxhQUFhLENBQUMsNEJBQTRCLENBQUMsbUJBQW1CLENBQUMsdUJBQXVCLENBQUMseUJBQXlCLGtCQUFrQixDQUFDLDhCQUE4QixpQkFBaUIsQ0FBQyx3QkFBd0IsbURBQW1ELENBQUMsVUFBVSxDQUFDLGlCQUFpQixDQUFDLGVBQWUsQ0FBQyxZQUFZLENBQUMsa0JBQWtCLENBQUMsa0JBQWtCLENBQUMsNkJBQTZCLENBQUMsb0NBQW9DLGlCQUFpQixDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDLFdBQVcsQ0FBQywrQ0FBK0MsQ0FBQywwQkFBMEIsQ0FBQywyQkFBMkIsZ0JBQWdCLENBQUMsbURBQW1ELENBQUMsNEJBQW9CLENBQXBCLG9CQUFvQixDQUFDLG1DQUFtQyxDQUFDLDZCQUE2QixpQkFBaUIsQ0FBQyx5Q0FBeUMsY0FBYyxDQUFDLG9CQUFvQixDQUFDLGVBQWUsQ0FBQyw2REFBNkQsb0JBQW9CLENBQUMsMkNBQTJDLG9CQUFvQixDQUFDLFVBQVUsQ0FBQyxlQUFlLENBQUMsaUJBQWlCLENBQUMsbURBQW1ELFVBQVUsQ0FBQyxpQkFBaUIsQ0FBQyxXQUFXLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxtREFBbUQsQ0FBQyxvQkFBb0IsQ0FBQyxrREFBa0QsZUFBZSxDQUFDLHdCQUF3QixDQUFDLGdCQUFnQixDQUFDLGdCQUFnQixDQUFDLG9CQUFvQixDQUFDLGlCQUFpQixDQUFDLG1EQUFtRCxDQUFDLDRCQUFvQixDQUFwQixvQkFBb0IsQ0FBQyxtQ0FBbUMsQ0FBQyxPQUFPLENBQUMsNkJBQTZCLENBQUMsU0FBUyxDQUFDLHFDQUFxQyxDQUFDLHlEQUF5RCxVQUFVLENBQUMsd0RBQXdELDRCQUE0QixDQUFDLFNBQVMsQ0FBQywwQkFBMEIsa0JBQWtCLENBQUMsNkJBQTZCLGdCQUFnQixDQUFDLGtCQUFrQixDQUFDLHVDQUF1QyxZQUFZLENBQUMsa0JBQWtCLENBQUMsMEJBQTBCLENBQUMsNkNBQTZDLGFBQWEsQ0FBQyxVQUFVLENBQUMsWUFBWSxDQUFDLHFCQUFxQixDQUFDLGVBQWUsQ0FBQyx1REFBdUQsZUFBZSxDQUFDLGNBQWMsQ0FBQyx1REFBdUQsU0FBUyxDQUFDLHVEQUF1RCxZQUFZLENBQUMsNERBQTRELFlBQVksQ0FBQyxnREFBZ0QsZ0JBQWdCLENBQUMsZUFBZSxDQUFDLCtDQUErQyxxQkFBcUIsQ0FBQyxrQkFBa0IsQ0FBQywwREFBMEQsZUFBZSxDQUFDLCtDQUErQyxpQkFBaUIsQ0FBQyxjQUFjLENBQUMsVUFBVSxDQUFDLGVBQWUsQ0FBQyxvQkFBb0IsQ0FBQyx1REFBdUQsVUFBVSxDQUFDLG9CQUFvQixDQUFDLGlCQUFpQixDQUFDLE1BQU0sQ0FBQyxXQUFXLENBQUMsaUJBQWlCLENBQUMsVUFBVSxDQUFDLGtEQUFrRCxDQUFDLE9BQU8sQ0FBQyxvQkFBb0IsQ0FBQyxzREFBc0QsZUFBZSxDQUFDLHdCQUF3QixDQUFDLGdCQUFnQixDQUFDLGdCQUFnQixDQUFDLG9CQUFvQixDQUFDLGlCQUFpQixDQUFDLG1EQUFtRCxDQUFDLDRCQUFvQixDQUFwQixvQkFBb0IsQ0FBQyxtQ0FBbUMsQ0FBQyxPQUFPLENBQUMsNkJBQTZCLENBQUMsU0FBUyxDQUFDLHFDQUFxQyxDQUFDLDZEQUE2RCxVQUFVLENBQUMsNERBQTRELDRCQUE0QixDQUFDLFNBQVMsQ0FBQywwREFBMEQsZUFBZSxDQUFDLHlCQUF5QixVQUFVLENBQUMsaUJBQWlCLENBQUMsMkJBQTJCLENBQUMsMkJBQTJCLFFBQVEsQ0FBQyxnQkFBZ0IsQ0FBQyxlQUFlLENBQUMsMEJBQTBCLGdEQUFnRCxhQUFhLENBQUMsa0JBQWtCLENBQUMsQ0FBQywwQkFBMEIsdUNBQXVDLHFCQUFxQixDQUFDLGdEQUFnRCxrQkFBa0IsQ0FBQyxjQUFjLENBQUMsbURBQW1ELGVBQWUsQ0FBQyw4REFBOEQsVUFBVSxDQUFDLHVFQUF1RSxjQUFjLENBQUMsNkRBQTZELFVBQVUsQ0FBQyxzRUFBc0UsY0FBYyxDQUFDLHdCQUF3QixxQkFBcUIsQ0FBQyxzQkFBc0IsQ0FBQyx5Q0FBeUMsZUFBZSxDQUFDLENBQUMsMEJBQTBCLDBCQUEwQixlQUFlLENBQUMsNkJBQTZCLFlBQVksQ0FBQyx1Q0FBdUMsY0FBYyxDQUFDLDZDQUE2QyxhQUFhLENBQUMsWUFBWSxDQUFDLGtCQUFrQixDQUFDLENBQUMsMEJBQTBCLHNEQUFzRCxjQUFjLENBQUMsaUJBQWlCLGlCQUFpQixDQUFDLGtCQUFrQixDQUFDLGlCQUFpQixDQUFDLG9CQUFvQixDQUFDLDZCQUE2QixjQUFjLENBQUMscUZBQXFGLGlCQUFpQixDQUFDLGdDQUFnQyxnQkFBZ0IsQ0FBQyxnQ0FBZ0MsZ0JBQWdCLENBQUMsZ0NBQWdDLGNBQWMsQ0FBQyx3QkFBd0IsZUFBZSxDQUFDLDJCQUEyQixjQUFjLENBQUMsNkJBQTZCLGdCQUFnQixDQUFDLGdEQUFnRCxnQkFBZ0IsQ0FBQywyQkFBMkIsaUJBQWlCLENBQUMsQ0FBQywwQkFBMEIsdUNBQXVDLHFCQUFxQixDQUFDLDZDQUE2QyxjQUFjLENBQUMsZUFBZSxDQUFDLENBQUMsU0FBUyxhQUFhLENBQUMsaUJBQWlCLENBQUMsV0FBVyxDQUFDLGFBQWEsQ0FBQyxTQUFTLENBQUMsaUJBQWlCLGlCQUFpQixDQUFDLFdBQVcsQ0FBQyx1QkFBdUIsZUFBZSxDQUFDLGFBQWEsQ0FBQyx3QkFBd0IsQ0FBQyxpQkFBaUIsQ0FBQyxVQUFVLENBQUMsWUFBWSxDQUFDLGFBQWEsQ0FBQyxnQkFBZ0IsQ0FBQyx1QkFBdUIscUNBQXFDLENBQUMsZUFBZSxDQUFDLGdCQUFnQixDQUFDLGtCQUFrQixDQUFDLGlCQUFpQixDQUFDLHdCQUF3QixDQUFDLGdDQUFnQyxDQUFDLFVBQVUsQ0FBQyxVQUFVLENBQUMsc0NBQXNDLENBQUMsdUJBQXVCLENBQUMseUNBQXlDLENBQUMsNkJBQTZCLFlBQVksQ0FBQyxvQkFBb0IsQ0FBQywyQ0FBMkMsQ0FBQyxpQkFBaUIsQ0FBQyx5Q0FBb0MsNEJBQTRCLENBQUMsa0JBQWtCLENBQW5GLG9DQUFvQyw0QkFBNEIsQ0FBQyxrQkFBa0IsQ0FBQyxnQ0FBZ0MsWUFBWSxDQUFDLFVBQVUsQ0FBQyxtQkFBbUIsQ0FBQyw4QkFBOEIsYUFBYSxDQUFDLGtDQUFrQyxDQUFDLFVBQVUsQ0FBQyxXQUFXLENBQUMsZ0RBQWdELGFBQWEsQ0FBQyxpQkFBaUIsQ0FBQyxpQkFBaUIsQ0FBQyxnQ0FBZ0MsQ0FBQyxVQUFVLENBQUMsVUFBVSxDQUFDLGtCQUFrQixDQUFDLHNCQUFzQixDQUFDLDZHQUE2RyxVQUFVLENBQUMsYUFBYSxDQUFDLGlCQUFpQixDQUFDLFVBQVUsQ0FBQyxVQUFVLENBQUMsaUJBQWlCLENBQUMsZ0NBQWdDLENBQUMsc0JBQXNCLENBQUMsa0JBQWtCLENBQUMsdURBQXVELFFBQVEsQ0FBQyxzREFBc0QsT0FBTyxDQUFDLHNEQUFzRCxlQUFlLENBQUMseUhBQXlILGVBQWUsQ0FBQyxxREFBcUQsa0JBQWtCLENBQUMsdUJBQXVCLENBQUMsNERBQTRELHlCQUF5QixDQUFDLEtBQUssQ0FBQywyREFBMkQsd0JBQXdCLENBQUMsS0FBSyxDQUFDLG1CQUFtQixlQUFlLENBQUMsbUJBQW1CLENBQUMsa0JBQWtCLENBQUMsc0JBQXNCLGVBQWUsQ0FBQyxtQkFBbUIsQ0FBQyw2QkFBNkIsQ0FBQyxzQkFBc0IsZ0JBQWdCLENBQUMsaUJBQWlCLENBQUMsNkJBQTZCLFVBQVUsQ0FBQyxTQUFTLENBQUMsVUFBVSxDQUFDLFNBQVMsQ0FBQyxTQUFTLENBQUMsYUFBYSxDQUFDLGlCQUFpQixDQUFDLGtCQUFrQixDQUFDLHlCQUF5QixrQkFBa0IsQ0FBQyxtQ0FBbUMsUUFBUSxDQUFDLDhCQUE4QixpQkFBaUIsQ0FBQyxpQkFBaUIsQ0FBQyxvQ0FBb0Msa0JBQWtCLENBQUMsK0JBQStCLGFBQWEsQ0FBQyxxQ0FBcUMsYUFBYSxDQUFDLDhDQUE4QyxrQkFBa0IsQ0FBQyx5R0FBeUcsa0JBQWtCLENBQUMsZ0NBQWdDLDZCQUE2QixDQUFDLHFCQUFxQixvQkFBb0IsQ0FBQyxlQUFlLENBQUMsb0JBQW9CLENBQUMsbUNBQW1DLGFBQWEsQ0FBQyxnQkFBZ0IsQ0FBQyx5Q0FBeUMsVUFBVSxDQUFDLCtCQUErQixhQUFhLENBQUMscUNBQXFDLGFBQWEsQ0FBQyw2QkFBNkIsUUFBUSxDQUFDLGVBQWUsQ0FBQyxrQ0FBa0MsV0FBVyxDQUFDLG9DQUFvQyxhQUFhLENBQUMsY0FBYyxDQUFDLGlCQUFpQixDQUFDLFNBQVMsQ0FBQyxZQUFZLENBQUMsYUFBYSxDQUFDLGtCQUFrQixDQUFDLGlCQUFpQixDQUFDLHFGQUFxRixVQUFVLENBQUMsaUJBQWlCLENBQUMsYUFBYSxDQUFDLGtCQUFrQixDQUFDLGtCQUFrQixDQUFDLDJDQUEyQyxPQUFPLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxTQUFTLENBQUMsMENBQTBDLE9BQU8sQ0FBQyxRQUFRLENBQUMsVUFBVSxDQUFDLFVBQVUsQ0FBQywwQ0FBMEMsa0JBQWtCLENBQUMsaUdBQWlHLGtCQUFrQixDQUFDLGdEQUFnRCx1QkFBdUIsQ0FBQywrQ0FBK0Msd0JBQXdCLENBQUMsc0JBQXNCLHFCQUFxQixDQUFDLDJCQUEyQixDQUFDLGVBQWUsQ0FBQyx3QkFBd0IsQ0FBQyxnQkFBZ0IsQ0FBQyxxQkFBcUIsQ0FBQyxzRUFBc0UsZUFBZSxDQUFDLHdCQUF3QixDQUFDLGlCQUFpQixDQUFDLGNBQWMsQ0FBQyxVQUFVLENBQUMsa0JBQWtCLENBQUMsOEJBQThCLGlCQUFpQixDQUFDLFlBQVksQ0FBQyw0QkFBNEIsQ0FBQywrQkFBK0IsQ0FBQyxvQ0FBb0MsQ0FBQyxpQkFBaUIsQ0FBQyxvQkFBb0IsQ0FBQywyQ0FBMkMsQ0FBQyxlQUFlLENBQUMscUNBQXFDLGFBQWEsQ0FBQyxpQkFBaUIsQ0FBQyxvQkFBb0IsQ0FBQyxnQkFBZ0IsQ0FBQyxxQkFBcUIsQ0FBQyxnQkFBZ0IsQ0FBQyxPQUFPLENBQUMsV0FBVyxDQUFDLFVBQVUsQ0FBQyxrQkFBa0IsQ0FBQyx1QkFBdUIsQ0FBQyxpQ0FBaUMsbUJBQW1CLENBQUMsYUFBYSxDQUFDLGdCQUFnQixDQUFDLGdDQUFnQyxRQUFRLENBQUMsYUFBYSxDQUFDLGdCQUFnQixDQUFDLGtCQUFrQixDQUFDLGtCQUFrQixDQUFDLGlCQUFpQixDQUFDLG9DQUFvQyxpQ0FBaUMsQ0FBQywwQkFBMEIsU0FBUyxVQUFVLENBQUMsbUJBQW1CLFFBQVEsQ0FBQyxlQUFlLENBQUMsUUFBUSxDQUFDLHdCQUF3QixXQUFXLENBQUMsYUFBYSxDQUFDLGtCQUFrQixDQUFDLENBQUMsMEJBQTBCLDhCQUE4QixZQUFZLENBQUMsQ0FBQyxrREFBa0QsU0FBUyxTQUFTLENBQUMsQ0FBQyxnQkFBZ0IsaUJBQWlCLENBQUMsYUFBYSxDQUFDLFdBQVcsQ0FBQyxXQUFXLENBQUMsV0FBVyxDQUFDLHNCQUFzQixjQUFjLENBQUMseURBQXlELGNBQWMsQ0FBQyx3QkFBd0IsYUFBYSxDQUFDLDZDQUE2QyxhQUFhLENBQUMsaUJBQWlCLENBQUMsVUFBVSxDQUFDLFdBQVcsQ0FBQyx1QkFBdUIsU0FBUyxDQUFDLHNCQUFzQixZQUFZLENBQUMseUJBQXlCLENBQUMsa0JBQWtCLHdCQUF3QixDQUFDLDJCQUEyQixDQUFDLG9CQUFvQixDQUFDLGdCQUFnQixxQkFBcUIsQ0FBQyxVQUFVLENBQUMsa0JBQWtCLGNBQWMsQ0FBQyxpQ0FBaUMsWUFBWSxDQUFDLE1BQU0sQ0FBQyx3QkFBd0IsQ0FBQyx5QkFBeUIsQ0FBQywrRUFBK0Usb1NBQW9TLENBQUMsTUFBTSxDQUFDLHdDQUF3Qyx5QkFBeUIsQ0FBQyx1Q0FBdUMsd0JBQXdCLENBQUMseUJBQXlCLE9BQU8sQ0FBQyx3QkFBd0IsQ0FBQyx5QkFBeUIsQ0FBQywrREFBK0Qsc1NBQXNTLENBQUMsT0FBTyxDQUFDLDBCQUEwQixnQkFBZ0IsWUFBWSxDQUFDLENBQUMsaUJBQWlCLFdBQVcsQ0FBQyxTQUFTLENBQUMsaUJBQWlCLENBQUMseUJBQXlCLENBQUMsZUFBZSxDQUFDLFNBQVMsQ0FBQyw0QkFBNEIsOEJBQThCLENBQUMsZ0JBQWdCLENBQUMsZUFBZSxDQUFDLDJCQUEyQixDQUFDLDBCQUEwQixpQkFBaUIsVUFBVSxDQUFDLENBQUMsa0RBQWtELGlCQUFpQixTQUFTLENBQUMsQ0FBQyxTQUFTLGtCQUFrQixDQUFDLHlCQUF5QixDQUFDLHNCQUFzQixDQUFDLGtCQUFrQixlQUFlLENBQUMsZ0JBQWdCLENBQUMsOEhBQThILFVBQVUsQ0FBQywwSUFBMEksd0JBQXdCLENBQUMsOEJBQThCLENBQUMsb0JBQW9CLENBQUMsNE1BQTRNLFdBQVcsQ0FBQyxvTEFBb0wsZ0JBQWdCLENBQUMsNkhBQTZILGdCQUFnQixDQUFDLHdNQUF3TSxZQUFZLENBQUMsMkpBQTJKLHFDQUFxQyxDQUFDLHVJQUF1SSxhQUFhLENBQUMsNElBQTRJLGFBQWEsQ0FBQyx3TUFBd00sZUFBZSxDQUFDLHdCQUF3QixDQUFDLGlCQUFpQixDQUFDLGFBQWEsQ0FBQyxjQUFjLENBQUMsa0JBQWtCLENBQUMsa0JBQWtCLENBQUMsOExBQThMLHNCQUFzQixDQUFDLGtCQUFrQixDQUFDLGlCQUFpQixDQUFDLFVBQVUsQ0FBQyxpQ0FBaUMsQ0FBQyxlQUFlLENBQUMsaUJBQWlCLENBQUMsZUFBZSxDQUFDLGlCQUFpQixDQUFDLG9CQUFvQixDQUFDLHFCQUFxQixDQUFDLG9WQUFvVixrQkFBa0IsQ0FBQyxVQUFVLENBQUMsZUFBZSxDQUFDLGVBQWUsQ0FBQyxrQkFBa0IsQ0FBQywwS0FBMEssa0JBQWtCLENBQUMsMEtBQTBLLGtCQUFrQixDQUFDLGVBQWUsQ0FBQyxxQkFBcUIsZ0JBQWdCLENBQUMsaUJBQWlCLENBQUMsa0JBQWtCLENBQUMscUJBQXFCLGdCQUFnQixDQUFDLHNCQUFzQixDQUFDLG1CQUFtQixDQUFDLGVBQWUsQ0FBQyxhQUFhLENBQUMscUJBQXFCLGlCQUFpQixDQUFDLGVBQWUsQ0FBQyxvQkFBb0IsQ0FBQyxtQkFBbUIsQ0FBQyxxQkFBcUIsaUJBQWlCLENBQUMsaUJBQWlCLENBQUMsZUFBZSxDQUFDLHVCQUF1QixDQUFDLG1CQUFtQixDQUFDLGFBQWEsQ0FBQyxxQkFBcUIsZ0JBQWdCLENBQUMsd0JBQXdCLENBQUMsbUJBQW1CLENBQUMscUJBQXFCLGdCQUFnQixDQUFDLGlCQUFpQixDQUFDLHdCQUF3QixDQUFDLG1CQUFtQixDQUFDLHlDQUF5QyxhQUFhLENBQUMsa0JBQWtCLENBQUMsb0JBQW9CLGdCQUFnQixDQUFDLG9CQUFvQixhQUFhLENBQUMsZUFBZSxDQUFDLG9CQUFvQixDQUFDLDBCQUEwQixVQUFVLENBQUMsOEJBQThCLG9CQUFvQixDQUFDLFVBQVUsQ0FBQyxXQUFXLENBQUMsaUJBQWlCLENBQUMsa0JBQWtCLENBQUMseUJBQXlCLGFBQWEsQ0FBQyxzQkFBc0IsY0FBYyxDQUFDLGtCQUFrQixDQUFDLGlCQUFpQixDQUFDLCtCQUErQixDQUFDLDJCQUEyQixpQkFBaUIsQ0FBQyxxQkFBcUIsb0JBQW9CLENBQUMsb0JBQW9CLENBQUMsa0JBQWtCLENBQUMsd0JBQXdCLENBQUMseUJBQXlCLGVBQWUsQ0FBQyxjQUFjLENBQUMsbUJBQW1CLENBQUMsbUJBQW1CLENBQUMsZ0JBQWdCLENBQUMsa0JBQWtCLENBQUMsNkJBQTZCLGFBQWEsQ0FBQyx3QkFBd0IsQ0FBQyw2QkFBNkIsYUFBYSxDQUFDLHdCQUF3QixDQUFDLHNDQUFzQyxhQUFhLENBQUMscUNBQXFDLENBQUMsc0RBQXNELCtCQUErQixDQUFDLGtCQUFrQixDQUFDLHNCQUFzQixDQUFDLGtCQUFrQixDQUFDLHlCQUF5QixDQUFDLGlCQUFpQixDQUFDLG9LQUFvSyxxQkFBcUIsQ0FBQyxvYUFBb2EsWUFBWSxDQUFDLGtCQUFrQixDQUFDLG9aQUFvWixpQkFBaUIsQ0FBQyx3ZUFBd2UsaUJBQWlCLENBQUMseUJBQXlCLENBQUMsYUFBYSxDQUFDLGVBQWUsQ0FBQyxhQUFhLENBQUMsaUJBQWlCLENBQUMsVUFBVSxDQUFDLFlBQVksQ0FBQyxhQUFhLENBQUMsaUJBQWlCLENBQUMsdUNBQXVDLENBQUMscXRCQUFxdEIsa0JBQWtCLENBQUMsNkJBQTZCLDhCQUE4QixDQUFDLG1DQUFtQyxDQUFDLCtEQUErRCxpQkFBaUIsQ0FBQyxpQkFBaUIsQ0FBQywyQkFBMkIsQ0FBQywwQ0FBMEMsZUFBZSxDQUFDLG1DQUFtQyxhQUFhLENBQUMsZ0JBQWdCLENBQUMsaUJBQWlCLENBQUMsZ0JBQWdCLENBQUMsVUFBVSxDQUFDLDhCQUE4QixvQkFBb0IsQ0FBQyxhQUFhLENBQUMsZUFBZSxDQUFDLGlCQUFpQixDQUFDLDBCQUEwQixzREFBc0QscUNBQXFDLENBQUMsbUJBQW1CLENBQUMsQ0FBQywrQkFBK0IsV0FBVyxDQUFDLFVBQVUsQ0FBQyxrQkFBa0IsQ0FBQyx3QkFBd0Isb0JBQW9CLENBQUMsOEJBQThCLENBQUMsa0tBQWtLLFVBQVUsQ0FBQyw4S0FBOEssd0JBQXdCLENBQUMsa05BQWtOLHdCQUF3QixDQUFDLHFEQUFxRCxhQUFhLENBQUMsK0JBQStCLFVBQVUsQ0FBQywwQkFBMEIsVUFBVSxDQUFDLHFDQUFxQyxxRUFBcUUsQ0FBQyxnQ0FBZ0MsYUFBYSxDQUFDLDJDQUEyQyx3REFBd0QsQ0FBQyxxQ0FBcUMsYUFBYSxDQUFDLHlEQUF5RCxhQUFhLENBQUMsa0JBQWtCLENBQUMsNEJBQTRCLCtCQUErQixDQUFDLDhCQUE4QixhQUFhLENBQUMsK0JBQStCLENBQUMsb0NBQW9DLGtEQUFrRCxDQUFDLG9EQUFvRCxrQkFBa0IsQ0FBQyxtQ0FBbUMsbUNBQW1DLENBQUMscUNBQXFDLDJCQUEyQixDQUFDLHdEQUF3RCxzQkFBc0IsQ0FBQywyQkFBMkIsQ0FBQyw4REFBOEQsYUFBYSxDQUFDLGtFQUFrRSxhQUFhLENBQUMsa0JBQWtCLENBQUMsMkRBQTJELDJDQUEyQyxDQUFDLCtDQUErQyxnQ0FBZ0MsQ0FBQyxVQUFVLENBQUMsV0FBVyxDQUFDLHFEQUFxRCx3QkFBd0IsQ0FBQyx5QkFBeUIsQ0FBQyxxREFBcUQsd0JBQXdCLENBQUMsd0JBQXdCLENBQUMsaUJBQWlCLENBQUMsaURBQWlELGlDQUFpQyxDQUFDLFVBQVUsQ0FBQyxXQUFXLENBQUMsdURBQXVELHdCQUF3QixDQUFDLHlCQUF5QixDQUFDLHVEQUF1RCx3QkFBd0IsQ0FBQyx3QkFBd0IsQ0FBQyxpQkFBaUIsQ0FBQyxtQ0FBbUMsYUFBYSxDQUFDLDBPQUEwTyxhQUFhLENBQUMsZ1JBQWdSLGFBQWEsQ0FBQyx1Q0FBdUMsd0JBQXdCLENBQUMsZ1JBQWdSLGFBQWEsQ0FBQyxxdUJBQXF1QixhQUFhLENBQUMsZ1dBQWdXLGFBQWEsQ0FBQyxtZEFBbWQsYUFBYSxDQUFDLDZFQUE2RSxhQUFhLENBQUMsdUNBQXVDLFVBQVUsQ0FBQyxnSEFBZ0gsYUFBYSxDQUFDLHdEQUF3RCxhQUFhLENBQUMsdUJBQXVCLG9CQUFvQixDQUFDLDhCQUE4QixDQUFDLDhCQUE4QixXQUFXLENBQUMsVUFBVSxDQUFDLGtCQUFrQixDQUFDLDRKQUE0SixVQUFVLENBQUMsd0tBQXdLLHdCQUF3QixDQUFDLDRNQUE0TSx3QkFBd0IsQ0FBQyxtREFBbUQsYUFBYSxDQUFDLDhCQUE4QixVQUFVLENBQUMseUJBQXlCLGFBQWEsQ0FBQyxvQ0FBb0MsdUVBQXVFLENBQUMsK0JBQStCLFVBQVUsQ0FBQywwQ0FBMEMscURBQXFELENBQUMsb0NBQW9DLGFBQWEsQ0FBQyx1REFBdUQsYUFBYSxDQUFDLGtCQUFrQixDQUFDLDJCQUEyQiwrQkFBK0IsQ0FBQyw2QkFBNkIsYUFBYSxDQUFDLCtCQUErQixDQUFDLG1DQUFtQyxrREFBa0QsQ0FBQyxtREFBbUQsa0JBQWtCLENBQUMsa0NBQWtDLGtDQUFrQyxDQUFDLG9DQUFvQywwQkFBMEIsQ0FBQyx1REFBdUQsc0JBQXNCLENBQUMsMEJBQTBCLENBQUMsNkRBQTZELGFBQWEsQ0FBQyxpRUFBaUUsYUFBYSxDQUFDLGtCQUFrQixDQUFDLDRCQUE0QixpQkFBaUIsQ0FBQyxZQUFZLENBQUMsNENBQTRDLGlCQUFpQixDQUFDLHNCQUFzQixDQUFDLHlEQUF5RCwwQ0FBMEMsQ0FBQyw4Q0FBOEMsZ0NBQWdDLENBQUMsVUFBVSxDQUFDLFdBQVcsQ0FBQyxvREFBb0Qsd0JBQXdCLENBQUMseUJBQXlCLENBQUMsb0RBQW9ELHdCQUF3QixDQUFDLHdCQUF3QixDQUFDLGlCQUFpQixDQUFDLGdEQUFnRCxpQ0FBaUMsQ0FBQyxVQUFVLENBQUMsV0FBVyxDQUFDLHNEQUFzRCx3QkFBd0IsQ0FBQyx5QkFBeUIsQ0FBQyxzREFBc0Qsd0JBQXdCLENBQUMsd0JBQXdCLENBQUMsaUJBQWlCLENBQUMsa0NBQWtDLGFBQWEsQ0FBQyxvT0FBb08sYUFBYSxDQUFDLHlRQUF5USxhQUFhLENBQUMsc0NBQXNDLHdCQUF3QixDQUFDLHlRQUF5USxhQUFhLENBQUMsa3RCQUFrdEIsYUFBYSxDQUFDLHVWQUF1VixhQUFhLENBQUMsdWNBQXVjLGFBQWEsQ0FBQywyRUFBMkUsYUFBYSxDQUFDLHNDQUFzQyxVQUFVLENBQUMsOEdBQThHLGFBQWEsQ0FBQyx1REFBdUQsYUFBYSxDQUFDLDZCQUE2QixvQkFBb0IsQ0FBQyxpQ0FBaUMsQ0FBQyxvQ0FBb0MsV0FBVyxDQUFDLFVBQVUsQ0FBQyxrQkFBa0IsQ0FBQyxnTUFBZ00sVUFBVSxDQUFDLDRNQUE0TSx3QkFBd0IsQ0FBQyxnUEFBZ1Asd0JBQXdCLENBQUMsK0RBQStELGFBQWEsQ0FBQyxvQ0FBb0MsVUFBVSxDQUFDLCtCQUErQixhQUFhLENBQUMsMENBQTBDLHVFQUF1RSxDQUFDLHFDQUFxQyxVQUFVLENBQUMsZ0RBQWdELHFEQUFxRCxDQUFDLDBDQUEwQyxhQUFhLENBQUMsbUVBQW1FLGFBQWEsQ0FBQyxrQkFBa0IsQ0FBQyxpQ0FBaUMsK0JBQStCLENBQUMsbUNBQW1DLGFBQWEsQ0FBQywrQkFBK0IsQ0FBQyx5Q0FBeUMsa0RBQWtELENBQUMseURBQXlELGtCQUFrQixDQUFDLHdDQUF3QyxtQ0FBbUMsQ0FBQywwQ0FBMEMsMkJBQTJCLENBQUMsNkRBQTZELHNCQUFzQixDQUFDLDJCQUEyQixDQUFDLG1FQUFtRSxhQUFhLENBQUMsdUVBQXVFLGFBQWEsQ0FBQyxrQkFBa0IsQ0FBQyxxRUFBcUUsNkNBQTZDLENBQUMsb0RBQW9ELGdDQUFnQyxDQUFDLFVBQVUsQ0FBQyxXQUFXLENBQUMsMERBQTBELHdCQUF3QixDQUFDLHlCQUF5QixDQUFDLDBEQUEwRCx3QkFBd0IsQ0FBQyx3QkFBd0IsQ0FBQyxpQkFBaUIsQ0FBQyxzREFBc0QsaUNBQWlDLENBQUMsVUFBVSxDQUFDLFdBQVcsQ0FBQyw0REFBNEQsd0JBQXdCLENBQUMseUJBQXlCLENBQUMsNERBQTRELHdCQUF3QixDQUFDLHdCQUF3QixDQUFDLGlCQUFpQixDQUFDLHdDQUF3QyxhQUFhLENBQUMsd1FBQXdRLGFBQWEsQ0FBQyxtVEFBbVQsYUFBYSxDQUFDLDRDQUE0Qyx3QkFBd0IsQ0FBQyxtVEFBbVQsYUFBYSxDQUFDLG8wQkFBbzBCLGFBQWEsQ0FBQyw2WUFBNlksYUFBYSxDQUFDLCtnQkFBK2dCLGFBQWEsQ0FBQyx1RkFBdUYsYUFBYSxDQUFDLDRDQUE0QyxVQUFVLENBQUMsMEhBQTBILGFBQWEsQ0FBQyw2REFBNkQsYUFBYSxDQUFDLG1EQUFtRCxvQkFBb0IsQ0FBQyxvQ0FBb0MsQ0FBQyxpRUFBaUUsV0FBVyxDQUFDLFVBQVUsQ0FBQyxrQkFBa0IsQ0FBQyxzVkFBc1YsVUFBVSxDQUFDLDhXQUE4Vyx3QkFBd0IsQ0FBQyxzYkFBc2Isd0JBQXdCLENBQUMsZ0hBQWdILGFBQWEsQ0FBQyxpRUFBaUUsVUFBVSxDQUFDLHVEQUF1RCx3QkFBd0IsQ0FBQyw2RUFBNkUsdUVBQXVFLENBQUMsbUVBQW1FLHFCQUFxQixDQUFDLHlGQUF5RixxREFBcUQsQ0FBQyw2RUFBNkUsYUFBYSxDQUFDLHdIQUF3SCxhQUFhLENBQUMsa0JBQWtCLENBQUMsMkRBQTJELCtCQUErQixDQUFDLCtEQUErRCxhQUFhLENBQUMsK0JBQStCLENBQUMsMkVBQTJFLGtEQUFrRCxDQUFDLDJHQUEyRyxrQkFBa0IsQ0FBQyx5RUFBeUUsbUNBQW1DLENBQUMsNkVBQTZFLDJCQUEyQixDQUFDLG1IQUFtSCxzQkFBc0IsQ0FBQywyQkFBMkIsQ0FBQywrSEFBK0gsYUFBYSxDQUFDLHVJQUF1SSxhQUFhLENBQUMsa0JBQWtCLENBQUMsNEhBQTRILDZDQUE2QyxDQUFDLGlHQUFpRyxnQ0FBZ0MsQ0FBQyxVQUFVLENBQUMsV0FBVyxDQUFDLDZHQUE2Ryx3QkFBd0IsQ0FBQyx5QkFBeUIsQ0FBQyw2R0FBNkcsd0JBQXdCLENBQUMsd0JBQXdCLENBQUMsaUJBQWlCLENBQUMscUdBQXFHLGlDQUFpQyxDQUFDLFVBQVUsQ0FBQyxXQUFXLENBQUMsaUhBQWlILHdCQUF3QixDQUFDLHlCQUF5QixDQUFDLGlIQUFpSCx3QkFBd0IsQ0FBQyx3QkFBd0IsQ0FBQyxpQkFBaUIsQ0FBQyx5RUFBeUUsYUFBYSxDQUFDLHNlQUFzZSxhQUFhLENBQUMscWpCQUFxakIsYUFBYSxDQUFDLGlGQUFpRix3QkFBd0IsQ0FBQyxxakJBQXFqQixhQUFhLENBQUMsbWdEQUFtZ0QsYUFBYSxDQUFDLDJ0QkFBMnRCLGFBQWEsQ0FBQywwOEJBQTA4QixhQUFhLENBQUMsZ0tBQWdLLGFBQWEsQ0FBQyxpRkFBaUYsVUFBVSxDQUFDLHNPQUFzTyxhQUFhLENBQUMsbUhBQW1ILGFBQWEsQ0FBQywyQkFBMkIsb0JBQW9CLENBQUMsK0JBQStCLENBQUMsa0NBQWtDLFdBQVcsQ0FBQyxVQUFVLENBQUMsa0JBQWtCLENBQUMsb0xBQW9MLFVBQVUsQ0FBQyxnTUFBZ00sd0JBQXdCLENBQUMsb09BQW9PLHdCQUF3QixDQUFDLDJEQUEyRCxhQUFhLENBQUMsa0NBQWtDLFVBQVUsQ0FBQyw2QkFBNkIsd0JBQXdCLENBQUMsd0NBQXdDLHVFQUF1RSxDQUFDLG1DQUFtQyxxQkFBcUIsQ0FBQyw4Q0FBOEMscURBQXFELENBQUMsd0NBQXdDLGFBQWEsQ0FBQywrREFBK0QsYUFBYSxDQUFDLGtCQUFrQixDQUFDLCtCQUErQiwrQkFBK0IsQ0FBQyxpQ0FBaUMsYUFBYSxDQUFDLCtCQUErQixDQUFDLHVDQUF1QyxrREFBa0QsQ0FBQyx1REFBdUQsa0JBQWtCLENBQUMsc0NBQXNDLG1DQUFtQyxDQUFDLHdDQUF3QywyQkFBMkIsQ0FBQywyREFBMkQsc0JBQXNCLENBQUMsMkJBQTJCLENBQUMsaUVBQWlFLGFBQWEsQ0FBQyxxRUFBcUUsYUFBYSxDQUFDLGtCQUFrQixDQUFDLGlFQUFpRSwyQ0FBMkMsQ0FBQyxrREFBa0QsZ0NBQWdDLENBQUMsVUFBVSxDQUFDLFdBQVcsQ0FBQyx3REFBd0Qsd0JBQXdCLENBQUMseUJBQXlCLENBQUMsd0RBQXdELHdCQUF3QixDQUFDLHdCQUF3QixDQUFDLGlCQUFpQixDQUFDLG9EQUFvRCxpQ0FBaUMsQ0FBQyxVQUFVLENBQUMsV0FBVyxDQUFDLDBEQUEwRCx3QkFBd0IsQ0FBQyx5QkFBeUIsQ0FBQywwREFBMEQsd0JBQXdCLENBQUMsd0JBQXdCLENBQUMsaUJBQWlCLENBQUMsc0NBQXNDLGFBQWEsQ0FBQyw0UEFBNFAsYUFBYSxDQUFDLHFTQUFxUyxhQUFhLENBQUMsMENBQTBDLHdCQUF3QixDQUFDLHFTQUFxUyxhQUFhLENBQUMsOHhCQUE4eEIsYUFBYSxDQUFDLDJYQUEyWCxhQUFhLENBQUMsdWZBQXVmLGFBQWEsQ0FBQyxtRkFBbUYsYUFBYSxDQUFDLDBDQUEwQyxVQUFVLENBQUMsc0hBQXNILGFBQWEsQ0FBQywyREFBMkQsYUFBYSxDQUFDLHVDQUF1QyxrREFBa0QsQ0FBQyxXQUFXLENBQUMsV0FBVyxDQUFDLDZCQUE2QixDQUFDLHNEQUFzRCxrQkFBa0IsQ0FBQyxrQkFBa0IsQ0FBQywrRUFBK0UsQ0FBQyx5REFBeUQsVUFBVSxDQUFDLHdEQUF3RCxrQkFBa0IsQ0FBQywyREFBMkQsaUJBQWlCLENBQUMsa0RBQWtELENBQUMsaUVBQWlFLG1EQUFtRCxDQUFDLHNFQUFzRSxXQUFXLENBQUMscUJBQXFCLENBQUMsOERBQThELFdBQVcsQ0FBQyxTQUFTLENBQUMsZ0ZBQWdGLGdCQUFnQixDQUFDLGlFQUFpRSxnQkFBZ0IsQ0FBQyxtRkFBbUYsU0FBUyxDQUFDLDBCQUEwQixDQUFDLGVBQWUsQ0FBQyxxRkFBcUYsVUFBVSxDQUFDLGVBQWUsQ0FBQyxpQkFBaUIsQ0FBQyxvR0FBb0csZ0NBQWdDLENBQUMsb0JBQW9CLENBQUMsYUFBYSxDQUFDLGFBQWEsQ0FBQyxrQkFBa0IsQ0FBQyxxQkFBcUIsQ0FBQyxzR0FBc0csZUFBZSxDQUFDLFVBQVUsQ0FBQyxtQkFBbUIsQ0FBQyxnQkFBZ0IsQ0FBQyx3QkFBd0IsQ0FBQyxxQkFBcUIsQ0FBQyxrR0FBa0csOEJBQThCLENBQUMsb0JBQW9CLENBQUMsYUFBYSxDQUFDLFlBQVksQ0FBQyx1QkFBdUIsQ0FBQyxtQkFBbUIsQ0FBQyxtR0FBbUcsK0JBQStCLENBQUMsb0JBQW9CLENBQUMsYUFBYSxDQUFDLFlBQVksQ0FBQyxrQkFBa0IsQ0FBQyxxQkFBcUIsQ0FBQyw0RkFBNEYsZUFBZSxDQUFDLHdCQUF3QixDQUFDLGdCQUFnQixDQUFDLGdCQUFnQixDQUFDLG9CQUFvQixDQUFDLGlCQUFpQixDQUFDLGtEQUFrRCxDQUFDLDRCQUFvQixDQUFwQixvQkFBb0IsQ0FBQyxtQ0FBbUMsQ0FBQyxPQUFPLENBQUMsNkJBQTZCLENBQUMsU0FBUyxDQUFDLHFDQUFxQyxDQUFDLGtHQUFrRyw0QkFBNEIsQ0FBQyxTQUFTLENBQUMsd0JBQXdCLGlCQUFpQixDQUFDLG9CQUFvQixDQUFDLDJCQUEyQixDQUFDLHNCQUFzQixDQUFDLHFCQUFxQixDQUFDLGlCQUFpQixDQUFDLGlCQUFpQixDQUFDLFNBQVMsQ0FBQyxrREFBa0QsQ0FBQyw4QkFBOEIsVUFBVSxDQUFDLGlCQUFpQixDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxXQUFXLENBQUMsaUJBQWlCLENBQUMsa0RBQWtELENBQUMsU0FBUyxDQUFDLHNCQUFzQixDQUFDLFVBQVUsQ0FBQyw4QkFBOEIsY0FBYyxDQUFDLG9DQUFvQyxTQUFTLENBQUMsd0NBQXdDLGVBQWUsQ0FBQyx3QkFBd0IsQ0FBQyxrQkFBa0IsQ0FBQyxnQkFBZ0IsQ0FBQyxzQ0FBc0MsZUFBZSxDQUFDLHdCQUF3QixDQUFDLGtCQUFrQixDQUFDLGdCQUFnQixDQUFDLHFEQUFxRCxnQkFBZ0IsQ0FBQyxhQUFhLENBQUMsa0JBQWtCLENBQUMsb0JBQW9CLENBQUMsb0JBQW9CLENBQUMsOEJBQThCLGtCQUFrQixDQUFDLG1DQUFtQyxhQUFhLENBQUMsa0JBQWtCLENBQUMsOEJBQThCLHFCQUFxQixDQUFDLGdCQUFnQixDQUFDLFlBQVksQ0FBQywrQkFBK0Isb0JBQW9CLENBQUMsb0JBQW9CLENBQUMsZ0JBQWdCLENBQUMsaUJBQWlCLENBQUMsMkJBQTJCLENBQUMsa0JBQWtCLENBQUMseUJBQXlCLENBQUMsc0NBQXNDLGVBQWUsQ0FBQyxvQkFBb0IsQ0FBQyxtQkFBbUIsQ0FBQyx3QkFBd0IsQ0FBQyxpQkFBaUIsQ0FBQyxlQUFlLENBQUMscUNBQXFDLFVBQVUsQ0FBQyxrQ0FBa0Msa0JBQWtCLENBQUMsZ0RBQWdELG1CQUFtQixDQUFDLDJCQUEyQixxQkFBcUIsQ0FBQyxtQkFBbUIsQ0FBQyxnQkFBZ0IsQ0FBQyxpQkFBaUIsQ0FBQyw2QkFBNkIsbUJBQW1CLENBQUMsMkJBQTJCLENBQUMsZ0NBQWdDLGVBQWUsQ0FBQyx1SEFBdUgsU0FBUyxDQUFDLGtCQUFrQixDQUFDLFNBQVMsQ0FBQyxzSkFBc0osU0FBUyxDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUMsK0NBQStDLFlBQVksQ0FBQyxrTkFBa04saUJBQWlCLENBQUMsOFFBQThRLGVBQWUsQ0FBQyx3QkFBd0IsQ0FBQyw0QkFBNEIsQ0FBQyxxQkFBcUIsQ0FBQyxvQkFBb0IsQ0FBQyxpQkFBaUIsQ0FBQyxzU0FBc1MsYUFBYSxDQUFDLDRGQUE0RixZQUFZLENBQUMsc0NBQXNDLG1CQUFtQixDQUFDLDZDQUE2QyxrQkFBa0IsQ0FBQyxxQ0FBcUMsQ0FBQyxhQUFhLENBQUMsZ0ZBQWdGLHlCQUF5QixDQUFDLGlCQUFpQixDQUFDLGFBQWEsQ0FBQyxrQkFBa0IsQ0FBQyxjQUFjLENBQUMsaUJBQWlCLENBQUMsNEpBQTRKLDBCQUEwQixDQUFDLDZCQUE2QixDQUFDLDRCQUE0QixDQUFDLDhCQUE4QixDQUFDLHFDQUFxQyxDQUFDLHdCQUF3QixDQUFDLHlCQUF5QixrQkFBa0IsQ0FBQyxvQkFBb0IsQ0FBQyxpQkFBaUIsQ0FBQyxhQUFhLENBQUMsK0JBQStCLFVBQVUsQ0FBQyxpQkFBaUIsQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxrQkFBa0IsQ0FBQyw0QkFBNEIsQ0FBQyxxRUFBcUUsQ0FBQyxxQkFBcUIsQ0FBQywrQkFBK0IsVUFBVSxDQUFDLHFDQUFxQyxxREFBcUQsQ0FBQyxzQkFBc0IscUJBQXFCLENBQUMsK0JBQStCLENBQUMsaUJBQWlCLENBQUMsaUJBQWlCLENBQUMsaUJBQWlCLENBQUMsY0FBYyxDQUFDLDJCQUEyQixTQUFTLENBQUMsa0JBQWtCLENBQUMsZUFBZSxDQUFDLDJCQUEyQixtQkFBbUIsQ0FBQywyQkFBMkIsQ0FBQyxpQkFBaUIsQ0FBQyxVQUFVLENBQUMscUNBQXFDLENBQUMsZ0JBQWdCLENBQUMsY0FBYyxDQUFDLCtCQUErQixrQkFBa0IsQ0FBQyxnQ0FBZ0Msa0JBQWtCLENBQUMsaUNBQWlDLGtCQUFrQixDQUFDLGtDQUFrQyxrQkFBa0IsQ0FBQywrQkFBK0Isa0JBQWtCLENBQUMscUNBQXFDLGlCQUFpQixDQUFDLGFBQWEsQ0FBQyxvQkFBb0IsQ0FBQywyQ0FBMkMsZUFBZSxDQUFDLGlCQUFpQixDQUFDLGNBQWMsQ0FBQyxXQUFXLENBQUMsd0JBQXdCLENBQUMsVUFBVSxDQUFDLG9CQUFvQixDQUFDLGdCQUFnQixDQUFDLGFBQWEsQ0FBQyxTQUFTLENBQUMsc0JBQXNCLENBQUMsMkNBQTJDLFVBQVUsQ0FBQyxpREFBaUQsVUFBVSxDQUFDLHdFQUF3RSxnQkFBZ0IsQ0FBQyxlQUFlLENBQUMsb0ZBQW9GLGFBQWEsQ0FBQyx3RkFBd0YsYUFBYSxDQUFDLHNGQUFzRixhQUFhLENBQUMsNEtBQTRLLDRCQUE0QixDQUFDLDRDQUE0QyxjQUFjLENBQUMsaUJBQWlCLENBQUMsOERBQThELG9CQUFvQixDQUFDLGVBQWUsQ0FBQyxTQUFTLENBQUMsaUJBQWlCLENBQUMsYUFBYSxDQUFDLGtCQUFrQixDQUFDLGlCQUFpQixDQUFDLHdCQUF3QixDQUFDLG9CQUFvQixDQUFDLGNBQWMsQ0FBQywwRkFBMEYsaUJBQWlCLENBQUMsa0dBQWtHLGlCQUFpQixDQUFDLGNBQWMsQ0FBQyxzQkFBc0IsQ0FBQyxXQUFXLENBQUMsVUFBVSxDQUFDLG9FQUFvRSxhQUFhLENBQUMsd0dBQXdHLFNBQVMsQ0FBQyxnRUFBZ0UsaUJBQWlCLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxTQUFTLENBQUMsYUFBYSxDQUFDLHVGQUF1RixVQUFVLENBQUMsY0FBYyxDQUFDLHdCQUF3QixDQUFDLGlCQUFpQixDQUFDLHdCQUF3QixDQUFDLHdCQUF3QixDQUFDLGFBQWEsQ0FBQyxrQkFBa0IsQ0FBQyw2RkFBNkYsWUFBWSxDQUFDLGtDQUFrQyxDQUFDLDJDQUEyQyxDQUFDLGlCQUFpQixDQUFDLHNFQUFzRSxjQUFjLENBQUMsc0VBQXNFLGVBQWUsQ0FBQyxhQUFhLENBQUMsd0JBQXdCLENBQUMsYUFBYSxDQUFDLGlCQUFpQixDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUMsNkNBQTZDLHdCQUF3QixDQUFDLDRDQUE0QyxnQkFBZ0IsQ0FBQyxpQkFBaUIsQ0FBQyxnQkFBZ0IsQ0FBQyxzQkFBc0IsQ0FBQyxxQkFBcUIsQ0FBQyxvQkFBb0IsQ0FBQyxtQkFBbUIsQ0FBQyx1QkFBdUIsQ0FBQyxzQkFBc0IsQ0FBQyxrREFBa0Qsd0JBQXdCLENBQUMsMEJBQTBCLENBQUMsK0JBQStCLENBQUMsZ0RBQWdELHNCQUFzQixDQUFDLHdCQUF3QixDQUFDLDZCQUE2QixDQUFDLG1EQUFtRCx5QkFBeUIsQ0FBQywyQkFBMkIsQ0FBQyxnQ0FBZ0MsQ0FBQywwQkFBMEIsc0JBQXNCLDBCQUEwQixDQUFDLENBQUMsc0NBQXNDLDBCQUEwQixDQUFDLHNCQUFzQixDQUFDLGdDQUFnQyxjQUFRLENBQVIsU0FBUyxDQUFDLGdDQUFnQyxjQUFRLENBQVIsU0FBUyxDQUFDLGdDQUFnQyxjQUFRLENBQVIsU0FBUyxDQUFDLGdHQUFnRyxzQkFBc0IsQ0FBQywwSUFBMEksWUFBWSxDQUFDLHNDQUFzQyxnQ0FBZ0MsY0FBUSxDQUFSLFNBQVMsQ0FBQyxDQUFDLHNDQUFzQyxnRUFBZ0UsY0FBUSxDQUFSLFNBQVMsQ0FBQyxDQUFDLHNDQUFzQyxnR0FBZ0csY0FBUSxDQUFSLFNBQVMsQ0FBQyxDQUFDLDJCQUEyQixTQUFTLENBQUMsYUFBYSxDQUFDLGFBQWEsQ0FBQyxzQkFBc0IsQ0FBQyxxQ0FBcUMsQ0FBQyxzRkFBc0YsdUJBQXVCLENBQUMsc0ZBQXNGLHlCQUF5QixDQUFDLHdFQUF3RSx3QkFBd0IsQ0FBQyxxREFBcUQsd0JBQXdCLENBQUMsc0NBQXNDLHdCQUF3QixDQUFDLDZCQUE2QixDQUFDLGVBQWUsQ0FBQyxlQUFlLENBQUMsd0NBQXdDLDZCQUE2QixDQUFDLHNNQUFzTSx1QkFBdUIsQ0FBQyx5QkFBeUIsQ0FBQywyQkFBMkIsQ0FBQyw0Q0FBNEMsd0JBQXdCLENBQUMscU5BQXFOLHVCQUF1QixDQUFDLHNCQUFzQixDQUFDLGtEQUFrRCxTQUFTLENBQUMsa0NBQWtDLGtCQUFrQixDQUFDLDBFQUEwRSxpQkFBaUIsQ0FBQywwQkFBMEIsaUJBQWlCLENBQUMsNEJBQTRCLENBQUMsZ0JBQWdCLENBQUMsNEVBQTRFLCtCQUErQixDQUFDLGdDQUFnQyxZQUFZLENBQUMsa0JBQWtCLENBQUMsZ0JBQWdCLENBQUMsZUFBZSxDQUFDLG9CQUFvQixDQUFDLGNBQWMsQ0FBQyxxREFBcUQsa0JBQWtCLENBQUMsK0JBQStCLGFBQWEsQ0FBQyxpQkFBaUIsQ0FBQyxRQUFRLENBQUMsWUFBWSxDQUFDLGVBQWUsQ0FBQyxjQUFjLENBQUMsaUJBQWlCLENBQUMsYUFBYSxDQUFDLFVBQVUsQ0FBQyxzQkFBc0IsQ0FBQyxxQ0FBcUMsYUFBYSxDQUFDLFNBQVMsQ0FBQyxpQ0FBaUMsaUJBQWlCLENBQUMsb0JBQW9CLENBQUMsZUFBZSxDQUFDLGNBQWMsQ0FBQyxrQkFBa0IsQ0FBQyxpQkFBaUIsQ0FBQyxtQkFBbUIsQ0FBQywrQkFBK0IsQ0FBQywrRUFBK0UsVUFBVSxDQUFDLGFBQWEsQ0FBQyxVQUFVLENBQUMsVUFBVSxDQUFDLGlCQUFpQixDQUFDLGtCQUFrQixDQUFDLGtCQUFrQixDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsdUNBQXVDLHVCQUF1QixDQUFDLHlGQUF5Rix3QkFBd0IsQ0FBQyxrQ0FBa0MsZ0JBQWdCLENBQUMsNEJBQTRCLFlBQVksQ0FBQyw2QkFBNkIsQ0FBQyxXQUFXLENBQUMsaUJBQWlCLENBQUMsOEJBQThCLENBQUMsaUNBQWlDLENBQUMsK0JBQStCLFVBQVUsQ0FBQywyQkFBMkIsa0JBQWtCLENBQUMsOEJBQThCLHFCQUFxQixDQUFDLFNBQVMsQ0FBQyxlQUFlLENBQUMsZ0NBQWdDLFVBQVUsQ0FBQyxlQUFlLENBQUMsaUJBQWlCLENBQUMsdUNBQXVDLGVBQWUsQ0FBQyx3QkFBd0IsQ0FBQyxnQkFBZ0IsQ0FBQyxnQkFBZ0IsQ0FBQyxvQkFBb0IsQ0FBQyxpQkFBaUIsQ0FBQyxrREFBa0QsQ0FBQyw0QkFBb0IsQ0FBcEIsb0JBQW9CLENBQUMsbUNBQW1DLENBQUMsT0FBTyxDQUFDLDZCQUE2QixDQUFDLFNBQVMsQ0FBQyxxQ0FBcUMsQ0FBQyw2Q0FBNkMsNEJBQTRCLENBQUMsU0FBUyxDQUFDLCtDQUErQyxnQ0FBZ0MsQ0FBQyxvQkFBb0IsQ0FBQyxhQUFhLENBQUMsYUFBYSxDQUFDLGtCQUFrQixDQUFDLHFCQUFxQixDQUFDLGlEQUFpRCxlQUFlLENBQUMsVUFBVSxDQUFDLG1CQUFtQixDQUFDLGdCQUFnQixDQUFDLHdCQUF3QixDQUFDLHFCQUFxQixDQUFDLDZDQUE2Qyw4QkFBOEIsQ0FBQyxvQkFBb0IsQ0FBQyxhQUFhLENBQUMsWUFBWSxDQUFDLHVCQUF1QixDQUFDLGtCQUFrQixDQUFDLDhDQUE4QywrQkFBK0IsQ0FBQyxvQkFBb0IsQ0FBQyxhQUFhLENBQUMsWUFBWSxDQUFDLGtCQUFrQixDQUFDLHFCQUFxQixDQUFDLDJCQUEyQixlQUFlLENBQUMsc0JBQXNCLENBQUMsNkJBQTZCLGFBQWEsQ0FBQyxpQkFBaUIsQ0FBQyxnQkFBZ0IsQ0FBQyxpQ0FBaUMsd0JBQXdCLENBQUMsNkJBQTZCLENBQUMsdUNBQXVDLGtEQUFrRCxDQUFDLHVDQUF1QyxxQkFBcUIsQ0FBQyxvQ0FBb0Msb0JBQW9CLENBQUMsa0JBQWtCLENBQUMsd0JBQXdCLENBQUMseUNBQXlDLGVBQWUsQ0FBQyxnQkFBZ0IsQ0FBQywwQ0FBMEMsZUFBZSxDQUFDLGNBQWMsQ0FBQywyQkFBMkIsaUJBQWlCLENBQUMsWUFBWSxDQUFDLGtCQUFrQixDQUFDLDZCQUE2QixDQUFDLDZCQUE2QixlQUFlLENBQUMsNENBQTRDLGlCQUFpQixDQUFDLG9CQUFvQixDQUFDLGNBQWMsQ0FBQyxrQkFBa0IsQ0FBQyxnQkFBZ0IsQ0FBQyxlQUFlLENBQUMsaUJBQWlCLENBQUMsYUFBYSxDQUFDLGlCQUFpQixDQUFDLGdDQUFnQyxDQUFDLGNBQWMsQ0FBQyxTQUFTLENBQUMsa0RBQWtELFVBQVUsQ0FBQyxhQUFhLENBQUMsaUJBQWlCLENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxXQUFXLENBQUMsaUJBQWlCLENBQUMsY0FBYyxDQUFDLFVBQVUsQ0FBQyxTQUFTLENBQUMsaUNBQWlDLENBQUMsMERBQTBELGtEQUFrRCxDQUFDLDhEQUE4RCxrREFBa0QsQ0FBQyxrREFBa0QsVUFBVSxDQUFDLHdEQUF3RCxTQUFTLENBQUMsK0NBQStDLFlBQVksQ0FBQyxpRkFBaUYsaUJBQWlCLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDLFdBQVcsQ0FBQyx3QkFBd0IsQ0FBQywyQ0FBMkMsU0FBUyxDQUFDLG1EQUFtRCxhQUFhLENBQUMsc0NBQXNDLFVBQVUsQ0FBQyx3Q0FBd0MsaUJBQWlCLENBQUMsMEJBQTBCLDRCQUE0QixxQkFBcUIsQ0FBQyxDQUFDLDBCQUEwQiwyQkFBMkIsbUJBQW1CLENBQUMsQ0FBQyxnQ0FBZ0MsWUFBWSxDQUFDLGNBQWMsQ0FBQyxlQUFlLENBQUMsa0NBQWtDLG1CQUFtQixDQUFDLHVDQUF1Qyx3QkFBd0IsQ0FBQyx3Q0FBd0MsMkJBQTJCLENBQUMsMENBQTBDLHdCQUF3QixDQUFDLDZDQUE2QyxzQkFBc0IsQ0FBQyw4TEFBOEwsbUJBQW1CLENBQUMsc0NBQXNDLGVBQWUsQ0FBQyx3Q0FBd0MsYUFBYSxDQUFDLCtDQUErQyxvQkFBb0IsQ0FBQyx5RkFBeUYsWUFBWSxDQUFDLG9CQUFvQixDQUFDLHFFQUFxRSxZQUFZLENBQUMsb0JBQW9CLENBQUMsd0VBQXdFLGlCQUFpQixDQUFDLGdKQUFnSixzQkFBc0IsQ0FBQywwQkFBMEIsNEhBQTRILHVCQUF1QixDQUFDLDBDQUEwQyxzQkFBc0IsQ0FBQywrQ0FBK0Msb0JBQW9CLENBQUMsQ0FBQyxpRkFBaUYsdUJBQXVCLENBQUMsb0JBQW9CLENBQUMsaUJBQWlCLENBQUMsaUJBQWlCLENBQUMsZUFBZSxDQUFDLGVBQWUsQ0FBQyxVQUFVLENBQUMsdURBQXVELGVBQWUsQ0FBQyx3QkFBd0IsQ0FBQyxrQkFBa0IsQ0FBQyw0QkFBNEIsQ0FBQyxpQkFBaUIsQ0FBQyxvQkFBb0IsQ0FBQyxxQkFBcUIsQ0FBQyw4Q0FBOEMscUJBQXFCLENBQUMsMEhBQTBILGVBQWUsQ0FBQyx3SEFBd0gsZ0JBQWdCLENBQUMsd0hBQXdILGdCQUFnQixDQUFDLDREQUE0RCxhQUFhLENBQUMsNERBQTRELGFBQWEsQ0FBQyx1RUFBdUUsU0FBUyxDQUFDLGdCQUFnQixDQUFDLGVBQWUsQ0FBQywwRUFBMEUsUUFBUSxDQUFDLG1CQUFtQixDQUFDLGdFQUFnRSxvQkFBb0IsQ0FBQyxnQkFBZ0IsQ0FBQyxhQUFhLENBQUMsaUJBQWlCLENBQUMsc0VBQXNFLHdCQUF3QixDQUFDLGFBQWEsQ0FBQyxnQkFBZ0IsQ0FBQyxVQUFVLENBQUMsb0VBQW9FLG9CQUFvQixDQUFDLGlCQUFpQixDQUFDLGFBQWEsQ0FBQyxZQUFZLENBQUMsaUNBQWlDLENBQUMsa0JBQWtCLENBQUMsdUJBQXVCLENBQUMsaUJBQWlCLENBQUMsY0FBYyxDQUFDLHdDQUF3QyxDQUFDLHdCQUFlLENBQWYscUJBQWUsQ0FBZixnQkFBZ0IsQ0FBQyxpRkFBaUYsb0JBQW9CLENBQUMsU0FBUyxDQUFDLGtCQUFrQixDQUFDLFNBQVMsQ0FBQyxjQUFjLENBQUMsaUdBQWlHLFVBQVUsQ0FBQyxhQUFhLENBQUMsaUJBQWlCLENBQUMsWUFBWSxDQUFDLFdBQVcsQ0FBQyxpQkFBaUIsQ0FBQyxrQkFBa0IsQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQyx3Q0FBd0MsQ0FBQyxrQkFBa0IsQ0FBQyx5R0FBeUcsU0FBUyxDQUFDLHdDQUF3QyxDQUFDLDZEQUE2RCxrQkFBa0IsQ0FBQyxnQkFBZ0IsQ0FBQyxpRUFBaUUsYUFBYSxDQUFDLGlFQUFpRSxhQUFhLENBQUMsc0NBQXNDLHNEQUFzRCxDQUFDLG1CQUFtQixDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsa0JBQWtCLENBQUMsMkJBQTJCLENBQUMsbUNBQW1DLGVBQWUsQ0FBQyxhQUFhLENBQUMscURBQXFELGlCQUFpQixDQUFDLHlCQUF5QixDQUFDLFlBQVksQ0FBQyxpQkFBaUIsQ0FBQyw0REFBNEQsMEJBQTBCLENBQUMsZUFBZSxDQUFDLGFBQWEsQ0FBQyxrQkFBa0IsQ0FBQyxpQkFBaUIsQ0FBQyxjQUFjLENBQUMsV0FBVyxDQUFDLHlDQUF5QyxhQUFhLENBQUMsVUFBVSxDQUFDLGdCQUFnQixDQUFDLFFBQVEsQ0FBQyx3RkFBd0YsOENBQThDLENBQUMsOEdBQThHLFdBQVcsQ0FBQyw0Q0FBNEMsbUNBQW1DLENBQUMsZ0RBQWdELFlBQVksQ0FBQyw0REFBNEQseUJBQXlCLENBQUMsaUJBQWlCLENBQUMsaUJBQWlCLENBQUMsb0JBQW9CLENBQUMsbUVBQW1FLGVBQWUsQ0FBQyxlQUFlLENBQUMsYUFBYSxDQUFDLGtCQUFrQixDQUFDLGlCQUFpQixDQUFDLGdCQUFnQixDQUFDLFdBQVcsQ0FBQyxVQUFVLENBQUMsNEVBQTRFLFdBQVcsQ0FBQyw2RUFBNkUsNkJBQTZCLENBQUMsNkNBQTZDLENBQUMsOENBQThDLENBQUMsaUJBQWlCLENBQUMsb0ZBQW9GLGdCQUFnQixDQUFDLGVBQWUsQ0FBQyxlQUFlLENBQUMsaUJBQWlCLENBQUMsU0FBUyxDQUFDLFVBQVUsQ0FBQyw0RUFBNEUsV0FBVyxDQUFDLDZFQUE2RSw4QkFBOEIsQ0FBQywrQkFBK0IsQ0FBQywyRkFBMkYsZ0NBQWdDLENBQUMsNkVBQTZFLDZCQUE2QixDQUFDLGdDQUFnQyxDQUFDLDRGQUE0Riw4QkFBOEIsQ0FBQyxpQkFBaUIsQ0FBQyxtR0FBbUcsYUFBYSxDQUFDLGVBQWUsQ0FBQyxhQUFhLENBQUMsaUJBQWlCLENBQUMsVUFBVSxDQUFDLFVBQVUsQ0FBQywyRkFBMkYsK0JBQStCLENBQUMsa0NBQWtDLFlBQVksQ0FBQyw2QkFBNkIsQ0FBQyxrQkFBa0IsQ0FBQyxlQUFlLENBQUMsa0JBQWtCLENBQUMsb0RBQW9ELFdBQVcsQ0FBQyxnRUFBZ0UsY0FBYyxDQUFDLCtEQUErRCxlQUFlLENBQUMsNkNBQTZDLFlBQVksQ0FBQyxXQUFXLENBQUMsa0JBQWtCLENBQUMsb0RBQW9ELGlCQUFpQixDQUFDLGtCQUFrQixDQUFDLFdBQVcsQ0FBQyxVQUFVLENBQUMsZUFBZSxDQUFDLFdBQVcsQ0FBQywwREFBMEQsVUFBVSxDQUFDLGlCQUFpQixDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsa0JBQWtCLENBQUMsMEJBQTBCLENBQUMsd0RBQXdELENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQywrQ0FBK0MsUUFBUSxDQUFDLGlCQUFpQixDQUFDLHdDQUF3QyxhQUFhLENBQUMsVUFBVSxDQUFDLGdCQUFnQixDQUFDLGFBQWEsQ0FBQyxzRkFBc0YsOENBQThDLENBQUMsNEdBQTRHLFdBQVcsQ0FBQywyQ0FBMkMsbUNBQW1DLENBQUMsMEJBQTBCLGdHQUFnRyxZQUFZLENBQUMsb0dBQW9HLFdBQVcsQ0FBQyxrREFBa0QsdUJBQXVCLENBQUMsZ0VBQWdFLHVCQUF1QixDQUFDLENBQUMsOEJBQThCLG9CQUFvQixDQUFDLGtCQUFrQixDQUFDLG1DQUFtQyxDQUFDLHFDQUFxQyxDQUFDLGlCQUFpQixDQUFDLCtCQUErQixDQUFDLGlDQUFpQyxTQUFTLENBQUMsUUFBUSxDQUFDLG9DQUFvQyxnQkFBZ0IsQ0FBQyxhQUFhLENBQUMsb0NBQW9DLGlCQUFpQixDQUFDLFFBQVEsQ0FBQyx1Q0FBdUMsaUJBQWlCLENBQUMscUJBQXFCLENBQUMsb0JBQW9CLENBQUMsa0JBQWtCLENBQUMsNkJBQTZCLENBQUMsOENBQThDLFVBQVUsQ0FBQyxvQkFBb0IsQ0FBQyxVQUFVLENBQUMsYUFBYSxDQUFDLG1CQUFtQixDQUFDLG9CQUFvQixDQUFDLDRCQUE0QixDQUFDLGtEQUFrRCxXQUFXLENBQUMsd0RBQXdELFVBQVUsQ0FBQyxpQkFBaUIsQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsYUFBYSxDQUFDLDZCQUE2QixDQUFDLGlDQUFpQyxlQUFlLENBQUMsbUVBQW1FLFlBQVksQ0FBQyxxQkFBcUIsQ0FBQyxlQUFlLENBQUMsdUJBQXVCLENBQUMsdUVBQXVFLGVBQWUsQ0FBQyxrQkFBa0IsQ0FBQyxxRkFBcUYsWUFBWSxDQUFDLGtCQUFrQixDQUFDLDZCQUE2QixDQUFDLHVGQUF1RixZQUFZLENBQUMsa0JBQWtCLENBQUMsaUJBQWlCLENBQUMsZUFBZSxDQUFDLDJHQUEyRyw0QkFBNEIsQ0FBQyw4QkFBOEIsQ0FBQyxhQUFhLENBQUMsV0FBVyxDQUFDLG1JQUFtSSw2QkFBNkIsQ0FBQyxpSEFBaUgsU0FBUyxDQUFDLGFBQWEsQ0FBQyx1SEFBdUgsU0FBUyxDQUFDLGFBQWEsQ0FBQyxpSEFBaUgsNkJBQTZCLENBQUMseUhBQXlILGlCQUFpQixDQUFDLHVJQUF1SSxVQUFVLENBQUMsb0JBQW9CLENBQUMsWUFBWSxDQUFDLGtCQUFrQixDQUFDLDRCQUE0QixDQUFDLHFCQUFxQixDQUFDLHFIQUFxSCxhQUFhLENBQUMsaUJBQWlCLENBQUMsZUFBZSxDQUFDLCtGQUErRixZQUFZLENBQUMsa0JBQWtCLENBQUMsNEJBQTRCLENBQUMsaUJBQWlCLENBQUMsYUFBYSxDQUFDLGdCQUFnQixDQUFDLHlIQUF5SCxlQUFlLENBQUMsaUJBQWlCLENBQUMsYUFBYSxDQUFDLG1CQUFtQixDQUFDLGtCQUFrQixDQUFDLFdBQVcsQ0FBQyw4QkFBOEIsQ0FBQyxxSkFBcUosb0JBQW9CLENBQUMsdUlBQXVJLGFBQWEsQ0FBQyxnQkFBZ0IsQ0FBQyxtQkFBbUIsQ0FBQyxVQUFVLENBQUMsb0JBQW9CLENBQUMsa0RBQWtELENBQUMsMkJBQTJCLENBQUMseUlBQXlJLFVBQVUsQ0FBQyx1SkFBdUosa0RBQWtELENBQUMsa0NBQWtDLFlBQVksQ0FBQyxzQkFBaUIsQ0FBakIsaUJBQWlCLENBQUMsY0FBYyxDQUFDLDZCQUE2QixDQUFDLG9CQUFvQixDQUFDLDhCQUE4QixDQUFDLHdDQUF3QyxRQUFRLENBQUMsd0NBQXdDLGdCQUFnQixDQUFDLFFBQVEsQ0FBQyxhQUFhLENBQUMsNkNBQTZDLGtCQUFrQixDQUFDLGlDQUFpQyx3QkFBd0IsQ0FBQyx1Q0FBdUMsZUFBZSxDQUFDLGFBQWEsQ0FBQyxTQUFTLENBQUMsbUVBQW1FLGlCQUFpQixDQUFDLCtFQUErRSxhQUFhLENBQUMsa0JBQWtCLENBQUMsaUJBQWlCLENBQUMsaUJBQWlCLENBQUMsZUFBZSxDQUFDLGVBQWUsQ0FBQyxtQkFBbUIsQ0FBQyxpQkFBaUIsQ0FBQyx1Q0FBdUMsaUJBQWlCLENBQUMseUhBQXlILGFBQWEsQ0FBQyxpQkFBaUIsQ0FBQyxpQkFBaUIsQ0FBQyxlQUFlLENBQUMsZUFBZSxDQUFDLG1CQUFtQixDQUFDLGlCQUFpQixDQUFDLFNBQVMsQ0FBQyxXQUFXLENBQUMsU0FBUyxDQUFDLCtCQUErQixDQUFDLDZEQUE2RCxpQkFBaUIsQ0FBQyxVQUFVLENBQUMsa0JBQWtCLENBQUMsNERBQTRELGlCQUFpQixDQUFDLGFBQWEsQ0FBQyxrQkFBa0IsQ0FBQyxTQUFTLENBQUMscUlBQXFJLFNBQVMsQ0FBQyxXQUFXLENBQUMsd0NBQXdDLGlCQUFpQixDQUFDLG9CQUFvQixDQUFDLG1EQUFtRCxVQUFVLENBQUMsYUFBYSxDQUFDLGlCQUFpQixDQUFDLFVBQVUsQ0FBQyxVQUFVLENBQUMsNEJBQTRCLENBQUMsV0FBVyxDQUFDLGtEQUFrRCxVQUFVLENBQUMsYUFBYSxDQUFDLGlCQUFpQixDQUFDLFVBQVUsQ0FBQyxVQUFVLENBQUMsNEJBQTRCLENBQUMsV0FBVyxDQUFDLHlDQUF5QyxlQUFlLENBQUMsb0JBQW9CLENBQUMsMkNBQTJDLG1CQUFtQixDQUFDLGtCQUFrQixDQUFDLHFDQUFxQyxDQUFDLGdCQUFnQixDQUFDLGlCQUFpQixDQUFDLGdEQUFnRCx1QkFBdUIsQ0FBQyxtREFBbUQsaUJBQWlCLENBQUMsNEJBQTRCLENBQUMsMERBQTBELGFBQWEsQ0FBQyxpQkFBaUIsQ0FBQyxxQ0FBcUMsQ0FBQyxnQkFBZ0IsQ0FBQyxhQUFhLENBQUMsZUFBZSxDQUFDLFlBQVksQ0FBQyxRQUFRLENBQUMsMEJBQTBCLENBQUMseURBQXlELFVBQVUsQ0FBQyxhQUFhLENBQUMsaUJBQWlCLENBQUMsV0FBVyxDQUFDLFNBQVMsQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDLDBCQUEwQixDQUFDLGtCQUFrQixDQUFDLHNFQUFzRSxxQkFBcUIsQ0FBQyxpRUFBaUUsaUJBQWlCLENBQUMsbUVBQW1FLG1CQUFtQixDQUFDLG9FQUFvRSxtQkFBbUIsQ0FBQyxpSEFBaUgsaUJBQWlCLENBQUMsK0JBQStCLENBQUMsK0hBQStILGtCQUFrQixDQUFDLGFBQWEsQ0FBQyxpQkFBaUIsQ0FBQyxxQ0FBcUMsQ0FBQyxnQkFBZ0IsQ0FBQyxhQUFhLENBQUMsZUFBZSxDQUFDLGVBQWUsQ0FBQyxRQUFRLENBQUMsMEJBQTBCLENBQUMsNkhBQTZILFVBQVUsQ0FBQyxhQUFhLENBQUMsaUJBQWlCLENBQUMsV0FBVyxDQUFDLFNBQVMsQ0FBQyxZQUFZLENBQUMsUUFBUSxDQUFDLDBCQUEwQixDQUFDLGtCQUFrQixDQUFDLHFKQUFxSiwyQ0FBMkMsQ0FBQywySUFBMkkseUNBQXlDLENBQUMsdUVBQXVFLGVBQWUsQ0FBQyxpRUFBaUUsV0FBVyxDQUFDLCtJQUErSSxZQUFZLENBQUMsa0VBQWtFLFdBQVcsQ0FBQyxpSkFBaUosWUFBWSxDQUFDLDJFQUEyRSxXQUFXLENBQUMsbUtBQW1LLFlBQVksQ0FBQywyQ0FBMkMsZUFBZSxDQUFDLGVBQWUsQ0FBQyxZQUFZLENBQUMsa0JBQWtCLENBQUMsNERBQTRELGlCQUFpQixDQUFDLFdBQVcsQ0FBQyxpQ0FBaUMsQ0FBQywwQkFBMEIsQ0FBQyxrQkFBa0IsQ0FBQyxrQ0FBa0MsQ0FBQyxvRUFBb0UsNEJBQTRCLENBQUMsYUFBYSxDQUFDLGlCQUFpQixDQUFDLGtCQUFrQixDQUFDLGdCQUFnQixDQUFDLGVBQWUsQ0FBQyxlQUFlLENBQUMsMkJBQTJCLENBQUMsd0JBQXdCLENBQUMsa0JBQWtCLENBQUMsV0FBVyxDQUFDLFlBQVksQ0FBQyw4Q0FBOEMsa0JBQWtCLENBQUMsYUFBYSxDQUFDLDJEQUEyRCxXQUFXLENBQUMsa0JBQWtCLENBQUMsb0RBQW9ELFlBQVksQ0FBQyxxQkFBcUIsQ0FBQyw2QkFBNkIsQ0FBQyw0QkFBNEIsQ0FBQyx3REFBd0QsNkJBQTZCLENBQUMsV0FBVyxDQUFDLG1CQUFtQixDQUFDLDJDQUEyQyxDQUFDLFVBQVUsQ0FBQyxpQkFBaUIsQ0FBQywrSEFBK0gsVUFBVSxDQUFDLGlCQUFpQixDQUFDLGFBQWEsQ0FBQyxTQUFTLENBQUMsVUFBVSxDQUFDLFVBQVUsQ0FBQywwQ0FBMEMsQ0FBQyxnRUFBZ0UsS0FBSyxDQUFDLCtEQUErRCxXQUFXLENBQUMsMERBQTBELGtCQUFrQixDQUFDLGlCQUFpQixDQUFDLGlCQUFpQixDQUFDLGtFQUFrRSxVQUFVLENBQUMsb0JBQW9CLENBQUMsa0JBQWtCLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQywwQ0FBMEMsQ0FBQyxxQkFBcUIsQ0FBQyxpRUFBaUUsb0NBQW9DLENBQUMsYUFBYSxDQUFDLGlCQUFpQixDQUFDLFdBQVcsQ0FBQyxXQUFXLENBQUMsZUFBZSxDQUFDLGVBQWUsQ0FBQywyQkFBMkIsQ0FBQyxvQ0FBb0Msa0JBQWtCLENBQUMsMENBQTBDLHdCQUF3QixDQUFDLGlCQUFpQixDQUFDLFdBQVcsQ0FBQyxVQUFVLENBQUMsNENBQTRDLG1CQUFtQixDQUFDLGtDQUFrQyxDQUFDLDJDQUEyQyxXQUFXLENBQUMsc0JBQWlCLENBQWpCLGlCQUFpQixDQUFDLGlCQUFpQixDQUFDLDJDQUEyQyx3QkFBd0IsQ0FBQywrQ0FBK0MsWUFBWSxDQUFDLHVFQUF1RSxtQkFBbUIsQ0FBQyxzQ0FBc0MsWUFBWSxDQUFDLHFCQUFxQixDQUFDLGNBQWMsQ0FBQyxvQkFBb0IsQ0FBQyxlQUFlLENBQUMsbURBQW1ELGVBQWUsQ0FBQyxrREFBa0Qsa0JBQWtCLENBQUMsYUFBYSxDQUFDLGlCQUFpQixDQUFDLG1CQUFtQixDQUFDLGlCQUFpQixDQUFDLGtEQUFrRCxpQkFBaUIsQ0FBQyxhQUFhLENBQUMsU0FBUyxDQUFDLDZCQUE2QixDQUFDLGlCQUFpQixDQUFDLHlEQUF5RCxlQUFlLENBQUMsaUJBQWlCLENBQUMsVUFBVSxDQUFDLFlBQVksQ0FBQyxhQUFhLENBQUMsYUFBYSxDQUFDLHdEQUF3RCxTQUFTLENBQUMsZUFBZSxDQUFDLFdBQVcsQ0FBQyxZQUFZLENBQUMsc0JBQXNCLENBQUMsMEJBQTBCLENBQUMsa0JBQWtCLENBQUMsb0JBQW9CLENBQUMsK0RBQStELGlCQUFpQixDQUFDLFlBQVksQ0FBQyxhQUFhLENBQUMsT0FBTyxDQUFDLGlCQUFpQixDQUFDLDhEQUE4RCxVQUFVLENBQUMsYUFBYSxDQUFDLFdBQVcsQ0FBQyxPQUFPLENBQUMsNkJBQTZCLENBQUMsY0FBYyxDQUFDLDBEQUEwRCxZQUFZLENBQUMsc0JBQXNCLENBQUMsMERBQTBELFlBQVksQ0FBQyw0QkFBNEIsQ0FBQyxpQ0FBaUMsZUFBZSxDQUFDLGdCQUFnQixDQUFDLHNDQUFzQyxZQUFZLENBQUMsMkNBQTJDLHFCQUFxQixDQUFDLDZDQUE2QyxzQkFBc0IsQ0FBQyw0Q0FBNEMsbUJBQW1CLENBQUMsNENBQTRDLFdBQVcsQ0FBQyxVQUFVLENBQUMsWUFBWSxDQUFDLHNCQUFzQixDQUFDLGtCQUFrQixDQUFDLHFCQUFxQixDQUFDLHNCQUFzQixDQUFDLG9EQUFvRCxDQUFDLGlCQUFpQixDQUFDLGVBQWUsQ0FBQyxlQUFlLENBQUMsaUJBQWlCLENBQUMsZUFBZSxDQUFDLDRGQUE0RixhQUFhLENBQUMsaUJBQWlCLENBQUMsa0JBQWtCLENBQUMsaUJBQWlCLENBQUMsY0FBYyxDQUFDLFdBQVcsQ0FBQywrQ0FBK0MsK0JBQStCLENBQUMsNkNBQTZDLHdCQUF3QixDQUFDLHdDQUF3QyxhQUFhLENBQUMsVUFBVSxDQUFDLFdBQVcsQ0FBQyxpQkFBaUIsQ0FBQyxZQUFZLENBQUMsc0JBQXNCLENBQUMsa0JBQWtCLENBQUMsYUFBYSxDQUFDLG1CQUFtQixDQUFDLG9CQUFvQixDQUFDLHlHQUF5RyxrQkFBa0IsQ0FBQyxrQkFBa0IsQ0FBQyxlQUFlLENBQUMsWUFBWSxDQUFDLGFBQWEsQ0FBQyx3QkFBd0IsQ0FBQyxpQkFBaUIsQ0FBQyxrQkFBa0IsQ0FBQyxpQkFBaUIsQ0FBQyx1R0FBdUcsaUJBQWlCLENBQUMsYUFBYSxDQUFDLGlCQUFpQixDQUFDLDhDQUE4Qyx3QkFBd0IsQ0FBQyx3QkFBd0IsQ0FBQyxtQkFBbUIsQ0FBQyxxREFBcUQsa0JBQWtCLENBQUMsb0RBQW9ELFdBQVcsQ0FBQyxRQUFRLENBQUMsWUFBWSxDQUFDLDZDQUE2Qyx3QkFBd0IsQ0FBQyx3QkFBd0IsQ0FBQyxxQkFBcUIsQ0FBQyxvREFBb0Qsa0JBQWtCLENBQUMsbURBQW1ELFdBQVcsQ0FBQyxLQUFLLENBQUMsV0FBVyxDQUFDLDBCQUEwQixpQ0FBaUMsZUFBZSxDQUFDLGdCQUFnQixDQUFDLHNDQUFzQyxxQkFBcUIsQ0FBQyxjQUFjLENBQUMsNENBQTRDLGNBQWMsQ0FBQyx3Q0FBd0MsVUFBVSxDQUFDLFdBQVcsQ0FBQywyRkFBMkYsc0JBQXNCLENBQUMsZUFBZSxDQUFDLDhDQUE4QyxxQkFBcUIsQ0FBQyxnQkFBZ0IsQ0FBQyxxREFBcUQsa0JBQWtCLENBQUMsNkNBQTZDLG1CQUFtQixDQUFDLGlCQUFpQixDQUFDLG9EQUFvRCxpQkFBaUIsQ0FBQyxtREFBbUQsWUFBWSxDQUFDLFVBQVUsQ0FBQyxDQUFDLDRDQUE0QyxnQkFBZ0IsQ0FBQyxzREFBc0QsWUFBWSxDQUFDLDBEQUEwRCwwQkFBMEIsQ0FBQyxxQkFBcUIsQ0FBQywwRUFBMEUsZ0JBQWdCLENBQUMsNkRBQTZELHdCQUF3QixDQUFDLGtCQUFrQixDQUFDLGdFQUFnRSxZQUFZLENBQUMscUJBQXFCLENBQUMsa0JBQWtCLENBQUMsU0FBUyxDQUFDLDJEQUEyRCwrQ0FBK0MsQ0FBQyxXQUFXLENBQUMsV0FBVyxDQUFDLDJCQUEyQixDQUFDLHVCQUF1QixDQUFDLGlCQUFpQixDQUFDLGlFQUFpRSx1Q0FBdUMsQ0FBQyxpQkFBaUIsQ0FBQyxXQUFXLENBQUMsU0FBUyxDQUFDLFVBQVUsQ0FBQyxhQUFhLENBQUMsaUJBQWlCLENBQUMsY0FBYyxDQUFDLDREQUE0RCxhQUFhLENBQUMsV0FBVyxDQUFDLFVBQVUsQ0FBQyxpQkFBaUIsQ0FBQyxtRUFBbUUsVUFBVSxDQUFDLGFBQWEsQ0FBQyxXQUFXLENBQUMsVUFBVSxDQUFDLHdCQUF3QixDQUFDLHVEQUErQyxDQUEvQywrQ0FBK0MsQ0FBQyw2QkFBcUIsQ0FBckIscUJBQXFCLENBQUMsdUJBQXVCLENBQUMsa0VBQWtFLG1CQUFtQixDQUFDLGFBQWEsQ0FBQyxpQkFBaUIsQ0FBQyxVQUFVLENBQUMsWUFBWSxDQUFDLG9CQUFvQixDQUFDLGFBQWEsQ0FBQyxjQUFjLENBQUMsaUJBQWlCLENBQUMsd0JBQXdCLENBQUMsaUJBQWlCLENBQUMsd0NBQXdDLENBQUMseUNBQXlDLENBQUMsbUVBQW1FLFlBQVksQ0FBQyxrQkFBa0IsQ0FBQyx5QkFBeUIsQ0FBQyxnQ0FBZ0MsQ0FBQyxpQkFBaUIsQ0FBQyxjQUFjLENBQUMsNkJBQTZCLENBQUMsa0JBQWtCLENBQUMsbUVBQW1FLFlBQVksQ0FBQyxpQkFBaUIsQ0FBQyxtQkFBbUIsQ0FBQyxnQkFBZ0IsQ0FBQyxpQkFBaUIsQ0FBQyxxRUFBcUUsUUFBUSxDQUFDLGtCQUFrQixDQUFDLGNBQWMsQ0FBQyxpQkFBaUIsQ0FBQyxhQUFhLENBQUMsMEVBQTBFLDBDQUEwQyxDQUFDLGFBQWEsQ0FBQyxpQkFBaUIsQ0FBQyxVQUFVLENBQUMsV0FBVyxDQUFDLFNBQVMsQ0FBQyxVQUFVLENBQUMsNElBQTRJLENBQUMsbUZBQW1GLCtCQUErQixDQUFDLG9CQUFvQixDQUFDLHdGQUF3RiwrQkFBK0IsQ0FBQyxvQkFBb0IsQ0FBQyxpRkFBaUYsK0JBQStCLENBQUMsb0JBQW9CLENBQUMsbURBQW1ELCtCQUErQixDQUFDLFVBQVUsQ0FBQyxVQUFVLENBQUMsY0FBYyxDQUFDLGtCQUFrQixDQUFDLGlCQUFpQixDQUFDLHlEQUF5RCxXQUFXLENBQUMsaUJBQWlCLENBQUMsVUFBVSxDQUFDLFVBQVUsQ0FBQyxnQkFBZ0IsQ0FBQyxhQUFhLENBQUMsMERBQTBELFlBQVksQ0FBQyx3QkFBd0IsQ0FBQyxVQUFVLENBQUMsY0FBYyxDQUFDLFdBQVcsQ0FBQyxrQkFBa0IsQ0FBQyxrQkFBa0IsQ0FBQyxpQkFBaUIsQ0FBQyxnRUFBZ0UsOEJBQThCLENBQUMsaUJBQWlCLENBQUMsVUFBVSxDQUFDLGFBQWEsQ0FBQyxpQkFBaUIsQ0FBQyxpQkFBaUIsQ0FBQyxZQUFZLENBQUMsZUFBZSxDQUFDLFNBQVMsQ0FBQyxvQkFBb0IsQ0FBQyx1RUFBdUUsYUFBYSxDQUFDLFdBQVcsQ0FBQyxVQUFVLENBQUMsVUFBVSxDQUFDLGlCQUFpQixDQUFDLDZDQUE2QyxDQUFDLHFCQUFxQixDQUFDLG1CQUFtQixDQUFDLHVCQUF1QixDQUFDLDJCQUEyQixDQUFDLDhEQUE4RCxXQUFXLENBQUMsWUFBWSxDQUFDLHNCQUFzQixDQUFDLGdCQUFnQixDQUFDLGdFQUFnRSxXQUFXLENBQUMsb0JBQW9CLENBQUMsd0JBQXdCLENBQUMsaUJBQWlCLENBQUMsbUJBQW1CLENBQUMsMkNBQTJDLENBQUMsb0VBQW9FLFFBQVEsQ0FBQyxlQUFlLENBQUMsZUFBZSxDQUFDLFdBQVcsQ0FBQyx5RUFBeUUsY0FBYyxDQUFDLGlGQUFpRixpQkFBaUIsQ0FBQyxhQUFhLENBQUMsd0ZBQXdGLHdCQUF3QixDQUFDLG9CQUFvQixDQUFDLG9CQUFvQixDQUFDLGdCQUFnQixDQUFDLGVBQWUsQ0FBQyxVQUFVLENBQUMsaUJBQWlCLENBQUMsa0JBQWtCLENBQUMseURBQXlELGlCQUFpQixDQUFDLG1CQUFtQixDQUFDLGlCQUFpQixDQUFDLG1CQUFtQixDQUFDLGtCQUFrQixDQUFDLGlFQUFpRSxtQkFBbUIsQ0FBQyxhQUFhLENBQUMsb0JBQW9CLENBQUMsaUJBQWlCLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxpQkFBaUIsQ0FBQyxVQUFVLENBQUMsZUFBZSxDQUFDLGdCQUFnQixDQUFDLHdCQUF3QixDQUFDLG9CQUFvQixDQUFDLDhCQUE4QixDQUFDLGtKQUFrSixnQkFBZ0IsQ0FBQyx5QkFBeUIsQ0FBQyw2QkFBNkIsQ0FBQyx5QkFBeUIsQ0FBQyx3RUFBd0UscUJBQXFCLENBQUMsZ0ZBQWdGLGtCQUFrQixDQUFDLGdMQUFnTCw2QkFBNkIsQ0FBQyx3RUFBd0UscUJBQXFCLENBQUMsZ0ZBQWdGLGtCQUFrQixDQUFDLGdMQUFnTCw2QkFBNkIsQ0FBQyx3RUFBd0UscUJBQXFCLENBQUMsZ0ZBQWdGLGtCQUFrQixDQUFDLGdMQUFnTCw2QkFBNkIsQ0FBQyx3RUFBd0UscUJBQXFCLENBQUMsZ0ZBQWdGLGtCQUFrQixDQUFDLGdMQUFnTCw2QkFBNkIsQ0FBQyxnSkFBZ0osaUJBQWlCLENBQUMsbUJBQW1CLENBQUMsaUJBQWlCLENBQUMsbUJBQW1CLENBQUMsa0JBQWtCLENBQUMsOEpBQThKLGFBQWEsQ0FBQyxvQkFBb0IsQ0FBQyxpQkFBaUIsQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLGlCQUFpQixDQUFDLFVBQVUsQ0FBQyxlQUFlLENBQUMsZ0JBQWdCLENBQUMsd0JBQXdCLENBQUMsb0JBQW9CLENBQUMsOEJBQThCLENBQUMsa09BQWtPLDZCQUE2QixDQUFDLGtPQUFrTyw2QkFBNkIsQ0FBQyxrT0FBa08sNkJBQTZCLENBQUMsNE5BQTROLGdCQUFnQixDQUFDLHlCQUF5QixDQUFDLDZCQUE2QixDQUFDLHlCQUF5QixDQUFDLDRFQUE0RSxxQkFBcUIsQ0FBQyxtRkFBbUYscUJBQXFCLENBQUMsa0JBQWtCLENBQUMsK0VBQStFLHdDQUF3QyxDQUFDLG9FQUFvRSxxQkFBcUIsQ0FBQywyRUFBMkUsZUFBZSxDQUFDLGtCQUFrQixDQUFDLG9FQUFvRSxpQkFBaUIsQ0FBQyxxQkFBcUIsQ0FBQyx3S0FBd0ssZ0JBQWdCLENBQUMseUJBQXlCLENBQUMsNkJBQTZCLENBQUMseUJBQXlCLENBQUMsNkJBQTZCLENBQUMsMElBQTBJLGlCQUFpQixDQUFDLG1CQUFtQixDQUFDLGlCQUFpQixDQUFDLG1CQUFtQixDQUFDLGtCQUFrQixDQUFDLHdLQUF3SyxnQkFBZ0IsQ0FBQyx5QkFBeUIsQ0FBQyw2QkFBNkIsQ0FBQyx5QkFBeUIsQ0FBQyw2QkFBNkIsQ0FBQyx3SkFBd0osYUFBYSxDQUFDLG9CQUFvQixDQUFDLGlCQUFpQixDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsaUJBQWlCLENBQUMsVUFBVSxDQUFDLGVBQWUsQ0FBQyxnQkFBZ0IsQ0FBQyx3QkFBd0IsQ0FBQyxvQkFBb0IsQ0FBQywrQkFBK0IsQ0FBQyx5RUFBeUUscUJBQXFCLENBQUMsd0ZBQXdGLDZCQUE2QixDQUFDLGdGQUFnRixxQkFBcUIsQ0FBQyxrQkFBa0IsQ0FBQywrQkFBK0IsQ0FBQyxpRUFBaUUscUJBQXFCLENBQUMsd0VBQXdFLGVBQWUsQ0FBQyxrQkFBa0IsQ0FBQyw4UEFBOFAsaUJBQWlCLENBQUMsbUJBQW1CLENBQUMsaUJBQWlCLENBQUMsbUJBQW1CLENBQUMsa0JBQWtCLENBQUMsMFJBQTBSLGFBQWEsQ0FBQyxvQkFBb0IsQ0FBQyxpQkFBaUIsQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLGlCQUFpQixDQUFDLFVBQVUsQ0FBQyxlQUFlLENBQUMsZ0JBQWdCLENBQUMsd0JBQXdCLENBQUMsb0JBQW9CLENBQUMsOEJBQThCLENBQUMsdUlBQXVJLHFCQUFxQixDQUFDLHFKQUFxSixxQkFBcUIsQ0FBQyxrQkFBa0IsQ0FBQyx1SEFBdUgscUJBQXFCLENBQUMscUlBQXFJLGVBQWUsQ0FBQyxrQkFBa0IsQ0FBQyxnRkFBZ0YsZ0JBQWdCLENBQUMseUJBQXlCLENBQUMsNkJBQTZCLENBQUMseUJBQXlCLENBQUMsNkJBQTZCLENBQUMsK0ZBQStGLDZCQUE2QixDQUFDLDJCQUEyQiw0Q0FBNEMsZUFBZSxDQUFDLDBFQUEwRSxVQUFVLENBQUMsbUVBQW1FLHFCQUFxQixDQUFDLG1EQUFtRCwrQkFBK0IsQ0FBQyxTQUFTLENBQUMsYUFBYSxDQUFDLFdBQVcsQ0FBQyxlQUFlLENBQUMseURBQXlELFdBQVcsQ0FBQyxhQUFhLENBQUMsWUFBWSxDQUFDLFNBQVMsQ0FBQyxjQUFjLENBQUMsMERBQTBELG9CQUFvQixDQUFDLGdFQUFnRSw2QkFBNkIsQ0FBQyxVQUFVLENBQUMsWUFBWSxDQUFDLFVBQVUsQ0FBQyw4REFBOEQsaUJBQWlCLENBQUMsa0JBQWtCLENBQUMsc0JBQXNCLENBQUMsQ0FBQywwQkFBMEIsaUNBQWlDLGtCQUFrQixDQUFDLDBDQUEwQyxxQkFBcUIsQ0FBQyxrQkFBa0IsQ0FBQywyQ0FBMkMscUJBQXFCLENBQUMsZUFBZSxDQUFDLHFEQUFxRCxZQUFZLENBQUMsZUFBZSxDQUFDLGlCQUFpQixDQUFDLDZCQUE2QixDQUFDLCtCQUErQixDQUFDLGlFQUFpRSw0QkFBNEIsQ0FBQywrQ0FBK0MscUJBQXFCLENBQUMsNERBQTRELGVBQWUsQ0FBQyxrQ0FBa0MsVUFBVSxDQUFDLDJDQUEyQywwQkFBMEIsQ0FBQyxlQUFlLENBQUMsd0RBQXdELFVBQVUsQ0FBQywwREFBMEQsd0JBQXdCLENBQUMsaUJBQWlCLENBQUMsa0JBQWtCLENBQUMsZ0JBQWdCLENBQUMsa0VBQWtFLHVCQUF1QixDQUFDLGlCQUFpQixDQUFDLFVBQVUsQ0FBQyxXQUFXLENBQUMsaUVBQWlFLE1BQU0sQ0FBQyxDQUFDLG9DQUFvQyx3QkFBd0IsQ0FBQyxvQkFBb0IsQ0FBQyxjQUFjLENBQUMsb0JBQW9CLENBQUMsOEJBQThCLENBQUMsc0RBQXNELENBQUMscUJBQXFCLENBQUMsWUFBWSxDQUFDLDZCQUE2QixDQUFDLGtCQUFrQixDQUFDLG9EQUFvRCxlQUFlLENBQUMsZUFBZSxDQUFDLGVBQWUsQ0FBQyxvREFBb0QsaUJBQWlCLENBQUMsYUFBYSxDQUFDLHVEQUF1RCxtQkFBbUIsQ0FBQyxnQkFBZ0IsQ0FBQyxpQkFBaUIsQ0FBQyxVQUFVLENBQUMsc0RBQXNELGVBQWUsQ0FBQyxVQUFVLENBQUMsNkRBQTZELFVBQVUsQ0FBQyxnREFBZ0QsaUJBQWlCLENBQUMsa0RBQWtELGFBQWEsQ0FBQyxpQkFBaUIsQ0FBQyxtQkFBbUIsQ0FBQyxVQUFVLENBQUMsaUJBQWlCLENBQUMsaUJBQWlCLENBQUMsa0RBQWtELENBQUMsU0FBUyxDQUFDLHdEQUF3RCxVQUFVLENBQUMsaUJBQWlCLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLFdBQVcsQ0FBQyxpQkFBaUIsQ0FBQyxtREFBbUQsQ0FBQyxzQkFBc0IsQ0FBQyxVQUFVLENBQUMsU0FBUyxDQUFDLDhEQUE4RCxTQUFTLENBQUMsMEJBQTBCLG9DQUFvQyxxQkFBcUIsQ0FBQyxvREFBb0QsY0FBYyxDQUFDLHVEQUF1RCxtQkFBbUIsQ0FBQyxnREFBZ0Qsa0JBQWtCLENBQUMsVUFBVSxDQUFDLENBQUMseUNBQXlDLGVBQWUsQ0FBQyxtQkFBbUIsQ0FBQyxvREFBb0Qsa0JBQWtCLENBQUMsNkNBQTZDLGtCQUFrQixDQUFDLDhCQUE4QixxQ0FBcUMsQ0FBQyxtQ0FBbUMscUNBQXFDLENBQUMsdUNBQXVDLHdHQUF3RyxDQUFDLHVDQUF1Qyx3R0FBd0csQ0FBQyxnQ0FBZ0MsWUFBWSxDQUFDLGtCQUFrQixDQUFDLHNCQUFzQixDQUFDLGlEQUFpRCxjQUFjLENBQUMsMEJBQTBCLENBQUMsYUFBYSxDQUFDLDZEQUE2RCxjQUFjLENBQUMsYUFBYSxDQUFDLDBFQUEwRSxjQUFRLENBQVIsU0FBUyxDQUFDLG1DQUFtQyw4Q0FBOEMsQ0FBQyxxQkFBcUIsQ0FBQyw2Q0FBNkMsU0FBUyxDQUFDLGdCQUFnQixDQUFDLGVBQWUsQ0FBQyxnREFBZ0QsUUFBUSxDQUFDLG1CQUFtQixDQUFDLHNDQUFzQyxhQUFhLENBQUMsZ0JBQWdCLENBQUMsYUFBYSxDQUFDLGlCQUFpQixDQUFDLDRDQUE0Qyx3QkFBd0IsQ0FBQyxhQUFhLENBQUMsZ0JBQWdCLENBQUMsVUFBVSxDQUFDLDBDQUEwQyxvQkFBb0IsQ0FBQyxpQkFBaUIsQ0FBQyxhQUFhLENBQUMsWUFBWSxDQUFDLGlDQUFpQyxDQUFDLGtCQUFrQixDQUFDLHVCQUF1QixDQUFDLGlCQUFpQixDQUFDLGNBQWMsQ0FBQyx3Q0FBd0MsQ0FBQyx3QkFBZSxDQUFmLHFCQUFlLENBQWYsZ0JBQWdCLENBQUMsdURBQXVELG9CQUFvQixDQUFDLFNBQVMsQ0FBQyxrQkFBa0IsQ0FBQyxTQUFTLENBQUMsY0FBYyxDQUFDLHVFQUF1RSxVQUFVLENBQUMsYUFBYSxDQUFDLGlCQUFpQixDQUFDLFlBQVksQ0FBQyxXQUFXLENBQUMsaUJBQWlCLENBQUMsa0JBQWtCLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUMsd0NBQXdDLENBQUMsa0JBQWtCLENBQUMsK0VBQStFLFNBQVMsQ0FBQyx3Q0FBd0MsQ0FBQywyQkFBMkIsaURBQWlELGFBQWEsQ0FBQyw0SEFBNEgsY0FBYyxDQUFDLENBQUMsMEJBQTBCLGlEQUFpRCxjQUFjLENBQUMsQ0FBQywwQ0FBMEMsbUJBQW1CLENBQUMsc0JBQXNCLENBQUMsZ0dBQWdHLFFBQVEsQ0FBQyxxQkFBcUIsb0JBQW9CLENBQUMsK0JBQStCLHFCQUFxQixDQUFDLFlBQVksQ0FBQyx3QkFBd0IsaUJBQWlCLENBQUMsbUNBQW1DLGdCQUFnQixDQUFDLGFBQWEsQ0FBQyxxQkFBcUIsZUFBZSxDQUFDLGtCQUFrQixDQUFDLHdCQUF3QixpQkFBaUIsQ0FBQyxzQkFBc0IsQ0FBQywrQkFBK0IsMEJBQTBCLENBQUMsaUJBQWlCLENBQUMsV0FBVyxDQUFDLGFBQWEsQ0FBQyxnQkFBZ0IsQ0FBQyxxQ0FBcUMsdUNBQXVDLENBQUMsMkNBQTJDLDBCQUEwQixDQUFDLGlEQUFpRCx1Q0FBdUMsQ0FBQyx1REFBdUQsMEJBQTBCLENBQUMsMkJBQTJCLGtCQUFrQixDQUFDLDhCQUE4QixrQkFBa0IsQ0FBQyxxQkFBcUIsZUFBZSxDQUFDLG1EQUFtRCxlQUFlLENBQUMsb0RBQW9ELHFCQUFxQixDQUFDLGdDQUFnQyxnQkFBZ0IsQ0FBQyx3RUFBd0UsY0FBYyxDQUFDLGFBQWEsQ0FBQyxvRkFBb0YsVUFBVSxDQUFDLG9GQUFvRixXQUFXLENBQUMsb0ZBQW9GLFVBQVUsQ0FBQyxvRkFBb0YsV0FBVyxDQUFDLG9GQUFvRixVQUFVLENBQUMsb0ZBQW9GLFdBQVcsQ0FBQyxvRkFBb0YsVUFBVSxDQUFDLG9GQUFvRixXQUFXLENBQUMsb0ZBQW9GLFVBQVUsQ0FBQyxvRkFBb0YsV0FBVyxDQUFDLG9GQUFvRixVQUFVLENBQUMsb0ZBQW9GLFdBQVcsQ0FBQyxvRkFBb0YsVUFBVSxDQUFDLG9GQUFvRixXQUFXLENBQUMsb0ZBQW9GLFVBQVUsQ0FBQyxvRkFBb0YsV0FBVyxDQUFDLG9GQUFvRixVQUFVLENBQUMsaUNBQWlDLFlBQVksQ0FBQyw2QkFBNkIsQ0FBQyxrQkFBa0IsQ0FBQyxzQ0FBc0MsWUFBWSxDQUFDLGFBQWEsQ0FBQyxpQkFBaUIsQ0FBQyxrQkFBa0IsQ0FBQywyQ0FBMkMsaUJBQWlCLENBQUMsb0NBQW9DLENBQUMsa0RBQWtELGVBQWUsQ0FBQyxvQkFBb0IsQ0FBQyx3QkFBd0IsQ0FBQyxrQkFBa0IsQ0FBQyxxQkFBcUIsQ0FBQywyQ0FBMkMsaUJBQWlCLENBQUMsb0NBQW9DLENBQUMsMEJBQTBCLENBQUMsa0RBQWtELGVBQWUsQ0FBQyxvQkFBb0IsQ0FBQyx3QkFBd0IsQ0FBQyxpQkFBaUIsQ0FBQyxxQkFBcUIsQ0FBQyxpREFBaUQsY0FBYyxDQUFDLDJCQUEyQiw0QkFBNEIsQ0FBQyxrQkFBa0IsQ0FBQyw4QkFBOEIsaUJBQWlCLENBQUMsOEJBQThCLGVBQWUsQ0FBQyxTQUFTLENBQUMsWUFBWSxDQUFDLDhCQUE4QixjQUFjLENBQUMsbUJBQW1CLENBQUMsMkNBQTJDLGVBQWUsQ0FBQyxnQkFBZ0IsQ0FBQywrQkFBK0Isa0JBQWtCLENBQUMsa0NBQWtDLGVBQWUsQ0FBQyxlQUFlLENBQUMsY0FBYyxDQUFDLG9CQUFvQixDQUFDLHFCQUFxQixDQUFDLHFDQUFxQyxpQkFBaUIsQ0FBQyxjQUFjLENBQUMsNENBQTRDLGtCQUFrQixDQUFDLGNBQWMsQ0FBQyxpQkFBaUIsQ0FBQywyQkFBMkIsQ0FBQyw0Q0FBNEMsbUJBQW1CLENBQUMsd0RBQXdELG1CQUFtQixDQUFDLGdFQUFnRSwwQkFBMEIsQ0FBQyx3QkFBd0IsQ0FBQyxhQUFhLENBQUMsb0JBQW9CLENBQUMsa0JBQWtCLENBQUMsa0JBQWtCLENBQUMsMENBQTBDLGFBQWEsQ0FBQyxvQkFBb0IsQ0FBQyxlQUFlLENBQUMsY0FBYyxDQUFDLGtEQUFrRCxlQUFlLENBQUMsd0JBQXdCLENBQUMsZUFBZSxDQUFDLGFBQWEsQ0FBQyxrQkFBa0IsQ0FBQyxpQkFBaUIsQ0FBQyxrQkFBa0IsQ0FBQywwQkFBMEIsQ0FBQyxnREFBZ0QsY0FBYyxDQUFDLFVBQVUsQ0FBQyx3REFBd0QsZUFBZSxDQUFDLHlDQUF5QywrQkFBK0IsQ0FBQyxVQUFVLENBQUMsV0FBVyxDQUFDLCtDQUErQyx3QkFBd0IsQ0FBQyx5QkFBeUIsQ0FBQywrQ0FBK0Msd0JBQXdCLENBQUMsd0JBQXdCLENBQUMsaUJBQWlCLENBQUMsMkNBQTJDLGlDQUFpQyxDQUFDLFVBQVUsQ0FBQyxXQUFXLENBQUMsaURBQWlELHdCQUF3QixDQUFDLHlCQUF5QixDQUFDLGlEQUFpRCx3QkFBd0IsQ0FBQyx3QkFBd0IsQ0FBQyxpQkFBaUIsQ0FBQywyQ0FBMkMsZUFBZSxDQUFDLHFEQUFxRCwwQkFBMEIsQ0FBQyxjQUFjLENBQUMsY0FBYyxDQUFDLHFCQUFxQixDQUFDLG9CQUFvQixDQUFDLHVEQUF1RCwwQkFBMEIsQ0FBQyxjQUFjLENBQUMsY0FBYyxDQUFDLHFCQUFxQixDQUFDLG9CQUFvQixDQUFDLHNEQUFzRCxZQUFZLENBQUMsMkNBQTJDLGtCQUFrQixDQUFDLGVBQWUsQ0FBQyxnREFBZ0QsY0FBYyxDQUFDLGdEQUFnRCxZQUFZLENBQUMsZ0RBQWdELHFDQUFxQyxDQUFDLGVBQWUsQ0FBQyxtQ0FBbUMsYUFBYSxDQUFDLGVBQWUsQ0FBQyxrQkFBa0IsQ0FBQywwQ0FBMEMsdUJBQXVCLENBQUMseUNBQXlDLGVBQWUsQ0FBQyw4Q0FBOEMsY0FBYyxDQUFDLHdDQUF3QyxjQUFjLENBQUMsY0FBYyxDQUFDLG9CQUFvQixDQUFDLFNBQVMsQ0FBQyxxREFBcUQsMkJBQTJCLENBQUMsc0dBQXNHLDJCQUEyQixDQUFDLHlHQUF5RywyQkFBMkIsQ0FBQyx5SkFBeUosMkJBQTJCLENBQUMsdURBQXVELGtCQUFrQixDQUFDLGVBQWUsQ0FBQyw4REFBOEQsU0FBUyxDQUFDLGNBQWMsQ0FBQyxnQkFBZ0IsQ0FBQyxvQkFBb0IsQ0FBQyxtRUFBbUUsV0FBVyxDQUFDLG1FQUFtRSxXQUFXLENBQUMsbUVBQW1FLFlBQVksQ0FBQyxxRUFBcUUsY0FBYyxDQUFDLG9CQUFvQixDQUFDLDhEQUE4RCxZQUFZLENBQUMsZUFBZSxDQUFDLGNBQWMsQ0FBQyw2REFBNkQsWUFBWSxDQUFDLGNBQWMsQ0FBQyxtRUFBbUUsY0FBYyxDQUFDLGtFQUFrRSxlQUFlLENBQUMsYUFBYSxDQUFDLG9FQUFvRSxpQkFBaUIsQ0FBQyxxRUFBcUUsU0FBUyxDQUFDLGNBQWMsQ0FBQyxnQkFBZ0IsQ0FBQyxvQkFBb0IsQ0FBQyw0RUFBNEUsb0JBQW9CLENBQUMsOERBQThELFlBQVksQ0FBQywwQkFBMEIsbUNBQW1DLHFCQUFxQixDQUFDLENBQUMsb0NBQW9DLG9CQUFvQixDQUFDLHFCQUFxQixDQUFDLHVCQUF1QixDQUFDLFdBQVcsQ0FBQyxZQUFZLENBQUMsd0JBQXdCLENBQUMsZ0NBQWdDLENBQUMsaUJBQWlCLENBQUMsc0NBQXNDLG9CQUFvQixDQUFDLHFCQUFxQixDQUFDLHVCQUF1QixDQUFDLFdBQVcsQ0FBQyxZQUFZLENBQUMsd0JBQXdCLENBQUMsZ0NBQWdDLENBQUMsaUJBQWlCLENBQUMscUNBQXFDLG9CQUFvQixDQUFDLHVCQUF1QixDQUFDLFlBQVksQ0FBQyxhQUFhLENBQUMsaUJBQWlCLENBQUMsa0JBQWtCLENBQUMsZ0NBQWdDLHFCQUFxQixDQUFDLHFDQUFxQyxxQkFBcUIsQ0FBQywwQkFBMEIsWUFBWSxDQUFDLGNBQWMsQ0FBQywwQkFBMEIsV0FBVyxDQUFDLFVBQVUsQ0FBQyxpQkFBaUIsQ0FBQyxjQUFjLENBQUMsZUFBZSxDQUFDLHNCQUFzQixDQUFDLG9CQUFvQixDQUFDLGtCQUFrQixDQUFDLGlCQUFpQixDQUFDLHdCQUF3QixDQUFDLGlCQUFpQixDQUFDLHdCQUF3QixDQUFDLDBDQUEwQyxDQUFDLFNBQVMsQ0FBQyxnQ0FBZ0MsVUFBVSxDQUFDLGlCQUFpQixDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxXQUFXLENBQUMsaUJBQWlCLENBQUMsa0RBQWtELENBQUMsU0FBUyxDQUFDLHNCQUFzQixDQUFDLFVBQVUsQ0FBQyxnQ0FBZ0MscUJBQXFCLENBQUMsc0NBQXNDLFNBQVMsQ0FBQyxvQ0FBb0MscUJBQXFCLENBQUMsMENBQTBDLFNBQVMsQ0FBQyxrREFBa0QsQ0FBQyxnQ0FBZ0MsMEJBQTBCLENBQUMsZ0NBQWdDLGVBQWUsQ0FBQyxtQkFBbUIsQ0FBQywrQ0FBK0MscUJBQXFCLENBQUMsZUFBZSxDQUFDLFdBQVcsQ0FBQyxpQkFBaUIsQ0FBQyxzQkFBc0IsQ0FBQyxzREFBc0QsZUFBZSxDQUFDLG1CQUFtQixDQUFDLHdCQUF3QixDQUFDLGlCQUFpQixDQUFDLDJEQUEyRCxTQUFTLENBQUMsaUNBQWlDLDBCQUEwQixDQUFDLGlDQUFpQyxlQUFlLENBQUMsb0NBQW9DLGNBQWMsQ0FBQywrQkFBK0IsUUFBUSxDQUFDLGdCQUFnQixDQUFDLGFBQWEsQ0FBQywrQkFBK0Isb0JBQW9CLENBQUMsUUFBUSxDQUFDLHlCQUF5QixDQUFDLG9CQUFvQixDQUFDLGNBQWMsQ0FBQyxrQkFBa0IsQ0FBQywyQkFBMkIsQ0FBQyxxQ0FBcUMsVUFBVSxDQUFDLHlDQUF5Qyx3QkFBd0IsQ0FBQyxVQUFVLENBQUMsb0NBQW9DLFNBQVMsQ0FBQyx3Q0FBd0MsZUFBZSxDQUFDLDJCQUEyQixDQUFDLG9FQUFvRSxvQkFBb0IsQ0FBQyxVQUFVLENBQUMsNEhBQTRILFVBQVUsQ0FBQyxhQUFhLENBQUMsc0dBQXNHLGVBQWUsQ0FBQyxtREFBbUQsWUFBWSxDQUFDLHdEQUF3RCxZQUFZLENBQUMsd0JBQXdCLG9CQUFvQixDQUFDLHVCQUF1QixDQUFDLGdCQUFnQixDQUFDLGFBQWEsQ0FBQyxjQUFjLENBQUMsZUFBZSxDQUFDLGlCQUFpQixDQUFDLCtCQUErQixDQUFDLGlCQUFpQixDQUFDLHNEQUFzRCxzQkFBc0IsQ0FBQyw4QkFBOEIsa0RBQWtELENBQUMsMkJBQTJCLENBQUMsMkJBQTJCLFVBQVUsQ0FBQyxrQ0FBa0MsVUFBVSxDQUFDLHVDQUF1Qyx1QkFBdUIsQ0FBQyxzQ0FBc0MsdUJBQXVCLENBQUMsMkJBQTJCLGlCQUFpQixDQUFDLGlCQUFpQixDQUFDLGdDQUFnQyxnQkFBZ0IsQ0FBQywyQ0FBMkMsa0JBQWtCLENBQUMscURBQXFELHVCQUF1QixDQUFDLG9EQUFvRCx1QkFBdUIsQ0FBQyw0QkFBNEIsZUFBZSxDQUFDLHFDQUFxQyxrQkFBa0IsQ0FBQyxxQ0FBcUMsa0JBQWtCLENBQUMsZ0RBQWdELGVBQWUsQ0FBQyxpREFBaUQsZUFBZSxDQUFDLGFBQWEsQ0FBQyw4QkFBOEIsa0JBQWtCLENBQUMsc1VBQXNVLGlCQUFpQixDQUFDLG9DQUFvQyxxQkFBcUIsQ0FBQyxlQUFlLENBQUMsZ0JBQWdCLENBQUMseUNBQXlDLGdCQUFnQixDQUFDLHFEQUFxRCxZQUFZLENBQUMsNkJBQTZCLENBQUMsd0RBQXdELFlBQVksQ0FBQyw2QkFBNkIsQ0FBQyx3QkFBd0IsNEJBQTRCLENBQUMsbUJBQW1CLENBQUMsa0JBQWtCLENBQUMsNkJBQTZCLGtCQUFrQixDQUFDLGVBQWUsQ0FBQyxvQkFBb0IsQ0FBQyxpQkFBaUIsQ0FBQyxlQUFlLENBQUMsdUNBQXVDLENBQUMsZUFBZSxDQUFDLGtCQUFrQixDQUFDLG1DQUFtQyxrQkFBa0IsQ0FBQyxrREFBa0QsQ0FBQyxtQ0FBbUMscUJBQXFCLENBQUMseUVBQXlFLFdBQVcsQ0FBQyxhQUFhLENBQUMsb0JBQW9CLENBQUMsK0JBQStCLGlCQUFpQixDQUFDLG1CQUFtQixDQUFDLG1CQUFtQixDQUFDLHNCQUFzQixDQUFDLGtCQUFrQixDQUFDLDJCQUEyQixDQUFDLGlCQUFpQixDQUFDLGtDQUFrQyxTQUFTLENBQUMsaUJBQWlCLENBQUMsNENBQTRDLGFBQWEsQ0FBQyxpQkFBaUIsQ0FBQyxvQkFBb0IsQ0FBQyxpQkFBaUIsQ0FBQyxhQUFhLENBQUMsZ0JBQWdCLENBQUMsU0FBUyxDQUFDLHNDQUFzQyxlQUFlLENBQUMsZUFBZSxDQUFDLG1CQUFtQixDQUFDLGtEQUFrRCxpQkFBaUIsQ0FBQyxpQkFBaUIsQ0FBQyxVQUFVLENBQUMsa0RBQWtELG1CQUFtQixDQUFDLG1EQUFtRCxtQkFBbUIsQ0FBQyxtREFBbUQsbUJBQW1CLENBQUMsNENBQTRDLGlCQUFpQixDQUFDLEtBQUssQ0FBQyxZQUFZLENBQUMsWUFBWSxDQUFDLGlEQUFpRCxDQUFDLGtEQUFrRCxDQUFDLGtEQUFrRCxTQUFTLENBQUMsa0RBQWtELENBQUMsMENBQTBDLG9CQUFvQixDQUFDLCtCQUErQixDQUFDLG9MQUFvTCxVQUFVLENBQUMseUZBQXlGLGFBQWEsQ0FBQyxjQUFjLENBQUMsaUJBQWlCLENBQUMsaURBQWlELGFBQWEsQ0FBQyw0Q0FBNEMsVUFBVSxDQUFDLHVEQUF1RCxxRUFBcUUsQ0FBQyxrREFBa0QsYUFBYSxDQUFDLDZEQUE2RCx3REFBd0QsQ0FBQyx1REFBdUQsYUFBYSxDQUFDLDZGQUE2RixhQUFhLENBQUMsa0JBQWtCLENBQUMsMEJBQTBCLDRDQUE0QyxTQUFTLENBQUMsa0RBQWtELENBQUMsNEJBQTRCLENBQUMsYUFBYSxDQUFDLHlEQUF5RCxRQUFRLENBQUMsa0RBQWtELFlBQVksQ0FBQyxDQUFDLHlCQUF5QixxQkFBcUIsQ0FBQyxtQ0FBbUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxzQ0FBc0MsZUFBZSxDQUFDLG1CQUFtQixDQUFDLFVBQVUsQ0FBQyxpQ0FBaUMsQ0FBQyxnQkFBZ0IsQ0FBQyxlQUFlLENBQUMsa0JBQWtCLENBQUMsbUJBQW1CLENBQUMsb0JBQW9CLENBQUMsZ0pBQWdKLGtCQUFrQixDQUFDLGVBQWUsQ0FBQyxrQkFBa0IsQ0FBQyxpQkFBaUIsQ0FBQywyQkFBMkIsQ0FBQyw2REFBNkQsc0JBQXNCLENBQUMsY0FBYyxDQUFDLGtCQUFrQixDQUFDLG9EQUFvRCxjQUFjLENBQUMsVUFBVSxDQUFDLGlDQUFpQyxDQUFDLDBEQUEwRCxTQUFTLENBQUMsMEJBQTBCLHlCQUF5QixrQkFBa0IsQ0FBQyw0QkFBNEIsbUJBQW1CLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyw0QkFBNEIsaUJBQWlCLENBQUMsb0JBQW9CLENBQUMsOENBQThDLGVBQWUsQ0FBQyxpQkFBaUIsQ0FBQyx5QkFBeUIsQ0FBQyxxREFBcUQsZ0JBQWdCLENBQUMsZUFBZSxDQUFDLDZDQUE2QyxpQkFBaUIsQ0FBQyxZQUFZLENBQUMsVUFBVSxDQUFDLFdBQVcsQ0FBQyxXQUFXLENBQUMsOENBQThDLGFBQWEsQ0FBQyxXQUFXLENBQUMsYUFBYSxDQUFDLGFBQWEsQ0FBQyxrQkFBa0IsQ0FBQyxjQUFjLENBQUMsaUJBQWlCLENBQUMsZ0JBQWdCLENBQUMsd0JBQXdCLENBQUMsaUJBQWlCLENBQUMsb0JBQW9CLENBQUMscURBQXFELG1CQUFtQixDQUFDLG9EQUFvRCxhQUFhLENBQUMsb0RBQW9ELFFBQVEsQ0FBQyxzRUFBc0UsQ0FBQyxZQUFZLENBQUMscURBQXFELGVBQWUsQ0FBQyw0REFBNEQsbUJBQW1CLENBQUMsa0NBQWtDLFlBQVksQ0FBQyxjQUFjLENBQUMsaUJBQWlCLENBQUMsOEJBQThCLGVBQWUsQ0FBQyx5QkFBeUIsQ0FBQyxnQ0FBZ0MsYUFBYSxDQUFDLGlCQUFpQixDQUFDLHNDQUFzQyxlQUFlLENBQUMsaUJBQWlCLENBQUMsWUFBWSxDQUFDLGtCQUFrQixDQUFDLHNCQUFzQixDQUFDLHFCQUFxQixDQUFDLFVBQVUsQ0FBQyxZQUFZLENBQUMsYUFBYSxDQUFDLFlBQVksQ0FBQyxVQUFVLENBQUMsY0FBYyxDQUFDLGlCQUFpQixDQUFDLHVDQUF1QyxDQUFDLFNBQVMsQ0FBQyxzQkFBc0IsQ0FBQyw0Q0FBNEMsU0FBUyxDQUFDLGtDQUFrQyxlQUFlLENBQUMsMkNBQTJDLGlCQUFpQixDQUFDLGVBQWUsQ0FBQyxlQUFlLENBQUMsYUFBYSxDQUFDLG1CQUFtQixDQUFDLDBDQUEwQyxlQUFlLENBQUMsMkJBQTJCLENBQUMsZ0JBQWdCLENBQUMsNkNBQTZDLDJCQUEyQixDQUFDLG1CQUFtQixDQUFDLGVBQWUsQ0FBQyxlQUFlLENBQUMsd0NBQXdDLGNBQWMsQ0FBQyxlQUFlLENBQUMseUJBQXlCLFVBQVUsQ0FBQyxlQUFlLENBQUMsYUFBYSxDQUFDLDBCQUEwQiw4QkFBOEIsY0FBYyxDQUFDLGNBQWMsQ0FBQyxDQUFDLG1EQUFtRCxhQUFhLENBQUMsZUFBZSxDQUFDLGlCQUFpQixDQUFDLHVCQUF1QixDQUFDLHFFQUFxRSx3QkFBd0IsQ0FBQywyREFBMkQsZUFBZSxDQUFDLGVBQWUsQ0FBQyxpRUFBaUUsaUJBQWlCLENBQUMsNkRBQTZELGFBQWEsQ0FBQywrREFBK0QsYUFBYSxDQUFDLG1FQUFtRSxhQUFhLENBQUMsNkRBQTZELGFBQWEsQ0FBQywySkFBMkosa0JBQWtCLENBQUMsWUFBWSxDQUFDLDJCQUEyQixlQUFlLENBQUMsb0JBQW9CLENBQUMsYUFBYSxDQUFDLFVBQVUsQ0FBQyxVQUFVLENBQUMsc0JBQXNCLENBQUMsaUNBQWlDLFNBQVMsQ0FBQyw4QkFBOEIsZ0JBQWdCLENBQUMsaUJBQWlCLENBQUMsMEpBQTBKLHNCQUFzQixDQUFDLDBCQUEwQixrQkFBa0IsQ0FBQyw0QkFBNEIsd0JBQXdCLENBQUMsaUJBQWlCLENBQUMsbUJBQW1CLENBQUMsMEJBQTBCLENBQUMsMEZBQTBGLGFBQWEsQ0FBQyxvRkFBb0YsYUFBYSxDQUFDLHVGQUF1RixhQUFhLENBQUMsNkZBQTZGLGFBQWEsQ0FBQyxvRkFBb0YsYUFBYSxDQUFDLG9DQUFvQyxZQUFZLENBQUMscUJBQXFCLENBQUMsNEJBQTRCLENBQUMsc0JBQXNCLENBQUMsa0JBQWtCLENBQUMsMENBQTBDLGVBQWUsQ0FBQyxVQUFVLENBQUMsaUJBQWlCLENBQUMsWUFBWSxDQUFDLDBCQUEwQixTQUFTLDBCQUEwQixDQUFDLFlBQVksZ0JBQWdCLENBQUMsWUFBWSxpQkFBaUIsQ0FBQyxZQUFZLGdCQUFnQixDQUFDLENBQUMsMEJBQTBCLGVBQWUsQ0FBQyx3Q0FBd0MscUJBQXFCLENBQUMscUNBQXFDLHVCQUF1QixDQUFDLHdDQUF3QyxxQkFBcUIsQ0FBQyx3Q0FBd0MsZUFBZSxDQUFDLHVDQUF1QyxlQUFlLENBQUMsdUNBQXVDLGdCQUFnQixDQUFDLHdDQUF3Qyx3QkFBd0IsQ0FBQyxVQUFVLENBQUMsbURBQW1ELENBQUMsaUJBQWlCLENBQUMsZUFBZSxDQUFDLG9CQUFvQixDQUFDLHVCQUF1QixDQUFDLGVBQWUsQ0FBQyxVQUFVLENBQUMsV0FBVyxDQUFDLG1CQUFtQixDQUFDLG1CQUFtQixDQUFDLHNGQUFzRixpQkFBaUIsQ0FBQyxrQkFBa0IsQ0FBQyxVQUFVLENBQUMsV0FBVyxDQUFDLGdCQUFnQixDQUFDLGdCQUFnQixDQUFDLG1CQUFtQixDQUFDLG9DQUFvQyxvQkFBb0IsQ0FBQyxpQkFBaUIsQ0FBQyxVQUFVLENBQUMsV0FBVyxDQUFDLG1CQUFtQixDQUFDLHVCQUF1QixDQUFDLGNBQWMsQ0FBQyw0Q0FBNEMsb0JBQW9CLENBQUMsaUJBQWlCLENBQUMsaUJBQWlCLENBQUMsVUFBVSxDQUFDLFNBQVMsQ0FBQyxlQUFlLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyx5Q0FBeUMsa0JBQWtCLENBQUMsMENBQTBDLGtCQUFrQixDQUFDLHdDQUF3QyxrQkFBa0IsQ0FBQyxnREFBZ0QsUUFBUSxDQUFDLDhFQUE4RSxVQUFVLENBQUMsOEZBQThGLFdBQVcsQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxzR0FBc0csUUFBUSxDQUFDLDRDQUE0QyxvQkFBb0IsQ0FBQyxpQkFBaUIsQ0FBQyxpQkFBaUIsQ0FBQyxhQUFhLENBQUMsWUFBWSxDQUFDLDJEQUEyRCxDQUFDLDBCQUEwQixDQUFDLGlCQUFpQixDQUFDLFVBQVUsQ0FBQyxlQUFlLENBQUMsaURBQWlELGFBQWEsQ0FBQyxlQUFlLENBQUMsNEJBQTRCLG9CQUFvQixDQUFDLGlCQUFpQixDQUFDLGtCQUFrQixDQUFDLHFCQUFxQixDQUFDLGtDQUFrQyxVQUFVLENBQUMsaUJBQWlCLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsV0FBVyxDQUFDLGtCQUFrQixDQUFDLHNEQUFzRCxDQUFDLHdDQUF3QyxvQkFBb0IsQ0FBQyxvQ0FBb0MsY0FBYyxDQUFDLGlCQUFpQixDQUFDLFdBQVcsQ0FBQyxXQUFXLENBQUMsMENBQTBDLFlBQVksQ0FBQyxnREFBZ0QsWUFBWSxDQUFDLGlCQUFpQixDQUFDLGtCQUFrQixDQUFDLFVBQVUsQ0FBQyxXQUFXLENBQUMsa0JBQWtCLENBQUMsaUJBQWlCLENBQUMsd0JBQXdCLENBQUMsc0RBQXNELFVBQVUsQ0FBQyxpQkFBaUIsQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxrQkFBa0IsQ0FBQywwQkFBMEIsQ0FBQyx3REFBd0QsQ0FBQywrQ0FBK0Msc0JBQXNCLENBQUMsaUJBQWlCLENBQUMsV0FBVyxDQUFDLFVBQVUsQ0FBQyxtREFBbUQsQ0FBQyxVQUFVLENBQUMsaUJBQWlCLENBQUMsYUFBYSxDQUFDLGVBQWUsQ0FBQyxxREFBcUQsa0JBQWtCLENBQUMsY0FBYyxDQUFDLDBEQUEwRCxhQUFhLENBQUMsZUFBZSxDQUFDLGdCQUFnQixDQUFDLGtCQUFrQixDQUFDLHlEQUF5RCxhQUFhLENBQUMsZ0JBQWdCLENBQUMsa0JBQWtCLENBQUMsMENBQTBDLFVBQVUsQ0FBQyxzREFBc0Qsc0JBQXNCLENBQUMsa0JBQWtCLENBQUMsNERBQTRELFlBQVksQ0FBQyxxREFBcUQsUUFBUSxDQUFDLDRCQUE0QixZQUFZLENBQUMsb0JBQW9CLENBQUMsa0JBQWtCLENBQUMsVUFBVSxDQUFDLFdBQVcsQ0FBQyxXQUFXLENBQUMsOEJBQThCLENBQUMsZUFBZSxDQUFDLG9CQUFvQixDQUFDLGNBQWMsQ0FBQyxpQkFBaUIsQ0FBQyxrQkFBa0IsQ0FBQyxrQ0FBa0Msb0JBQW9CLENBQUMsaUJBQWlCLENBQUMsaUJBQWlCLENBQUMsNENBQTRDLG9CQUFvQixDQUFDLFNBQVMsQ0FBQyxjQUFjLENBQUMscUVBQXFFLFVBQVUsQ0FBQyxpQkFBaUIsQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDLFNBQVMsQ0FBQyxVQUFVLENBQUMsbUNBQW1DLEtBQUssQ0FBQyxrQkFBa0IsQ0FBQyxnRUFBZ0UsQ0FBQyxrQ0FBa0MsUUFBUSxDQUFDLGtCQUFrQixDQUFDLGdFQUFnRSxDQUFDLGtDQUFrQyxZQUFZLENBQUMsc0JBQXNCLENBQUMsa0JBQWtCLENBQUMsU0FBUyxDQUFDLFVBQVUsQ0FBQyxxQkFBcUIsQ0FBQyx3Q0FBd0MsaUJBQWlCLENBQUMsUUFBUSxDQUFDLGtEQUFrRCxTQUFTLENBQUMsaUJBQWlCLENBQUMsZ0JBQWdCLENBQUMsYUFBYSxDQUFDLDRHQUE0RyxtQkFBbUIsQ0FBQyxrQkFBa0IsQ0FBQyx1QkFBdUIsQ0FBQyxlQUFlLENBQUMsZ0VBQWdFLENBQUMsVUFBVSxDQUFDLFdBQVcsQ0FBQyxpQkFBaUIsQ0FBQyw0SUFBNEksV0FBVyxDQUFDLGdaQUFnWixZQUFZLENBQUMsMEJBQTBCLENBQUMsaUJBQWlCLENBQUMsd1lBQXdZLFlBQVksQ0FBQyxvQkFBb0IsQ0FBQyxzQkFBc0IsQ0FBQyxnQkFBZ0IsQ0FBQyxVQUFVLENBQUMsV0FBVyxDQUFDLGtEQUFrRCxDQUFDLGlCQUFpQixDQUFDLGdkQUFnZCxpQkFBaUIsQ0FBQyxnWkFBZ1osb0JBQW9CLENBQUMsdUJBQXVCLENBQUMsV0FBVyxDQUFDLGdlQUFnZSxnQkFBZ0IsQ0FBQyxrQkFBa0IsQ0FBQyxlQUFlLENBQUMsYUFBYSxDQUFDLHdkQUF3ZCxnQkFBZ0IsQ0FBQyxnQkFBZ0IsQ0FBQyw0R0FBNEcsWUFBWSxDQUFDLHNCQUFzQixDQUFDLGtCQUFrQixDQUFDLFdBQVcsQ0FBQyxVQUFVLENBQUMsYUFBYSxDQUFDLG9IQUFvSCxvQkFBb0IsQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDLDhCQUE4QixDQUFDLGVBQWUsQ0FBQyxpQkFBaUIsQ0FBQyxlQUFlLENBQUMsVUFBVSxDQUFDLDhDQUE4QyxvQkFBb0IsQ0FBQyxpQkFBaUIsQ0FBQyxvREFBb0Qsd0JBQXdCLENBQUMsb0RBQW9ELHdCQUF3QixDQUFDLDBCQUEwQix3Q0FBd0MsWUFBWSxDQUFDLDJDQUEyQyxZQUFZLENBQUMsMkNBQTJDLFlBQVksQ0FBQyxDQUFDLElBQUksbUJBQW1CLENBQUMsaURBQWlELGFBQWEsQ0FBQyxlQUFlLENBQUMsbUJBQW1CLENBQUMsaUJBQWlCLENBQUMsZ0JBQWdCLENBQUMsZUFBZSxDQUFDLGFBQWEsQ0FBQyxVQUFVLENBQXlELFlBQVksQ0FBQyxvS0FBb0ssK0JBQStCLENBQUMsdUtBQWdKLCtCQUErQixDQUEvSyxnSkFBZ0osK0JBQStCLENBQUMsYUFBYSxpREFBaUQsZ0JBQWdCLENBQUMsQ0FBQyx3QkFBd0IsYUFBYSxDQUFDLG1DQUFtQyxrQkFBa0IsQ0FBQyxXQUFXLGFBQWEsQ0FBQywwRkFBMEYsYUFBYSxDQUFDLHdHQUF3RyxhQUFhLENBQUMsZUFBZSx3QkFBd0IsQ0FBQyx3R0FBd0csYUFBYSxDQUFDLDZSQUE2UixhQUFhLENBQUMsd0lBQXdJLGFBQWEsQ0FBQyxlQUFlLDRCQUE0QixDQUFDLG1MQUFtTCxhQUFhLENBQUMsNkJBQTZCLGFBQWEsQ0FBQyxlQUFlLFVBQVUsQ0FBQyxzUUFBc1EsZ0JBQWdCLENBQUMsc0lBQXNJLGlCQUFpQixDQUFDLGdFQUFnRSxhQUFhLENBQUMsZ0NBQWdDLGFBQWEsQ0FBQyxzQkFBc0IsVUFBVSxDQUFDLDRDQUE0Qyw2QkFBNkIsQ0FBQyx3Q0FBd0MsVUFBVSxDQUFDLGVBQWUsQ0FBQyxrQkFBa0IsQ0FBQyx3QkFBd0IsQ0FBQyxXQUFXLENBQUMsMENBQTBDLENBQUMsZ0NBQWdDLENBQUMsNkRBQTZELFdBQVcsQ0FBQyxrQkFBa0IsQ0FBQyx3QkFBd0IsQ0FBQywrQ0FBK0MsWUFBWSxDQUFDLHdEQUF3RCx1QkFBdUIsQ0FBQyxvREFBb0Qsa0JBQWtCLENBQUMscUVBQXFFLFVBQVUsQ0FBQyxvQkFBb0IsQ0FBQyxvQkFBb0IsQ0FBQywwRUFBMEUsZ0JBQWdCLENBQUMsMkJBQTJCLENBQUMsbUJBQW1CLENBQUMsd0VBQXdFLHNDQUFzQyxDQUFDLCtFQUErRSxrQkFBa0IsQ0FBQywyREFBMkQsZ0JBQWdCLENBQUMsVUFBVSxDQUFDLDBEQUEwRCxnQkFBZ0IsQ0FBQyxhQUFhLENBQUMsK0RBQStELGFBQWEsQ0FBQyxvRUFBb0Usa0JBQWtCLENBQUMsa09BQWtPLG9CQUFvQixDQUFDLHNJQUFzSSxxQkFBcUIsQ0FBQyxtQkFBbUIsQ0FBQyxrRUFBa0Usb0JBQW9CLENBQUMsc0JBQXNCLENBQUMsZ0ZBQWdGLGlCQUFpQixDQUFDLDJGQUEyRixTQUFTLENBQUMsc0dBQXNHLFlBQVksQ0FBQywyRkFBMkYsWUFBWSxDQUFDLGNBQWMsQ0FBQyxVQUFVLENBQUMsVUFBVSxDQUFDLGtHQUFrRyxZQUFZLENBQUMsZ0ZBQWdGLGlCQUFpQixDQUFDLDRFQUE0RSxjQUFjLENBQUMsZUFBZSxDQUFDLFVBQVUsQ0FBQyxrQkFBa0IsQ0FBQyxtRkFBbUYsWUFBWSxDQUFDLG9CQUFvQixzQkFBc0IsQ0FBQyxnQkFBZ0IsQ0FBQyxnQkFBZ0IsQ0FBQyxzQkFBc0IsYUFBYSxDQUFDLFVBQVUsQ0FBQyxvQkFBb0IsQ0FBQyxzQkFBc0IsQ0FBQyw0QkFBNEIsU0FBUyxDQUFDLG1CQUFtQixZQUFZLENBQUMsaUJBQWlCLENBQUMsZ0JBQWdCLENBQUMsNEJBQTRCLENBQUMsaUJBQWlCLENBQUMscUJBQXFCLGlCQUFpQixDQUFDLG9CQUFvQixDQUFDLDJCQUEyQixDQUFDLHNCQUFzQixDQUFDLHFCQUFxQixDQUFDLGlCQUFpQixDQUFDLGdCQUFnQixDQUFDLGVBQWUsQ0FBQyxpQkFBaUIsQ0FBQyxvQkFBb0IsQ0FBQyxTQUFTLENBQUMsa0RBQWtELENBQUMsMkJBQTJCLFVBQVUsQ0FBQyxpQkFBaUIsQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsV0FBVyxDQUFDLGlCQUFpQixDQUFDLGtEQUFrRCxDQUFDLFNBQVMsQ0FBQyxzQkFBc0IsQ0FBQyxVQUFVLENBQUMsMkJBQTJCLGNBQWMsQ0FBQyxpQ0FBaUMsU0FBUyxDQUFDLGtEQUFrRCx3Q0FBd0MsY0FBYyxDQUFDLGtFQUFrRSxzQkFBc0IsQ0FBQyxzQkFBc0IsQ0FBQyxDQUFDLDBCQUEwQix3Q0FBd0MsZUFBZSxDQUFDLFdBQVcsQ0FBQyxXQUFXLENBQUMsa0VBQWtFLHFCQUFxQixDQUFDLG1CQUFtQixDQUFDLENBQUMsMEJBQTBCLHdDQUF3QyxXQUFXLENBQUMsd0RBQXdELGFBQWEsQ0FBQyxDQUFDLE9BQU8sWUFBWSxDQUFDLGtCQUFrQixDQUFDLGlCQUFpQixDQUFDLGdCQUFnQixDQUFDLHlCQUF5QixDQUFDLGdCQUFnQixDQUFDLGtEQUFrRCxDQUFDLFNBQVMsb0JBQW9CLENBQUMsYUFBYSxDQUFDLHFCQUFxQixpQkFBaUIsQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyx1REFBdUQsMkJBQTJCLENBQUMsYUFBYSxTQUFTLENBQUMsMkJBQTJCLENBQUMsWUFBWSxDQUFDLHNCQUFzQixDQUFDLGtCQUFrQixDQUFDLHFCQUFxQixDQUFDLGlCQUFpQixDQUFDLFNBQVMsQ0FBQyxjQUFjLFlBQVksQ0FBQyxjQUFjLENBQUMsU0FBUyxDQUFDLHdCQUF3QixDQUFDLGdCQUFnQixZQUFZLENBQUMscUJBQXFCLENBQUMsc0JBQXNCLENBQUMsZUFBZSxDQUFDLFNBQVMsQ0FBQyxpQkFBaUIsQ0FBQyxpQkFBaUIsQ0FBQyxxQkFBcUIsQ0FBQyxnQkFBZ0IsQ0FBQyw2QkFBNkIsQ0FBQywwQ0FBMEMsQ0FBQywyQkFBMkIsZUFBZSxDQUFDLHNCQUFzQixrQkFBa0IsQ0FBQyxVQUFVLENBQUMseUJBQXlCLGVBQWUsQ0FBQyxnQkFBZ0IsQ0FBQyx3QkFBd0IsU0FBUyxDQUFDLGtCQUFrQixDQUFDLG1CQUFtQixnQkFBZ0IsQ0FBQyxrQkFBa0IsQ0FBQyxRQUFRLENBQUMsa0JBQWtCLGdCQUFnQixDQUFDLFlBQVksQ0FBQyxTQUFTLENBQUMsVUFBVSxDQUFDLGdCQUFnQixDQUFDLG1CQUFtQixDQUFDLFNBQVMsQ0FBQywwQ0FBMEMsQ0FBQyxnRUFBZ0UsZUFBZSxDQUFDLFVBQVUsQ0FBQyxnQkFBZ0Isa0JBQWtCLENBQUMsZ0JBQWdCLENBQUMsU0FBUyxDQUFDLHFDQUFxQyxvQkFBb0IsQ0FBQyw4QkFBOEIsaUJBQWlCLENBQUMsYUFBYSxDQUFDLG9CQUFvQixDQUFDLFVBQVUsQ0FBQyxnQkFBZ0IsQ0FBQyxlQUFlLENBQUMsa0RBQWtELENBQUMsMENBQTBDLENBQUMsaUJBQWlCLENBQUMsU0FBUyxDQUFDLHFDQUFxQyxVQUFVLENBQUMsaUJBQWlCLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLFdBQVcsQ0FBQyxpQkFBaUIsQ0FBQyxrREFBa0QsQ0FBQyxTQUFTLENBQUMsc0JBQXNCLENBQUMsVUFBVSxDQUFDLDJDQUEyQyxTQUFTLENBQUMscUNBQXFDLGNBQWMsQ0FBQyxvQkFBb0IsQ0FBQyxxQkFBcUIsQ0FBQyxpQkFBaUIsQ0FBQyxlQUFlLENBQUMsb0JBQW9CLENBQUMsMEJBQTBCLENBQUMsa0JBQWtCLENBQUMsMENBQTBDLENBQUMsMkJBQTJCLENBQUMsMkJBQTJCLGtCQUFrQixjQUFjLENBQUMscUJBQXFCLFNBQVMsQ0FBQyxDQUFDLDJCQUEyQixPQUFPLHFCQUFxQixDQUFDLGFBQWEsVUFBVSxDQUFDLGNBQWMsVUFBVSxDQUFDLHVCQUF1QixnQkFBZ0IsQ0FBQyxZQUFZLENBQUMsV0FBVyxDQUFDLFNBQVMsQ0FBQyxpQkFBaUIsQ0FBQywwQkFBMEIsZ0JBQWdCLENBQUMsZ0JBQWdCLENBQUMsZUFBZSxDQUFDLHlCQUF5QixVQUFVLENBQUMsaUJBQWlCLENBQUMsMkJBQXNCLENBQXRCLHNCQUFzQixDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsNkJBQTZCLGtCQUFrQixDQUFDLGdDQUFnQyxjQUFjLENBQUMsK0JBQStCLFNBQVMsQ0FBQywyQkFBcUIsQ0FBckIsc0JBQXNCLENBQUMsQ0FBQywwQkFBMEIsY0FBYyxxQkFBcUIsQ0FBQyx1QkFBdUIsVUFBVSxDQUFDLGNBQWMsQ0FBQyxlQUFlLENBQUMsZ0JBQWdCLGNBQWMsQ0FBQyxrQkFBa0IsY0FBYyxDQUFDLG1DQUFtQyxjQUFjLENBQUMsaUJBQWlCLENBQUMsQ0FBQyxvRUFBb0UsYUFBYSxDQUFDLG9CQUFvQixDQUFDLHFDQUFxQyxDQUFDLGtCQUFrQixDQUFDLFFBQVEsa0JBQWtCLENBQUMsWUFBWSxZQUFZLENBQUMsWUFBWSxDQUFDLGtCQUFrQixDQUFDLHFCQUFxQixDQUFDLDRCQUE0QixDQUFDLDJCQUEyQixlQUFlLENBQUMsZUFBZSxDQUFDLHdCQUF3QixZQUFZLENBQUMsa0JBQWtCLENBQUMsNEJBQTRCLENBQUMsYUFBYSxDQUFDLFdBQVcsQ0FBQyxZQUFZLENBQUMsY0FBYyxDQUFDLGVBQWUsQ0FBQyxpQkFBaUIsQ0FBQywwQ0FBMEMsQ0FBQywyQ0FBMkMsWUFBWSxDQUFDLGtCQUFrQixDQUFDLDRCQUE0QixDQUFDLG9DQUFvQyxDQUFDLFNBQVMsQ0FBQyxVQUFVLENBQUMsaUJBQWlCLENBQUMsMkJBQTJCLGFBQWEsQ0FBQyxjQUFjLENBQUMsZUFBZSxDQUFDLGlCQUFpQixDQUFDLGNBQWMsYUFBYSxDQUFDLG9CQUFvQixDQUFDLGdCQUFnQixDQUFDLG9CQUFvQixVQUFVLENBQUMsd0JBQXdCLFlBQVksQ0FBQyw0QkFBNEIsQ0FBQyxvQkFBb0IsQ0FBQyxvQkFBb0IsQ0FBQyw2QkFBNkIsWUFBWSxDQUFDLGlCQUFpQixDQUFDLFdBQVcsQ0FBQyxnQkFBZ0IsQ0FBQyxtQkFBbUIsQ0FBQyxpQkFBaUIsQ0FBQyxpQkFBaUIsQ0FBQyxzQkFBc0IsQ0FBQyxrQkFBa0IsQ0FBQyxVQUFVLENBQUMsK0JBQStCLENBQUMsU0FBUyxDQUFDLGtEQUFrRCxDQUFDLHlDQUF5QyxlQUFlLENBQUMsd0JBQXdCLENBQUMsbUJBQW1CLENBQUMsdUJBQXVCLENBQUMsbUNBQW1DLFVBQVUsQ0FBQyxpQkFBaUIsQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsV0FBVyxDQUFDLGlCQUFpQixDQUFDLGtEQUFrRCxDQUFDLFNBQVMsQ0FBQyxzQkFBc0IsQ0FBQyxVQUFVLENBQUMsbUNBQW1DLGNBQWMsQ0FBQyx5Q0FBeUMsU0FBUyxDQUFDLGNBQWMsYUFBYSxDQUFDLGtCQUFrQixDQUFDLGdCQUFnQixjQUFjLENBQUMsV0FBVyxDQUFDLFVBQVUsQ0FBQyxVQUFVLENBQUMsV0FBVyxDQUFDLFlBQVksQ0FBQyxxQkFBcUIsQ0FBQyx3QkFBd0IsQ0FBQyxvQkFBb0IsQ0FBQyxXQUFXLENBQUMsd0JBQXdCLFdBQVcsQ0FBQyxVQUFVLENBQUMsaUJBQWlCLENBQUMsaUJBQWlCLENBQUMseUNBQXlDLENBQUMsVUFBVSxDQUFDLHlDQUF5QyxpQkFBaUIsQ0FBQywrQkFBK0IsMEJBQTBCLENBQUMsb0JBQW9CLENBQUMsWUFBWSxDQUFDLGlCQUFpQixDQUFDLFFBQVEsQ0FBQyxVQUFVLENBQUMsVUFBVSxDQUFDLGtCQUFrQixDQUFDLGVBQWUsQ0FBQyxnQkFBZ0IsQ0FBQyxpQkFBaUIsQ0FBQyxtREFBbUQsQ0FBQyxtQkFBbUIsQ0FBQyxVQUFVLENBQUMsU0FBUyxDQUFDLDBCQUEwQixDQUFDLHFDQUFxQyxDQUFDLDhCQUE4QixVQUFVLENBQUMsaUJBQWlCLENBQUMsUUFBUSxDQUFDLFVBQVUsQ0FBQyxTQUFTLENBQUMsVUFBVSxDQUFDLFNBQVMsQ0FBQywwQkFBMEIsQ0FBQyxxQ0FBcUMsQ0FBQyw4QkFBOEIsY0FBYyxDQUFDLHlFQUF5RSxTQUFTLENBQUMsdUJBQXVCLENBQUMsZ0NBQWdDLGtEQUFrRCxDQUFDLHVDQUF1QyxtREFBbUQsQ0FBQyxzQ0FBc0Msa0JBQWtCLENBQUMsNEJBQTRCLENBQUMsd0RBQXdELENBQUMsNkJBQTZCLHVCQUF1QixDQUFDLG1EQUFtRCxDQUFDLG9DQUFvQyxrREFBa0QsQ0FBQyxtQ0FBbUMsa0JBQWtCLENBQUMsNEJBQTRCLENBQUMsd0RBQXdELENBQUMsdUJBQXVCLFlBQVksQ0FBQyxzQkFBc0IsQ0FBQyxrQkFBa0IsQ0FBQyxVQUFVLENBQUMsV0FBVyxDQUFDLGdCQUFnQixDQUFDLHVCQUF1QixDQUFDLG9CQUFvQixDQUFDLDZCQUE2QixVQUFVLENBQUMsV0FBVyxDQUFDLFlBQVksQ0FBQyxzQkFBc0IsQ0FBQyxpQkFBaUIsQ0FBQyxrQkFBa0IsQ0FBQyxxQkFBcUIsQ0FBQyxlQUFlLENBQUMsZ0JBQWdCLENBQUMsK0NBQStDLG9CQUFvQixDQUFDLGNBQWMsQ0FBQyxtQ0FBbUMsY0FBYyxDQUFDLDJCQUEyQixHQUFHLFNBQVMsQ0FBQyxLQUFLLFNBQVMsQ0FBQyxDQUFDLDBCQUEwQixnQkFBZ0IsYUFBYSxDQUFDLFlBQVksQ0FBQyxDQUFDLE9BQU8sWUFBWSxDQUFDLFlBQVksQ0FBQyxjQUFjLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxXQUFXLENBQUMsV0FBVyxDQUFDLHNCQUFzQixpQkFBaUIsQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxXQUFXLENBQUMsa0RBQWtELENBQUMsV0FBVyxDQUFDLHNCQUFzQixZQUFZLENBQUMsc0JBQXNCLENBQUMsc0JBQXNCLENBQUMsbUJBQW1CLGlCQUFpQixDQUFDLFlBQVksQ0FBQyxlQUFlLENBQUMsaUJBQWlCLENBQUMsZUFBZSxDQUFDLGlCQUFpQixDQUFDLGVBQWUsQ0FBQywwQkFBMEIsQ0FBQyxpQkFBaUIsQ0FBQyxrQkFBa0IsQ0FBQyxhQUFhLENBQUMsY0FBYyxDQUFDLHFCQUFxQixDQUFDLHNCQUFzQixDQUFDLGdDQUFnQyxDQUFDLHNDQUFzQyxTQUFTLENBQUMsNENBQTRDLDZCQUE2QixDQUFDLGlCQUFpQixDQUFDLDRDQUE0QyxnQ0FBZ0MsQ0FBQyxpQkFBaUIsQ0FBQyxrREFBa0QsZ0NBQWdDLENBQUMsd0JBQXdCLFlBQVksQ0FBQyxvQkFBb0IsaUJBQWlCLENBQUMsY0FBYyxDQUFDLFFBQVEsQ0FBQyxVQUFVLENBQUMsMkJBQTJCLENBQUMsb0JBQW9CLENBQUMsb0JBQW9CLENBQUMsMEJBQTBCLGFBQWEsQ0FBQyxzQkFBc0IsWUFBWSxDQUFDLGdCQUFnQixDQUFDLFdBQVcsQ0FBQyxjQUFjLENBQUMsYUFBYSxDQUFDLHlCQUF5QixVQUFVLENBQUMsZUFBZSxDQUFDLGdCQUFnQixDQUFDLGtCQUFrQixDQUFDLHlCQUF5QixVQUFVLENBQUMsZUFBZSxDQUFDLHdCQUF3QixDQUFDLHlCQUF5QixnQkFBZ0IsQ0FBQyxhQUFhLENBQUMsaURBQWlELGVBQWUsQ0FBQyxrQkFBa0IsQ0FBQywrREFBK0QsZUFBZSxDQUFDLGFBQWEsQ0FBQywyREFBMkQsbUJBQW1CLENBQUMsaUJBQWlCLENBQUMsMkJBQTJCLENBQUMsMkNBQTJDLENBQUMsZUFBZSxDQUFDLGlCQUFpQixDQUFDLHdCQUF3QixhQUFhLENBQUMsZUFBZSxDQUFDLG9CQUFvQixDQUFDLG9CQUFvQixDQUFDLDhCQUE4QixVQUFVLENBQUMsaUJBQWlCLFlBQVksQ0FBQyxxQkFBcUIsQ0FBQyxjQUFjLENBQUMsV0FBVyxDQUFDLDBCQUEwQixDQUFDLDJCQUEyQixZQUFZLENBQUMsY0FBYyxDQUFDLGtCQUFrQixDQUFDLGlDQUFpQyxDQUFDLGlCQUFpQixDQUFDLHFDQUFxQyxXQUFXLENBQUMsc0RBQXNELGlCQUFpQixDQUFDLDhCQUE4QiwwQkFBMEIsQ0FBQyxTQUFTLENBQUMsZUFBZSxDQUFDLHVDQUF1QyxvQkFBb0IsQ0FBQyxnREFBZ0QsaUJBQWlCLENBQUMsb0JBQW9CLENBQUMsYUFBYSxDQUFDLFlBQVksQ0FBQyx3QkFBd0IsQ0FBQyxpQkFBaUIsQ0FBQyw4QkFBOEIsQ0FBQyxpQ0FBaUMsQ0FBQyx3Q0FBd0MsQ0FBQyx1QkFBdUIsQ0FBQyxjQUFjLENBQUMsc0RBQXNELFVBQVUsQ0FBQyxpQkFBaUIsQ0FBQyxhQUFhLENBQUMsWUFBWSxDQUFDLFdBQVcsQ0FBQyxVQUFVLENBQUMsV0FBVyxDQUFDLGlCQUFpQixDQUFDLGdDQUFnQyxDQUFDLFNBQVMsQ0FBQyxzQkFBc0IsQ0FBQyw4REFBOEQsU0FBUyxDQUFDLGlCQUFpQixZQUFZLENBQUMsa0JBQWtCLENBQUMsbUJBQW1CLG9CQUFvQixDQUFDLFVBQVUsQ0FBQyxrQkFBa0IsQ0FBQyxpQkFBaUIsQ0FBQyx5QkFBeUIsWUFBWSxDQUFDLDBCQUEwQixDQUFDLGlCQUFpQixDQUFDLFdBQVcsQ0FBQyxPQUFPLENBQUMsZ0JBQWdCLENBQUMsZUFBZSxDQUFDLGFBQWEsQ0FBQywrQkFBK0IsYUFBYSxDQUFDLHNKQUFzSixvQkFBb0IsQ0FBQyx3S0FBd0ssb0JBQW9CLENBQUMsMkNBQTJDLENBQUMsb0lBQW9JLHFDQUFxQyxDQUFDLGVBQWUsQ0FBQyxrQkFBa0IsQ0FBQyxpQkFBaUIsQ0FBQyx3QkFBd0IsQ0FBQyxZQUFZLENBQUMsVUFBVSxDQUFDLFVBQVUsQ0FBQyxzQ0FBc0MsQ0FBQyx1QkFBdUIsQ0FBQyx5Q0FBeUMsQ0FBQyxzSkFBc0osWUFBWSxDQUFDLG9CQUFvQixDQUFDLDJDQUEyQyxDQUFDLGlCQUFpQixDQUFDLDRMQUEySyw0QkFBNEIsQ0FBQyxrQkFBa0IsQ0FBQyxpQkFBaUIsQ0FBNU8sMktBQTJLLDRCQUE0QixDQUFDLGtCQUFrQixDQUFDLGlCQUFpQixDQUFDLG9FQUFvRSxtQkFBbUIsQ0FBQyxzRUFBc0UsZ0JBQWdCLENBQUMsU0FBUyxDQUFDLGNBQWMsaUJBQWlCLENBQUMsb0JBQW9CLENBQUMsYUFBYSxDQUFDLFlBQVksQ0FBQyxpQ0FBaUMsQ0FBQyxzQkFBc0IsQ0FBQyx1QkFBdUIsQ0FBQyxpQkFBaUIsQ0FBQyxjQUFjLENBQUMsd0NBQXdDLENBQUMsd0JBQWUsQ0FBZixxQkFBZSxDQUFmLGdCQUFnQixDQUFDLDJCQUEyQixvQkFBb0IsQ0FBQyxTQUFTLENBQUMsa0JBQWtCLENBQUMsU0FBUyxDQUFDLGNBQWMsQ0FBQyx3Q0FBd0MsVUFBVSxDQUFDLGFBQWEsQ0FBQyxpQkFBaUIsQ0FBQyxZQUFZLENBQUMsV0FBVyxDQUFDLGlCQUFpQixDQUFDLGtCQUFrQixDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDLHdDQUF3QyxDQUFDLGtCQUFrQixDQUFDLGdEQUFnRCxTQUFTLENBQUMsd0NBQXdDLENBQUMsbURBQW1ELGNBQWMsQ0FBQyxxQkFBcUIsQ0FBQyxpQkFBaUIsQ0FBQyxlQUFlLENBQUMsZUFBZSxDQUFDLGtCQUFrQixDQUFDLGlDQUFpQyxDQUFDLGtCQUFrQixDQUFDLGtCQUFrQixDQUFDLGtFQUFrRSxjQUFjLENBQUMsVUFBVSxDQUFDLGtEQUFrRCxDQUFDLG1CQUFtQixrQkFBa0IsQ0FBQyxrQkFBa0IsU0FBUyxDQUFDLGVBQWUsQ0FBQyxlQUFlLENBQUMsWUFBWSxDQUFDLDZCQUE2QixDQUFDLGtCQUFrQixDQUFDLGlCQUFpQixzQkFBc0IsQ0FBQyxnQkFBZ0IsQ0FBQyxpQkFBaUIsQ0FBQyxnQkFBZ0IsQ0FBQyxTQUFTLENBQUMsMkJBQTJCLENBQUMsaUNBQWlDLENBQUMsaUJBQWlCLENBQUMsY0FBYyxDQUFDLG9CQUFvQixDQUFDLDRCQUE0QixjQUFjLENBQUMsdUJBQXVCLGFBQWEsQ0FBQyx3QkFBd0IsVUFBVSxDQUFDLGtEQUFrRCxDQUFDLGdDQUFnQyxjQUFjLENBQUMsaUNBQWlDLFlBQVksQ0FBQyxXQUFXLENBQUMsdUJBQXVCLGFBQWEsQ0FBQyx5QkFBeUIsWUFBWSxDQUFDLDBCQUEwQixnQ0FBZ0MsWUFBWSxDQUFDLGlDQUFpQyxjQUFjLENBQUMsQ0FBQyxxQkFBcUIsWUFBWSxDQUFDLG1CQUFtQixDQUFDLGVBQWUsQ0FBQyxnQkFBZ0IsZUFBZSxDQUFDLHFDQUFxQyxDQUFDLGVBQWUsQ0FBQyxrQkFBa0IsQ0FBQyxpQkFBaUIsQ0FBQyx3QkFBd0IsQ0FBQyxlQUFlLENBQUMsWUFBWSxDQUFDLFVBQVUsQ0FBQyxXQUFXLENBQUMsVUFBVSxDQUFDLHNDQUFzQyxDQUFDLHVCQUF1QixDQUFDLHlDQUF5QyxDQUFDLHNCQUFzQixZQUFZLENBQUMsb0JBQW9CLENBQUMsMkNBQTJDLENBQUMsaUJBQWlCLENBQUMsa0NBQTZCLDRCQUE0QixDQUFDLGtCQUFrQixDQUFDLGlCQUFpQixDQUE5Riw2QkFBNkIsNEJBQTRCLENBQUMsa0JBQWtCLENBQUMsaUJBQWlCLENBQUMsNEJBQTRCLHNCQUFzQixDQUFDLGtEQUFrRCxDQUFDLFdBQVcsQ0FBQyxpQkFBaUIsQ0FBQyxVQUFVLENBQUMsZUFBZSxDQUFDLFNBQVMsQ0FBQyxzQkFBc0IsQ0FBQyxTQUFTLENBQUMsa0NBQWtDLFNBQVMsQ0FBQyx1QkFBdUIsaUJBQWlCLENBQUMsa0RBQWtELENBQUMsaUJBQWlCLENBQUMsVUFBVSxDQUFDLGVBQWUsQ0FBQyw4QkFBOEIsZ0JBQWdCLENBQUMsaUJBQWlCLENBQUMsbUJBQW1CLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxzQkFBc0IsQ0FBQyxTQUFTLENBQUMsa0JBQWtCLGtCQUFrQixDQUFDLHNCQUFzQixDQUFDLGdDQUFnQyxDQUFDLDRCQUE0QixDQUFDLGlCQUFpQixDQUFDLGNBQWMsQ0FBQyxvQkFBb0IsQ0FBQyx3QkFBd0IsYUFBYSxDQUFDLDBCQUEwQixpQkFBaUIsQ0FBQyx5Q0FBeUMsaUJBQWlCLENBQUMsWUFBWSxDQUFDLHNCQUFzQixDQUFDLGtCQUFrQixDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDLFdBQVcsQ0FBQyx3QkFBd0IsQ0FBQyx1QkFBdUIsU0FBUyxDQUFDLCtCQUErQixhQUFhLENBQUMsa0JBQWtCLFVBQVUsQ0FBQyxnQkFBZ0IsQ0FBQyxpQkFBaUIsQ0FBQyxlQUFlLENBQUMsNEJBQTRCLENBQUMsb0JBQW9CLGlCQUFpQixDQUFDLCtCQUErQixlQUFlLENBQUMsNkNBQTZDLFlBQVksQ0FBQyxxQkFBcUIsQ0FBQyxXQUFXLENBQUMsa0RBQWtELGlCQUFpQixDQUFDLGVBQWUsQ0FBQyw2Q0FBNkMsWUFBWSxDQUFDLDZCQUE2QixDQUFDLDRDQUE0QyxZQUFZLENBQUMsa0JBQWtCLENBQUMsNkJBQTZCLENBQUMsa0JBQWtCLENBQUMsZ0JBQWdCLENBQUMsK0JBQStCLENBQUMsdURBQXVELDRCQUE0QixDQUFDLG9FQUFvRSxrQkFBa0IsQ0FBQyxnQkFBZ0IsQ0FBQyxrQ0FBa0MsaUJBQWlCLENBQUMsNkVBQTZFLGlCQUFpQixDQUFDLHVDQUF1QyxrQkFBa0IsQ0FBQyxxQ0FBcUMsQ0FBQyxhQUFhLENBQUMseUJBQXlCLENBQUMsaUJBQWlCLENBQUMsa0JBQWtCLENBQUMsZUFBZSxDQUFDLGlCQUFpQixDQUFDLDJDQUEyQyxlQUFlLENBQUMsVUFBVSxDQUFDLGlEQUFpRCxVQUFVLENBQUMsZUFBZSxDQUFDLHNEQUFzRCxXQUFXLENBQUMsMkJBQTJCLENBQUMsa0JBQWtCLENBQUMsa0RBQWtELGdCQUFnQixDQUFDLGdCQUFnQixDQUFDLGFBQWEsQ0FBQywwREFBMEQsYUFBYSxDQUFDLDBDQUEwQyxpQkFBaUIsQ0FBQyxTQUFTLENBQUMsZUFBZSxDQUFDLDZDQUE2QyxpQkFBaUIsQ0FBQyw0QkFBNEIsQ0FBQyxpRUFBaUUsa0JBQWtCLENBQUMsMENBQTBDLGlCQUFpQixDQUFDLDJDQUEyQyxxQkFBcUIsQ0FBQyxpQkFBaUIsQ0FBQyxpQkFBaUIsQ0FBQyxpQkFBaUIsQ0FBQyw0QkFBNEIsQ0FBQyxnQ0FBZ0MsVUFBVSxDQUFDLGVBQWUsQ0FBQyxrQ0FBa0Msb0JBQW9CLENBQUMsc0NBQXNDLGlCQUFpQixDQUFDLG9CQUFvQixDQUFDLHNCQUFzQixDQUFDLHNCQUFzQixDQUFDLHFCQUFxQixDQUFDLGlCQUFpQixDQUFDLHdCQUF3QixDQUFDLHFCQUFxQixDQUFDLGNBQWMsQ0FBQyxXQUFXLENBQUMsU0FBUyxDQUFDLGtEQUFrRCxDQUFDLDRDQUE0QyxVQUFVLENBQUMsaUJBQWlCLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLFdBQVcsQ0FBQyxpQkFBaUIsQ0FBQyxrREFBa0QsQ0FBQyxTQUFTLENBQUMsc0JBQXNCLENBQUMsVUFBVSxDQUFDLDRDQUE0QyxjQUFjLENBQUMsa0RBQWtELFNBQVMsQ0FBQywwQkFBMEIsT0FBTyxhQUFhLENBQUMsZUFBZSxDQUFDLG1CQUFtQiwyQkFBMkIsQ0FBQyxDQUFDLHNCQUFzQixpQkFBaUIsQ0FBQyxVQUFVLENBQUMsV0FBVyxDQUFDLFFBQVEsYUFBYSxDQUFDLGlCQUFpQixDQUFDLDRDQUE0QyxDQUFDLDhDQUE4QyxDQUFDLCtDQUErQyxDQUFDLCtCQUErQixDQUFDLHVCQUF1QixDQUFDLG1DQUFtQyxDQUFDLGlCQUFpQixHQUFrQyxzQkFBc0IsQ0FBQyxLQUFzQyx3QkFBd0IsQ0FBQyxDQUFDLGlCQUFpQixnQ0FBZ0MsQ0FBQyxrREFBa0QsQ0FBQyxpQkFBaUIsQ0FBQyxnQkFBZ0IsQ0FBQyxpQkFBaUIsQ0FBQyxlQUFlLENBQUMsVUFBVSxDQUFDLDBDQUEwQyxDQUFDLFdBQVcsQ0FBQyw4QkFBOEIsQ0FBQyxZQUFZLENBQUMsbUJBQW1CLGlCQUFpQixDQUFDLFFBQVEsQ0FBQyx5QkFBeUIsVUFBVSxDQUFDLGlCQUFpQixDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsa0JBQWtCLENBQUMseUJBQXlCLGNBQWMsQ0FBQyxzQkFBc0Isb0JBQW9CLENBQUMsaUJBQWlCLENBQUMsbUJBQW1CLENBQUMsZUFBZSxDQUFDLG9CQUFvQixDQUFDLGlDQUFpQyxDQUFDLGtCQUFrQixDQUFDLHdCQUF3QixpQkFBaUIsQ0FBQywyQkFBMkIsQ0FBQyxvQkFBb0IsQ0FBQyw4QkFBOEIsMkJBQTJCLENBQUMsd0NBQXdDLGlCQUFpQixDQUFDLFFBQVEsQ0FBQyxZQUFZLENBQUMsZ0RBQWdELFNBQVMsQ0FBQyxhQUFhLENBQUMsMEJBQTBCLENBQUMsd0RBQXdELENBQUMsdURBQXVELGlCQUFpQixDQUFDLDBCQUEwQix1Q0FBdUMsVUFBVSxDQUFDLGFBQWEsQ0FBQywrQ0FBK0MsVUFBVSxDQUFDLFdBQVcsQ0FBQywwQkFBMEIsQ0FBQyx3REFBd0QsQ0FBQyxzREFBc0QsaUJBQWlCLENBQUMsQ0FBQyxrR0FBa0csb0JBQW9CLENBQUMsa0JBQWtCLENBQUMsc0JBQXNCLENBQUMsa0JBQWtCLENBQUMseUJBQXlCLENBQUMsb0JBQW9CLENBQUMsOEJBQThCLENBQUMsOE1BQThNLGdCQUFnQixDQUFDLGtCQUFrQixDQUFDLDRQQUE0UCxxQkFBcUIsQ0FBQyxnbkJBQWduQixVQUFVLENBQUMsOE1BQThNLGFBQWEsQ0FBQyxnSEFBZ0gsYUFBYSxDQUFDLHNHQUFzRyxVQUFVLENBQUMsNEhBQTRILHFFQUFxRSxDQUFDLGtIQUFrSCxhQUFhLENBQUMsd0lBQXdJLHdEQUF3RCxDQUFDLDRIQUE0SCxhQUFhLENBQUMsc05BQXNOLGFBQWEsQ0FBQyxrQkFBa0IsQ0FBQywwR0FBMEcsK0JBQStCLENBQUMsOEdBQThHLGFBQWEsQ0FBQywrQkFBK0IsQ0FBQywwSEFBMEgsa0RBQWtELENBQUMsMEpBQTBKLGtCQUFrQixDQUFDLHdIQUF3SCxtQ0FBbUMsQ0FBQyw0SEFBNEgsMkJBQTJCLENBQUMsa0tBQWtLLHNCQUFzQixDQUFDLDJCQUEyQixDQUFDLDhLQUE4SyxhQUFhLENBQUMsc0xBQXNMLGFBQWEsQ0FBQyxrQkFBa0IsQ0FBQyxvQkFBb0IsY0FBYyxDQUFDLFFBQVEsQ0FBQyxVQUFVLENBQUMsV0FBVyxDQUFDLHdCQUF3QixDQUFDLGVBQWUsQ0FBQywrQkFBK0IsQ0FBQyxrQ0FBa0MsWUFBWSxDQUFDLFdBQVcsQ0FBQyxTQUFTLENBQUMsaUJBQWlCLENBQUMsc0NBQXNDLENBQUMsaUJBQWlCLENBQUMsMENBQTBDLENBQUMsa0JBQWtCLENBQUMsVUFBVSxDQUFDLHlEQUF5RCxrQkFBa0IsQ0FBQyx3QkFBd0IsQ0FBQyxnRUFBZ0UsaUJBQWlCLENBQUMsdUNBQXVDLGdCQUFnQixDQUFDLHFEQUFxRCxnQkFBZ0IsQ0FBQyx3QkFBd0IsQ0FBQywyRUFBMkUsMkNBQTJDLENBQUMsbUJBQW1CLENBQUMsZ0VBQWdFLGVBQWUsQ0FBQyxrRUFBa0UsZUFBZSxDQUFDLHdEQUF3RCxpQkFBaUIsQ0FBQyxTQUFTLENBQUMsZ0JBQWdCLENBQUMsb0JBQW9CLENBQUMsaUZBQWlGLENBQUMsa1dBQWtXLG9CQUFvQixDQUFDLDBhQUEwYSxZQUFZLENBQUMsc0RBQXNELGlCQUFpQixDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsZ0JBQWdCLENBQUMsY0FBYyxDQUFDLG9CQUFvQixDQUFDLGdCQUFnQixDQUFDLDJCQUEyQixDQUFDLDREQUE0RCxVQUFVLENBQUMsd0NBQXdDLGlCQUFpQixDQUFDLFdBQVcsQ0FBQyxZQUFZLENBQUMsd0JBQXdCLENBQUMsZUFBZSxDQUFDLGdCQUFnQixDQUFDLFdBQVcsQ0FBQyxzQkFBc0IsQ0FBQyw4Q0FBOEMsY0FBYyxDQUFDLFNBQVMsQ0FBQywrQ0FBK0MsbUJBQW1CLENBQUMsdUNBQXVDLGtEQUFrRCxDQUFDLCtDQUErQyxhQUFhLENBQUMsNENBQTRDLGFBQWEsQ0FBQyw2QkFBNkIsQ0FBQywyQ0FBMkMsNkJBQTZCLENBQUMsdUNBQXVDLG1EQUFtRCxDQUFDLCtDQUErQyxhQUFhLENBQUMsNENBQTRDLGFBQWEsQ0FBQyw4QkFBOEIsQ0FBQywyQ0FBMkMsOEJBQThCLENBQUMsa0RBQWtELHlEQUF5RCxDQUFDLHFCQUFxQixDQUFDLDBEQUEwRCxhQUFhLENBQUMsdURBQXVELGFBQWEsQ0FBQyw2QkFBNkIsQ0FBQyxzREFBc0QsNkJBQTZCLENBQUMscURBQXFELDJCQUEyQixDQUFDLHFFQUFxRSxpQkFBaUIsQ0FBQywwRUFBMEUsb0JBQW9CLENBQUMsZUFBZSxDQUFDLGFBQWEsQ0FBQyxrQkFBa0IsQ0FBQyxpQkFBaUIsQ0FBQyxjQUFjLENBQUMsOE5BQThOLGVBQWUsQ0FBQyxvQkFBb0IsQ0FBQyxzU0FBc1MsWUFBWSxDQUFDLDBFQUEwRSxnQkFBZ0IsQ0FBQyxxQ0FBcUMsaUJBQWlCLENBQUMscUNBQXFDLGdCQUFnQixDQUFDLHFDQUFxQyxnQkFBZ0IsQ0FBQyxxQ0FBcUMsaUJBQWlCLENBQUMsaUJBQWlCLENBQUMseUVBQXlFLGtCQUFrQixDQUFDLG9DQUFvQyxpQkFBaUIsQ0FBQyxvQ0FBb0MsZ0JBQWdCLENBQUMsb0JBQW9CLENBQUMsVUFBVSxDQUFDLG9CQUFvQixDQUFDLDBFQUEwRSxtQkFBbUIsQ0FBQyx1Q0FBdUMsb0JBQW9CLENBQUMsaUJBQWlCLENBQUMsZ0JBQWdCLENBQUMsc0NBQXNDLFlBQVksQ0FBQyxpQkFBaUIsQ0FBQyxlQUFlLENBQUMsMkNBQTJDLGlDQUFpQyxDQUFDLHFDQUFxQyxzQkFBc0IsQ0FBQyxtQkFBbUIsQ0FBQyxrQ0FBa0MsQ0FBQyw2REFBNkQsaUJBQWlCLENBQUMsNERBQTRELFlBQVksQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDLFNBQVMsQ0FBQyxtQkFBbUIsQ0FBQyxvREFBb0QsbUJBQW1CLENBQUMsNkNBQTZDLHFCQUFxQixDQUFDLHdCQUF3QixDQUFDLGdCQUFnQixDQUFDLGlCQUFpQixDQUFDLHFDQUFxQyxDQUFDLGtCQUFrQixDQUFDLGdEQUFnRCxpQkFBaUIsQ0FBQywwQkFBMEIsb0JBQW9CLFFBQVEsQ0FBQyxDQUFDLFdBQVcsaUJBQWlCLENBQUMsZUFBZSxpQkFBaUIsQ0FBQyxZQUFZLENBQUMscUJBQXFCLENBQUMsb0JBQW9CLENBQUMsU0FBUyxDQUFDLFdBQVcsQ0FBQyxxQ0FBcUMscUJBQXFCLENBQUMsb0JBQW9CLENBQUMsaUJBQWlCLENBQUMsYUFBYSxDQUFDLFVBQVUsQ0FBQyxzQkFBc0IsQ0FBQyxpQkFBaUIsQ0FBQyxhQUFhLENBQUMsY0FBYyxDQUFDLDJDQUEyQyxTQUFTLENBQUMsc0NBQXNDLENBQUMsMEJBQTBCLENBQUMsdUNBQXVDLGVBQWUsQ0FBQyxhQUFhLENBQUMsUUFBUSxDQUFDLGlCQUFpQixDQUFDLHVDQUF1QyxDQUFDLDBCQUEwQixDQUFDLFlBQVksQ0FBQywwQ0FBMEMsUUFBUSxDQUFDLHlCQUF5QixDQUFDLGlCQUFpQixDQUFDLGFBQWEsQ0FBQyxnQkFBZ0IsQ0FBQyxhQUFhLENBQUMsY0FBYyxDQUFDLGdEQUFnRCx1Q0FBdUMsQ0FBQyxrSUFBa0ksbUJBQW1CLENBQUMsNkRBQTZELDJDQUEyQyxDQUFDLGtCQUFrQixDQUFDLHFDQUFxQyxDQUFDLHFFQUFxRSw2Q0FBNkMsQ0FBQyxnQkFBZ0IsQ0FBQyxvRUFBb0UsYUFBYSxDQUFDLDJDQUEyQyxDQUFDLGdCQUFnQixDQUFDLDBDQUEwQyxZQUFZLENBQUMsMENBQTBDLGFBQWEsQ0FBQyxpQkFBaUIsWUFBWSxDQUFDLFlBQVksQ0FBQyxjQUFjLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsV0FBVyxDQUFDLFlBQVksQ0FBQyxrQkFBa0IsQ0FBQywwQkFBMEIsQ0FBQyxtQ0FBbUMsY0FBYyxDQUFDLGFBQWEsQ0FBQyxZQUFZLENBQUMsU0FBUyxDQUFDLGFBQWEsQ0FBQyxhQUFhLENBQUMsY0FBYyxDQUFDLG9CQUFvQixDQUFDLGtCQUFrQixDQUFDLGlCQUFpQixDQUFDLHdDQUF3QyxXQUFXLENBQUMsdUJBQXVCLENBQUMsOENBQThDLFNBQVMsQ0FBQyxxQkFBcUIsYUFBYSxDQUFDLG1CQUFtQixDQUFDLHFDQUFxQyxDQUFDLG1EQUFtRCxrQkFBa0IsQ0FBQyxxQ0FBcUMsQ0FBQyxhQUFhLENBQUMseUZBQXlGLHlCQUF5QixDQUFDLGlCQUFpQixDQUFDLGFBQWEsQ0FBQyxrQkFBa0IsQ0FBQyxjQUFjLENBQUMsaUJBQWlCLENBQUMsOEtBQThLLDBCQUEwQixDQUFDLDZCQUE2QixDQUFDLDRCQUE0QixDQUFDLDhCQUE4QixDQUFDLHFDQUFxQyxDQUFDLHdCQUF3QixDQUFDLDRCQUE0QixrQkFBa0IsQ0FBQyxvQkFBb0IsQ0FBQyxpQkFBaUIsQ0FBQyxhQUFhLENBQUMsa0NBQWtDLFVBQVUsQ0FBQyxpQkFBaUIsQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxrQkFBa0IsQ0FBQyw0QkFBNEIsQ0FBQyxxRUFBcUUsQ0FBQyxxQkFBcUIsQ0FBQyxrQ0FBa0MsVUFBVSxDQUFDLHdDQUF3QyxxREFBcUQsQ0FBQyx5QkFBeUIscUJBQXFCLENBQUMsK0JBQStCLENBQUMsaUJBQWlCLENBQUMsaUJBQWlCLENBQUMsaUJBQWlCLENBQUMsY0FBYyxDQUFDLDhCQUE4QixTQUFTLENBQUMsa0JBQWtCLENBQUMsZUFBZSxDQUFDLDhCQUE4QixtQkFBbUIsQ0FBQywyQkFBMkIsQ0FBQyxpQkFBaUIsQ0FBQyxVQUFVLENBQUMscUNBQXFDLENBQUMsZ0JBQWdCLENBQUMsY0FBYyxDQUFDLGtDQUFrQyxrQkFBa0IsQ0FBQyxtQ0FBbUMsa0JBQWtCLENBQUMsb0NBQW9DLGtCQUFrQixDQUFDLHFDQUFxQyxrQkFBa0IsQ0FBQyxrQ0FBa0Msa0JBQWtCLENBQUMsd0NBQXdDLGlCQUFpQixDQUFDLGFBQWEsQ0FBQyxvQkFBb0IsQ0FBQyw4Q0FBOEMsZUFBZSxDQUFDLGlCQUFpQixDQUFDLGNBQWMsQ0FBQyxXQUFXLENBQUMsd0JBQXdCLENBQUMsVUFBVSxDQUFDLG9CQUFvQixDQUFDLGdCQUFnQixDQUFDLGFBQWEsQ0FBQyxTQUFTLENBQUMsc0JBQXNCLENBQUMsOENBQThDLFVBQVUsQ0FBQyxvREFBb0QsVUFBVSxDQUFDLDhFQUE4RSxnQkFBZ0IsQ0FBQyxlQUFlLENBQUMsMEZBQTBGLGFBQWEsQ0FBQyw4RkFBOEYsYUFBYSxDQUFDLDRGQUE0RixhQUFhLENBQUMsd0xBQXdMLDRCQUE0QixDQUFDLCtDQUErQyxjQUFjLENBQUMsaUJBQWlCLENBQUMsaUVBQWlFLG9CQUFvQixDQUFDLGVBQWUsQ0FBQyxTQUFTLENBQUMsaUJBQWlCLENBQUMsYUFBYSxDQUFDLGtCQUFrQixDQUFDLGlCQUFpQixDQUFDLHdCQUF3QixDQUFDLG9CQUFvQixDQUFDLGNBQWMsQ0FBQyw2RkFBNkYsaUJBQWlCLENBQUMscUdBQXFHLGlCQUFpQixDQUFDLGNBQWMsQ0FBQyxzQkFBc0IsQ0FBQyxXQUFXLENBQUMsVUFBVSxDQUFDLHVFQUF1RSxhQUFhLENBQUMsMkdBQTJHLFNBQVMsQ0FBQyxtRUFBbUUsaUJBQWlCLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxTQUFTLENBQUMsYUFBYSxDQUFDLDBGQUEwRixVQUFVLENBQUMsY0FBYyxDQUFDLHdCQUF3QixDQUFDLGlCQUFpQixDQUFDLHdCQUF3QixDQUFDLHdCQUF3QixDQUFDLGFBQWEsQ0FBQyxrQkFBa0IsQ0FBQyxnR0FBZ0csWUFBWSxDQUFDLGtDQUFrQyxDQUFDLDJDQUEyQyxDQUFDLGlCQUFpQixDQUFDLHlFQUF5RSxjQUFjLENBQUMseUVBQXlFLGVBQWUsQ0FBQyxhQUFhLENBQUMsd0JBQXdCLENBQUMsYUFBYSxDQUFDLGlCQUFpQixDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUMsZ0RBQWdELHdCQUF3QixDQUFDLCtDQUErQyxnQkFBZ0IsQ0FBQyxpQkFBaUIsQ0FBQyxnQkFBZ0IsQ0FBQyxzQkFBc0IsQ0FBQyxxQkFBcUIsQ0FBQyxvQkFBb0IsQ0FBQyxtQkFBbUIsQ0FBQyx1QkFBdUIsQ0FBQyxzQkFBc0IsQ0FBQyxxREFBcUQsd0JBQXdCLENBQUMsMEJBQTBCLENBQUMsK0JBQStCLENBQUMsbURBQW1ELHNCQUFzQixDQUFDLHdCQUF3QixDQUFDLDZCQUE2QixDQUFDLHNEQUFzRCx5QkFBeUIsQ0FBQywyQkFBMkIsQ0FBQyxnQ0FBZ0MsQ0FBQywwQkFBMEIseUJBQXlCLDBCQUEwQixDQUFDLENBQUMscUJBQXFCLFlBQVksQ0FBQyxVQUFVLENBQUMsc0JBQXNCLENBQUMsa0JBQWtCLENBQUMsY0FBYyxDQUFDLFVBQVUsQ0FBQyxZQUFZLENBQUMsV0FBVyxDQUFDLDBCQUEwQixDQUFDLCtCQUErQixDQUFDLDBCQUEwQixLQUFLLENBQUMseUNBQXlDLGtEQUFrRCxDQUFDLGlCQUFpQixDQUFDLGVBQWUsQ0FBQyxrQkFBa0IsQ0FBQyxpQkFBaUIsQ0FBQyx5Q0FBeUMsY0FBYyxDQUFDLFVBQVUsQ0FBQyw0Q0FBNEMsaUJBQWlCLENBQUMsUUFBUSxDQUFDLDhDQUE4QyxZQUFZLENBQUMsa0JBQWtCLENBQUMsZ0RBQWdELDRCQUE0QixDQUFDLG1CQUFtQixDQUFDLHVEQUF1RCxVQUFVLENBQUMsZ0VBQWdFLGlCQUFpQixDQUFDLGFBQWEsQ0FBQyxnQkFBZ0IsQ0FBQyxvQkFBb0IsQ0FBQyxrQkFBa0IsQ0FBQyxzRUFBc0UsaUJBQWlCLENBQUMsYUFBYSxDQUFDLFVBQVUsQ0FBQyx5QkFBeUIsQ0FBQyxhQUFhLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsb0JBQW9CLENBQUMsc0VBQXNFLFVBQVUsQ0FBQyw0RUFBNEUsVUFBVSxDQUFDLHFFQUFxRSxpQkFBaUIsQ0FBQyxnQkFBZ0IsQ0FBQywyQ0FBMkMsQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDLGVBQWUsQ0FBQyx1RUFBdUUsWUFBWSxDQUFDLGdCQUFnQixDQUFDLGlCQUFpQixDQUFDLGtCQUFrQixDQUFDLHVFQUF1RSxpQkFBaUIsQ0FBQyxVQUFVLENBQUMsb0JBQW9CLENBQUMsZ0JBQWdCLENBQUMsNkVBQTZFLGlCQUFpQixDQUFDLGFBQWEsQ0FBQyxVQUFVLENBQUMseUJBQXlCLENBQUMsYUFBYSxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLG9CQUFvQixDQUFDLG1GQUFtRixVQUFVLENBQUMsa0VBQWtFLG9CQUFvQixDQUFDLG9CQUFvQixDQUFDLGlCQUFpQixDQUFDLGtCQUFrQixDQUFDLGFBQWEsQ0FBQyxnQkFBZ0IsQ0FBQyxnQkFBZ0IsQ0FBQyxpQkFBaUIsQ0FBQywyRkFBMkYsYUFBYSxDQUFDLGFBQWEsQ0FBQyxrQkFBa0IsQ0FBQyxrQkFBa0IsQ0FBQywyR0FBMkcsa0JBQWtCLENBQUMscUNBQXFDLENBQUMsaUJBQWlCLENBQUMseUNBQXlDLGFBQWEsQ0FBQyxnQkFBZ0IsQ0FBQyxZQUFZLENBQUMscUJBQXFCLENBQUMsc0JBQXNCLENBQUMsb0JBQW9CLENBQUMsd0NBQXdDLGFBQWEsQ0FBQyxZQUFZLENBQUMsbUJBQW1CLENBQUMsaUJBQWlCLENBQUMscUJBQXFCLENBQUMsaUJBQWlCLENBQUMsb0JBQW9CLENBQUMsYUFBYSxDQUFDLDJDQUEyQyxDQUFDLG9DQUFvQyxDQUFDLDhDQUE4QyxhQUFhLENBQUMseUNBQXlDLENBQUMsK0NBQStDLGNBQWMsQ0FBQywwQ0FBMEMsaUJBQWlCLENBQUMsVUFBVSxDQUFDLFlBQVksQ0FBQyxVQUFVLENBQUMsY0FBYyxDQUFDLFdBQVcsQ0FBQyxzQkFBc0IsQ0FBQyxnREFBZ0QsU0FBUyxDQUFDLGNBQWMsQ0FBQywyQkFBMkIsZ0JBQWdCLENBQUMsYUFBYSxDQUFDLGlCQUFpQixDQUFDLGdCQUFnQixDQUFDLGlCQUFpQixDQUFDLGlCQUFpQixDQUFDLGNBQWMsQ0FBQyxxQkFBZ0IsQ0FBaEIsZ0JBQWdCLENBQUMsd0JBQXdCLENBQUMscUNBQXFDLG9CQUFvQixDQUFDLFVBQVUsQ0FBQyxXQUFXLENBQUMseUNBQXlDLENBQUMscUJBQXFCLENBQUMsaUJBQWlCLENBQUMsaUJBQWlCLENBQUMsNENBQTRDLFVBQVUsQ0FBQyxvQkFBb0IsQ0FBQyxTQUFTLENBQUMsVUFBVSxDQUFDLDZDQUE2QyxDQUFDLDhDQUE4QyxDQUFDLGlCQUFpQixDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsc0RBQXNELENBQUMsbUJBQW1CLENBQUMsaUNBQWlDLGlCQUFpQixDQUFDLFNBQVMsQ0FBQyxpQkFBaUIsQ0FBQyxtREFBbUQsbUNBQW1DLENBQUMsMERBQTBELHNEQUFzRCxDQUFDLDBDQUEwQyxlQUFlLENBQUMsb0JBQW9CLENBQUMscUJBQXFCLENBQUMsMEJBQTBCLDhDQUE4QyxxQkFBcUIsQ0FBQyw0Q0FBNEMscUJBQXFCLENBQUMseUNBQXlDLGFBQWEsQ0FBQyxDQUFDLDJCQUEyQiw0QkFBNEIsQ0FBQyw4QkFBOEIsQ0FBQyxzQkFBc0IsQ0FBQyxxQkFBcUIsQ0FBQyxnQkFBZ0IsQ0FBQywyQ0FBMkMsVUFBVSxDQUFDLHNCQUFzQixDQUFDLGVBQWUsQ0FBQyxlQUFlLENBQUMsOENBQThDLGFBQWEsQ0FBQyxzQkFBc0IsQ0FBQyxnQkFBZ0IsQ0FBQyxXQUFXLENBQUMscUNBQXFDLHVCQUF1QixDQUFDLFVBQVUsQ0FBQyxrQkFBa0IsQ0FBQyxpQkFBaUIsQ0FBQyxlQUFlLENBQUMsbURBQW1ELFdBQVcsQ0FBQyxrQkFBa0IsQ0FBQyx5Q0FBeUMsQ0FBQywrQ0FBK0MsZ0JBQWdCLENBQUMseURBQXlELFlBQVksQ0FBQyx5Q0FBeUMsQ0FBQyxnRUFBZ0UsYUFBYSxDQUFDLHdFQUF3RSxlQUFlLENBQUMsVUFBVSxDQUFDLHFCQUFxQixDQUFDLGVBQWUsQ0FBQyxzT0FBc08sV0FBVyxDQUFDLGtDQUFrQyxDQUFDLGNBQWMsQ0FBQyxxQ0FBcUMsQ0FBQyxtQkFBbUIsQ0FBQyxvUUFBb1EseUJBQXlCLENBQUMsa0JBQWtCLENBQUMsMENBQTBDLGFBQWEsQ0FBQyxVQUFVLENBQUMsZUFBZSxDQUFDLHFCQUFxQixDQUFDLHlCQUF5QixDQUFDLGtCQUFrQixDQUFDLGFBQWEsQ0FBQyx3QkFBd0IsQ0FBQyxjQUFjLENBQUMsZ0RBQWdELG9CQUFvQixDQUFDLGtCQUFrQixDQUFDLHlCQUF5QixDQUFDLGlEQUFpRCx5QkFBeUIsQ0FBQywwQ0FBMEMsa0JBQWtCLENBQUMsVUFBVSxDQUFDLHNCQUFzQixDQUFDLGNBQWMsQ0FBQyxlQUFlLENBQUMsZ0RBQWdELGtCQUFrQixDQUFDLFVBQVUsQ0FBQyxtREFBbUQsa0JBQWtCLENBQUMsa0JBQWtCLENBQUMsbUZBQW1GLGtCQUFrQixDQUFDLFVBQVUsQ0FBQywyQ0FBMkMsQ0FBQyxjQUFjLENBQUMsOEJBQThCLENBQUMsK0ZBQStGLGtCQUFrQixDQUFDLDJDQUEyQyw0QkFBNEIsQ0FBQyxjQUFjLENBQUMsa0ZBQWtGLFVBQVUsQ0FBQyx3QkFBd0IsQ0FBQyxrQ0FBa0MsQ0FBQyw4Q0FBOEMsQ0FBQyxrQkFBa0IsQ0FBQyxhQUFhLENBQUMsOEZBQThGLFlBQVksQ0FBQyxvQkFBb0IsQ0FBQyx3Q0FBd0MsK0JBQStCLENBQUMsOENBQThDLGFBQWEsQ0FBQyxvQkFBb0IsQ0FBQyxhQUFhLENBQUMsZUFBZSxDQUFDLDhDQUE4QyxlQUFlLENBQUMsY0FBYyxDQUFDLG9DQUFvQyx5QkFBeUIsQ0FBQyxzREFBc0QsQ0FBQyxjQUFjLENBQUMsZUFBZSxDQUFDLGdCQUFnQixDQUFDLHNEQUFpRCwyQkFBMkIsQ0FBQyxTQUFTLENBQXRGLGlEQUFpRCwyQkFBMkIsQ0FBQyxTQUFTLENBQUMsK0RBQStELDJCQUEyQixDQUFDLHNEQUFzRCwyQkFBMkIsQ0FBQyxTQUFTLENBQUMsMERBQTBELDJCQUEyQixDQUFDLHVDQUF1QyxrQkFBa0IsQ0FBQyxhQUFhLENBQUMsK0JBQStCLENBQUMsaUJBQWlCLENBQUMscUNBQXFDLENBQUMsY0FBYyxDQUFDLHFCQUFxQixDQUFDLGlCQUFpQixDQUFDLGlCQUFpQixDQUFDLGtCQUFrQixDQUFDLGVBQWUsQ0FBQyw2Q0FBNkMsK0JBQStCLENBQUMseUJBQXlCLENBQUMsa0JBQWtCLENBQUMsd0JBQXdCLENBQUMsa0NBQWtDLENBQUMsYUFBYSxDQUFDLGNBQWMsQ0FBQyw0Q0FBNEMsK0JBQStCLENBQUMsZ0VBQWdFLFVBQVUsQ0FBQywrQkFBK0IsQ0FBQyxjQUFjLENBQUMsK0RBQStELGFBQWEsQ0FBQyxVQUFVLENBQUMsZUFBZSxDQUFDLCtCQUErQixDQUFDLHlCQUF5QixDQUFDLGtCQUFrQixDQUFDLHdCQUF3QixDQUFDLHFFQUFxRSxvQkFBb0IsQ0FBQyxrQkFBa0IsQ0FBQywrRUFBK0Usc0RBQXNELENBQUMsY0FBYyxDQUFDLGFBQWEsQ0FBQyxpQkFBaUIsQ0FBQyxtRkFBbUYsY0FBYyxDQUFDLGFBQWEsQ0FBQyxXQUFXLENBQUMsbUZBQW1GLGNBQWMsQ0FBQyxhQUFhLENBQUMsaUJBQWlCLENBQUMsY0FBYyxDQUFDLG1DQUFtQyxZQUFZLENBQUMsNEJBQTRCLENBQUMseUJBQXlCLENBQUMsa0NBQWtDLENBQUMseUNBQXlDLENBQUMsd0NBQXdDLGFBQWEsQ0FBQywyQ0FBMkMsa0JBQWtCLENBQUMsNkJBQTZCLENBQUMsYUFBYSxDQUFDLHlDQUF5QyxrQkFBa0IsQ0FBQyw2QkFBNkIsQ0FBQyxhQUFhLENBQUMsd0NBQXdDLGtCQUFrQixDQUFDLDZCQUE2QixDQUFDLGFBQWEsQ0FBQywyQ0FBMkMsb0NBQW9DLENBQUMsNkJBQTZCLENBQUMsYUFBYSxDQUFDLDZDQUE2QyxlQUFlLENBQUMsZ0JBQWdCLENBQUMsYUFBYSxDQUFDLCtCQUErQixDQUFDLHlCQUF5QixDQUFDLDhCQUE4QixDQUFDLGlCQUFpQixDQUFDLDZCQUE2QixDQUFDLG9EQUFvRCxnQkFBZ0IsQ0FBQyxhQUFhLENBQUMsaUJBQWlCLENBQUMsZUFBZSxDQUFDLDhCQUE4QixDQUFDLDZCQUE2QixDQUFDLG9DQUFvQyxvQkFBb0IsQ0FBQyw2QkFBNkIsQ0FBQywwQ0FBMEMsYUFBYSxDQUFDLDBDQUEwQyxDQUFDLGdCQUFnQixPQUFPLFdBQVcsQ0FBQyxJQUFJLFlBQVksQ0FBQyxTQUFTLGFBQWEsQ0FBQyxDQUFDLGtCQUFrQixLQUFLLFNBQVMsQ0FBQywwQkFBMEIsQ0FBQyxHQUFHLFNBQVMsQ0FBQyx1QkFBdUIsQ0FBQyxDQUFDLDBCQUEwQiwyQkFBMkIsY0FBYyxDQUFDLDJDQUEyQyxlQUFlLENBQUMsMENBQTBDLG9CQUFvQixDQUFDLGNBQWMsQ0FBQyw2SEFBNkgsMkNBQTJDLENBQUMsY0FBYyxDQUFDLENBQUMsMEJBQTBCLDJCQUEyQixZQUFZLENBQUMsMkNBQTJDLGVBQWUsQ0FBQyw4Q0FBOEMsZUFBZSxDQUFDLDBDQUEwQyxhQUFhLENBQUMsQ0FBQyw0Q0FBNEMsK0JBQStCLENBQUMsZUFBZSxDQUFDLGtDQUFrQyxDQUFDLDZCQUE2QixDQUFDLGtCQUFrQixDQUFDLHVEQUF1RCw4QkFBOEIsQ0FBQyxvQkFBb0IsQ0FBQywyREFBMkQsZUFBZSxDQUFDLHFCQUFxQixDQUFDLCtEQUErRCxhQUFhLENBQUMsZUFBZSxDQUFDLDZCQUE2QixDQUFDLDZEQUE2RCxhQUFhLENBQUMsZUFBZSxDQUFDLGtCQUFrQixDQUFDLFdBQVcsQ0FBQyx5Q0FBeUMsNEJBQTRCLENBQUMsWUFBWSxDQUFDLDhCQUE4QixDQUFDLDZCQUE2QixDQUFDLGtDQUFrQyxDQUFDLHFEQUFxRCw4QkFBOEIsQ0FBQyxhQUFhLENBQUMsZUFBZSxDQUFDLDJEQUEyRCw4QkFBOEIsQ0FBQyxlQUFlLENBQUMsb0RBQW9ELFFBQVEsQ0FBQyxvQkFBb0IsQ0FBQyxnQkFBZ0IsQ0FBQyx1REFBdUQscUJBQXFCLENBQUMseURBQXlELCtCQUErQixDQUFDLHdCQUF3QixDQUFDLGlCQUFpQixDQUFDLGVBQWUsQ0FBQyxvREFBb0QsOEJBQThCLENBQUMsZ0JBQWdCLENBQUMsNkNBQTZDLGFBQWEsQ0FBQyw0REFBNEQsZUFBZSxDQUFDLG9CQUFvQixDQUFDLDJEQUEyRCxRQUFRLENBQUMsaUJBQWlCLENBQUMsZUFBZSxDQUFDLDhEQUE4RCxxQkFBcUIsQ0FBQyxpREFBaUQsZUFBZSxDQUFDLGtCQUFrQixDQUFDLGdCQUFnQixDQUFDLDZDQUE2QyxlQUFlLENBQUMseUNBQXlDLDRCQUE0QixDQUFDLDZFQUE2RSxhQUFhLENBQUMseUJBQXlCLENBQUMsb0JBQW9CLENBQUMseUZBQXlGLFVBQVUsQ0FBQyx3Q0FBd0Msa0JBQWtCLENBQUMsMENBQTBDLGFBQWEsQ0FBQyx5QkFBeUIsQ0FBQyxrQkFBa0IsQ0FBQyw2QkFBNkIsQ0FBQyxrQ0FBa0MsQ0FBQywyQ0FBMkMsNEJBQTRCLENBQUMsNENBQTRDLGVBQWUsQ0FBQyxvREFBb0Qsd0JBQXdCLENBQUMsa0NBQWtDLENBQUMsY0FBYyxDQUFDLCtEQUErRCxjQUFjLENBQUMsZUFBZSxDQUFDLGdCQUFnQixDQUFDLHdCQUFnQixDQUFoQixxQkFBZ0IsQ0FBaEIsZ0JBQWdCLENBQUMsYUFBYSxDQUFDLHFFQUFxRSxVQUFVLENBQUMsK0NBQStDLGNBQWMsQ0FBQyxlQUFlLENBQUMsZ0JBQWdCLENBQUMsd0JBQWdCLENBQWhCLHFCQUFnQixDQUFoQixnQkFBZ0IsQ0FBQyxhQUFhLENBQUMsaUJBQWlCLENBQUMsbUJBQW1CLENBQUMscURBQXFELFVBQVUsQ0FBQyw4SEFBOEgsWUFBWSxDQUFDLHVEQUF1RCxXQUFXLENBQUMsaUJBQWlCLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQywwQkFBMEIsQ0FBQyxVQUFVLENBQUMsV0FBVyxDQUFDLFlBQVksQ0FBQyxrQkFBa0IsQ0FBQyxzQkFBc0IsQ0FBQyxjQUFjLENBQUMsZ0JBQWdCLENBQUMsYUFBYSxDQUFDLHdCQUF3QixDQUFDLGlCQUFpQixDQUFDLHNCQUFzQixDQUFDLHFFQUFxRSxXQUFXLENBQUMsNkRBQTZELFVBQVUsQ0FBQyxpQkFBaUIsQ0FBQyw0Q0FBNEMsZUFBZSxDQUFDLG9EQUFvRCx3QkFBd0IsQ0FBQyxrQ0FBa0MsQ0FBQyxjQUFjLENBQUMsNkRBQTZELGVBQWUsQ0FBQyxVQUFVLENBQUMsd0JBQXdCLENBQUMsZUFBZSxDQUFDLGdJQUFnSSxjQUFjLENBQUMsZUFBZSxDQUFDLHdCQUF3QixDQUFDLGdFQUFnRSxzQkFBc0IsQ0FBQyw4QkFBOEIsQ0FBQyxlQUFlLENBQUMsc0ZBQXNGLGlDQUFpQyxDQUFDLDJFQUEyRSxlQUFlLENBQUMsaUJBQWlCLGlCQUFpQixDQUFDLG1CQUFtQixDQUFDLGtCQUFrQixDQUFDLGdCQUFnQixDQUFDLGlCQUFpQixDQUFDLHdCQUF3QixnQkFBZ0IsQ0FBQyx5QkFBeUIsbUJBQW1CLENBQUMsa0JBQWtCLENBQUMsVUFBVSxDQUFDLHNCQUFzQixDQUFDLGtCQUFrQixDQUFDLGFBQWEsQ0FBQyx3QkFBd0IsQ0FBQyxpQkFBaUIsQ0FBQyxjQUFjLENBQUMsZUFBZSxDQUFDLGFBQWEsQ0FBQyxjQUFjLENBQUMsd0JBQXdCLENBQUMsa0JBQWtCLENBQUMseUNBQXlDLENBQUMsK0JBQStCLG9CQUFvQixDQUFDLDJDQUEyQyxDQUFDLCtCQUErQix5QkFBeUIsQ0FBQyxrQkFBa0IsQ0FBQywrQ0FBK0Msb0JBQW9CLENBQUMsa0ZBQWtGLHdCQUF3QixDQUFDLDhCQUE4QixtQkFBbUIsQ0FBQyxrQkFBa0IsQ0FBQyxzQkFBc0IsQ0FBQyxVQUFVLENBQUMsV0FBVyxDQUFDLGtDQUFrQyxVQUFVLENBQUMsV0FBVyxDQUFDLGFBQWEsQ0FBQyw4QkFBOEIsY0FBYyxDQUFDLGVBQWUsQ0FBQywrQkFBK0IsbUJBQW1CLENBQUMsa0JBQWtCLENBQUMsc0JBQXNCLENBQUMsVUFBVSxDQUFDLFdBQVcsQ0FBQyxtQkFBbUIsQ0FBQyxtQ0FBbUMsVUFBVSxDQUFDLFdBQVcsQ0FBQyw4QkFBOEIsQ0FBQywyQkFBMkIsY0FBYyxDQUFDLGVBQWUsQ0FBQyxlQUFlLENBQUMsa0JBQWtCLENBQUMsd0JBQXdCLENBQUMsaUJBQWlCLENBQUMsOEJBQThCLENBQUMsY0FBYyxDQUFDLGFBQWEsQ0FBQyxTQUFTLENBQUMsaUJBQWlCLENBQUMsMEJBQTBCLENBQUMsd0JBQXdCLENBQUMsbUJBQW1CLENBQUMsbUNBQW1DLFNBQVMsQ0FBQyxrQkFBa0IsQ0FBQyx1QkFBdUIsQ0FBQyxtQkFBbUIsQ0FBQyx5QkFBeUIsWUFBWSxDQUFDLHNCQUFzQixDQUFDLFdBQVcsQ0FBQyxVQUFVLENBQUMsZUFBZSxDQUFDLHNCQUFzQixDQUFDLGFBQWEsQ0FBQyxXQUFXLENBQUMsaUJBQWlCLENBQUMsZUFBZSxDQUFDLG9CQUFvQixDQUFDLGNBQWMsQ0FBQyxnQ0FBZ0MsQ0FBQywrQkFBK0Isa0JBQWtCLENBQUMsYUFBYSxDQUFDLCtCQUErQix5QkFBeUIsQ0FBQyxtQkFBbUIsQ0FBQywwQ0FBMEMscUJBQXFCLENBQUMsdUJBQXVCLG1CQUFtQixDQUFDLGtCQUFrQixDQUFDLHNCQUFzQixDQUFDLFVBQVUsQ0FBQyxXQUFXLENBQUMsYUFBYSxDQUFDLGNBQWMsQ0FBQywyQkFBMkIsVUFBVSxDQUFDLFdBQVcsQ0FBQyxjQUFjLENBQUMseUVBQXlFLFlBQVksQ0FBQyw4QkFBOEIsWUFBWSxDQUFDLHFCQUFxQixDQUFDLFdBQVcsQ0FBQyxNQUFNLENBQUMsV0FBVyxDQUFDLHdCQUF3QixZQUFZLENBQUMsa0JBQWtCLENBQUMsVUFBVSxDQUFDLGNBQWMsQ0FBQyxlQUFlLENBQUMsZUFBZSxDQUFDLGFBQWEsQ0FBQywyQkFBMkIsbUJBQW1CLENBQUMsa0JBQWtCLENBQUMsY0FBYyxDQUFDLGFBQWEsQ0FBQyxtQkFBbUIsQ0FBQyxXQUFXLENBQUMsMkJBQTJCLGNBQWMsQ0FBQyxlQUFlLENBQUMsYUFBYSxDQUFDLDBCQUEwQixpQkFBaUIsYUFBYSxDQUFDLGVBQWUsQ0FBQywyQkFBMkIsVUFBVSxDQUFDLE1BQU0sQ0FBQyxjQUFjLENBQUMsY0FBYyxDQUFDLENBQUMsMkJBQTJCLGlCQUFpQixDQUFDLHFCQUFxQixLQUFLLDBCQUEwQixDQUFDLFNBQVMsQ0FBQyxHQUFHLHVCQUF1QixDQUFDLFNBQVMsQ0FBQyxDQUFDLEVBQUUscUJBQXFCIiwiZmlsZSI6InN0ZGluIiwic291cmNlc0NvbnRlbnQiOlsiYm9keXtmb250LXNpemU6MThweDstd2Via2l0LWZvbnQtc21vb3RoaW5nOmFudGlhbGlhc2VkOy1tb3otb3N4LWZvbnQtc21vb3RoaW5nOmdyYXlzY2FsZX1AZm9udC1mYWNle2ZvbnQtZmFtaWx5OlwiUHJveGltYSBOb3ZhXCI7c3JjOnVybChcImZvbnRzL3Byb3hpbWEtbm92YS5vdGZcIikgZm9ybWF0KFwib3BlbnR5cGVcIik7Zm9udC13ZWlnaHQ6MzAwfUBmb250LWZhY2V7Zm9udC1mYW1pbHk6J1Byb3hpbWEgTm92YSc7c3JjOnVybChcImZvbnRzL3Byb3hpbWEtbm92YS1tZWRpdW0ub3RmXCIpIGZvcm1hdChcIm9wZW50eXBlXCIpO2ZvbnQtd2VpZ2h0OjQwMH1AZm9udC1mYWNle2ZvbnQtZmFtaWx5OidQcm94aW1hIE5vdmEnO3NyYzp1cmwoXCJmb250cy9wcm94aW1hLW5vdmEtc2VtaWJvbGQub3RmXCIpIGZvcm1hdChcIm9wZW50eXBlXCIpO2ZvbnQtd2VpZ2h0OjUwMCA2MDB9QGZvbnQtZmFjZXtmb250LWZhbWlseTonUHJveGltYSBOb3ZhJztzcmM6dXJsKFwiZm9udHMvcHJveGltYS1ub3ZhLWJvbGQub3RmXCIpIGZvcm1hdChcIm9wZW50eXBlXCIpO2ZvbnQtd2VpZ2h0OjcwMH1AZm9udC1mYWNle2ZvbnQtZmFtaWx5OidpY29tb29uLXYyJztzcmM6dXJsKFwiZm9udHMvaWNvbW9vbi12Mi5lb3Q/aXRuMnBoXCIpO3NyYzp1cmwoXCJmb250cy9pY29tb29uLXYyLmVvdD9pdG4ycGgjaWVmaXhcIikgZm9ybWF0KFwiZW1iZWRkZWQtb3BlbnR5cGVcIiksdXJsKFwiZm9udHMvaWNvbW9vbi12Mi50dGY/aXRuMnBoXCIpIGZvcm1hdChcInRydWV0eXBlXCIpLHVybChcImZvbnRzL2ljb21vb24tdjIud29mZj9pdG4ycGhcIikgZm9ybWF0KFwid29mZlwiKSx1cmwoXCJmb250cy9pY29tb29uLXYyLnN2Zz9pdG4ycGgjaWNvbW9vbi12MlwiKSBmb3JtYXQoXCJzdmdcIik7Zm9udC13ZWlnaHQ6bm9ybWFsO2ZvbnQtc3R5bGU6bm9ybWFsO2ZvbnQtZGlzcGxheTpibG9ja31bY2xhc3NePVwiaWNvbi1cIl0sW2NsYXNzKj1cIiBpY29uLVwiXXtmb250LWZhbWlseTonaWNvbW9vbi12MicgIWltcG9ydGFudDtzcGVhazpuZXZlcjtmb250LXN0eWxlOm5vcm1hbDtmb250LXdlaWdodDpub3JtYWw7Zm9udC12YXJpYW50Om5vcm1hbDt0ZXh0LXRyYW5zZm9ybTpub25lO2xpbmUtaGVpZ2h0OjE7LXdlYmtpdC1mb250LXNtb290aGluZzphbnRpYWxpYXNlZDstbW96LW9zeC1mb250LXNtb290aGluZzpncmF5c2NhbGV9Lmljb24tYmFyLWNoYXJ0OmJlZm9yZXtjb250ZW50OlwiXFxlOTEzXCJ9Lmljb24taW5mbHV4LWxvZ286YmVmb3Jle2NvbnRlbnQ6XCJcXGU5MDBcIn0uaWNvbi1pbmZsdXgtbG9nb3R5cGU6YmVmb3Jle2NvbnRlbnQ6XCJcXGU5MDFcIn0uaWNvbi1hbGVydC10cmlhbmdsZTpiZWZvcmV7Y29udGVudDpcIlxcZTkwMlwifS5pY29uLWFycm93LWRvd246YmVmb3Jle2NvbnRlbnQ6XCJcXGU5MDNcIn0uaWNvbi1tb29uMTpiZWZvcmV7Y29udGVudDpcIlxcZTkwNFwifS5pY29uLXNlYXJjaDpiZWZvcmV7Y29udGVudDpcIlxcZTkwNVwifS5pY29uLXN1bjE6YmVmb3Jle2NvbnRlbnQ6XCJcXGU5MDZcIn0uaWNvbi1hcnJvdy1kb3duLWNpcmNsZTpiZWZvcmV7Y29udGVudDpcIlxcZTkwN1wifS5pY29uLWFycm93LWRvd24tbGVmdDpiZWZvcmV7Y29udGVudDpcIlxcZTkwOFwifS5pY29uLWFycm93LWRvd24tcmlnaHQ6YmVmb3Jle2NvbnRlbnQ6XCJcXGU5MDlcIn0uaWNvbi1hcnJvdy1sZWZ0OmJlZm9yZXtjb250ZW50OlwiXFxlOTBhXCJ9Lmljb24tYXJyb3ctbGVmdC1jaXJjbGU6YmVmb3Jle2NvbnRlbnQ6XCJcXGU5MGJcIn0uaWNvbi1hcnJvdy1yaWdodDpiZWZvcmV7Y29udGVudDpcIlxcZTkwY1wifS5pY29uLWFycm93LXJpZ2h0LWNpcmNsZTpiZWZvcmV7Y29udGVudDpcIlxcZTkwZFwifS5pY29uLWFycm93LXVwOmJlZm9yZXtjb250ZW50OlwiXFxlOTBlXCJ9Lmljb24tYXJyb3ctdXAtY2lyY2xlOmJlZm9yZXtjb250ZW50OlwiXFxlOTBmXCJ9Lmljb24tYXJyb3ctdXAtbGVmdDpiZWZvcmV7Y29udGVudDpcIlxcZTkxMFwifS5pY29uLWFycm93LXVwLXJpZ2h0OmJlZm9yZXtjb250ZW50OlwiXFxlOTExXCJ9Lmljb24tY2hlY2s6YmVmb3Jle2NvbnRlbnQ6XCJcXGU5MTJcIn0uaWNvbi1oZWFydDE6YmVmb3Jle2NvbnRlbnQ6XCJcXGU5MTRcIn0uaWNvbi1zZXR0aW5nczpiZWZvcmV7Y29udGVudDpcIlxcZTkxNVwifS5pY29uLXpvb20taW46YmVmb3Jle2NvbnRlbnQ6XCJcXGU5MTZcIn0uaWNvbi16b29tLW91dDpiZWZvcmV7Y29udGVudDpcIlxcZTkxN1wifS5pY29uLWNoZXZyb24tZG93bjpiZWZvcmV7Y29udGVudDpcIlxcZTkxOFwifS5pY29uLWNoZXZyb24tbGVmdDpiZWZvcmV7Y29udGVudDpcIlxcZTkxOVwifS5pY29uLWNoZXZyb24tcmlnaHQ6YmVmb3Jle2NvbnRlbnQ6XCJcXGU5MWFcIn0uaWNvbi1jaGV2cm9uLXVwOmJlZm9yZXtjb250ZW50OlwiXFxlOTFiXCJ9Lmljb24tbWVudTpiZWZvcmV7Y29udGVudDpcIlxcZTkxY1wifS5pY29uLWRvd25sb2FkOmJlZm9yZXtjb250ZW50OlwiXFxlOTFkXCJ9Lmljb24tbWludXM6YmVmb3Jle2NvbnRlbnQ6XCJcXGU5MWVcIn0uaWNvbi1wbHVzOmJlZm9yZXtjb250ZW50OlwiXFxlOTFmXCJ9Lmljb24tYWRkLWNlbGw6YmVmb3Jle2NvbnRlbnQ6XCJcXGU5MjBcIn0uaWNvbi1hbGVydDpiZWZvcmV7Y29udGVudDpcIlxcZTkyMVwifS5pY29uLWNhbGVuZGFyOmJlZm9yZXtjb250ZW50OlwiXFxlOTIyXCJ9Lmljb24tY2hlY2ttYXJrOmJlZm9yZXtjb250ZW50OlwiXFxlOTIzXCJ9Lmljb24tY29nLXRoaWNrOmJlZm9yZXtjb250ZW50OlwiXFxlOTI0XCJ9Lmljb24tZGFzaGJvYXJkczpiZWZvcmV7Y29udGVudDpcIlxcZTkyNVwifS5pY29uLWRhdGEtZXhwbG9yZXI6YmVmb3Jle2NvbnRlbnQ6XCJcXGU5MjZcIn0uaWNvbi11aS1kb3dubG9hZDpiZWZvcmV7Y29udGVudDpcIlxcZTkyN1wifS5pY29uLWR1cGxpY2F0ZTpiZWZvcmV7Y29udGVudDpcIlxcZTkyOFwifS5pY29uLWV4cG9ydDpiZWZvcmV7Y29udGVudDpcIlxcZTkyOVwifS5pY29uLWZ1bGxzY3JlZW46YmVmb3Jle2NvbnRlbnQ6XCJcXGU5MmFcIn0uaWNvbi1pbmZsdXgtaWNvbjpiZWZvcmV7Y29udGVudDpcIlxcZTkyYlwifS5pY29uLW5vdGU6YmVmb3Jle2NvbnRlbnQ6XCJcXGU5MmNcIn0uaWNvbi1vcmdhbml6YXRpb25zOmJlZm9yZXtjb250ZW50OlwiXFxlOTJkXCJ9Lmljb24tcGF1c2U6YmVmb3Jle2NvbnRlbnQ6XCJcXGU5MmVcIn0uaWNvbi1wZW5jaWw6YmVmb3Jle2NvbnRlbnQ6XCJcXGU5MmZcIn0uaWNvbi1wbGF5OmJlZm9yZXtjb250ZW50OlwiXFxlOTMwXCJ9Lmljb24tdWktcGx1czpiZWZvcmV7Y29udGVudDpcIlxcZTkzMVwifS5pY29uLXJlZnJlc2g6YmVmb3Jle2NvbnRlbnQ6XCJcXGU5MzJcIn0uaWNvbi1yZW1vdmU6YmVmb3Jle2NvbnRlbnQ6XCJcXGU5MzNcIn0uaWNvbi1hbGVydC1jaXJjbGU6YmVmb3Jle2NvbnRlbnQ6XCJcXGU5MzRcIn0uaWNvbi1jcm93bjpiZWZvcmV7Y29udGVudDpcIlxcZTkzNVwifS5pY29uLXRyYXNoOmJlZm9yZXtjb250ZW50OlwiXFxlOTM2XCJ9Lmljb24tdHJpYW5nbGU6YmVmb3Jle2NvbnRlbnQ6XCJcXGU5MzdcIn0uaWNvbi14OmJlZm9yZXtjb250ZW50OlwiXFxlOTM4XCJ9Lmljb24td3JlbmNoLTI6YmVmb3Jle2NvbnRlbnQ6XCJcXGU5MzlcIn0uaWNvbi1jaGF0OmJlZm9yZXtjb250ZW50OlwiXFxlOTNhXCJ9Lmljb24tYmVsbDpiZWZvcmV7Y29udGVudDpcIlxcZTkzYlwifS5pY29uLWRpc2tzLW5hdjpiZWZvcmV7Y29udGVudDpcIlxcZTkzY1wifS5pY29uLXdyZW5jaC1uYXY6YmVmb3Jle2NvbnRlbnQ6XCJcXGU5M2RcIn0uaWNvbi11c2VyOmJlZm9yZXtjb250ZW50OlwiXFxlOTNlXCJ9Lmljb24tY2xvdWQ6YmVmb3Jle2NvbnRlbnQ6XCJcXGU5M2ZcIn0uaWNvbi11c2Vycy10cmlvOmJlZm9yZXtjb250ZW50OlwiXFxlOTQwXCJ9Lmljb24tbmF2LWNoYXQ6YmVmb3Jle2NvbnRlbnQ6XCJcXGU5NDFcIn0uaWNvbi1tYXAyOmJlZm9yZXtjb250ZW50OlwiXFxlOTRjXCJ9Lmljb24tZXllLWNsb3NlZDpiZWZvcmV7Y29udGVudDpcIlxcZTk1NlwifS5pY29uLWV5ZS1vcGVuOmJlZm9yZXtjb250ZW50OlwiXFxlOTU3XCJ9Lmljb24tYm9vay1wZW5jaWw6YmVmb3Jle2NvbnRlbnQ6XCJcXGU5NjVcIn0uaWNvbi1oZWFydDpiZWZvcmV7Y29udGVudDpcIlxcZTlkYVwifS5pY29uLWxvb3AyOmJlZm9yZXtjb250ZW50OlwiXFxlYTJlXCJ9Lmljb24tZ2l0aHViOmJlZm9yZXtjb250ZW50OlwiXFxlYWIwXCJ9Lmljb24tdHV4OmJlZm9yZXtjb250ZW50OlwiXFxlYWJkXCJ9Lmljb24tYXBwbGVpbmM6YmVmb3Jle2NvbnRlbnQ6XCJcXGVhYmVcIn0uaWNvbi13aW5kb3dzODpiZWZvcmV7Y29udGVudDpcIlxcZWFjMlwifUBmb250LWZhY2V7Zm9udC1mYW1pbHk6J2ljb21vb24tdjMnO3NyYzp1cmwoXCJmb250cy9pY29tb29uLXYzLmVvdFwiKSBmb3JtYXQoXCJlbWJlZGRlZC1vcGVudHlwZVwiKTtzcmM6dXJsKFwiZm9udHMvaWNvbW9vbi12My5lb3RcIikgZm9ybWF0KFwiZW1iZWRkZWQtb3BlbnR5cGVcIiksdXJsKFwiZm9udHMvaWNvbW9vbi12My53b2ZmMlwiKSBmb3JtYXQoXCJ3b2ZmMlwiKSx1cmwoXCJmb250cy9pY29tb29uLXYzLnR0ZlwiKSBmb3JtYXQoXCJ0cnVldHlwZVwiKSx1cmwoXCJmb250cy9pY29tb29uLXYzLndvZmZcIikgZm9ybWF0KFwid29mZlwiKSx1cmwoXCJmb250cy9pY29tb29uLXYzLnN2Z1wiKSBmb3JtYXQoXCJzdmdcIik7Zm9udC13ZWlnaHQ6bm9ybWFsO2ZvbnQtc3R5bGU6bm9ybWFsfS5jZi1pY29ue2ZvbnQtZmFtaWx5OidpY29tb29uLXYzJztmb250LXN0eWxlOm5vcm1hbDtmb250LXdlaWdodDpub3JtYWw7Zm9udC12YXJpYW50Om5vcm1hbDt0ZXh0LXRyYW5zZm9ybTpub25lO2xpbmUtaGVpZ2h0OjE7LXdlYmtpdC1mb250LXNtb290aGluZzphbnRpYWxpYXNlZDstbW96LW9zeC1mb250LXNtb290aGluZzpncmF5c2NhbGV9LmNmLWljb24uYWRkLWNlbGwtbmV3OmJlZm9yZXtjb250ZW50OidcXGU5NzYnfS5jZi1pY29uLmFsZXJ0LXRyaWFuZ2xlLW5ldzpiZWZvcmV7Y29udGVudDonXFxlOTc3J30uY2YtaWNvbi5hbm5vdGF0ZS1uZXc6YmVmb3Jle2NvbnRlbnQ6J1xcZTk3OCd9LmNmLWljb24uYXJyb3ctZG93bi1uZXc6YmVmb3Jle2NvbnRlbnQ6J1xcZTk3OSd9LmNmLWljb24uYXJyb3ctbGVmdC1uZXc6YmVmb3Jle2NvbnRlbnQ6J1xcZTk3YSd9LmNmLWljb24uYXJyb3ctcmlnaHQtbmV3OmJlZm9yZXtjb250ZW50OidcXGU5N2InfS5jZi1pY29uLmFycm93LXVwLW5ldzpiZWZvcmV7Y29udGVudDonXFxlOTdjJ30uY2YtaWNvbi5iYXItY2hhcnQtbmV3OmJlZm9yZXtjb250ZW50OidcXGU5N2QnfS5jZi1pY29uLmJ1aWxkLW91dGxpbmUtbmV3OmJlZm9yZXtjb250ZW50OidcXGU5N2UnfS5jZi1pY29uLmNhcmV0LWRvd24tbmV3OmJlZm9yZXtjb250ZW50OidcXGU5N2YnfS5jZi1pY29uLmNhcmV0LWxlZnQtbmV3OmJlZm9yZXtjb250ZW50OidcXGU5ODAnfS5jZi1pY29uLmNhcmV0LXJpZ2h0LW5ldzpiZWZvcmV7Y29udGVudDonXFxlOTgxJ30uY2YtaWNvbi5jYXJldC11cC1uZXc6YmVmb3Jle2NvbnRlbnQ6J1xcZTk4Mid9LmNmLWljb24uY2hlY2ttYXJrLW5ldzpiZWZvcmV7Y29udGVudDonXFxlOTgzJ30uY2YtaWNvbi5jbGlwYm9hcmQtbmV3OmJlZm9yZXtjb250ZW50OidcXGU5ODQnfS5jZi1pY29uLmNsb2NrLW5ldzpiZWZvcmV7Y29udGVudDonXFxlOTg1J30uY2YtaWNvbi5jb2ctb3V0bGluZS1uZXc6YmVmb3Jle2NvbnRlbnQ6J1xcZTk4Nid9LmNmLWljb24uY29nLXNvbGlkLW5ldzpiZWZvcmV7Y29udGVudDonXFxlOTg3J30uY2YtaWNvbi5jcm93bi1zb2xpZC1uZXc6YmVmb3Jle2NvbnRlbnQ6J1xcZTk4OCd9LmNmLWljb24uZGFyay1tb2RlLW5ldzpiZWZvcmV7Y29udGVudDonXFxlOTg5J30uY2YtaWNvbi5kb3dubG9hZC1uZXc6YmVmb3Jle2NvbnRlbnQ6J1xcZTk4YSd9LmNmLWljb24uZHVwbGljYXRlLW5ldzpiZWZvcmV7Y29udGVudDonXFxlOThiJ30uY2YtaWNvbi5leHBhbmQtbmV3OmJlZm9yZXtjb250ZW50OidcXGU5OGMnfS5jZi1pY29uLmV4cG9ydC1uZXc6YmVmb3Jle2NvbnRlbnQ6J1xcZTk4ZCd9LmNmLWljb24uZXllLW9wZW4tbmV3OmJlZm9yZXtjb250ZW50OidcXGU5OGUnfS5jZi1pY29uLmdyYXBoLWxpbmUtbmV3OmJlZm9yZXtjb250ZW50OidcXGU5OGYnfS5jZi1pY29uLmhhbmRsZS1uZXc6YmVmb3Jle2NvbnRlbnQ6J1xcZTk5MCd9LmNmLWljb24uaG9tZS1vdXRsaW5lLW5ldzpiZWZvcmV7Y29udGVudDonXFxlOTkxJ30uY2YtaWNvbi5pbmZvLW5ldzpiZWZvcmV7Y29udGVudDonXFxlOTkyJ30uY2YtaWNvbi5pbmdlc3QtbmV3OmJlZm9yZXtjb250ZW50OidcXGU5OTMnfS5jZi1pY29uLmxpZ2h0LW1vZGUtbmV3OmJlZm9yZXtjb250ZW50OidcXGU5OTQnfS5jZi1pY29uLmxvY2stb3V0bGluZS1uZXc6YmVmb3Jle2NvbnRlbnQ6J1xcZTk5NSd9LmNmLWljb24ubG9nLW91dC1uZXc6YmVmb3Jle2NvbnRlbnQ6J1xcZTk5Nid9LmNmLWljb24ucGluLW5ldzpiZWZvcmV7Y29udGVudDonXFxlOTk3J30uY2YtaWNvbi5wbHVzLW5ldzpiZWZvcmV7Y29udGVudDonXFxlOTk4J30uY2YtaWNvbi5xdWVzdGlvbi1tYXJrLW5ldzpiZWZvcmV7Y29udGVudDonXFxlOTk5J30uY2YtaWNvbi5yZWZyZXNoLW5ldzpiZWZvcmV7Y29udGVudDonXFxlOTlhJ30uY2YtaWNvbi5yZW1vdmUtbmV3OmJlZm9yZXtjb250ZW50OidcXGU5OWInfS5jZi1pY29uLnNlYXJjaC1uZXc6YmVmb3Jle2NvbnRlbnQ6J1xcZTk5Yyd9LmNmLWljb24uc2lkZWJhci1jbG9zZS1uZXc6YmVmb3Jle2NvbnRlbnQ6J1xcZTk5ZCd9LmNmLWljb24uc2lkZWJhci1vcGVuLW5ldzpiZWZvcmV7Y29udGVudDonXFxlOTllJ30uY2YtaWNvbi5zdG9wLW5ldzpiZWZvcmV7Y29udGVudDonXFxlOTlmJ30uY2YtaWNvbi5zd2l0Y2gtbmV3OmJlZm9yZXtjb250ZW50OidcXGU5YTAnfS5jZi1pY29uLnRleHQtbmV3OmJlZm9yZXtjb250ZW50OidcXGU5YTEnfS5jZi1pY29uLnRyYXNoLW5ldzpiZWZvcmV7Y29udGVudDonXFxlOWEyJ30uY2YtaWNvbi51c2VyLW91dGxpbmUtbmV3OmJlZm9yZXtjb250ZW50OidcXGU5YTMnfS5jZi1pY29uLm1vcmU6YmVmb3Jle2NvbnRlbnQ6J1xcZTk3NCd9LmNmLWljb24uZHJhZy10by1leHBhbmQtd2hpdGU6YmVmb3Jle2NvbnRlbnQ6J1xcZTkwMSc7Y29sb3I6I2ZmZn0uY2YtaWNvbi5kcmFnLXRvLWV4cGFuZDpiZWZvcmV7Y29udGVudDonXFxlOTAyJ30uY2YtaWNvbi5zaGllbGQtc29saWQ6YmVmb3Jle2NvbnRlbnQ6J1xcZTkwMyd9LmNmLWljb24ubG9jazpiZWZvcmV7Y29udGVudDonXFxlOTAwJ30uY2YtaWNvbi5oZWFydC1zb2xpZDpiZWZvcmV7Y29udGVudDonXFxlOTZmJ30uY2YtaWNvbi5idWNrZXQtb3V0bGluZTpiZWZvcmV7Y29udGVudDonXFxlOTYxJ30uY2YtaWNvbi5jaGF0OmJlZm9yZXtjb250ZW50OidcXGU5MzMnfS5jZi1pY29uLmN1cnJlbmN5LWV1cjpiZWZvcmV7Y29udGVudDonXFxlOTY4J30uY2YtaWNvbi5jdXJyZW5jeS1nYnA6YmVmb3Jle2NvbnRlbnQ6J1xcZTk2OSd9LmNmLWljb24uY3VycmVuY3ktdXNkOmJlZm9yZXtjb250ZW50OidcXGU5NmEnfS5jZi1pY29uLm1vb246YmVmb3Jle2NvbnRlbnQ6J1xcZTk1Yyd9LmNmLWljb24uc2hhcmUtc29saWQ6YmVmb3Jle2NvbnRlbnQ6J1xcZTk2ZSd9LmNmLWljb24uc2hpZWxkOmJlZm9yZXtjb250ZW50OidcXGU5NmInfS5jZi1pY29uLnN1bjpiZWZvcmV7Y29udGVudDonXFxlOTVkJ30uY2YtaWNvbi51cGdyYWRlOmJlZm9yZXtjb250ZW50OidcXGU5NWYnfS5jZi1pY29uLm1lcmdlOmJlZm9yZXtjb250ZW50OidcXGU5NzUnfS5jZi1pY29uLmFkZC1jZWxsOmJlZm9yZXtjb250ZW50OidcXGU5MjUnfS5jZi1pY29uLmFsZXJ0LXRyaWFuZ2xlOmJlZm9yZXtjb250ZW50OidcXGU5MjYnfS5jZi1pY29uLmFsZXJ0czpiZWZvcmV7Y29udGVudDonXFxlOTIxJ30uY2YtaWNvbi5hbm5vdGF0ZTpiZWZvcmV7Y29udGVudDonXFxlOTUzJ30uY2YtaWNvbi5hbm5vdGF0ZS1wbHVzOmJlZm9yZXtjb250ZW50OidcXGU5NTInfS5jZi1pY29uLmF1dGh6ZXJvOmJlZm9yZXtjb250ZW50OidcXGU5NTEnfS5jZi1pY29uLmJhci1jaGFydDpiZWZvcmV7Y29udGVudDonXFxlOTEzJ30uY2YtaWNvbi5iZWxsOmJlZm9yZXtjb250ZW50OidcXGU5MzQnfS5jZi1pY29uLmJlbGwtc29saWQ6YmVmb3Jle2NvbnRlbnQ6J1xcZTkzNyd9LmNmLWljb24uYnJ1c2g6YmVmb3Jle2NvbnRlbnQ6J1xcZTkzZCd9LmNmLWljb24uY2FwYWNpdG9yMjpiZWZvcmV7Y29udGVudDonXFxlOTIzJ30uY2YtaWNvbi5jYXJldC1kb3duOmJlZm9yZXtjb250ZW50OidcXGU5MDQnfS5jZi1pY29uLmNhcmV0LWxlZnQ6YmVmb3Jle2NvbnRlbnQ6J1xcZTkwNSd9LmNmLWljb24uY2FyZXQtcmlnaHQ6YmVmb3Jle2NvbnRlbnQ6J1xcZTkwNid9LmNmLWljb24uY2FyZXQtdXA6YmVmb3Jle2NvbnRlbnQ6J1xcZTkwNyd9LmNmLWljb24uY2hlY2ttYXJrOmJlZm9yZXtjb250ZW50OidcXGU5MTgnfS5jZi1pY29uLmNpcmNsZTpiZWZvcmV7Y29udGVudDonXFxlOTQwJ30uY2YtaWNvbi5jaXJjbGUtdGhpY2s6YmVmb3Jle2NvbnRlbnQ6J1xcZTkwZSd9LmNmLWljb24uY2xvY2s6YmVmb3Jle2NvbnRlbnQ6J1xcZTkyMCd9LmNmLWljb24uY29nLW91dGxpbmU6YmVmb3Jle2NvbnRlbnQ6J1xcZTkxYyd9LmNmLWljb24uY29nLXRoaWNrOmJlZm9yZXtjb250ZW50OidcXGU5MGMnfS5jZi1pY29uLmNvbGxhcHNlOmJlZm9yZXtjb250ZW50OidcXGU5MWInfS5jZi1pY29uLmNyb3duLW91dGxpbmU6YmVmb3Jle2NvbnRlbnQ6J1xcZTkwOCd9LmNmLWljb24uY3Jvd24yOmJlZm9yZXtjb250ZW50OidcXGU5NGInfS5jZi1pY29uLmN1YmU6YmVmb3Jle2NvbnRlbnQ6J1xcZTkwYid9LmNmLWljb24uY3VibzpiZWZvcmV7Y29udGVudDonXFxlOTVlJ30uY2YtaWNvbi5jdWJvLXVuaWZvcm06YmVmb3Jle2NvbnRlbnQ6J1xcZTkzYyd9LmNmLWljb24uZGFzaC1mOmJlZm9yZXtjb250ZW50OidcXGU5MjcnfS5jZi1pY29uLmRhc2gtaDpiZWZvcmV7Y29udGVudDonXFxlOTI5J30uY2YtaWNvbi5kYXNoLWo6YmVmb3Jle2NvbnRlbnQ6J1xcZTkyYid9LmNmLWljb24uZGlza3M6YmVmb3Jle2NvbnRlbnQ6J1xcZTk1MCd9LmNmLWljb24uZG93bmxvYWQ6YmVmb3Jle2NvbnRlbnQ6J1xcZTkxZCd9LmNmLWljb24uZHVwbGljYXRlOmJlZm9yZXtjb250ZW50OidcXGU5MTcnfS5jZi1pY29uLmVybGVubWV5ZXI6YmVmb3Jle2NvbnRlbnQ6J1xcZTk1OCd9LmNmLWljb24uZXhwYW5kLWE6YmVmb3Jle2NvbnRlbnQ6J1xcZTk0NCd9LmNmLWljb24uZXhwYW5kLWI6YmVmb3Jle2NvbnRlbnQ6J1xcZTk0Mid9LmNmLWljb24uZXhwb3J0OmJlZm9yZXtjb250ZW50OidcXGU5MGYnfS5jZi1pY29uLmV5ZTpiZWZvcmV7Y29udGVudDonXFxlOTFmJ30uY2YtaWNvbi5leWUtY2xvc2VkOmJlZm9yZXtjb250ZW50OidcXGU5NTYnfS5jZi1pY29uLmV5ZS1vcGVuOmJlZm9yZXtjb250ZW50OidcXGU5NTcnfS5jZi1pY29uLmZuOmJlZm9yZXtjb250ZW50OidcXGU5NjAnfS5jZi1pY29uLmdpdGh1YjpiZWZvcmV7Y29udGVudDonXFxlOTI4J30uY2YtaWNvbi5nb29nbGU6YmVmb3Jle2NvbnRlbnQ6J1xcZTkyYSd9LmNmLWljb24uZ3JvdXA6YmVmb3Jle2NvbnRlbnQ6J1xcZTkwOSd9LmNmLWljb24uaGVyb2t1OmJlZm9yZXtjb250ZW50OidcXGU5NDcnfS5jZi1pY29uLmhlcm9rdS1zaW1wbGU6YmVmb3Jle2NvbnRlbnQ6J1xcZTk0OCd9LmNmLWljb24uaW1wb3J0OmJlZm9yZXtjb250ZW50OidcXGU5MTAnfS5jZi1pY29uLmxpbms6YmVmb3Jle2NvbnRlbnQ6J1xcZTkyZSd9LmNmLWljb24ubWF4aW1pemU6YmVmb3Jle2NvbnRlbnQ6J1xcZTk1NSd9LmNmLWljb24ubWluaW1pemU6YmVmb3Jle2NvbnRlbnQ6J1xcZTk1NCd9LmNmLWljb24ubmF2LWNoYXQ6YmVmb3Jle2NvbnRlbnQ6J1xcZTk0MSd9LmNmLWljb24ub2F1dGg6YmVmb3Jle2NvbnRlbnQ6J1xcZTk0Zid9LmNmLWljb24ub2N0YWdvbjpiZWZvcmV7Y29udGVudDonXFxlOTJkJ30uY2YtaWNvbi5va3RhOmJlZm9yZXtjb250ZW50OidcXGU5MTInfS5jZi1pY29uLnBhdXNlOmJlZm9yZXtjb250ZW50OidcXGU5NGEnfS5jZi1pY29uLnBlbmNpbDpiZWZvcmV7Y29udGVudDonXFxlOTJmJ30uY2YtaWNvbi5wbGF5OmJlZm9yZXtjb250ZW50OidcXGU5MTQnfS5jZi1pY29uLnBsdXM6YmVmb3Jle2NvbnRlbnQ6J1xcZTkwYSd9LmNmLWljb24ucGx1cy1za2lubnk6YmVmb3Jle2NvbnRlbnQ6J1xcZTkyMid9LmNmLWljb24ucG9sYXJvaWQ6YmVmb3Jle2NvbnRlbnQ6J1xcZTk1Yid9LmNmLWljb24ucHVsc2UtYzpiZWZvcmV7Y29udGVudDonXFxlOTM2J30uY2YtaWNvbi5yZWRvOmJlZm9yZXtjb250ZW50OidcXGU5NTknfS5jZi1pY29uLnJlZnJlc2g6YmVmb3Jle2NvbnRlbnQ6J1xcZTk0OSd9LmNmLWljb24ucmVtb3ZlOmJlZm9yZXtjb250ZW50OidcXGU5MGQnfS5jZi1pY29uLnNlYXJjaDpiZWZvcmV7Y29udGVudDonXFxlOTE2J30uY2YtaWNvbi5zZXJ2ZXIyOmJlZm9yZXtjb250ZW50OidcXGU5NGMnfS5jZi1pY29uLnNodWZmbGU6YmVmb3Jle2NvbnRlbnQ6J1xcZTk0ZSd9LmNmLWljb24uc3F1YXJlOmJlZm9yZXtjb250ZW50OidcXGU5M2UnfS5jZi1pY29uLnNxdWFyZS1jaGVjazpiZWZvcmV7Y29udGVudDonXFxlOTQzJ30uY2YtaWNvbi5zdGFyOmJlZm9yZXtjb250ZW50OidcXGU5MzAnfS5jZi1pY29uLnN0b3A6YmVmb3Jle2NvbnRlbnQ6J1xcZTkzMSd9LmNmLWljb24udGV4dC1ibG9jazpiZWZvcmV7Y29udGVudDonXFxlOTExJ30uY2YtaWNvbi50cmFzaDpiZWZvcmV7Y29udGVudDonXFxlOTE1J30uY2YtaWNvbi50cmlhbmdsZTpiZWZvcmV7Y29udGVudDonXFxlOTJjJ30uY2YtaWNvbi51bmRvOmJlZm9yZXtjb250ZW50OidcXGU5NWEnfS5jZi1pY29uLnVzZXI6YmVmb3Jle2NvbnRlbnQ6J1xcZTkxOSd9LmNmLWljb24udXNlci1hZGQ6YmVmb3Jle2NvbnRlbnQ6J1xcZTkxZSd9LmNmLWljb24udXNlci1vdXRsaW5lOmJlZm9yZXtjb250ZW50OidcXGU5MzInfS5jZi1pY29uLnVzZXItcmVtb3ZlOmJlZm9yZXtjb250ZW50OidcXGU5MzknfS5jZi1pY29uLnVzZXJzLXRyaW86YmVmb3Jle2NvbnRlbnQ6J1xcZTk0NSd9LmNmLWljb24ud2FuZDpiZWZvcmV7Y29udGVudDonXFxlOTRkJ30uY2YtaWNvbi53b29kOmJlZm9yZXtjb250ZW50OidcXGU5NzAnfS5jZi1pY29uLndyZW5jaDpiZWZvcmV7Y29udGVudDonXFxlOTcxJ30uY2YtaWNvbi56YXA6YmVmb3Jle2NvbnRlbnQ6J1xcZTk3Myd9LmNmLWljb24uYmVsbC1yaW5naW5nOmJlZm9yZXtjb250ZW50OidcXGU5MzUnfS5jZi1pY29uLmNhbGVuZGFyOmJlZm9yZXtjb250ZW50OidcXGU5MzgnfS5jZi1pY29uLmNsb3VkOmJlZm9yZXtjb250ZW50OidcXGU5M2YnfS5jZi1pY29uLmN1Ym8tbmF2OmJlZm9yZXtjb250ZW50OidcXGU5MWEnfS5jZi1pY29uLmRhc2hib2FyZHM6YmVmb3Jle2NvbnRlbnQ6J1xcZTkzYSd9LmNmLWljb24uZGlza3MtbmF2OmJlZm9yZXtjb250ZW50OidcXGU5NDYnfS5jZi1pY29uLmdyYXBobGluZS0yOmJlZm9yZXtjb250ZW50OidcXGU5MjQnfS5jZi1pY29uLnVzZXJzLWR1bzpiZWZvcmV7Y29udGVudDonXFxlOTNiJ30uY2YtaWNvbi53cmVuY2gtbmF2OmJlZm9yZXtjb250ZW50OidcXGU5NzInfS5jZi1pY29uLmJvb2s6YmVmb3Jle2NvbnRlbnQ6J1xcZTk2Nid9LmNmLWljb24uYm9vay1jb2RlOmJlZm9yZXtjb250ZW50OidcXGU5NjcnfS5jZi1pY29uLmJvb2stcGVuY2lsOmJlZm9yZXtjb250ZW50OidcXGU5NjUnfS5jZi1pY29uLmJ1Y2tldC1zb2xpZDpiZWZvcmV7Y29udGVudDonXFxlOTYyJ30uY2YtaWNvbi5mdW5uZWwtb3V0bGluZTpiZWZvcmV7Y29udGVudDonXFxlOTYzJ30uY2YtaWNvbi5mdW5uZWwtc29saWQ6YmVmb3Jle2NvbnRlbnQ6J1xcZTk2NCd9LmNmLWljb24ubGF5ZXJzOmJlZm9yZXtjb250ZW50OidcXGU5NmMnfS5jZi1pY29uLnNoYXJlOmJlZm9yZXtjb250ZW50OidcXGU5NmQnfUBmb250LWZhY2V7Zm9udC1mYW1pbHk6J2ljb21vb24tdjQnO3NyYzp1cmwoXCJmb250cy9pY29tb29uLXY0LmVvdFwiKSBmb3JtYXQoXCJlbWJlZGRlZC1vcGVudHlwZVwiKTtzcmM6dXJsKFwiZm9udHMvaWNvbW9vbi12NC5lb3RcIikgZm9ybWF0KFwiZW1iZWRkZWQtb3BlbnR5cGVcIiksdXJsKFwiZm9udHMvaWNvbW9vbi12NC53b2ZmMlwiKSBmb3JtYXQoXCJ3b2ZmMlwiKSx1cmwoXCJmb250cy9pY29tb29uLXY0LnR0ZlwiKSBmb3JtYXQoXCJ0cnVldHlwZVwiKSx1cmwoXCJmb250cy9pY29tb29uLXY0LndvZmZcIikgZm9ybWF0KFwid29mZlwiKSx1cmwoXCJmb250cy9pY29tb29uLXY0LnN2Z1wiKSBmb3JtYXQoXCJzdmdcIik7Zm9udC13ZWlnaHQ6bm9ybWFsO2ZvbnQtc3R5bGU6bm9ybWFsfS5jZi1pY29ue2ZvbnQtZmFtaWx5OidpY29tb29uLXY0Jztmb250LXN0eWxlOm5vcm1hbDtmb250LXdlaWdodDpub3JtYWw7Zm9udC12YXJpYW50Om5vcm1hbDt0ZXh0LXRyYW5zZm9ybTpub25lO2xpbmUtaGVpZ2h0OjE7LXdlYmtpdC1mb250LXNtb290aGluZzphbnRpYWxpYXNlZDstbW96LW9zeC1mb250LXNtb290aGluZzpncmF5c2NhbGV9LmNmLWljb24uRm9sZGVyT3BlbjpiZWZvcmV7Y29udGVudDonXFxlOTU2J30uY2YtaWNvbi5CaWxsOmJlZm9yZXtjb250ZW50OidcXGU5NTQnfS5jZi1pY29uLkxvZ291dDpiZWZvcmV7Y29udGVudDonXFxlOTUwJ30uY2YtaWNvbi5QaWVDaGFydDpiZWZvcmV7Y29udGVudDonXFxlOTU3J30uY2YtaWNvbi5DdXJyZW5jeURvbGxhcjpiZWZvcmV7Y29udGVudDonXFxlOTUyJ30uY2YtaWNvbi5TeW5jOmJlZm9yZXtjb250ZW50OidcXGU5NTUnfS5jZi1pY29uLlN1YnRyYWN0OmJlZm9yZXtjb250ZW50OidcXGU5NTMnfS5jZi1pY29uLlRpbWVyOmJlZm9yZXtjb250ZW50OidcXGU5NGYnfS5jZi1pY29uLkNhcmV0T3V0bGluZVJpZ2h0OmJlZm9yZXtjb250ZW50OidcXGU5NGInfS5jZi1pY29uLkNvbGxhcHNlTGVmdDpiZWZvcmV7Y29udGVudDonXFxlOTRjJ30uY2YtaWNvbi5Db2xsYXBzZVJpZ2h0OmJlZm9yZXtjb250ZW50OidcXGU5NGQnfS5jZi1pY29uLkRvdWJsZUNhcmV0VmVydGljYWw6YmVmb3Jle2NvbnRlbnQ6J1xcZTk0ZSd9LmNmLWljb24uUXVlc3Rpb25NYXJrX091dGxpbmU6YmVmb3Jle2NvbnRlbnQ6J1xcZTk0YSd9LmNmLWljb24uSW5mb19OZXc6YmVmb3Jle2NvbnRlbnQ6J1xcZTk0OSd9LmNmLWljb24uU2lkZWJhckNsb3NlOmJlZm9yZXtjb250ZW50OidcXGU5NDcnfS5jZi1pY29uLlNpZGViYXJPcGVuOmJlZm9yZXtjb250ZW50OidcXGU5NDgnfS5jZi1pY29uLkNhcmV0RG93bl9OZXc6YmVmb3Jle2NvbnRlbnQ6J1xcZTkxMid9LmNmLWljb24uQ2FyZXRMZWZ0X05ldzpiZWZvcmV7Y29udGVudDonXFxlOTEzJ30uY2YtaWNvbi5DYXJldFJpZ2h0X05ldzpiZWZvcmV7Y29udGVudDonXFxlOTE0J30uY2YtaWNvbi5DYXJldFVwX05ldzpiZWZvcmV7Y29udGVudDonXFxlOTE1J30uY2YtaWNvbi5QbGF5OmJlZm9yZXtjb250ZW50OidcXGU5MDAnfS5jZi1pY29uLlBhdXNlOmJlZm9yZXtjb250ZW50OidcXGU5MDEnfS5jZi1pY29uLkV5ZU9wZW46YmVmb3Jle2NvbnRlbnQ6J1xcZTkwMid9LmNmLWljb24uRmxhc2s6YmVmb3Jle2NvbnRlbnQ6J1xcZTkwMyd9LmNmLWljb24uQWRkQ2VsbF9OZXc6YmVmb3Jle2NvbnRlbnQ6J1xcZTkwNCd9LmNmLWljb24uUXVlc3Rpb25NYXJrOmJlZm9yZXtjb250ZW50OidcXGU5MDUnfS5jZi1pY29uLkFsZXJ0VHJpYW5nbGU6YmVmb3Jle2NvbnRlbnQ6J1xcZTkwNid9LmNmLWljb24uQW5ub3RhdGVfTmV3OmJlZm9yZXtjb250ZW50OidcXGU5MDcnfS5jZi1pY29uLkFycm93RG93bl9OZXc6YmVmb3Jle2NvbnRlbnQ6J1xcZTkwOCd9LmNmLWljb24uQXJyb3dMZWZ0X05ldzpiZWZvcmV7Y29udGVudDonXFxlOTA5J30uY2YtaWNvbi5BcnJvd1JpZ2h0X05ldzpiZWZvcmV7Y29udGVudDonXFxlOTBhJ30uY2YtaWNvbi5CYXJDaGFydF9OZXc6YmVmb3Jle2NvbnRlbnQ6J1xcZTkwYid9LmNmLWljb24uQmVsbDpiZWZvcmV7Y29udGVudDonXFxlOTBjJ30uY2YtaWNvbi5Cb29rQ29kZTpiZWZvcmV7Y29udGVudDonXFxlOTBkJ30uY2YtaWNvbi5Cb29rT3V0bGluZTpiZWZvcmV7Y29udGVudDonXFxlOTBlJ30uY2YtaWNvbi5CcmFjZXM6YmVmb3Jle2NvbnRlbnQ6J1xcZTkwZid9LmNmLWljb24uQnVja2V0U29saWQ6YmVmb3Jle2NvbnRlbnQ6J1xcZTkxMCd9LmNmLWljb24uQ2FsZW5kYXI6YmVmb3Jle2NvbnRlbnQ6J1xcZTkxMSd9LmNmLWljb24uQ2hhdDpiZWZvcmV7Y29udGVudDonXFxlOTE2J30uY2YtaWNvbi5DaGVja21hcmtfTmV3OmJlZm9yZXtjb250ZW50OidcXGU5MTcnfS5jZi1pY29uLkNpcmNsZVRoaWNrOmJlZm9yZXtjb250ZW50OidcXGU5MTgnfS5jZi1pY29uLkNsaXBib2FyZF9OZXc6YmVmb3Jle2NvbnRlbnQ6J1xcZTkxOSd9LmNmLWljb24uQ2xvY2tfTmV3OmJlZm9yZXtjb250ZW50OidcXGU5MWEnfS5jZi1pY29uLkNsb3VkOmJlZm9yZXtjb250ZW50OidcXGU5MWInfS5jZi1pY29uLkNvZ091dGxpbmVfTmV3OmJlZm9yZXtjb250ZW50OidcXGU5MWMnfS5jZi1pY29uLkNvZ1NvbGlkX05ldzpiZWZvcmV7Y29udGVudDonXFxlOTFkJ30uY2YtaWNvbi5Db3BwZXJjb2luOmJlZm9yZXtjb250ZW50OidcXGU5MWUnfS5jZi1pY29uLkNyb3duU29saWRfTmV3OmJlZm9yZXtjb250ZW50OidcXGU5MWYnfS5jZi1pY29uLkN1YmU6YmVmb3Jle2NvbnRlbnQ6J1xcZTkyMCd9LmNmLWljb24uQ3Vib1NvbGlkOmJlZm9yZXtjb250ZW50OidcXGU5MjEnfS5jZi1pY29uLkN1Ym91bmlmb3JtOmJlZm9yZXtjb250ZW50OidcXGU5MjInfS5jZi1pY29uLkRhcmttb2RlX05ldzpiZWZvcmV7Y29udGVudDonXFxlOTIzJ30uY2YtaWNvbi5EYXNoSDpiZWZvcmV7Y29udGVudDonXFxlOTI0J30uY2YtaWNvbi5Eb3dubG9hZF9OZXc6YmVmb3Jle2NvbnRlbnQ6J1xcZTkyNSd9LmNmLWljb24uRXhwYW5kQjpiZWZvcmV7Y29udGVudDonXFxlOTI2J30uY2YtaWNvbi5FeHBvcnRfTmV3OmJlZm9yZXtjb250ZW50OidcXGU5MjcnfS5jZi1pY29uLkV5ZUNsb3NlZDpiZWZvcmV7Y29udGVudDonXFxlOTI4J30uY2YtaWNvbi5GdW5uZWxTb2xpZDpiZWZvcmV7Y29udGVudDonXFxlOTI5J30uY2YtaWNvbi5HcmFwaExpbmVfTmV3OmJlZm9yZXtjb250ZW50OidcXGU5MmEnfS5jZi1pY29uLkdyb3VwOmJlZm9yZXtjb250ZW50OidcXGU5MmInfS5jZi1pY29uLkhpc3Rvcnk6YmVmb3Jle2NvbnRlbnQ6J1xcZTkyYyd9LmNmLWljb24uRHVwbGljYXRlX05ldzpiZWZvcmV7Y29udGVudDonXFxlOTJkJ30uY2YtaWNvbi5JbnN0YWxsOmJlZm9yZXtjb250ZW50OidcXGU5MmUnfS5jZi1pY29uLkxheWVyczpiZWZvcmV7Y29udGVudDonXFxlOTJmJ30uY2YtaWNvbi5MaWdodG1vZGVfTmV3OmJlZm9yZXtjb250ZW50OidcXGU5MzAnfS5jZi1pY29uLkxpbms6YmVmb3Jle2NvbnRlbnQ6J1xcZTkzMSd9LmNmLWljb24uTG9jazpiZWZvcmV7Y29udGVudDonXFxlOTMyJ30uY2YtaWNvbi5Nb3JlOmJlZm9yZXtjb250ZW50OidcXGU5MzMnfS5jZi1pY29uLlBlbmNpbDpiZWZvcmV7Y29udGVudDonXFxlOTM0J30uY2YtaWNvbi5QbHVzX05ldzpiZWZvcmV7Y29udGVudDonXFxlOTM1J30uY2YtaWNvbi5SZWZyZXNoX05ldzpiZWZvcmV7Y29udGVudDonXFxlOTM2J30uY2YtaWNvbi5SZW1vdmVfTmV3OmJlZm9yZXtjb250ZW50OidcXGU5MzcnfS5jZi1pY29uLlNhdmU6YmVmb3Jle2NvbnRlbnQ6J1xcZTkzOCd9LmNmLWljb24uU2F2ZU91dGxpbmU6YmVmb3Jle2NvbnRlbnQ6J1xcZTk1MSd9LmNmLWljb24uU2VhcmNoX05ldzpiZWZvcmV7Y29udGVudDonXFxlOTM5J30uY2YtaWNvbi5TaGFyZTpiZWZvcmV7Y29udGVudDonXFxlOTNhJ30uY2YtaWNvbi5TaGllbGQ6YmVmb3Jle2NvbnRlbnQ6J1xcZTkzYid9LmNmLWljb24uU3RhcjpiZWZvcmV7Y29udGVudDonXFxlOTNjJ30uY2YtaWNvbi5TdGFyU21pbGU6YmVmb3Jle2NvbnRlbnQ6J1xcZTkzZCd9LmNmLWljb24uU3Vic2NyaWJlOmJlZm9yZXtjb250ZW50OidcXGU5M2UnfS5jZi1pY29uLlN3aXRjaF9OZXc6YmVmb3Jle2NvbnRlbnQ6J1xcZTkzZid9LmNmLWljb24uVGV4dF9OZXc6YmVmb3Jle2NvbnRlbnQ6J1xcZTk0MCd9LmNmLWljb24uVHJhc2hfTmV3OmJlZm9yZXtjb250ZW50OidcXGU5NDEnfS5jZi1pY29uLlVuZG86YmVmb3Jle2NvbnRlbnQ6J1xcZTk0Mid9LmNmLWljb24uVXBsb2FkX05ldzpiZWZvcmV7Y29udGVudDonXFxlOTQzJ30uY2YtaWNvbi5VcGxvYWRfT3V0bGluZTpiZWZvcmV7Y29udGVudDonXFxlOTQ0J30uY2YtaWNvbi5Vc2VyOmJlZm9yZXtjb250ZW50OidcXGU5NDUnfS5jZi1pY29uLlphcDpiZWZvcmV7Y29udGVudDonXFxlOTQ2J31AZm9udC1mYWNle2ZvbnQtZmFtaWx5OidhbGVydC1pY29ucyc7c3JjOnVybChcImZvbnRzL2FsZXJ0LWljb25zLmVvdD9kMGR6bmhcIik7c3JjOnVybChcImZvbnRzL2FsZXJ0LWljb25zLmVvdD9kMGR6bmgjaWVmaXhcIikgZm9ybWF0KFwiZW1iZWRkZWQtb3BlbnR5cGVcIiksdXJsKFwiZm9udHMvYWxlcnQtaWNvbnMudHRmP2QwZHpuaFwiKSBmb3JtYXQoXCJ0cnVldHlwZVwiKSx1cmwoXCJmb250cy9hbGVydC1pY29ucy53b2ZmP2QwZHpuaFwiKSBmb3JtYXQoXCJ3b2ZmXCIpLHVybChcImZvbnRzL2FsZXJ0LWljb25zLnN2Zz9kMGR6bmgjaWNvbW9vblwiKSBmb3JtYXQoXCJzdmdcIik7Zm9udC13ZWlnaHQ6bm9ybWFsO2ZvbnQtc3R5bGU6bm9ybWFsO2ZvbnQtZGlzcGxheTpibG9ja31bY2xhc3NePVwiYWxlcnQtaWNvbi1cIl0sW2NsYXNzKj1cIiBhbGVydC1pY29uLVwiXXtmb250LWZhbWlseTonYWxlcnQtaWNvbnMnICFpbXBvcnRhbnQ7c3BlYWs6bmV2ZXI7Zm9udC1zdHlsZTpub3JtYWw7Zm9udC13ZWlnaHQ6bm9ybWFsO2ZvbnQtdmFyaWFudDpub3JtYWw7dGV4dC10cmFuc2Zvcm06bm9uZTtsaW5lLWhlaWdodDoxOy13ZWJraXQtZm9udC1zbW9vdGhpbmc6YW50aWFsaWFzZWQ7LW1vei1vc3gtZm9udC1zbW9vdGhpbmc6Z3JheXNjYWxlfS5hbGVydC1pY29uLWNhdXRpb246YmVmb3Jle2NvbnRlbnQ6XCJcXDQzXCJ9LmFsZXJ0LWljb24taW1wb3J0YW50OmJlZm9yZXtjb250ZW50OlwiXFw0OVwifS5hbGVydC1pY29uLW5vdGU6YmVmb3Jle2NvbnRlbnQ6XCJcXDRlXCJ9LmFsZXJ0LWljb24tdGlwOmJlZm9yZXtjb250ZW50OlwiXFw1NFwifS5hbGVydC1pY29uLXdhcm5pbmc6YmVmb3Jle2NvbnRlbnQ6XCJcXDU3XCJ9LnYze2ZvbnQtZmFtaWx5OidpY29tb29uLXYzJ30udjR7Zm9udC1mYW1pbHk6J2ljb21vb24tdjQnfS50b29sdGlwe3Bvc2l0aW9uOnJlbGF0aXZlO2Rpc3BsYXk6aW5saW5lLWJsb2NrO2ZvbnQtd2VpZ2h0OjUwMDtjb2xvcjojRDZGNjIyfS50b29sdGlwOmhvdmVye2N1cnNvcjpoZWxwfS50b29sdGlwOmhvdmVyIC50b29sdGlwLWNvbnRhaW5lcnt2aXNpYmlsaXR5OnZpc2libGV9LnRvb2x0aXA6aG92ZXIgLnRvb2x0aXAtdGV4dHtvcGFjaXR5OjE7dHJhbnNmb3JtOnRyYW5zbGF0ZSgtNTAlLCAtMi41cmVtKX0udG9vbHRpcCAudG9vbHRpcC1jb250YWluZXJ7cG9zaXRpb246YWJzb2x1dGU7dG9wOjA7bGVmdDo1MCU7dHJhbnNmb3JtOnRyYW5zbGF0ZVgoLTUwJSk7b3ZlcmZsb3c6dmlzaWJsZTt2aXNpYmlsaXR5OmhpZGRlbn0udG9vbHRpcCAudG9vbHRpcC10ZXh0e2ZvbnQtd2VpZ2h0OjUwMDtwb3NpdGlvbjphYnNvbHV0ZTtib3JkZXItcmFkaXVzOjJweDtwYWRkaW5nOi4xNXJlbSAuNzVyZW07Zm9udC1zaXplOjAuOXJlbTtsaW5lLWhlaWdodDoxLjc1cmVtO2xlZnQ6NTAlO3RyYW5zZm9ybTp0cmFuc2xhdGUoLTUwJSwgLTEuNzVyZW0pO3RyYW5zaXRpb246YWxsIDAuMnMgZWFzZTt3aGl0ZS1zcGFjZTpub3dyYXA7b3BhY2l0eTowO2NvbG9yOiMyMDIwMjg7YmFja2dyb3VuZC1jb2xvcjojRDZGNjIyfS50b29sdGlwIC50b29sdGlwLXRleHQ6YWZ0ZXJ7Y29udGVudDonJztwb3NpdGlvbjphYnNvbHV0ZTtsZWZ0OjUwJTtib3R0b206LTE0cHg7dHJhbnNmb3JtOnRyYW5zbGF0ZVgoLTUwJSk7Ym9yZGVyLXRvcDo4cHggc29saWQgI0Q2RjYyMjtib3JkZXItcmlnaHQ6OHB4IHNvbGlkIHRyYW5zcGFyZW50O2JvcmRlci1ib3R0b206OHB4IHNvbGlkIHRyYW5zcGFyZW50O2JvcmRlci1sZWZ0OjhweCBzb2xpZCB0cmFuc3BhcmVudH0udG9vbHRpcC5zaGlmdC1sZWZ0IC50b29sdGlwLXRleHR7bGVmdDo3NSU7dHJhbnNmb3JtOnRyYW5zbGF0ZSgtNzUlLCAtMS43NXJlbSl9LnRvb2x0aXAuc2hpZnQtbGVmdCAudG9vbHRpcC10ZXh0OmFmdGVye2xlZnQ6NzUlO3RyYW5zZm9ybTp0cmFuc2xhdGVYKC03NSUpfS50b29sdGlwLnNoaWZ0LWxlZnQ6aG92ZXIgLnRvb2x0aXAtdGV4dHt0cmFuc2Zvcm06dHJhbnNsYXRlKC03NSUsIC0yLjVyZW0pfS50b29sdGlwLnNoaWZ0LXJpZ2h0IC50b29sdGlwLXRleHR7bGVmdDoyNSU7dHJhbnNmb3JtOnRyYW5zbGF0ZSgtMjUlLCAtMS43NXJlbSl9LnRvb2x0aXAuc2hpZnQtcmlnaHQgLnRvb2x0aXAtdGV4dDphZnRlcntsZWZ0OjI1JTt0cmFuc2Zvcm06dHJhbnNsYXRlWCgtMjUlKX0udG9vbHRpcC5zaGlmdC1yaWdodDpob3ZlciAudG9vbHRpcC10ZXh0e3RyYW5zZm9ybTp0cmFuc2xhdGUoLTI1JSwgLTIuNXJlbSl9LnRvb2x0aXAucmlnaHQ6aG92ZXIgLnRvb2x0aXAtY29udGFpbmVye3Zpc2liaWxpdHk6dmlzaWJsZX0udG9vbHRpcC5yaWdodDpob3ZlciAudG9vbHRpcC10ZXh0e29wYWNpdHk6MTt0cmFuc2Zvcm06dHJhbnNsYXRlKDcwJSl9LnRvb2x0aXAucmlnaHQgLnRvb2x0aXAtY29udGFpbmVye2xlZnQ6MCU7dHJhbnNmb3JtOnRyYW5zbGF0ZVgoNjAlKX0udG9vbHRpcC5yaWdodCAudG9vbHRpcC10ZXh0e2xlZnQ6NjAlO3RyYW5zZm9ybTp0cmFuc2xhdGUoNjAlKTt0cmFuc2l0aW9uOmFsbCAwLjJzIGVhc2V9LnRvb2x0aXAucmlnaHQgLnRvb2x0aXAtdGV4dDphZnRlcnt0b3A6NTAlO2xlZnQ6LTE0cHg7dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTUwJSk7Ym9yZGVyLXRvcDoxNnB4IHNvbGlkIHRyYW5zcGFyZW50O2JvcmRlci1yaWdodDoxNnB4IHNvbGlkICNENkY2MjI7Ym9yZGVyLWJvdHRvbToxNnB4IHNvbGlkIHRyYW5zcGFyZW50O2JvcmRlci1sZWZ0OjhweCBzb2xpZCB0cmFuc3BhcmVudH10aCAudG9vbHRpcHtjb2xvcjojRDZGNjIyfXRoIC50b29sdGlwOmhvdmVyIC50b29sdGlwLWNvbnRhaW5lcnt2aXNpYmlsaXR5OnZpc2libGV9dGggLnRvb2x0aXA6aG92ZXIgLnRvb2x0aXAtdGV4dHtvcGFjaXR5OjE7dHJhbnNmb3JtOnRyYW5zbGF0ZSgtNTAlLCAxLjc1cmVtKX10aCAudG9vbHRpcCAudG9vbHRpcC10ZXh0e3RyYW5zZm9ybTp0cmFuc2xhdGUoLTUwJSwgMXJlbSl9dGggLnRvb2x0aXAgLnRvb2x0aXAtdGV4dDphZnRlcntjb250ZW50OicnO3Bvc2l0aW9uOmFic29sdXRlO2hlaWdodDowO2xlZnQ6NTAlO3RvcDotMTRweDt0cmFuc2Zvcm06dHJhbnNsYXRlWCgtNTAlKTtib3JkZXItdG9wOjhweCBzb2xpZCB0cmFuc3BhcmVudDtib3JkZXItcmlnaHQ6OHB4IHNvbGlkIHRyYW5zcGFyZW50O2JvcmRlci1ib3R0b206OHB4IHNvbGlkICNENkY2MjI7Ym9yZGVyLWxlZnQ6OHB4IHNvbGlkIHRyYW5zcGFyZW50fS5kYXRlcGlja2Vye2Rpc3BsYXk6bm9uZX0uZGF0ZXBpY2tlci5hY3RpdmV7ZGlzcGxheTpibG9ja30uZGF0ZXBpY2tlci1waWNrZXJ7YmFja2dyb3VuZC1jb2xvcjojMTQxNDFGO2JvcmRlci1yYWRpdXM6MnB4O2Rpc3BsYXk6aW5saW5lLWJsb2NrfS5kYXRlcGlja2VyLXBpY2tlciBzcGFuey13ZWJraXQtdG91Y2gtY2FsbG91dDpub25lO2JvcmRlcjowO2JvcmRlci1yYWRpdXM6MnB4O2N1cnNvcjpkZWZhdWx0O2Rpc3BsYXk6YmxvY2s7ZmxleDoxO3RleHQtYWxpZ246Y2VudGVyOy13ZWJraXQtdXNlci1zZWxlY3Q6bm9uZTstbW96LXVzZXItc2VsZWN0Om5vbmU7LW1zLXVzZXItc2VsZWN0Om5vbmU7dXNlci1zZWxlY3Q6bm9uZX0uZGF0ZXBpY2tlci1tYWlue3BhZGRpbmc6MnB4fS5kYXRlcGlja2VyLWNvbnRyb2xze2Rpc3BsYXk6ZmxleH0uZGF0ZXBpY2tlci1jb250cm9scyAuYnV0dG9ue2FsaWduLWl0ZW1zOmNlbnRlcjtiYWNrZ3JvdW5kLWNvbG9yOiMxNDE0MUY7Ym9yZGVyOjFweCBzb2xpZCAjZGJkYmRiO2JvcmRlci1yYWRpdXM6MnB4O2JveC1zaGFkb3c6bm9uZTtjb2xvcjojRkFGQUZDO2N1cnNvcjpwb2ludGVyO2Rpc3BsYXk6aW5saW5lLWZsZXg7Zm9udC1zaXplOjFyZW07aGVpZ2h0OjIuMjVlbTtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO2xpbmUtaGVpZ2h0OjEuNTttYXJnaW46MDtwYWRkaW5nOmNhbGMoLjM3NWVtIC0gMXB4KSAwLjc1ZW07cG9zaXRpb246cmVsYXRpdmU7dGV4dC1hbGlnbjpjZW50ZXI7dmVydGljYWwtYWxpZ246dG9wO3doaXRlLXNwYWNlOm5vd3JhcDt0cmFuc2l0aW9uOmFsbCAuMnN9LmRhdGVwaWNrZXItY29udHJvbHMgLmJ1dHRvbjphY3RpdmV7b3V0bGluZTpub25lO2JvcmRlci1jb2xvcjojNGE0YTRhO2NvbG9yOiNENEQ3RER9LmRhdGVwaWNrZXItY29udHJvbHMgLmJ1dHRvbjpmb2N1c3tvdXRsaW5lOm5vbmU7Ym9yZGVyLWNvbG9yOiMzMjczZGM7Y29sb3I6I0Q0RDdERH0uZGF0ZXBpY2tlci1jb250cm9scyAuYnV0dG9uOmZvY3VzOm5vdCg6YWN0aXZlKXtib3gtc2hhZG93OjAgMCAwIDAuMTI1ZW0gcmdiYSg1MCwxMTUsMjIwLDAuMjUpfS5kYXRlcGlja2VyLWNvbnRyb2xzIC5idXR0b246aG92ZXJ7Ym9yZGVyLWNvbG9yOiNiNWI1YjU7Y29sb3I6I0ZBRkFGQ30uZGF0ZXBpY2tlci1jb250cm9scyAuYnV0dG9uW2Rpc2FibGVkXXtjdXJzb3I6bm90LWFsbG93ZWR9LmRhdGVwaWNrZXItY29udHJvbHMgLnZpZXctc3dpdGNoe2ZsZXg6YXV0b30uZGF0ZXBpY2tlci1jb250cm9scyAubmV4dC1idG57cGFkZGluZy1sZWZ0Oi4zNzVyZW07cGFkZGluZy1yaWdodDouMzc1cmVtO3dpZHRoOjIuMjVyZW19LmRhdGVwaWNrZXItY29udHJvbHMgLnByZXYtYnRue3BhZGRpbmctbGVmdDouMzc1cmVtO3BhZGRpbmctcmlnaHQ6LjM3NXJlbTt3aWR0aDoyLjI1cmVtfS5kYXRlcGlja2VyLWNvbnRyb2xzIC5uZXh0LWJ0bi5kaXNhYmxlZHt2aXNpYmlsaXR5OmhpZGRlbn0uZGF0ZXBpY2tlci1jb250cm9scyAucHJldi1idG4uZGlzYWJsZWR7dmlzaWJpbGl0eTpoaWRkZW59LmRhdGVwaWNrZXItZ3JpZHtkaXNwbGF5OmZsZXg7ZmxleC13cmFwOndyYXA7d2lkdGg6MTUuNzVyZW19LmRhdGVwaWNrZXItdmlld3tkaXNwbGF5OmZsZXh9LmRhdGVwaWNrZXItdmlldyAuZGF5cy1vZi13ZWVre2Rpc3BsYXk6ZmxleH0uZGF0ZXBpY2tlci12aWV3IC5kYXlzIC5kYXRlcGlja2VyLWNlbGx7ZmxleC1iYXNpczoxNC4yODU3MTQyODU3JX0uZGF0ZXBpY2tlci12aWV3IC5kb3d7ZmxleC1iYXNpczoxNC4yODU3MTQyODU3JTtmb250LXNpemU6Ljg3NXJlbTtmb250LXdlaWdodDo3MDA7aGVpZ2h0OjEuNXJlbTtsaW5lLWhlaWdodDoxLjVyZW19LmRhdGVwaWNrZXItdmlldyAud2Vla3toZWlnaHQ6Mi4yNXJlbTtsaW5lLWhlaWdodDoyLjI1cmVtO2NvbG9yOiNiNWI1YjU7Zm9udC1zaXplOi43NXJlbTt3aWR0aDoyLjI1cmVtfS5kYXRlcGlja2VyLXZpZXcuZGF0ZXBpY2tlci1ncmlkIC5kYXRlcGlja2VyLWNlbGx7ZmxleC1iYXNpczoyNSU7aGVpZ2h0OjQuNXJlbTtsaW5lLWhlaWdodDo0LjVyZW19LmRhdGVwaWNrZXItY2VsbHtoZWlnaHQ6Mi4yNXJlbTtsaW5lLWhlaWdodDoyLjI1cmVtfS5kYXRlcGlja2VyLWNlbGw6bm90KC5kaXNhYmxlZCk6aG92ZXJ7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDIxMiwyMTUsMjIxLDAuMTUpO2N1cnNvcjpwb2ludGVyfS5kYXRlcGlja2VyLXRpdGxle2JhY2tncm91bmQtY29sb3I6I2Y1ZjVmNTtib3gtc2hhZG93Omluc2V0IDAgLTFweCAxcHggcmdiYSgxMCwxMCwxMCwwLjEpO2ZvbnQtd2VpZ2h0OjcwMDtwYWRkaW5nOi4zNzVyZW0gLjc1cmVtO3RleHQtYWxpZ246Y2VudGVyfS5kYXRlcGlja2VyLWhlYWRlciAuZGF0ZXBpY2tlci1jb250cm9sc3twYWRkaW5nOjJweCAycHggMH0uZGF0ZXBpY2tlci1oZWFkZXIgLmRhdGVwaWNrZXItY29udHJvbHMgLmJ1dHRvbntib3JkZXItY29sb3I6dHJhbnNwYXJlbnQ7Zm9udC13ZWlnaHQ6NzAwfS5kYXRlcGlja2VyLWhlYWRlciAuZGF0ZXBpY2tlci1jb250cm9scyAuYnV0dG9uOmhvdmVye2JhY2tncm91bmQtY29sb3I6cmdiYSgyMTIsMjE1LDIyMSwwLjE1KX0uZGF0ZXBpY2tlci1oZWFkZXIgLmRhdGVwaWNrZXItY29udHJvbHMgLmJ1dHRvbjpmb2N1czpub3QoOmFjdGl2ZSl7Ym94LXNoYWRvdzowIDAgMCAwLjEyNWVtIHJnYmEoMjU1LDI1NSwyNTUsMC4yNSl9LmRhdGVwaWNrZXItaGVhZGVyIC5kYXRlcGlja2VyLWNvbnRyb2xzIC5idXR0b246YWN0aXZle2JhY2tncm91bmQtY29sb3I6IzAwQTNGRn0uZGF0ZXBpY2tlci1oZWFkZXIgLmRhdGVwaWNrZXItY29udHJvbHMgLmJ1dHRvbltkaXNhYmxlZF17Ym94LXNoYWRvdzpub25lfS5kYXRlcGlja2VyLWNlbGwuZm9jdXNlZDpub3QoLnNlbGVjdGVkKXtiYWNrZ3JvdW5kLWNvbG9yOiMwMEEzRkY7Y29sb3I6I2ZmZn0uZGF0ZXBpY2tlci1jZWxsLnNlbGVjdGVke2JhY2tncm91bmQtY29sb3I6IzAwQTNGRjtjb2xvcjojZmZmO2ZvbnQtd2VpZ2h0OjYwMH0uZGF0ZXBpY2tlci1jZWxsLnNlbGVjdGVkOmhvdmVye2JhY2tncm91bmQtY29sb3I6IzAwQTNGRjtjb2xvcjojZmZmO2ZvbnQtd2VpZ2h0OjYwMH0uZGF0ZXBpY2tlci1jZWxsLmRpc2FibGVke2NvbG9yOiNkYmRiZGJ9LmRhdGVwaWNrZXItY2VsbC5uZXh0Om5vdCguZGlzYWJsZWQpe2NvbG9yOiM3YTdhN2F9LmRhdGVwaWNrZXItY2VsbC5wcmV2Om5vdCguZGlzYWJsZWQpe2NvbG9yOiM3YTdhN2F9LmRhdGVwaWNrZXItY2VsbC5uZXh0LnNlbGVjdGVke2NvbG9yOiNlNmU2ZTZ9LmRhdGVwaWNrZXItY2VsbC5wcmV2LnNlbGVjdGVke2NvbG9yOiNlNmU2ZTZ9LmRhdGVwaWNrZXItY2VsbC5oaWdobGlnaHRlZDpub3QoLnNlbGVjdGVkKTpub3QoLnJhbmdlKTpub3QoLnRvZGF5KXtiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMjEyLDIxNSwyMjEsMC4yNSk7Ym9yZGVyLXJhZGl1czowfS5kYXRlcGlja2VyLWNlbGwuaGlnaGxpZ2h0ZWQ6bm90KC5zZWxlY3RlZCk6bm90KC5yYW5nZSk6bm90KC50b2RheSk6bm90KC5kaXNhYmxlZCk6aG92ZXJ7YmFja2dyb3VuZC1jb2xvcjojZWVlfS5kYXRlcGlja2VyLWNlbGwuaGlnaGxpZ2h0ZWQ6bm90KC5zZWxlY3RlZCk6bm90KC5yYW5nZSk6bm90KC50b2RheSkuZm9jdXNlZHtiYWNrZ3JvdW5kLWNvbG9yOiMwMEEzRkY7Y29sb3I6I2ZmZn0uZGF0ZXBpY2tlci1jZWxsLnRvZGF5Om5vdCguc2VsZWN0ZWQpe2JhY2tncm91bmQtY29sb3I6IzAwZDFiMn0uZGF0ZXBpY2tlci1jZWxsLnRvZGF5Om5vdCguc2VsZWN0ZWQpOm5vdCguZGlzYWJsZWQpe2NvbG9yOiNmZmZ9LmRhdGVwaWNrZXItY2VsbC50b2RheS5mb2N1c2VkOm5vdCguc2VsZWN0ZWQpe2JhY2tncm91bmQtY29sb3I6IzAwYzRhN30uZGF0ZXBpY2tlci1pbnB1dC5pbi1lZGl0e2JvcmRlci1jb2xvcjojMjM2NmQxfS5kYXRlcGlja2VyLWlucHV0LmluLWVkaXQ6YWN0aXZle2JveC1zaGFkb3c6MCAwIDAuMjVlbSAwLjI1ZW0gcmdiYSgzNSwxMDIsMjA5LDAuMil9LmRhdGVwaWNrZXItaW5wdXQuaW4tZWRpdDpmb2N1c3tib3gtc2hhZG93OjAgMCAwLjI1ZW0gMC4yNWVtIHJnYmEoMzUsMTAyLDIwOSwwLjIpfUBtZWRpYSAobWF4LXdpZHRoOiAyMi41cmVtKXsuZGF0ZXBpY2tlci12aWV3IC53ZWVre3dpZHRoOjEuOTY4NzVyZW19LmNhbGVuZGFyLXdlZWtzKy5kYXlzIC5kYXRlcGlja2VyLWdyaWR7d2lkdGg6MTMuNzgxMjVyZW19fS8qISBub3JtYWxpemUuc2NzcyB2MC4xLjAgfCBNSVQgTGljZW5zZSB8IGJhc2VkIG9uIGdpdC5pby9ub3JtYWxpemUgKi9odG1se2ZvbnQtZmFtaWx5OnNhbnMtc2VyaWY7LW1zLXRleHQtc2l6ZS1hZGp1c3Q6MTAwJTstd2Via2l0LXRleHQtc2l6ZS1hZGp1c3Q6MTAwJX1ib2R5e21hcmdpbjowfWFydGljbGUsYXNpZGUsZGV0YWlscyxmaWdjYXB0aW9uLGZpZ3VyZSxmb290ZXIsaGVhZGVyLGhncm91cCxtYWluLG1lbnUsbmF2LHNlY3Rpb24sc3VtbWFyeXtkaXNwbGF5OmJsb2NrfWF1ZGlvLGNhbnZhcyxwcm9ncmVzcyx2aWRlb3tkaXNwbGF5OmlubGluZS1ibG9jazt2ZXJ0aWNhbC1hbGlnbjpiYXNlbGluZX1hdWRpbzpub3QoW2NvbnRyb2xzXSl7ZGlzcGxheTpub25lO2hlaWdodDowfVtoaWRkZW5dLHRlbXBsYXRle2Rpc3BsYXk6bm9uZX1he2JhY2tncm91bmQtY29sb3I6dHJhbnNwYXJlbnR9YTphY3RpdmUsYTpob3ZlcntvdXRsaW5lOjB9YWJiclt0aXRsZV17Ym9yZGVyLWJvdHRvbToxcHggZG90dGVkfWIsc3Ryb25ne2ZvbnQtd2VpZ2h0OmJvbGR9ZGZue2ZvbnQtc3R5bGU6aXRhbGljfWgxe2ZvbnQtc2l6ZToyZW07bWFyZ2luOjAuNjdlbSAwfW1hcmt7YmFja2dyb3VuZDojZmYwO2NvbG9yOiMwMDB9c21hbGx7Zm9udC1zaXplOjgwJX1zdWIsc3Vwe2ZvbnQtc2l6ZTo3NSU7bGluZS1oZWlnaHQ6MDtwb3NpdGlvbjpyZWxhdGl2ZTt2ZXJ0aWNhbC1hbGlnbjpiYXNlbGluZX1zdXB7dG9wOi0wLjVlbX1zdWJ7Ym90dG9tOi0wLjI1ZW19aW1ne2JvcmRlcjowfXN2Zzpub3QoOnJvb3Qpe292ZXJmbG93OmhpZGRlbn1maWd1cmV7bWFyZ2luOjFlbSA0MHB4fWhyey1tb3otYm94LXNpemluZzpjb250ZW50LWJveDtib3gtc2l6aW5nOmNvbnRlbnQtYm94O2hlaWdodDowfXByZXtvdmVyZmxvdzphdXRvfWNvZGUsa2JkLHByZSxzYW1we2ZvbnQtZmFtaWx5Om1vbm9zcGFjZSwgbW9ub3NwYWNlO2ZvbnQtc2l6ZToxZW19YnV0dG9uLGlucHV0LG9wdGdyb3VwLHNlbGVjdCx0ZXh0YXJlYXtjb2xvcjppbmhlcml0O2ZvbnQ6aW5oZXJpdDttYXJnaW46MH1idXR0b257b3ZlcmZsb3c6dmlzaWJsZX1idXR0b24sc2VsZWN0e3RleHQtdHJhbnNmb3JtOm5vbmV9YnV0dG9uLGh0bWwgaW5wdXRbdHlwZT1cImJ1dHRvblwiXSxpbnB1dFt0eXBlPVwicmVzZXRcIl0saW5wdXRbdHlwZT1cInN1Ym1pdFwiXXstd2Via2l0LWFwcGVhcmFuY2U6YnV0dG9uO2N1cnNvcjpwb2ludGVyfWJ1dHRvbltkaXNhYmxlZF0saHRtbCBpbnB1dFtkaXNhYmxlZF17Y3Vyc29yOmRlZmF1bHR9YnV0dG9uOjotbW96LWZvY3VzLWlubmVyLGlucHV0OjotbW96LWZvY3VzLWlubmVye2JvcmRlcjowO3BhZGRpbmc6MH1pbnB1dHtsaW5lLWhlaWdodDpub3JtYWx9aW5wdXRbdHlwZT1cImNoZWNrYm94XCJdLGlucHV0W3R5cGU9XCJyYWRpb1wiXXtib3gtc2l6aW5nOmJvcmRlci1ib3g7cGFkZGluZzowfWlucHV0W3R5cGU9XCJudW1iZXJcIl06Oi13ZWJraXQtaW5uZXItc3Bpbi1idXR0b24saW5wdXRbdHlwZT1cIm51bWJlclwiXTo6LXdlYmtpdC1vdXRlci1zcGluLWJ1dHRvbntoZWlnaHQ6YXV0b31pbnB1dFt0eXBlPVwic2VhcmNoXCJdey13ZWJraXQtYXBwZWFyYW5jZTp0ZXh0ZmllbGQ7LW1vei1ib3gtc2l6aW5nOmNvbnRlbnQtYm94Oy13ZWJraXQtYm94LXNpemluZzpjb250ZW50LWJveDtib3gtc2l6aW5nOmNvbnRlbnQtYm94fWlucHV0W3R5cGU9XCJzZWFyY2hcIl06Oi13ZWJraXQtc2VhcmNoLWNhbmNlbC1idXR0b24saW5wdXRbdHlwZT1cInNlYXJjaFwiXTo6LXdlYmtpdC1zZWFyY2gtZGVjb3JhdGlvbnstd2Via2l0LWFwcGVhcmFuY2U6bm9uZX1maWVsZHNldHtib3JkZXI6MXB4IHNvbGlkICNjMGMwYzA7bWFyZ2luOjAgMnB4O3BhZGRpbmc6MC4zNWVtIDAuNjI1ZW0gMC43NWVtfWxlZ2VuZHtib3JkZXI6MDtwYWRkaW5nOjB9dGV4dGFyZWF7b3ZlcmZsb3c6YXV0b31vcHRncm91cHtmb250LXdlaWdodDpib2xkfXRhYmxle2JvcmRlci1jb2xsYXBzZTpjb2xsYXBzZTtib3JkZXItc3BhY2luZzowfXRkLHRoe3BhZGRpbmc6MH1odG1se2hlaWdodDoxMDAlfWJvZHl7bWluLWhlaWdodDoxMDAlO2ZvbnQtZmFtaWx5OlwiUHJveGltYSBOb3ZhXCIsc2Fucy1zZXJpZjtiYWNrZ3JvdW5kOiMwNzA3MEV9Ym9keT5pbWdbcmVmZXJyZXJwb2xpY3k9XCJuby1yZWZlcnJlci13aGVuLWRvd25ncmFkZVwiXXtkaXNwbGF5Om5vbmV9Kntib3gtc2l6aW5nOmJvcmRlci1ib3h9YXt0cmFuc2l0aW9uOmNvbG9yIC4ycywgYmFja2dyb3VuZC1jb2xvciAuMnN9LnBhZ2Utd3JhcHBlcntkaXNwbGF5OmZsZXg7ZmxleC1ncm93OjF9LmJvd2xvZnN3ZWV0c3tkaXNwbGF5Om5vbmV9QG1lZGlhIChtYXgtd2lkdGg6IDgwMHB4KXsucGFnZS13cmFwcGVye2ZsZXgtZGlyZWN0aW9uOmNvbHVtbn19LnRvcG5hdntkaXNwbGF5OmZsZXg7cGFkZGluZzouNzVyZW0gLjc1cmVtIC42NXJlbTtqdXN0aWZ5LWNvbnRlbnQ6c3BhY2UtYmV0d2Vlbjtwb3NpdGlvbjpyZWxhdGl2ZTtib3gtc2l6aW5nOmJvcmRlci1ib3g7ei1pbmRleDo5OX0udG9wbmF2IC5pbmZsdXgtaG9tZXtmb250LWZhbWlseTonaWNvbW9vbi12Mic7Zm9udC1zaXplOjEuNHJlbTtjb2xvcjojZmZmO3RleHQtZGVjb3JhdGlvbjpub25lO3ZlcnRpY2FsLWFsaWduOm1pZGRsZX0udG9wbmF2IC5pbmZsdXgtaG9tZTpob3Zlcntjb2xvcjojMDBBM0ZGfS50b3BuYXYgLmluZmx1eC1ob21lIC5pY29uLWluZmx1eC1sb2dvdHlwZXttYXJnaW4tbGVmdDouNnJlbX0udG9wbmF2IC5kaXZpZGVye2hlaWdodDoxMDAlO2JvcmRlci1sZWZ0OjFweCBzb2xpZCByZ2JhKDI1NSwyNTUsMjU1LDAuNSk7bWFyZ2luOjAgMXJlbSAwIC42NXJlbX0udG9wbmF2IC5kb2NzLWhvbWV7ZGlzcGxheTppbmxpbmUtYmxvY2s7dmVydGljYWwtYWxpZ246dGV4dC10b3A7Zm9udC13ZWlnaHQ6NTAwO2ZvbnQtc2l6ZToxLjFyZW07Y29sb3I6I2ZmZjt0ZXh0LWRlY29yYXRpb246bm9uZX0udG9wbmF2IC5kb2NzLWhvbWU6aG92ZXJ7Y29sb3I6IzAwQTNGRn0udG9wbmF2IC50b3BuYXYtbGVmdHttYXJnaW4tcmlnaHQ6LjE1cmVtO3BhZGRpbmc6LjI1cmVtIC4xNXJlbTt6LWluZGV4OjF9LnRvcG5hdiAudG9wbmF2LXJpZ2h0e2Rpc3BsYXk6ZmxleDtwb3NpdGlvbjphYnNvbHV0ZTtyaWdodDouNzVyZW07dG9wOi43NXJlbX0udG9wbmF2IC5zZWxlY3Rvci1kcm9wZG93bnN7ZGlzcGxheTpmbGV4O3otaW5kZXg6MTAwO3BhZGRpbmctcmlnaHQ6LjI1cmVtfS50b3BuYXYgLnByb2R1Y3QtbGlzdHtwb3NpdGlvbjpyZWxhdGl2ZX0udG9wbmF2IC5wcm9kdWN0LWxpc3QgI3Byb2R1Y3QtZHJvcGRvd257ZGlzcGxheTppbmxpbmUtYmxvY2s7d2lkdGg6MTAwJTtjb2xvcjojZmZmO2hlaWdodDoycmVtO2JhY2tncm91bmQ6bGluZWFyLWdyYWRpZW50KDIyNWRlZywgI2QzMDk3MSwjOWIyYWZmKTtiYWNrZ3JvdW5kLWF0dGFjaG1lbnQ6Zml4ZWQ7Zm9udC13ZWlnaHQ6NTAwO2ZvbnQtc2l6ZToxLjA1cmVtO2JvcmRlci1yYWRpdXM6NnB4O292ZXJmbG93OmhpZGRlbjtjdXJzb3I6cG9pbnRlcn0udG9wbmF2IC5wcm9kdWN0LWxpc3QgI3Byb2R1Y3QtZHJvcGRvd246YWZ0ZXJ7Y29udGVudDpcIlxcZTkxOFwiO2ZvbnQtZmFtaWx5OidpY29tb29uLXYyJztwb3NpdGlvbjphYnNvbHV0ZTt0b3A6LjQ1cmVtO3JpZ2h0Oi40cmVtO3RyYW5zaXRpb246YWxsIC4zc30udG9wbmF2IC5wcm9kdWN0LWxpc3QgI3Byb2R1Y3QtZHJvcGRvd24gLnNlbGVjdGVke3BhZGRpbmc6MCAxLjc1cmVtIDAgLjc1cmVtO2xpbmUtaGVpZ2h0OjB9LnRvcG5hdiAucHJvZHVjdC1saXN0ICNwcm9kdWN0LWRyb3Bkb3duLm9wZW46YWZ0ZXJ7dHJhbnNmb3JtOnJvdGF0ZSgxODBkZWcpfS50b3BuYXYgLnByb2R1Y3QtbGlzdCAjZHJvcGRvd24taXRlbXN7b3BhY2l0eTowO2hlaWdodDowO3BvaW50ZXItZXZlbnRzOm5vbmU7bWFyZ2luLXRvcDotMTBweDt0cmFuc2l0aW9uOm9wYWNpdHkgLjJzLCBtYXJnaW4tdG9wIC41c30udG9wbmF2IC5wcm9kdWN0LWxpc3QgI2Ryb3Bkb3duLWl0ZW1zLm9wZW57b3BhY2l0eToxO3BvaW50ZXItZXZlbnRzOmF1dG87bWFyZ2luLXRvcDowO2hlaWdodDphdXRvfS50b3BuYXYgLnByb2R1Y3QtbGlzdCAjZHJvcGRvd24taXRlbXMub3BlbiAucHJvZHVjdC1ncm91cHttYXJnaW46MCAwIDVweH0udG9wbmF2IC5wcm9kdWN0LWxpc3QgI2Ryb3Bkb3duLWl0ZW1zIC5wcm9kdWN0LWdyb3Vwe2JhY2tncm91bmQ6bGluZWFyLWdyYWRpZW50KDIyNWRlZywgI2QzMDk3MSwjOWIyYWZmKTtiYWNrZ3JvdW5kLWF0dGFjaG1lbnQ6Zml4ZWQ7Ym9yZGVyLXJhZGl1czo2cHg7Ym94LXNoYWRvdzoxcHggM3B4IDEwcHggIzA3MDcwRTttYXJnaW46MCAwIC0xMHB4O3RyYW5zaXRpb246bWFyZ2luIC41c30udG9wbmF2IC5wcm9kdWN0LWxpc3QgI2Ryb3Bkb3duLWl0ZW1zIC5wcm9kdWN0LWdyb3VwOmxhc3QtY2hpbGR7bWFyZ2luOjB9LnRvcG5hdiAucHJvZHVjdC1saXN0ICNkcm9wZG93bi1pdGVtcyAuZ3JvdXAtdGl0bGV7cGFkZGluZzouNXJlbSAuNzVyZW0gLjJyZW07Zm9udC13ZWlnaHQ6Ym9sZDtjb2xvcjojMTgxODIwO2ZvbnQtc2l6ZToxcmVtfS50b3BuYXYgLnByb2R1Y3QtbGlzdCAjZHJvcGRvd24taXRlbXMgLmdyb3VwLXRpdGxlIHB7bWFyZ2luOjA7cGFkZGluZzouMXJlbSAuMXJlbSAuM3JlbTtib3JkZXItaW1hZ2U6bGluZWFyLWdyYWRpZW50KHRvIHJpZ2h0LCByZ2JhKDI1NSwyNTUsMjU1LDAuNSkgMCUsIHJnYmEoMjU1LDI1NSwyNTUsMCkgMTAwJSkgMTtib3JkZXItYm90dG9tOjJweCBzb2xpZH0udG9wbmF2IC5wcm9kdWN0LWxpc3QgI2Ryb3Bkb3duLWl0ZW1zIHVsLml0ZW0tbGlzdHtwYWRkaW5nOjA7bWFyZ2luOjA7bGlzdC1zdHlsZTpub25lfS50b3BuYXYgLnByb2R1Y3QtbGlzdCAjZHJvcGRvd24taXRlbXMgdWwuaXRlbS1saXN0LnByb2R1Y3RzW2RhdGEtY2F0ZWdvcnldOmJlZm9yZXtjb250ZW50OmF0dHIoZGF0YS1jYXRlZ29yeSk7ZGlzcGxheTppbmxpbmUtYmxvY2s7bWFyZ2luOi41cmVtIC43NXJlbSAuMTVyZW07Zm9udC1zaXplOi44NXJlbTtjb2xvcjojMTgxODIwLDAuODt0ZXh0LXRyYW5zZm9ybTp1cHBlcmNhc2U7Zm9udC13ZWlnaHQ6Ym9sZDtsZXR0ZXItc3BhY2luZzouMDRyZW07b3BhY2l0eTouNzU7bWl4LWJsZW5kLW1vZGU6bXVsdGlwbHl9LnRvcG5hdiAucHJvZHVjdC1saXN0ICNkcm9wZG93bi1pdGVtcyBhe2Rpc3BsYXk6YmxvY2s7dGV4dC1kZWNvcmF0aW9uOm5vbmU7Zm9udC1zaXplOjEuMDVyZW07Zm9udC13ZWlnaHQ6NTAwO3doaXRlLXNwYWNlOm5vd3JhcDtjb2xvcjojZmZmO3BhZGRpbmc6LjNyZW0gMS41cmVtIC4zcmVtIC43NXJlbTtiYWNrZ3JvdW5kOnJnYmEoMjU1LDI1NSwyNTUsMCl9LnRvcG5hdiAucHJvZHVjdC1saXN0ICNkcm9wZG93bi1pdGVtcyBhOmhvdmVye2JhY2tncm91bmQ6cmdiYSgyNTUsMjU1LDI1NSwwLjMpfS50b3BuYXYgLnByb2R1Y3QtbGlzdCAjZHJvcGRvd24taXRlbXMgYS5hY3RpdmV7YmFja2dyb3VuZDpyZ2JhKDI1NSwyNTUsMjU1LDAuMyl9LnRvcG5hdiAucHJvZHVjdC1saXN0ICNkcm9wZG93bi1pdGVtcyBhOmxhc3QtY2hpbGR7Ym9yZGVyLXJhZGl1czowIDAgMnB4IDJweDtwb3NpdGlvbjpyZWxhdGl2ZX0udG9wbmF2IC5wcm9kdWN0LWxpc3QgI2Ryb3Bkb3duLWl0ZW1zIGEgc3Bhbi5zdGF0ZXtmb250LXNpemU6LjllbTtvcGFjaXR5Oi42NTtmb250LXN0eWxlOml0YWxpY30udG9wbmF2IC5idXR0b25ze2Rpc3BsYXk6ZmxleDttYXJnaW4tbGVmdDouNXJlbX0udG9wbmF2IC50aGVtZS1zd2l0Y2gsLnRvcG5hdiAjc2VhcmNoLWJ0biwudG9wbmF2IC51cmwtdHJpZ2dlcntkaXNwbGF5OmlubGluZS1ibG9jaztwYWRkaW5nOjA7bGluZS1oZWlnaHQ6MDtjb2xvcjpyZ2JhKDI1NSwyNTUsMjU1LDAuNSk7YmFja2dyb3VuZDpub25lO2hlaWdodDozMHB4O3dpZHRoOjMwcHg7Ym9yZGVyOm5vbmU7dHJhbnNpdGlvbjpjb2xvciAuMnMsIG9wYWNpdHkgLjJzO2FwcGVhcmFuY2U6bm9uZTtvdmVyZmxvdzp2aXNpYmxlfS50b3BuYXYgLnRoZW1lLXN3aXRjaDpmb2N1cywudG9wbmF2ICNzZWFyY2gtYnRuOmZvY3VzLC50b3BuYXYgLnVybC10cmlnZ2VyOmZvY3Vze291dGxpbmU6bm9uZX0udG9wbmF2IC50aGVtZS1zd2l0Y2g6aG92ZXIsLnRvcG5hdiAjc2VhcmNoLWJ0bjpob3ZlciwudG9wbmF2IC51cmwtdHJpZ2dlcjpob3Zlcntjb2xvcjojZmZmO2N1cnNvcjpwb2ludGVyfS50b3BuYXYgLnRoZW1lLXN3aXRjaC50aGVtZS1zd2l0Y2gtZGFyaywudG9wbmF2ICNzZWFyY2gtYnRuLnRoZW1lLXN3aXRjaC1kYXJrLC50b3BuYXYgLnVybC10cmlnZ2VyLnRoZW1lLXN3aXRjaC1kYXJre2Rpc3BsYXk6bm9uZTtmb250LXNpemU6MS4xNXJlbX0udG9wbmF2IC50aGVtZS1zd2l0Y2gudGhlbWUtc3dpdGNoLWxpZ2h0LC50b3BuYXYgI3NlYXJjaC1idG4udGhlbWUtc3dpdGNoLWxpZ2h0LC50b3BuYXYgLnVybC10cmlnZ2VyLnRoZW1lLXN3aXRjaC1saWdodHtkaXNwbGF5OmlubGluZS1ibG9jaztmb250LXNpemU6MS4zcmVtfS50b3BuYXYgLnVybC10cmlnZ2Vye2ZvbnQtc2l6ZToxLjFyZW07dmVydGljYWwtYWxpZ246dG9wO3otaW5kZXg6MX0udG9wbmF2IC5zZWFyY2gtYnRue3dpZHRoOjA7b3BhY2l0eTowfS50b3BuYXYuZmVhdHVyZS1ib2FyZCAuYmFjay1idG57Y29sb3I6I0ZBRkFGQztiYWNrZ3JvdW5kOnJnYmEoMjEyLDIxNSwyMjEsMC4xNSk7Ym9yZGVyOjFweCBzb2xpZCByZ2JhKDIxMiwyMTUsMjIxLDApO2ZvbnQtd2VpZ2h0OjUwMDt0ZXh0LWRlY29yYXRpb246bm9uZTtwYWRkaW5nOi4zNXJlbSAxcmVtO2JvcmRlci1yYWRpdXM6MnB4O2ZvbnQtc2l6ZTouOXJlbTt0cmFuc2l0aW9uOmJvcmRlciAuMnN9LnRvcG5hdi5mZWF0dXJlLWJvYXJkIC5iYWNrLWJ0bjpiZWZvcmV7Y29udGVudDonXFxlOTA5Jztmb250LWZhbWlseTonaWNvbW9vbi12NCc7Zm9udC13ZWlnaHQ6Ym9sZDtsaW5lLWhlaWdodDowO21hcmdpbjowIC41cmVtIDAgLS4yNXJlbTt2ZXJ0aWNhbC1hbGlnbjptaWRkbGV9LnRvcG5hdi5mZWF0dXJlLWJvYXJkIC5iYWNrLWJ0bjpob3Zlcnt0ZXh0LWRlY29yYXRpb246bm9uZTtib3JkZXI6MXB4IHNvbGlkIHJnYmEoMjEyLDIxNSwyMjEsMC4yNSl9QG1lZGlhIChtYXgtd2lkdGg6IDgwMHB4KXsuZG9jcy1ob21lIC5sb25ne2Rpc3BsYXk6bm9uZX0uZG9jcy1ob21lIC5zaG9ydDphZnRlcntjb250ZW50Olwic1wifX1AbWVkaWEgKG1heC13aWR0aDogNjAwcHgpey5pY29uLWluZmx1eC1sb2dvdHlwZXtkaXNwbGF5Om5vbmV9LnRvcG5hdnttaW4taGVpZ2h0OjUuNzVyZW19LnRvcG5hdi5mZWF0dXJlLWJvYXJke21pbi1oZWlnaHQ6YXV0b30udG9wbmF2LXJpZ2h0e2ZsZXgtZGlyZWN0aW9uOmNvbHVtbi1yZXZlcnNlO2FsaWduLWl0ZW1zOmZsZXgtZW5kO3dpZHRoOmNhbGMoMTAwJSAtIDEuNXJlbSl9LnNlYXJjaC1idG57ZGlzcGxheTpub25lfS50b3BuYXYgLnNlbGVjdG9yLWRyb3Bkb3duc3t3aWR0aDoxMDAlO21hcmdpbi10b3A6LjZyZW07cGFkZGluZy1yaWdodDowfS50b3BuYXYgLnNlbGVjdG9yLWRyb3Bkb3ducyAucHJvZHVjdC1saXN0e3dpZHRoOmNhbGMoMTAwdncgLSAxLjZyZW0pfS50b3BuYXYgLnNlbGVjdG9yLWRyb3Bkb3ducyAucHJvZHVjdC1saXN0IC5wcm9kdWN0LWRyb3Bkb3due3dpZHRoOjEwMCV9fS5ob21lLWNvbnRlbnR7Y29sb3I6I0ZBRkFGQzt3aWR0aDoxMDAlO21heC13aWR0aDoxMzAwcHg7bWFyZ2luOjAgYXV0b30uaG9tZS1jb250ZW50IC5zZWN0aW9ue3dpZHRoOjEwMCU7bWFyZ2luOjAgYXV0bztwYWRkaW5nOjJyZW0gMnJlbSAwO2Rpc3BsYXk6YmxvY2s7cG9zaXRpb246cmVsYXRpdmV9LmhvbWUtY29udGVudCAuc2VhcmNoIC5zaWRlYmFyLS1zZWFyY2h7Zm9udC1zaXplOjEuMXJlbX0uaG9tZS1jb250ZW50IC5zZWFyY2ggLnNpZGViYXItLXNlYXJjaCBpbnB1dHtwYWRkaW5nOi43NWVtIDIuMzVyZW0gLjc1cmVtIDFyZW07Ym9yZGVyLXJhZGl1czo2cHg7cG9zaXRpb246cmVsYXRpdmU7Ym94LXNoYWRvdzpub25lfS5ob21lLWNvbnRlbnQgLnNlYXJjaCAuc2lkZWJhci0tc2VhcmNoIGlucHV0OjpwbGFjZWhvbGRlcntjb2xvcjpyZ2JhKDI1NSwyNTUsMjU1LDAuNjUpfS5ob21lLWNvbnRlbnQgLnNlYXJjaCAuc2lkZWJhci0tc2VhcmNoOmFmdGVye2ZvbnQtc2l6ZToycmVtO3RvcDouNDVyZW07cmlnaHQ6LjQ1cmVtfS5ob21lLWNvbnRlbnQgLnNlYXJjaCAuc2lkZWJhci0tc2VhcmNoIC5hbGdvbGlhLWF1dG9jb21wbGV0ZXtwb3NpdGlvbjpyZWxhdGl2ZX0uaG9tZS1jb250ZW50IC5zZWFyY2ggLnNpZGViYXItLXNlYXJjaCAuYWxnb2xpYS1hdXRvY29tcGxldGU6YWZ0ZXJ7Y29udGVudDpcIlwiO3Bvc2l0aW9uOmFic29sdXRlO2Rpc3BsYXk6YmxvY2s7Ym9yZGVyLXJhZGl1czo2cHg7dG9wOjA7bGVmdDowO2JveC1zaGFkb3c6MnB4IDJweCA2cHggcmdiYSgxNSwxNCwyMSwwLjUpO2hlaWdodDoxMDAlO3dpZHRoOjEwMCU7bWl4LWJsZW5kLW1vZGU6bXVsdGlwbHk7ei1pbmRleDotMX0uaG9tZS1jb250ZW50IC5zZWFyY2ggLnNpZGViYXItLXNlYXJjaCAuYWxnb2xpYS1hdXRvY29tcGxldGUuYWxnb2xpYS1hdXRvY29tcGxldGUtbGVmdCAuZHMtZHJvcGRvd24tbWVudSwuaG9tZS1jb250ZW50IC5zZWFyY2ggLnNpZGViYXItLXNlYXJjaCAuYWxnb2xpYS1hdXRvY29tcGxldGUuYWxnb2xpYS1hdXRvY29tcGxldGUtcmlnaHQgLmRzLWRyb3Bkb3duLW1lbnV7dG9wOmF1dG8gIWltcG9ydGFudDtsZWZ0OjAgIWltcG9ydGFudDttYXJnaW4tYm90dG9tOjEuNXJlbX0uaG9tZS1jb250ZW50IC5zZWFyY2ggLnNpZGViYXItLXNlYXJjaCAuYWxnb2xpYS1hdXRvY29tcGxldGUuYWxnb2xpYS1hdXRvY29tcGxldGUtbGVmdCAuZHMtZHJvcGRvd24tbWVudTphZnRlciwuaG9tZS1jb250ZW50IC5zZWFyY2ggLnNpZGViYXItLXNlYXJjaCAuYWxnb2xpYS1hdXRvY29tcGxldGUuYWxnb2xpYS1hdXRvY29tcGxldGUtcmlnaHQgLmRzLWRyb3Bkb3duLW1lbnU6YWZ0ZXJ7Y29udGVudDpcIlwiO2JveC1zaGFkb3c6MnB4IDJweCA2cHggcmdiYSgxNSwxNCwyMSwwLjUpO2hlaWdodDoxMDAlO3dpZHRoOjEwMCU7bWl4LWJsZW5kLW1vZGU6bXVsdGlwbHl9LmhvbWUtY29udGVudCAucGFkZGluZy13cmFwcGVye3BhZGRpbmc6MCAycmVtfS5ob21lLWNvbnRlbnQgaDF7dGV4dC1hbGlnbjpjZW50ZXI7Y29sb3I6I2ZmZn0uaG9tZS1jb250ZW50IC5wcm9kdWN0LWdyb3Vwe2JhY2tncm91bmQ6IzE0MTQxRjtwYWRkaW5nOjNyZW07bWFyZ2luLWJvdHRvbToycmVtO2JvcmRlci1yYWRpdXM6MzBweH0uaG9tZS1jb250ZW50IC5wcm9kdWN0LWdyb3VwIC5wcm9kdWN0c3tkaXNwbGF5OmZsZXg7ZmxleC13cmFwOndyYXA7d2lkdGg6MTAwJTttYXJnaW46MCAtMXJlbX0uaG9tZS1jb250ZW50IC5wcm9kdWN0LWdyb3VwIC5wcm9kdWN0e3BhZGRpbmc6MCAxcmVtO2Rpc3BsYXk6ZmxleDtmbGV4OjEgMSAzMyU7ZmxleC1kaXJlY3Rpb246Y29sdW1uO2p1c3RpZnktY29udGVudDpzcGFjZS1iZXR3ZWVuO21heC13aWR0aDozMyU7bWluLXdpZHRoOjIwMHB4fS5ob21lLWNvbnRlbnQgLnByb2R1Y3QtZ3JvdXAgLnByb2R1Y3QgLnByb2R1Y3QtaW5mbyBwe21hcmdpbi1ib3R0b206LjVyZW07Zm9udC1zaXplOjEuMXJlbTtsaW5lLWhlaWdodDoxLjVyZW07Y29sb3I6cmdiYSgyMTIsMjE1LDIyMSwwLjcpfS5ob21lLWNvbnRlbnQgLnByb2R1Y3QtZ3JvdXAgLnByb2R1Y3QgLnByb2R1Y3QtaW5mbyBoM1tzdGF0ZV06OmFmdGVye2NvbnRlbnQ6YXR0cihzdGF0ZSk7bWFyZ2luLWxlZnQ6LjVyZW07Zm9udC1zaXplOjFyZW07cGFkZGluZzouMjVlbSAuNWVtIC4yNWVtIC40ZW07YmFja2dyb3VuZDpsaW5lYXItZ3JhZGllbnQoNDVkZWcsICNkMzA5NzEsIzliMmFmZik7Y29sb3I6I2ZmZjtib3JkZXItcmFkaXVzOjRweDtmb250LXN0eWxlOml0YWxpYzt2ZXJ0aWNhbC1hbGlnbjptaWRkbGV9LmhvbWUtY29udGVudCAucHJvZHVjdC1ncm91cCAucHJvZHVjdCB1bC5wcm9kdWN0LWxpbmtze3BhZGRpbmctbGVmdDowO2xpc3Qtc3R5bGU6bm9uZX0uaG9tZS1jb250ZW50IC5wcm9kdWN0LWdyb3VwIC5wcm9kdWN0IHVsLnByb2R1Y3QtbGlua3MgbGk6bm90KDpsYXN0LWNoaWxkKXttYXJnaW4tYm90dG9tOi4zNXJlbX0uaG9tZS1jb250ZW50IC5wcm9kdWN0LWdyb3VwIC5wcm9kdWN0IHVsLnByb2R1Y3QtbGlua3MgYXt0ZXh0LWRlY29yYXRpb246bm9uZTtjb2xvcjojZmZmO2ZvbnQtd2VpZ2h0OjUwMDtwb3NpdGlvbjpyZWxhdGl2ZX0uaG9tZS1jb250ZW50IC5wcm9kdWN0LWdyb3VwIC5wcm9kdWN0IHVsLnByb2R1Y3QtbGlua3MgYTo6YmVmb3Jle2NvbnRlbnQ6XCJcIjtwb3NpdGlvbjphYnNvbHV0ZTtib3R0b206LTJweDtoZWlnaHQ6MnB4O3dpZHRoOjAlO2JhY2tncm91bmQ6bGluZWFyLWdyYWRpZW50KDQ1ZGVnLCAjZDMwOTcxLCM5YjJhZmYpO3RyYW5zaXRpb246d2lkdGggLjJzfS5ob21lLWNvbnRlbnQgLnByb2R1Y3QtZ3JvdXAgLnByb2R1Y3QgdWwucHJvZHVjdC1saW5rcyBhOjphZnRlcntjb250ZW50OlwiXFxlOTBhXCI7Zm9udC1mYW1pbHk6J2ljb21vb24tdjQnO2ZvbnQtd2VpZ2h0OmJvbGQ7Zm9udC1zaXplOjEuM3JlbTtkaXNwbGF5OmlubGluZS1ibG9jaztwb3NpdGlvbjphYnNvbHV0ZTtiYWNrZ3JvdW5kOmxpbmVhci1ncmFkaWVudCg0NWRlZywgI2QzMDk3MSwjOWIyYWZmKTtiYWNrZ3JvdW5kLWNsaXA6dGV4dDstd2Via2l0LXRleHQtZmlsbC1jb2xvcjp0cmFuc3BhcmVudDtyaWdodDowO3RyYW5zZm9ybTp0cmFuc2xhdGVYKDAuMjVyZW0pO29wYWNpdHk6MDt0cmFuc2l0aW9uOnRyYW5zZm9ybSAuMnMsIG9wYWNpdHkgLjJzfS5ob21lLWNvbnRlbnQgLnByb2R1Y3QtZ3JvdXAgLnByb2R1Y3QgdWwucHJvZHVjdC1saW5rcyBhOmhvdmVyOjpiZWZvcmV7d2lkdGg6MTAwJX0uaG9tZS1jb250ZW50IC5wcm9kdWN0LWdyb3VwIC5wcm9kdWN0IHVsLnByb2R1Y3QtbGlua3MgYTpob3Zlcjo6YWZ0ZXJ7dHJhbnNmb3JtOnRyYW5zbGF0ZVgoMS41cmVtKTtvcGFjaXR5OjF9LmhvbWUtY29udGVudCAucHJvZHVjdC1ncm91cCBoMntkaXNwbGF5OmlubGluZS1ibG9jaztmb250LXNpemU6Mi43NXJlbTttYXJnaW46MDtjb2xvcjojMTQxNDFGO2JhY2tncm91bmQ6bGluZWFyLWdyYWRpZW50KDQ1ZGVnLCAjZDMwOTcxLCM5YjJhZmYpO2JhY2tncm91bmQtY2xpcDp0ZXh0Oy13ZWJraXQtdGV4dC1maWxsLWNvbG9yOnRyYW5zcGFyZW50fS5ob21lLWNvbnRlbnQgLnByb2R1Y3QtZ3JvdXAgaDN7Zm9udC1zaXplOjEuNnJlbTttYXJnaW46MXJlbSAwIDB9LmhvbWUtY29udGVudCAucHJvZHVjdC1ncm91cCBoMyBhe3RleHQtZGVjb3JhdGlvbjpub25lO2NvbG9yOiNmZmY7cG9zaXRpb246cmVsYXRpdmV9LmhvbWUtY29udGVudCAucHJvZHVjdC1ncm91cCBoMyBhOjpiZWZvcmV7Y29udGVudDpcIlwiO3Bvc2l0aW9uOmFic29sdXRlO2JvdHRvbTotMnB4O2hlaWdodDoycHg7d2lkdGg6MCU7YmFja2dyb3VuZDpsaW5lYXItZ3JhZGllbnQoNDVkZWcsICNkMzA5NzEsIzliMmFmZik7dHJhbnNpdGlvbjp3aWR0aCAuMnN9LmhvbWUtY29udGVudCAucHJvZHVjdC1ncm91cCBoMyBhOmhvdmVyOjpiZWZvcmV7d2lkdGg6MTAwJX0uaG9tZS1jb250ZW50IC5wcm9kdWN0LWdyb3VwIGgzIC52ZXJzaW9ue2ZvbnQtc2l6ZTouOWVtO29wYWNpdHk6LjV9LmhvbWUtY29udGVudCAucHJvZHVjdC1ncm91cCBoNHtmb250LXNpemU6MS4xcmVtO21hcmdpbjoxLjVyZW0gMCAuNXJlbTtkaXNwbGF5OmlubGluZS1ibG9jaztwYWRkaW5nLXJpZ2h0OjFyZW07Y29sb3I6cmdiYSgyMTIsMjE1LDIyMSwwLjcpO2JhY2tncm91bmQ6IzE0MTQxRn0uaG9tZS1jb250ZW50IC5wcm9kdWN0LWdyb3VwIC5jYXRlZ29yaWVze2Rpc3BsYXk6ZmxleDtmbGV4LWRpcmVjdGlvbjpyb3c7ZmxleC13cmFwOndyYXA7d2lkdGg6Y2FsYygxMDAlICsgMnJlbSl9LmhvbWUtY29udGVudCAucHJvZHVjdC1ncm91cCAuY2F0ZWdvcmllcyAuY2F0ZWdvcnkuZnVsbC13aWR0aHt3aWR0aDoxMDAlfS5ob21lLWNvbnRlbnQgLnByb2R1Y3QtZ3JvdXAgLmNhdGVnb3JpZXMgLmNhdGVnb3J5LnR3by10aGlyZHN7d2lkdGg6NjYuNjYlfS5ob21lLWNvbnRlbnQgLnByb2R1Y3QtZ3JvdXAgLmNhdGVnb3JpZXMgLmNhdGVnb3J5LnR3by10aGlyZHMgLnByb2R1Y3R7bWF4LXdpZHRoOjUwJX0uaG9tZS1jb250ZW50IC5wcm9kdWN0LWdyb3VwIC5jYXRlZ29yaWVzIC5jYXRlZ29yeS5vbmUtdGhpcmR7d2lkdGg6MzMuMzMlfS5ob21lLWNvbnRlbnQgLnByb2R1Y3QtZ3JvdXAgLmNhdGVnb3JpZXMgLmNhdGVnb3J5Lm9uZS10aGlyZCAucHJvZHVjdHttYXgtd2lkdGg6MTAwJX0uaG9tZS1jb250ZW50IC5wcm9kdWN0LWdyb3VwIC5jYXRlZ29yeS1oZWFke21hcmdpbjoxcmVtIDAgMnJlbX0uaG9tZS1jb250ZW50IC5wcm9kdWN0LWdyb3VwIC5jYXRlZ29yeS1oZWFkOjphZnRlcntjb250ZW50OlwiXCI7ZGlzcGxheTpibG9jaztib3JkZXItdG9wOjFweCBzb2xpZCAjMzgzODQ2O21hcmdpbi10b3A6LTEuMTVyZW07d2lkdGg6Y2FsYygxMDAlIC0gMnJlbSl9LmhvbWUtY29udGVudCAjaW5mbHV4ZGIze21hcmdpbi10b3A6MS43NXJlbX0uaG9tZS1jb250ZW50ICNpbmZsdXhkYjMgaDIrcHttYXJnaW4tdG9wOi43NXJlbX0uaG9tZS1jb250ZW50ICN0ZWxlZ3JhZntiYWNrZ3JvdW5kOmxpbmVhci1ncmFkaWVudCg2NWRlZywgIzAyMGQ2NiwgIzAyMGE0Nyk7Y29sb3I6I2ZmZjtwb3NpdGlvbjpyZWxhdGl2ZTtvdmVyZmxvdzpoaWRkZW47ZGlzcGxheTpmbGV4O2ZsZXgtZGlyZWN0aW9uOnJvdzthbGlnbi1pdGVtczpjZW50ZXI7anVzdGlmeS1jb250ZW50OnNwYWNlLWJldHdlZW59LmhvbWUtY29udGVudCAjdGVsZWdyYWYgLmJnLW92ZXJsYXl7cG9zaXRpb246YWJzb2x1dGU7dG9wOjA7bGVmdDowO3dpZHRoOjEwMCU7aGVpZ2h0OjEwMCU7YmFja2dyb3VuZC1pbWFnZTp1cmwoXCIvaW1nL2JnLXRleHR1cmUtbmV3LnBuZ1wiKTtiYWNrZ3JvdW5kLXBvc2l0aW9uOmJvdHRvbX0uaG9tZS1jb250ZW50ICN0ZWxlZ3JhZiBoMntmb250LXNpemU6Mi41cmVtO2JhY2tncm91bmQ6bGluZWFyLWdyYWRpZW50KDI3MGRlZywgIzAwQTNGRiwjNWVlNGU0KTtiYWNrZ3JvdW5kLWNsaXA6dGV4dDstd2Via2l0LXRleHQtZmlsbC1jb2xvcjp0cmFuc3BhcmVudH0uaG9tZS1jb250ZW50ICN0ZWxlZ3JhZiBoMitwe21hcmdpbi10b3A6LjY1cmVtfS5ob21lLWNvbnRlbnQgI3RlbGVncmFmIHVsLnByb2R1Y3QtbGlua3N7cGFkZGluZy1sZWZ0OjA7bWFyZ2luOjAgM3JlbSAwIDJyZW07bGlzdC1zdHlsZTpub25lfS5ob21lLWNvbnRlbnQgI3RlbGVncmFmIHVsLnByb2R1Y3QtbGlua3MgbGk6bm90KDpsYXN0LWNoaWxkKXttYXJnaW4tYm90dG9tOi4zNXJlbX0uaG9tZS1jb250ZW50ICN0ZWxlZ3JhZiB1bC5wcm9kdWN0LWxpbmtzIGF7dGV4dC1kZWNvcmF0aW9uOm5vbmU7Y29sb3I6I2ZmZjtmb250LXdlaWdodDo1MDA7cG9zaXRpb246cmVsYXRpdmV9LmhvbWUtY29udGVudCAjdGVsZWdyYWYgdWwucHJvZHVjdC1saW5rcyBhOjpiZWZvcmV7Y29udGVudDpcIlwiO3Bvc2l0aW9uOmFic29sdXRlO2JvdHRvbTotMnB4O2hlaWdodDoycHg7d2lkdGg6MCU7YmFja2dyb3VuZDpsaW5lYXItZ3JhZGllbnQoMjcwZGVnLCAjMDBBM0ZGLCM1ZWU0ZTQpO3RyYW5zaXRpb246d2lkdGggLjJzfS5ob21lLWNvbnRlbnQgI3RlbGVncmFmIHVsLnByb2R1Y3QtbGlua3MgYTo6YWZ0ZXJ7Y29udGVudDpcIlxcZTkwYVwiO2ZvbnQtZmFtaWx5OidpY29tb29uLXY0Jztmb250LXdlaWdodDpib2xkO2ZvbnQtc2l6ZToxLjNyZW07ZGlzcGxheTppbmxpbmUtYmxvY2s7cG9zaXRpb246YWJzb2x1dGU7YmFja2dyb3VuZDpsaW5lYXItZ3JhZGllbnQoMjcwZGVnLCAjMDBBM0ZGLCM1ZWU0ZTQpO2JhY2tncm91bmQtY2xpcDp0ZXh0Oy13ZWJraXQtdGV4dC1maWxsLWNvbG9yOnRyYW5zcGFyZW50O3JpZ2h0OjA7dHJhbnNmb3JtOnRyYW5zbGF0ZVgoMC4yNXJlbSk7b3BhY2l0eTowO3RyYW5zaXRpb246dHJhbnNmb3JtIC4ycywgb3BhY2l0eSAuMnN9LmhvbWUtY29udGVudCAjdGVsZWdyYWYgdWwucHJvZHVjdC1saW5rcyBhOmhvdmVyOjpiZWZvcmV7d2lkdGg6MTAwJX0uaG9tZS1jb250ZW50ICN0ZWxlZ3JhZiB1bC5wcm9kdWN0LWxpbmtzIGE6aG92ZXI6OmFmdGVye3RyYW5zZm9ybTp0cmFuc2xhdGVYKDEuNXJlbSk7b3BhY2l0eToxfS5ob21lLWNvbnRlbnQgI2xlYXJuLW1vcmV7bWFyZ2luLWJvdHRvbToycmVtfS5ob21lLWNvbnRlbnQgI2xlYXJuLW1vcmUgaDN7Zm9udC1zaXplOjEuOHJlbTttYXJnaW46MXJlbSAwIDJyZW19LmhvbWUtY29udGVudCAjbGVhcm4tbW9yZSAubGVhcm4taXRlbXN7ZGlzcGxheTpmbGV4O2ZsZXgtZGlyZWN0aW9uOnJvdztqdXN0aWZ5LWNvbnRlbnQ6ZmxleC1zdGFydH0uaG9tZS1jb250ZW50ICNsZWFybi1tb3JlIC5sZWFybi1pdGVtcyAuaXRlbXttYXgtd2lkdGg6MjUlO2ZsZXg6MSAxIDA7ZGlzcGxheTpmbGV4O2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjttYXJnaW46MCAuNzVyZW19LmhvbWUtY29udGVudCAjbGVhcm4tbW9yZSAubGVhcm4taXRlbXMgLml0ZW0gLmljb24gc3Zne21heC1oZWlnaHQ6NjBweDttYXgtd2lkdGg6NjBweH0uaG9tZS1jb250ZW50ICNsZWFybi1tb3JlIC5sZWFybi1pdGVtcyAuaXRlbSAuaWNvbiAuYzF7ZmlsbDojZmZmfS5ob21lLWNvbnRlbnQgI2xlYXJuLW1vcmUgLmxlYXJuLWl0ZW1zIC5pdGVtIC5pY29uIC5jMntmaWxsOiMwNzA3MEV9LmhvbWUtY29udGVudCAjbGVhcm4tbW9yZSAubGVhcm4taXRlbXMgLml0ZW0gLmljb24gLm1hZ2VudGF7ZmlsbDojZDMwOTcxfS5ob21lLWNvbnRlbnQgI2xlYXJuLW1vcmUgLmxlYXJuLWl0ZW1zIC5pdGVtIGg0e2ZvbnQtc2l6ZToxLjRyZW07bWFyZ2luOjFyZW0gMCAwfS5ob21lLWNvbnRlbnQgI2xlYXJuLW1vcmUgLmxlYXJuLWl0ZW1zIC5pdGVtIHB7bWFyZ2luOi41cmVtIDAgMS41cmVtO2xpbmUtaGVpZ2h0OjEuN3JlbX0uaG9tZS1jb250ZW50ICNsZWFybi1tb3JlIC5sZWFybi1pdGVtcyAuaXRlbSBwOmxhc3QtY2hpbGR7bWFyZ2luLWJvdHRvbTowfS5ob21lLWNvbnRlbnQgI2xlYXJuLW1vcmUgLmxlYXJuLWl0ZW1zIC5pdGVtIGF7cG9zaXRpb246cmVsYXRpdmU7ZGlzcGxheTppbmxpbmU7Y29sb3I6I2ZmZjtmb250LXdlaWdodDo1MDA7dGV4dC1kZWNvcmF0aW9uOm5vbmV9LmhvbWUtY29udGVudCAjbGVhcm4tbW9yZSAubGVhcm4taXRlbXMgLml0ZW0gYTo6YmVmb3Jle2NvbnRlbnQ6XCJcIjtkaXNwbGF5OmlubGluZS1ibG9jaztwb3NpdGlvbjphYnNvbHV0ZTtsZWZ0OjA7Ym90dG9tOi00cHg7bWFyZ2luLXRvcDouMjVyZW07aGVpZ2h0OjJweDtiYWNrZ3JvdW5kOmxpbmVhci1ncmFkaWVudCg0NWRlZywgI2QzMDk3MSwjOWIyYWZmKTt3aWR0aDowO3RyYW5zaXRpb246d2lkdGggLjJzfS5ob21lLWNvbnRlbnQgI2xlYXJuLW1vcmUgLmxlYXJuLWl0ZW1zIC5pdGVtIGE6OmFmdGVye2NvbnRlbnQ6XCJcXGU5MGFcIjtmb250LWZhbWlseTonaWNvbW9vbi12NCc7Zm9udC13ZWlnaHQ6Ym9sZDtmb250LXNpemU6MS4zcmVtO2Rpc3BsYXk6aW5saW5lLWJsb2NrO3Bvc2l0aW9uOmFic29sdXRlO2JhY2tncm91bmQ6bGluZWFyLWdyYWRpZW50KDI3MGRlZywgI2QzMDk3MSwjOWIyYWZmKTtiYWNrZ3JvdW5kLWNsaXA6dGV4dDstd2Via2l0LXRleHQtZmlsbC1jb2xvcjp0cmFuc3BhcmVudDtyaWdodDowO3RyYW5zZm9ybTp0cmFuc2xhdGVYKDAuMjVyZW0pO29wYWNpdHk6MDt0cmFuc2l0aW9uOnRyYW5zZm9ybSAuMnMsIG9wYWNpdHkgLjJzfS5ob21lLWNvbnRlbnQgI2xlYXJuLW1vcmUgLmxlYXJuLWl0ZW1zIC5pdGVtIGE6aG92ZXI6OmJlZm9yZXt3aWR0aDoxMDAlfS5ob21lLWNvbnRlbnQgI2xlYXJuLW1vcmUgLmxlYXJuLWl0ZW1zIC5pdGVtIGE6aG92ZXI6OmFmdGVye3RyYW5zZm9ybTp0cmFuc2xhdGVYKDEuNXJlbSk7b3BhY2l0eToxfS5ob21lLWNvbnRlbnQgI2xlYXJuLW1vcmUgLmxlYXJuLWl0ZW1zIC5pdGVtPio6bGFzdC1jaGlsZHttYXJnaW4tdG9wOmF1dG99LmhvbWUtY29udGVudCAjY29weXJpZ2h0e3dpZHRoOjEwMCU7cGFkZGluZzoxcmVtIDNyZW07Y29sb3I6cmdiYSgyMTIsMjE1LDIyMSwwLjUpfS5ob21lLWNvbnRlbnQgI2NvcHlyaWdodCBwe21hcmdpbjowO3RleHQtYWxpZ246cmlnaHQ7Zm9udC1zaXplOi45cmVtfUBtZWRpYSAobWF4LXdpZHRoOiA5MDBweCl7LmhvbWUtY29udGVudCAucHJvZHVjdC1ncm91cCAucHJvZHVjdHMgLnByb2R1Y3R7bWF4LXdpZHRoOjUwJTttYXJnaW4tYm90dG9tOjJyZW19fUBtZWRpYSAobWF4LXdpZHRoOiA3MjBweCl7LmhvbWUtY29udGVudCAucHJvZHVjdC1ncm91cCAucHJvZHVjdHN7ZmxleC1kaXJlY3Rpb246Y29sdW1ufS5ob21lLWNvbnRlbnQgLnByb2R1Y3QtZ3JvdXAgLnByb2R1Y3RzIC5wcm9kdWN0e21hcmdpbi1ib3R0b206MXJlbTttYXgtd2lkdGg6MTAwJX0uaG9tZS1jb250ZW50IC5wcm9kdWN0LWdyb3VwIC5wcm9kdWN0cyAucHJvZHVjdCB1bHttYXJnaW4tYm90dG9tOjB9LmhvbWUtY29udGVudCAucHJvZHVjdC1ncm91cCAuY2F0ZWdvcmllcyAuY2F0ZWdvcnkudHdvLXRoaXJkc3t3aWR0aDoxMDAlfS5ob21lLWNvbnRlbnQgLnByb2R1Y3QtZ3JvdXAgLmNhdGVnb3JpZXMgLmNhdGVnb3J5LnR3by10aGlyZHMgLnByb2R1Y3R7bWF4LXdpZHRoOjEwMCV9LmhvbWUtY29udGVudCAucHJvZHVjdC1ncm91cCAuY2F0ZWdvcmllcyAuY2F0ZWdvcnkub25lLXRoaXJke3dpZHRoOjEwMCV9LmhvbWUtY29udGVudCAucHJvZHVjdC1ncm91cCAuY2F0ZWdvcmllcyAuY2F0ZWdvcnkub25lLXRoaXJkIC5wcm9kdWN0e21heC13aWR0aDoxMDAlfS5ob21lLWNvbnRlbnQgI3RlbGVncmFme2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjthbGlnbi1pdGVtczpmbGV4LXN0YXJ0fS5ob21lLWNvbnRlbnQgI3RlbGVncmFmIHVsLnByb2R1Y3QtbGlua3N7bWFyZ2luOjFyZW0gMCAwfX1AbWVkaWEgKG1heC13aWR0aDogODAwcHgpey5ob21lLWNvbnRlbnQgI2xlYXJuLW1vcmV7bWFyZ2luLWJvdHRvbTowfS5ob21lLWNvbnRlbnQgI2xlYXJuLW1vcmUgaDR7bWFyZ2luLXRvcDowfS5ob21lLWNvbnRlbnQgI2xlYXJuLW1vcmUgLmxlYXJuLWl0ZW1ze2ZsZXgtd3JhcDp3cmFwfS5ob21lLWNvbnRlbnQgI2xlYXJuLW1vcmUgLmxlYXJuLWl0ZW1zIC5pdGVte21heC13aWR0aDo0NSU7ZmxleDoxIDEgNTAlO21hcmdpbi1ib3R0b206MnJlbX19QG1lZGlhIChtYXgtd2lkdGg6IDYwMHB4KXsuaG9tZS1jb250ZW50IC5zZWN0aW9uLC5ob21lLWNvbnRlbnQgLnBhZGRpbmctd3JhcHBlcntwYWRkaW5nOjAgMXJlbX0uaG9tZS1jb250ZW50IGgxe2ZvbnQtc2l6ZToxLjU1cmVtO2xpbmUtaGVpZ2h0OjEuNXJlbTtwYWRkaW5nOjAgMS43NXJlbTttYXJnaW4tYm90dG9tOi0uNXJlbX0uaG9tZS1jb250ZW50IC5wcm9kdWN0LWdyb3Vwe3BhZGRpbmc6MS41cmVtfS5ob21lLWNvbnRlbnQgLnByb2R1Y3QtZ3JvdXAgcCwuaG9tZS1jb250ZW50IC5wcm9kdWN0LWdyb3VwIC5wcm9kdWN0IC5wcm9kdWN0LWluZm8gcHtmb250LXNpemU6MS4wNXJlbX0uaG9tZS1jb250ZW50IC5wcm9kdWN0LWdyb3VwIGgye2ZvbnQtc2l6ZToyLjFyZW19LmhvbWUtY29udGVudCAucHJvZHVjdC1ncm91cCBoM3tmb250LXNpemU6MS41cmVtfS5ob21lLWNvbnRlbnQgLnByb2R1Y3QtZ3JvdXAgaDR7Zm9udC1zaXplOjFyZW19LmhvbWUtY29udGVudCAjdGVsZWdyYWZ7cGFkZGluZzoxLjc1cmVtfS5ob21lLWNvbnRlbnQgI3RlbGVncmFmIGgye2ZvbnQtc2l6ZToycmVtfS5ob21lLWNvbnRlbnQgI2xlYXJuLW1vcmUgaDN7Zm9udC1zaXplOjEuNXJlbX0uaG9tZS1jb250ZW50ICNsZWFybi1tb3JlIC5sZWFybi1pdGVtcyAuaXRlbSBoNHtmb250LXNpemU6MS4ycmVtfS5ob21lLWNvbnRlbnQgI2NvcHlyaWdodCBwe3RleHQtYWxpZ246Y2VudGVyfX1AbWVkaWEgKG1heC13aWR0aDogNTQwcHgpey5ob21lLWNvbnRlbnQgI2xlYXJuLW1vcmUgLmxlYXJuLWl0ZW1ze2ZsZXgtZGlyZWN0aW9uOmNvbHVtbn0uaG9tZS1jb250ZW50ICNsZWFybi1tb3JlIC5sZWFybi1pdGVtcyAuaXRlbXttYXgtd2lkdGg6MTAwJTttYXJnaW46MCAwIDJyZW19fS5zaWRlYmFye2Rpc3BsYXk6YmxvY2s7cG9zaXRpb246cmVsYXRpdmU7ZmxleC1ncm93OjE7cGFkZGluZzowIDFlbTt3aWR0aDoyNSV9LnNpZGViYXItLXNlYXJjaHtwb3NpdGlvbjpyZWxhdGl2ZTtmbGV4LWdyb3c6MX0uc2lkZWJhci0tc2VhcmNoOmFmdGVye2NvbnRlbnQ6XCJcXGU5MDVcIjtkaXNwbGF5OmJsb2NrO2ZvbnQtZmFtaWx5OidpY29tb29uLXYyJztwb3NpdGlvbjphYnNvbHV0ZTt0b3A6LjI1cmVtO3JpZ2h0Oi4yNXJlbTtjb2xvcjojRDREN0REO2ZvbnQtc2l6ZToxLjhyZW19LnNpZGViYXItLXNlYXJjaCBpbnB1dHtmb250LWZhbWlseTpcIlByb3hpbWEgTm92YVwiLHNhbnMtc2VyaWY7Zm9udC13ZWlnaHQ6NTAwO2ZvbnQtc2l6ZToxLjFyZW07YmFja2dyb3VuZDojMUExQTJBO2JvcmRlci1yYWRpdXM6MnB4O2JvcmRlcjoxcHggc29saWQgIzFBMUEyQTtwYWRkaW5nOi41ZW0gMi4xNXJlbSAuNXJlbSAuNXJlbTt3aWR0aDoxMDAlO2NvbG9yOiNmZmY7dHJhbnNpdGlvbi1wcm9wZXJ0eTpib3JkZXIsIGJveC1zaGFkb3c7dHJhbnNpdGlvbi1kdXJhdGlvbjouMnM7Ym94LXNoYWRvdzoycHggMnB4IDZweCByZ2JhKDE1LDE0LDIxLDAuNSl9LnNpZGViYXItLXNlYXJjaCBpbnB1dDpmb2N1c3tvdXRsaW5lOm5vbmU7Ym9yZGVyLWNvbG9yOiMwMEEzRkY7Ym94LXNoYWRvdzoxcHggMXB4IDEwcHggcmdiYSgwLDE2MywyNTUsMC41KTtib3JkZXItcmFkaXVzOjJweH0uc2lkZWJhci0tc2VhcmNoIGlucHV0OjpwbGFjZWhvbGRlcntjb2xvcjpyZ2JhKDI1NSwyNTUsMjU1LDAuMzUpO2ZvbnQtd2VpZ2h0Om5vcm1hbH0uc2lkZWJhciAuc2VhcmNoLWFuZC1uYXYtdG9nZ2xle2Rpc3BsYXk6ZmxleDt3aWR0aDoxMDAlO21hcmdpbi1ib3R0b206LjdyZW19LnNpZGViYXIgI2NvbnRlbnRzLXRvZ2dsZS1idG57ZGlzcGxheTpibG9jazttYXJnaW46LjM1cmVtIC4wNXJlbSAuMjVyZW0gMS4ycmVtO3dpZHRoOjIwcHg7aGVpZ2h0OjIwcHh9LnNpZGViYXIgI2NvbnRlbnRzLXRvZ2dsZS1idG4gLnRvZ2dsZS1oYW1idXJnZXJ7ZGlzcGxheTpibG9jaztwb3NpdGlvbjpyZWxhdGl2ZTttYXJnaW4tdG9wOi42NXJlbTtiYWNrZ3JvdW5kOnJnYmEoMjU1LDI1NSwyNTUsMC41KTt3aWR0aDoyMHB4O2hlaWdodDoycHg7dHJhbnNpdGlvbjphbGwgLjNzO3RyYW5zZm9ybTpyb3RhdGUoMGRlZyl9LnNpZGViYXIgI2NvbnRlbnRzLXRvZ2dsZS1idG4gLnRvZ2dsZS1oYW1idXJnZXI6YmVmb3JlLC5zaWRlYmFyICNjb250ZW50cy10b2dnbGUtYnRuIC50b2dnbGUtaGFtYnVyZ2VyOmFmdGVye2NvbnRlbnQ6XCJcIjtkaXNwbGF5OmJsb2NrO3Bvc2l0aW9uOmFic29sdXRlO3dpZHRoOjIwcHg7aGVpZ2h0OjJweDtib3JkZXItcmFkaXVzOjFweDtiYWNrZ3JvdW5kOnJnYmEoMjU1LDI1NSwyNTUsMC41KTt0cmFuc2Zvcm06cm90YXRlKDBkZWcpO3RyYW5zaXRpb246YWxsIC4zc30uc2lkZWJhciAjY29udGVudHMtdG9nZ2xlLWJ0biAudG9nZ2xlLWhhbWJ1cmdlcjpiZWZvcmV7dG9wOi02cHh9LnNpZGViYXIgI2NvbnRlbnRzLXRvZ2dsZS1idG4gLnRvZ2dsZS1oYW1idXJnZXI6YWZ0ZXJ7dG9wOjZweH0uc2lkZWJhciAjY29udGVudHMtdG9nZ2xlLWJ0bjpob3ZlciAudG9nZ2xlLWhhbWJ1cmdlcntiYWNrZ3JvdW5kOiNmZmZ9LnNpZGViYXIgI2NvbnRlbnRzLXRvZ2dsZS1idG46aG92ZXIgLnRvZ2dsZS1oYW1idXJnZXI6YmVmb3JlLC5zaWRlYmFyICNjb250ZW50cy10b2dnbGUtYnRuOmhvdmVyIC50b2dnbGUtaGFtYnVyZ2VyOmFmdGVye2JhY2tncm91bmQ6I2ZmZn0uc2lkZWJhciAjY29udGVudHMtdG9nZ2xlLWJ0bi5vcGVuIC50b2dnbGUtaGFtYnVyZ2Vye2JhY2tncm91bmQ6IzA3MDcwRTt0cmFuc2Zvcm06cm90YXRlKDkwZGVnKX0uc2lkZWJhciAjY29udGVudHMtdG9nZ2xlLWJ0bi5vcGVuIC50b2dnbGUtaGFtYnVyZ2VyOmJlZm9yZXt0cmFuc2Zvcm06cm90YXRlKC0xMzVkZWcpO3RvcDowfS5zaWRlYmFyICNjb250ZW50cy10b2dnbGUtYnRuLm9wZW4gLnRvZ2dsZS1oYW1idXJnZXI6YWZ0ZXJ7dHJhbnNmb3JtOnJvdGF0ZSgtNDVkZWcpO3RvcDowfS5zaWRlYmFyICNuYXYtdHJlZXtsaXN0LXN0eWxlOm5vbmU7cGFkZGluZy1sZWZ0OjEuNXJlbTttYXJnaW4tYm90dG9tOjFyZW19LnNpZGViYXIgI25hdi10cmVlIHVse2xpc3Qtc3R5bGU6bm9uZTtwYWRkaW5nLWxlZnQ6Mi4zcmVtO2JvcmRlci1sZWZ0OjJweCBzb2xpZCAjMzMzMzQ2fS5zaWRlYmFyICNuYXYtdHJlZSBsaXttYXJnaW4tdG9wOi41cmVtO3Bvc2l0aW9uOnJlbGF0aXZlfS5zaWRlYmFyICNuYXYtdHJlZSBsaTpiZWZvcmV7Y29udGVudDpcIlwiO3dpZHRoOjRweDtoZWlnaHQ6NHB4O3RvcDouNDVlbTtsZWZ0Oi0xZW07ZGlzcGxheTpibG9jaztwb3NpdGlvbjphYnNvbHV0ZTtiYWNrZ3JvdW5kOiMzMzMzNDZ9LnNpZGViYXIgI25hdi10cmVlIGxpIHVse21hcmdpbi1sZWZ0Oi0uOTZlbX0uc2lkZWJhciAjbmF2LXRyZWUgbGkgdWwgbGk6YmVmb3Jle3RvcDouNGVtfS5zaWRlYmFyICNuYXYtdHJlZSBsaSB1bC5vcGVue21hcmdpbi10b3A6LS4yNWVtO3BhZGRpbmctdG9wOi4yNWVtfS5zaWRlYmFyICNuYXYtdHJlZSBsaS5hY3RpdmU6YmVmb3Jle2JhY2tncm91bmQ6I0Q2RjYyMn0uc2lkZWJhciAjbmF2LXRyZWUgbGkuYWN0aXZlPmF7Y29sb3I6I0Q2RjYyMn0uc2lkZWJhciAjbmF2LXRyZWUgbGkuYWN0aXZlPmE6aG92ZXJ7Y29sb3I6I0Q2RjYyMn0uc2lkZWJhciAjbmF2LXRyZWUgbGkuYWN0aXZlPi5jaGlsZHJlbi10b2dnbGV7YmFja2dyb3VuZDojRDZGNjIyfS5zaWRlYmFyICNuYXYtdHJlZSBsaS5hY3RpdmU+LmNoaWxkcmVuLXRvZ2dsZTpiZWZvcmUsLnNpZGViYXIgI25hdi10cmVlIGxpLmFjdGl2ZT4uY2hpbGRyZW4tdG9nZ2xlOmFmdGVye2JhY2tncm91bmQ6IzA3MDcwRX0uc2lkZWJhciAjbmF2LXRyZWUgbGkuYWN0aXZlPnVse2JvcmRlci1sZWZ0OjJweCBzb2xpZCAjRDZGNjIyfS5zaWRlYmFyICNuYXYtdHJlZSBhe3RleHQtZGVjb3JhdGlvbjpub25lO2ZvbnQtd2VpZ2h0OjUwMDtkaXNwbGF5OmlubGluZS1ibG9ja30uc2lkZWJhciAjbmF2LXRyZWUgLm5hdi1jYXRlZ29yeT5he2NvbG9yOiMwMEEzRkY7Zm9udC1zaXplOjEuMnJlbX0uc2lkZWJhciAjbmF2LXRyZWUgLm5hdi1jYXRlZ29yeT5hOmhvdmVye2NvbG9yOiNmZmZ9LnNpZGViYXIgI25hdi10cmVlIC5uYXYtaXRlbT5he2NvbG9yOiNENEQ3RER9LnNpZGViYXIgI25hdi10cmVlIC5uYXYtaXRlbT5hOmhvdmVye2NvbG9yOiMwMEEzRkZ9LnNpZGViYXIgI25hdi10cmVlIC5jaGlsZHJlbntoZWlnaHQ6MDtvdmVyZmxvdzpoaWRkZW59LnNpZGViYXIgI25hdi10cmVlIC5jaGlsZHJlbi5vcGVue2hlaWdodDphdXRvfS5zaWRlYmFyICNuYXYtdHJlZSAuY2hpbGRyZW4tdG9nZ2xle3dpZHRoOjEuMTJyZW07aGVpZ2h0OjEuMTJyZW07cG9zaXRpb246YWJzb2x1dGU7dG9wOi4xcmVtO2xlZnQ6LTEuNnJlbTtkaXNwbGF5OmJsb2NrO2JhY2tncm91bmQ6IzMzMzM0Njtib3JkZXItcmFkaXVzOjUwJX0uc2lkZWJhciAjbmF2LXRyZWUgLmNoaWxkcmVuLXRvZ2dsZTpiZWZvcmUsLnNpZGViYXIgI25hdi10cmVlIC5jaGlsZHJlbi10b2dnbGU6YWZ0ZXJ7Y29udGVudDpcIlwiO3Bvc2l0aW9uOmFic29sdXRlO2Rpc3BsYXk6YmxvY2s7YmFja2dyb3VuZDojRTdFOEVCO3RyYW5zaXRpb246YWxsIC4zc30uc2lkZWJhciAjbmF2LXRyZWUgLmNoaWxkcmVuLXRvZ2dsZTpiZWZvcmV7dG9wOjRweDtsZWZ0OjhweDtoZWlnaHQ6MTBweDt3aWR0aDoycHh9LnNpZGViYXIgI25hdi10cmVlIC5jaGlsZHJlbi10b2dnbGU6YWZ0ZXJ7dG9wOjhweDtsZWZ0OjRweDtoZWlnaHQ6MnB4O3dpZHRoOjEwcHh9LnNpZGViYXIgI25hdi10cmVlIC5jaGlsZHJlbi10b2dnbGU6aG92ZXJ7YmFja2dyb3VuZDojMDBBM0ZGfS5zaWRlYmFyICNuYXYtdHJlZSAuY2hpbGRyZW4tdG9nZ2xlOmhvdmVyOmJlZm9yZSwuc2lkZWJhciAjbmF2LXRyZWUgLmNoaWxkcmVuLXRvZ2dsZTpob3ZlcjphZnRlcntiYWNrZ3JvdW5kOiNFN0U4RUJ9LnNpZGViYXIgI25hdi10cmVlIC5jaGlsZHJlbi10b2dnbGUub3BlbjpiZWZvcmV7dHJhbnNmb3JtOnJvdGF0ZSg5MGRlZyl9LnNpZGViYXIgI25hdi10cmVlIC5jaGlsZHJlbi10b2dnbGUub3BlbjphZnRlcnt0cmFuc2Zvcm06cm90YXRlKDE4MGRlZyl9LnNpZGViYXIgI25hdi10cmVlIGg0e21hcmdpbjoycmVtIDAgMCAtMXJlbTtjb2xvcjpyZ2JhKDI1NSwyNTUsMjU1LDAuNSk7Zm9udC13ZWlnaHQ6NzAwO3RleHQtdHJhbnNmb3JtOnVwcGVyY2FzZTtmb250LXNpemU6Ljk1cmVtO2xldHRlci1zcGFjaW5nOi4wOHJlbX0uc2lkZWJhciAjbmF2LXRyZWUgaDQucGxhdGZvcm06YWZ0ZXIsLnNpZGViYXIgI25hdi10cmVlIGg0LmZsdXg6YWZ0ZXJ7Y29udGVudDpcIlxcZTkxMVwiO2ZvbnQtZmFtaWx5OlwiaWNvbW9vbi12MlwiO2ZvbnQtc3R5bGU6bm9ybWFsO2ZvbnQtc2l6ZToxcmVtO29wYWNpdHk6LjQ7bWFyZ2luLWxlZnQ6LjI1cmVtfS5zaWRlYmFyIC5mZWF0dXJlLWJvYXJkLWJhZGdle3Bvc2l0aW9uOnJlbGF0aXZlO3BhZGRpbmc6MXJlbTttYXJnaW46MnJlbSAwIDEuNXJlbSAtMS41cmVtO2JhY2tncm91bmQ6cmdiYSgwLDE2MywyNTUsMC4wNSk7Ym9yZGVyOjFweCBzb2xpZCByZ2JhKDAsMTYzLDI1NSwwLjIpO2JvcmRlci1yYWRpdXM6OHB4O3RleHQtZGVjb3JhdGlvbjpub25lO3RyYW5zaXRpb246YmFja2dyb3VuZCAuMnMsIGJvcmRlci1jb2xvciAuMnM7b3ZlcmZsb3c6aGlkZGVufS5zaWRlYmFyIC5mZWF0dXJlLWJvYXJkLWJhZGdlOmJlZm9yZXtjb250ZW50OlwiTkVXXCI7cG9zaXRpb246YWJzb2x1dGU7cGFkZGluZzouMXJlbSAxLjJyZW07Zm9udC1zaXplOi42NXJlbTtsZXR0ZXItc3BhY2luZzouMDNyZW07Zm9udC13ZWlnaHQ6Ym9sZDt0b3A6NnB4O3JpZ2h0Oi0xN3B4O2NvbG9yOiNmZmY7YmFja2dyb3VuZDojZDMwOTcxO3RyYW5zZm9ybTpyb3RhdGUoNDVkZWcpfS5zaWRlYmFyIC5mZWF0dXJlLWJvYXJkLWJhZGdlIGg1e21hcmdpbjowIDAgLjI1cmVtIDA7Y29sb3I6IzAwQTNGRjtmb250LXNpemU6MS4ycmVtfS5zaWRlYmFyIC5mZWF0dXJlLWJvYXJkLWJhZGdlIHB7bWFyZ2luOjA7Y29sb3I6I0Q0RDdERDtmb250LXNpemU6MC45cmVtO2xpbmUtaGVpZ2h0OjEuNHJlbTtmb250LXdlaWdodDpub3JtYWw7Zm9udC1zdHlsZTppdGFsaWN9LnNpZGViYXIgLmZlYXR1cmUtYm9hcmQtYmFkZ2U6aG92ZXJ7Ym9yZGVyLWNvbG9yOnJnYmEoMCwxNjMsMjU1LDAuNzUpfUBtZWRpYSAobWF4LXdpZHRoOiA4MDBweCl7LnNpZGViYXJ7d2lkdGg6MTAwJX0uc2lkZWJhciAjbmF2LXRyZWV7aGVpZ2h0OjA7b3ZlcmZsb3c6aGlkZGVuO21hcmdpbjowfS5zaWRlYmFyICNuYXYtdHJlZS5vcGVue2hlaWdodDphdXRvO292ZXJmbG93OmF1dG87bWFyZ2luLWJvdHRvbToycmVtfX1AbWVkaWEgKG1pbi13aWR0aDogODAxcHgpey5zaWRlYmFyICNjb250ZW50cy10b2dnbGUtYnRue2Rpc3BsYXk6bm9uZX19QG1lZGlhIChtaW4td2lkdGg6IDgwMXB4KSBhbmQgKG1heC13aWR0aDogMTIwMHB4KXsuc2lkZWJhcnt3aWR0aDozMCV9fS5zaWRlYmFyLXRvZ2dsZXtwb3NpdGlvbjphYnNvbHV0ZTtkaXNwbGF5OmJsb2NrO2hlaWdodDozNXB4O3RvcDozLjI1cmVtO3otaW5kZXg6MTAwfS5zaWRlYmFyLXRvZ2dsZTpob3ZlcntjdXJzb3I6cG9pbnRlcn0uc2lkZWJhci10b2dnbGU6aG92ZXI6YmVmb3JlLC5zaWRlYmFyLXRvZ2dsZTpob3ZlcjphZnRlcntjdXJzb3I6ZGVmYXVsdH0uc2lkZWJhci10b2dnbGU6aG92ZXIgYXtjb2xvcjojZDRkN2RkfS5zaWRlYmFyLXRvZ2dsZTpiZWZvcmUsLnNpZGViYXItdG9nZ2xlOmFmdGVye2Rpc3BsYXk6YmxvY2s7cG9zaXRpb246YWJzb2x1dGU7d2lkdGg6MTBweDtoZWlnaHQ6MTBweH0uc2lkZWJhci10b2dnbGU6YmVmb3Jle3RvcDotMTRweH0uc2lkZWJhci10b2dnbGU6YWZ0ZXJ7Ym90dG9tOi0xNHB4O3RyYW5zZm9ybTpyb3RhdGVYKDE4MGRlZyl9LnNpZGViYXItdG9nZ2xlPmF7Zm9udC1mYW1pbHk6XCJpY29tb29uLXYyXCI7Y29sb3I6cmdiYSgyMTIsMjE1LDIyMSwwLjUpO3RleHQtZGVjb3JhdGlvbjpub25lfS5zaWRlYmFyLXRvZ2dsZXtwYWRkaW5nOjAuNHJlbSAwLjZyZW07d2lkdGg6MzVweH0uc2lkZWJhci10b2dnbGU+YXtmb250LXNpemU6MXJlbX0uY29udGVudC13cmFwcGVyIC5zaWRlYmFyLXRvZ2dsZXtkaXNwbGF5Om5vbmU7bGVmdDowO2JhY2tncm91bmQtY29sb3I6IzA3MDcwRTtib3JkZXItcmFkaXVzOjAgMnB4IDJweCAwfS5jb250ZW50LXdyYXBwZXIgLnNpZGViYXItdG9nZ2xlOmJlZm9yZSwuY29udGVudC13cmFwcGVyIC5zaWRlYmFyLXRvZ2dsZTphZnRlcntjb250ZW50OnVybChcImRhdGE6aW1hZ2Uvc3ZnK3htbDtjaGFyc2V0PVVURi04LFxcYSAgICAgICA8c3ZnIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZycgeG1sbnM6eGxpbms9J2h0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsnIHg9JzBweCcgeT0nMHB4JyB2aWV3Qm94PScwIDAgMTAgMTAnIHhtbDpzcGFjZT0ncHJlc2VydmUnPlxcYSAgICAgICA8cGF0aCBmaWxsPSdyZ2JhKDcsNywxNCwwLjk5OTkpJyBkPSdNMCwxMGgxMFYwQzEwLDUuNTIsNS41MiwxMCwwLDEweicvPlxcYSAgICAgICA8L3N2Zz5cIik7bGVmdDowfS5jb250ZW50LXdyYXBwZXIgLnNpZGViYXItdG9nZ2xlOmJlZm9yZXt0cmFuc2Zvcm06cm90YXRlWSgxODBkZWcpfS5jb250ZW50LXdyYXBwZXIgLnNpZGViYXItdG9nZ2xlOmFmdGVye3RyYW5zZm9ybTpyb3RhdGUoMTgwZGVnKX0uc2lkZWJhciAuc2lkZWJhci10b2dnbGV7cmlnaHQ6MDtiYWNrZ3JvdW5kLWNvbG9yOiMxNDE0MUY7Ym9yZGVyLXJhZGl1czoycHggMCAwIDJweH0uc2lkZWJhciAuc2lkZWJhci10b2dnbGU6YmVmb3JlLC5zaWRlYmFyIC5zaWRlYmFyLXRvZ2dsZTphZnRlcntjb250ZW50OnVybChcImRhdGE6aW1hZ2Uvc3ZnK3htbDtjaGFyc2V0PVVURi04LFxcYSAgICAgICA8c3ZnIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZycgeG1sbnM6eGxpbms9J2h0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsnIHg9JzBweCcgeT0nMHB4JyB2aWV3Qm94PScwIDAgMTAgMTAnIHhtbDpzcGFjZT0ncHJlc2VydmUnPlxcYSAgICAgICA8cGF0aCBmaWxsPSdyZ2JhKDIwLDIwLDMxLDAuOTk5OSknIGQ9J00wLDEwaDEwVjBDMTAsNS41Miw1LjUyLDEwLDAsMTB6Jy8+XFxhICAgICAgIDwvc3ZnPlwiKTtyaWdodDowfUBtZWRpYSAobWF4LXdpZHRoOiA4MDBweCl7LnNpZGViYXItdG9nZ2xle2Rpc3BsYXk6bm9uZX19LmNvbnRlbnQtd3JhcHBlcntmbGV4LWdyb3c6MTt3aWR0aDo3NSU7cG9zaXRpb246cmVsYXRpdmU7Ym9yZGVyLXJhZGl1czoycHggMCAwIDJweDtvdmVyZmxvdzpoaWRkZW47ei1pbmRleDowfS5jb250ZW50LXdyYXBwZXIgLmNvcHlyaWdodHtwYWRkaW5nOi41cmVtIDFyZW0gLjVyZW0gLjVyZW07dGV4dC1hbGlnbjpyaWdodDtmb250LXNpemU6LjlyZW07Y29sb3I6cmdiYSgyMTIsMjE1LDIyMSwwLjUpfUBtZWRpYSAobWF4LXdpZHRoOiA4MDBweCl7LmNvbnRlbnQtd3JhcHBlcnt3aWR0aDoxMDAlfX1AbWVkaWEgKG1pbi13aWR0aDogODAxcHgpIGFuZCAobWF4LXdpZHRoOiAxMjAwcHgpey5jb250ZW50LXdyYXBwZXJ7d2lkdGg6NzAlfX0uYXJ0aWNsZXtiYWNrZ3JvdW5kOiMxNDE0MUY7Ym9yZGVyLXJhZGl1czoycHggMCAwIDJweDtwYWRkaW5nOjJyZW0gNHJlbSAzcmVtfS5hcnRpY2xlLS1jb250ZW50e21heC13aWR0aDo4NTBweDtmb250LXNpemU6MS4xcmVtfS5hcnRpY2xlLS1jb250ZW50IGgxLC5hcnRpY2xlLS1jb250ZW50IGgyLC5hcnRpY2xlLS1jb250ZW50IGgzLC5hcnRpY2xlLS1jb250ZW50IGg0LC5hcnRpY2xlLS1jb250ZW50IGg1LC5hcnRpY2xlLS1jb250ZW50IGg2e2NvbG9yOiNmZmZ9LmFydGljbGUtLWNvbnRlbnQgaDEgYSwuYXJ0aWNsZS0tY29udGVudCBoMiBhLC5hcnRpY2xlLS1jb250ZW50IGgzIGEsLmFydGljbGUtLWNvbnRlbnQgaDQgYSwuYXJ0aWNsZS0tY29udGVudCBoNSBhLC5hcnRpY2xlLS1jb250ZW50IGg2IGF7Y29sb3I6aW5oZXJpdCAhaW1wb3J0YW50O2ZvbnQtd2VpZ2h0OmluaGVyaXQgIWltcG9ydGFudDt0ZXh0LWRlY29yYXRpb246bm9uZX0uYXJ0aWNsZS0tY29udGVudCBoMSBhIGNvZGU6YWZ0ZXIsLmFydGljbGUtLWNvbnRlbnQgaDIgYSBjb2RlOmFmdGVyLC5hcnRpY2xlLS1jb250ZW50IGgzIGEgY29kZTphZnRlciwuYXJ0aWNsZS0tY29udGVudCBoNCBhIGNvZGU6YWZ0ZXIsLmFydGljbGUtLWNvbnRlbnQgaDUgYSBjb2RlOmFmdGVyLC5hcnRpY2xlLS1jb250ZW50IGg2IGEgY29kZTphZnRlcntib3JkZXI6bm9uZX0uYXJ0aWNsZS0tY29udGVudCBoMisuaGlnaGxpZ2h0IHByZSwuYXJ0aWNsZS0tY29udGVudCBoMysuaGlnaGxpZ2h0IHByZSwuYXJ0aWNsZS0tY29udGVudCBoNCsuaGlnaGxpZ2h0IHByZSwuYXJ0aWNsZS0tY29udGVudCBoNSsuaGlnaGxpZ2h0IHByZSwuYXJ0aWNsZS0tY29udGVudCBoNisuaGlnaGxpZ2h0IHByZXttYXJnaW4tdG9wOi41cmVtfS5hcnRpY2xlLS1jb250ZW50IGgyK3ByZSwuYXJ0aWNsZS0tY29udGVudCBoMytwcmUsLmFydGljbGUtLWNvbnRlbnQgaDQrcHJlLC5hcnRpY2xlLS1jb250ZW50IGg1K3ByZSwuYXJ0aWNsZS0tY29udGVudCBoNitwcmV7bWFyZ2luLXRvcDouNXJlbX0uYXJ0aWNsZS0tY29udGVudCBoMisuY29kZS10YWJzLXdyYXBwZXIsLmFydGljbGUtLWNvbnRlbnQgaDMrLmNvZGUtdGFicy13cmFwcGVyLC5hcnRpY2xlLS1jb250ZW50IGg0Ky5jb2RlLXRhYnMtd3JhcHBlciwuYXJ0aWNsZS0tY29udGVudCBoNSsuY29kZS10YWJzLXdyYXBwZXIsLmFydGljbGUtLWNvbnRlbnQgaDYrLmNvZGUtdGFicy13cmFwcGVye21hcmdpbi10b3A6MH0uYXJ0aWNsZS0tY29udGVudCBoMi5tb25vc3BhY2UsLmFydGljbGUtLWNvbnRlbnQgaDMubW9ub3NwYWNlLC5hcnRpY2xlLS1jb250ZW50IGg0Lm1vbm9zcGFjZSwuYXJ0aWNsZS0tY29udGVudCBoNS5tb25vc3BhY2UsLmFydGljbGUtLWNvbnRlbnQgaDYubW9ub3NwYWNle2ZvbnQtZmFtaWx5OlwiSUJNIFBsZXggTW9ub1wiLG1vbm9zcGFjZX0uYXJ0aWNsZS0tY29udGVudCBoMi5ncmVlbiwuYXJ0aWNsZS0tY29udGVudCBoMy5ncmVlbiwuYXJ0aWNsZS0tY29udGVudCBoNC5ncmVlbiwuYXJ0aWNsZS0tY29udGVudCBoNS5ncmVlbiwuYXJ0aWNsZS0tY29udGVudCBoNi5ncmVlbntjb2xvcjojMzRCQjU1fS5hcnRpY2xlLS1jb250ZW50IGgyLm9yYW5nZSwuYXJ0aWNsZS0tY29udGVudCBoMy5vcmFuZ2UsLmFydGljbGUtLWNvbnRlbnQgaDQub3JhbmdlLC5hcnRpY2xlLS1jb250ZW50IGg1Lm9yYW5nZSwuYXJ0aWNsZS0tY29udGVudCBoNi5vcmFuZ2V7Y29sb3I6I0ZGODU2NH0uYXJ0aWNsZS0tY29udGVudCBoMi5jaGVja3BvaW50OjpiZWZvcmUsLmFydGljbGUtLWNvbnRlbnQgaDMuY2hlY2twb2ludDo6YmVmb3JlLC5hcnRpY2xlLS1jb250ZW50IGg0LmNoZWNrcG9pbnQ6OmJlZm9yZSwuYXJ0aWNsZS0tY29udGVudCBoNS5jaGVja3BvaW50OjpiZWZvcmUsLmFydGljbGUtLWNvbnRlbnQgaDYuY2hlY2twb2ludDo6YmVmb3Jle2NvbnRlbnQ6J1xcZTkzYic7Zm9udC1mYW1pbHk6J2ljb21vb24tdjQnO2ZvbnQtc2l6ZToyLjI1cmVtO2NvbG9yOiNkMzA5NzE7ZGlzcGxheTppbmxpbmU7bWFyZ2luOjAgLjVyZW0gMCAwO3ZlcnRpY2FsLWFsaWduOnRvcH0uYXJ0aWNsZS0tY29udGVudCBoMlttZXRhZGF0YV06OmFmdGVyLC5hcnRpY2xlLS1jb250ZW50IGgzW21ldGFkYXRhXTo6YWZ0ZXIsLmFydGljbGUtLWNvbnRlbnQgaDRbbWV0YWRhdGFdOjphZnRlciwuYXJ0aWNsZS0tY29udGVudCBoNVttZXRhZGF0YV06OmFmdGVyLC5hcnRpY2xlLS1jb250ZW50IGg2W21ldGFkYXRhXTo6YWZ0ZXJ7Y29udGVudDphdHRyKG1ldGFkYXRhKTttYXJnaW4tbGVmdDouNjVyZW07cGFkZGluZzouMWVtIC41ZW07Y29sb3I6I2ZmZjtiYWNrZ3JvdW5kOnJnYmEoMjU1LDI1NSwyNTUsMC4xMik7Zm9udC1zaXplOi43NWVtO2ZvbnQtc3R5bGU6bm9ybWFsO2ZvbnQtd2VpZ2h0OjUwMDtib3JkZXItcmFkaXVzOjFlbTtkaXNwbGF5OmlubGluZS1ibG9jazt2ZXJ0aWNhbC1hbGlnbjptaWRkbGV9LmFydGljbGUtLWNvbnRlbnQgaDJbZGF0ZV06OmFmdGVyLC5hcnRpY2xlLS1jb250ZW50IGgyW25vdGVdOjphZnRlciwuYXJ0aWNsZS0tY29udGVudCBoM1tkYXRlXTo6YWZ0ZXIsLmFydGljbGUtLWNvbnRlbnQgaDNbbm90ZV06OmFmdGVyLC5hcnRpY2xlLS1jb250ZW50IGg0W2RhdGVdOjphZnRlciwuYXJ0aWNsZS0tY29udGVudCBoNFtub3RlXTo6YWZ0ZXIsLmFydGljbGUtLWNvbnRlbnQgaDVbZGF0ZV06OmFmdGVyLC5hcnRpY2xlLS1jb250ZW50IGg1W25vdGVdOjphZnRlciwuYXJ0aWNsZS0tY29udGVudCBoNltkYXRlXTo6YWZ0ZXIsLmFydGljbGUtLWNvbnRlbnQgaDZbbm90ZV06OmFmdGVye21hcmdpbi1sZWZ0Oi42NXJlbTtvcGFjaXR5Oi40O2ZvbnQtc2l6ZTouNzVlbTtmb250LXdlaWdodDo1MDA7Zm9udC1zdHlsZTppbmhlcml0fS5hcnRpY2xlLS1jb250ZW50IGgyW2RhdGVdOjphZnRlciwuYXJ0aWNsZS0tY29udGVudCBoM1tkYXRlXTo6YWZ0ZXIsLmFydGljbGUtLWNvbnRlbnQgaDRbZGF0ZV06OmFmdGVyLC5hcnRpY2xlLS1jb250ZW50IGg1W2RhdGVdOjphZnRlciwuYXJ0aWNsZS0tY29udGVudCBoNltkYXRlXTo6YWZ0ZXJ7Y29udGVudDphdHRyKGRhdGUpfS5hcnRpY2xlLS1jb250ZW50IGgyW25vdGVdOjphZnRlciwuYXJ0aWNsZS0tY29udGVudCBoM1tub3RlXTo6YWZ0ZXIsLmFydGljbGUtLWNvbnRlbnQgaDRbbm90ZV06OmFmdGVyLC5hcnRpY2xlLS1jb250ZW50IGg1W25vdGVdOjphZnRlciwuYXJ0aWNsZS0tY29udGVudCBoNltub3RlXTo6YWZ0ZXJ7Y29udGVudDphdHRyKG5vdGUpO2ZvbnQtc2l6ZTouODVlbX0uYXJ0aWNsZS0tY29udGVudCBoMXtmb250LXdlaWdodDpib2xkO2ZvbnQtc2l6ZToyLjc1cmVtO21hcmdpbjouNGVtIDAgLjJlbX0uYXJ0aWNsZS0tY29udGVudCBoMntmb250LXNpemU6Mi4xcmVtO21hcmdpbjotLjI1cmVtIDAgLjVyZW07cGFkZGluZy10b3A6MS43NXJlbTtmb250LXdlaWdodDo1MDA7Y29sb3I6I0ZBRkFGQ30uYXJ0aWNsZS0tY29udGVudCBoM3tmb250LXNpemU6MS43NXJlbTtmb250LXdlaWdodDo1MDA7bWFyZ2luOi0xcmVtIDAgLjVyZW07cGFkZGluZy10b3A6MS43NXJlbX0uYXJ0aWNsZS0tY29udGVudCBoNHtmb250LXNpemU6MS4zNXJlbTtmb250LXN0eWxlOml0YWxpYztmb250LXdlaWdodDo1MDA7bWFyZ2luOi0xLjI1cmVtIDAgLjVyZW07cGFkZGluZy10b3A6MS43NXJlbTtjb2xvcjojRkFGQUZDfS5hcnRpY2xlLS1jb250ZW50IGg1e2ZvbnQtc2l6ZToxLjFyZW07bWFyZ2luOi0xLjI1cmVtIDAgLjI1cmVtO3BhZGRpbmctdG9wOjEuNzVyZW19LmFydGljbGUtLWNvbnRlbnQgaDZ7Zm9udC1zaXplOjEuMXJlbTtmb250LXN0eWxlOml0YWxpYzttYXJnaW46LTEuMjVyZW0gMCAuMjVyZW07cGFkZGluZy10b3A6MS43NXJlbX0uYXJ0aWNsZS0tY29udGVudCBwLC5hcnRpY2xlLS1jb250ZW50IGxpe2NvbG9yOiNENEQ3REQ7bGluZS1oZWlnaHQ6MS44cmVtfS5hcnRpY2xlLS1jb250ZW50IHB7bWFyZ2luOjAgMCAxLjVlbX0uYXJ0aWNsZS0tY29udGVudCBhe2NvbG9yOiMwMEEzRkY7Zm9udC13ZWlnaHQ6NTAwO3RleHQtZGVjb3JhdGlvbjpub25lfS5hcnRpY2xlLS1jb250ZW50IGE6aG92ZXJ7Y29sb3I6I2ZmZn0uYXJ0aWNsZS0tY29udGVudCBhLmhlbHAtbGlua3tkaXNwbGF5OmlubGluZS1ibG9jazt3aWR0aDoxcmVtO2hlaWdodDoxcmVtO2JvcmRlci1yYWRpdXM6NTAlO2JhY2tncm91bmQ6IzE0MTQxRn0uYXJ0aWNsZS0tY29udGVudCBzdHJvbmd7Y29sb3I6I0ZBRkFGQ30uYXJ0aWNsZS0tY29udGVudCBpbWd7bWF4LXdpZHRoOjEwMCU7bWFyZ2luLWJvdHRvbToycmVtO2JvcmRlci1yYWRpdXM6M3B4O2JveC1zaGFkb3c6MXB4IDNweCAxMHB4ICMwNzA3MEV9LmFydGljbGUtLWNvbnRlbnQgdWwrcD5pbWd7bWFyZ2luLXRvcDoxLjVyZW19LmFydGljbGUtLWNvbnRlbnQgaHJ7Ym9yZGVyLXdpZHRoOjFweCAwIDA7Ym9yZGVyLWNvbG9yOiMzODM4NDY7Ym9yZGVyLXN0eWxlOnNvbGlkO21hcmdpbjoxLjg1cmVtIDAgMS43NXJlbX0uYXJ0aWNsZS0tY29udGVudCAuYmFkZ2V7Zm9udC1zaXplOi43cmVtO21hcmdpbjowIC4ycmVtO3BhZGRpbmc6LjFyZW0gLjRyZW07Ym9yZGVyLXJhZGl1czouNnJlbTtmb250LXdlaWdodDpib2xkO3ZlcnRpY2FsLWFsaWduOnRvcH0uYXJ0aWNsZS0tY29udGVudCAuYmFkZ2UuZHZje2NvbG9yOiMyZTdkMmU7YmFja2dyb3VuZC1jb2xvcjojZThmNWU4fS5hcnRpY2xlLS1jb250ZW50IC5iYWRnZS5sdmN7Y29sb3I6IzE5NzZkMjtiYWNrZ3JvdW5kLWNvbG9yOiNlM2YyZmR9LmFydGljbGUtLWNvbnRlbnQgLmJhZGdlLmV4cGVyaW1lbnRhbHtjb2xvcjojZmU5ZGJjO2JhY2tncm91bmQtY29sb3I6cmdiYSgyMTEsOSwxMTMsMC4xMil9LmFydGljbGUtLWNvbnRlbnQgYmxvY2txdW90ZSwuYXJ0aWNsZS0tY29udGVudCAuYmxvY2t7cGFkZGluZzoxLjY1cmVtIDJyZW0gLjFyZW0gMnJlbTttYXJnaW46MXJlbSAwIDJyZW07Ym9yZGVyLXdpZHRoOjAgMCAwIDRweDtib3JkZXItc3R5bGU6c29saWQ7Ym9yZGVyLXJhZGl1czowIDJweCAycHggMDtmb250LXNpemU6MS4wNXJlbX0uYXJ0aWNsZS0tY29udGVudCBibG9ja3F1b3RlIHVsOmxhc3QtY2hpbGQsLmFydGljbGUtLWNvbnRlbnQgYmxvY2txdW90ZSBvbDpsYXN0LWNoaWxkLC5hcnRpY2xlLS1jb250ZW50IC5ibG9jayB1bDpsYXN0LWNoaWxkLC5hcnRpY2xlLS1jb250ZW50IC5ibG9jayBvbDpsYXN0LWNoaWxke21hcmdpbi1ib3R0b206MS44NXJlbX0uYXJ0aWNsZS0tY29udGVudCBibG9ja3F1b3RlPmgyOmZpcnN0LWNoaWxkLC5hcnRpY2xlLS1jb250ZW50IGJsb2NrcXVvdGU+aDM6Zmlyc3QtY2hpbGQsLmFydGljbGUtLWNvbnRlbnQgYmxvY2txdW90ZT5oNDpmaXJzdC1jaGlsZCwuYXJ0aWNsZS0tY29udGVudCBibG9ja3F1b3RlPmg1OmZpcnN0LWNoaWxkLC5hcnRpY2xlLS1jb250ZW50IGJsb2NrcXVvdGU+aDY6Zmlyc3QtY2hpbGQsLmFydGljbGUtLWNvbnRlbnQgLmJsb2NrPmgyOmZpcnN0LWNoaWxkLC5hcnRpY2xlLS1jb250ZW50IC5ibG9jaz5oMzpmaXJzdC1jaGlsZCwuYXJ0aWNsZS0tY29udGVudCAuYmxvY2s+aDQ6Zmlyc3QtY2hpbGQsLmFydGljbGUtLWNvbnRlbnQgLmJsb2NrPmg1OmZpcnN0LWNoaWxkLC5hcnRpY2xlLS1jb250ZW50IC5ibG9jaz5oNjpmaXJzdC1jaGlsZHttYXJnaW4tdG9wOjA7cGFkZGluZy10b3A6MC4yNWVtfS5hcnRpY2xlLS1jb250ZW50IGJsb2NrcXVvdGUubm90ZSwuYXJ0aWNsZS0tY29udGVudCBibG9ja3F1b3RlLnRpcCwuYXJ0aWNsZS0tY29udGVudCBibG9ja3F1b3RlLmltcG9ydGFudCwuYXJ0aWNsZS0tY29udGVudCBibG9ja3F1b3RlLndhcm5pbmcsLmFydGljbGUtLWNvbnRlbnQgYmxvY2txdW90ZS53YXJuLC5hcnRpY2xlLS1jb250ZW50IGJsb2NrcXVvdGUuY2F1dGlvbiwuYXJ0aWNsZS0tY29udGVudCAuYmxvY2subm90ZSwuYXJ0aWNsZS0tY29udGVudCAuYmxvY2sudGlwLC5hcnRpY2xlLS1jb250ZW50IC5ibG9jay5pbXBvcnRhbnQsLmFydGljbGUtLWNvbnRlbnQgLmJsb2NrLndhcm5pbmcsLmFydGljbGUtLWNvbnRlbnQgLmJsb2NrLndhcm4sLmFydGljbGUtLWNvbnRlbnQgLmJsb2NrLmNhdXRpb257cG9zaXRpb246cmVsYXRpdmV9LmFydGljbGUtLWNvbnRlbnQgYmxvY2txdW90ZS5ub3RlOmJlZm9yZSwuYXJ0aWNsZS0tY29udGVudCBibG9ja3F1b3RlLnRpcDpiZWZvcmUsLmFydGljbGUtLWNvbnRlbnQgYmxvY2txdW90ZS5pbXBvcnRhbnQ6YmVmb3JlLC5hcnRpY2xlLS1jb250ZW50IGJsb2NrcXVvdGUud2FybmluZzpiZWZvcmUsLmFydGljbGUtLWNvbnRlbnQgYmxvY2txdW90ZS53YXJuOmJlZm9yZSwuYXJ0aWNsZS0tY29udGVudCBibG9ja3F1b3RlLmNhdXRpb246YmVmb3JlLC5hcnRpY2xlLS1jb250ZW50IC5ibG9jay5ub3RlOmJlZm9yZSwuYXJ0aWNsZS0tY29udGVudCAuYmxvY2sudGlwOmJlZm9yZSwuYXJ0aWNsZS0tY29udGVudCAuYmxvY2suaW1wb3J0YW50OmJlZm9yZSwuYXJ0aWNsZS0tY29udGVudCAuYmxvY2sud2FybmluZzpiZWZvcmUsLmFydGljbGUtLWNvbnRlbnQgLmJsb2NrLndhcm46YmVmb3JlLC5hcnRpY2xlLS1jb250ZW50IC5ibG9jay5jYXV0aW9uOmJlZm9yZXtwb3NpdGlvbjphYnNvbHV0ZTtmb250LWZhbWlseTpcImFsZXJ0LWljb25zXCI7Zm9udC1zaXplOjFlbTtsaW5lLWhlaWdodDoxZW07cGFkZGluZzouM3JlbTt0ZXh0LWFsaWduOmNlbnRlcjt0b3A6LS41cmVtO2xlZnQ6LS45NXJlbTtkaXNwbGF5OmJsb2NrO2JvcmRlci1yYWRpdXM6NTAlO2JveC1zaGFkb3c6MXB4IDNweCA1cHggcmdiYSg3LDcsMTQsMC41KX0uYXJ0aWNsZS0tY29udGVudCBoMisubm90ZSwuYXJ0aWNsZS0tY29udGVudCBoMisudGlwLC5hcnRpY2xlLS1jb250ZW50IGgyKy5pbXBvcnRhbnQsLmFydGljbGUtLWNvbnRlbnQgaDIrLndhcm5pbmcsLmFydGljbGUtLWNvbnRlbnQgaDIrLmNhdXRpb24sLmFydGljbGUtLWNvbnRlbnQgaDMrLm5vdGUsLmFydGljbGUtLWNvbnRlbnQgaDMrLnRpcCwuYXJ0aWNsZS0tY29udGVudCBoMysuaW1wb3J0YW50LC5hcnRpY2xlLS1jb250ZW50IGgzKy53YXJuaW5nLC5hcnRpY2xlLS1jb250ZW50IGgzKy5jYXV0aW9uLC5hcnRpY2xlLS1jb250ZW50IGg0Ky5ub3RlLC5hcnRpY2xlLS1jb250ZW50IGg0Ky50aXAsLmFydGljbGUtLWNvbnRlbnQgaDQrLmltcG9ydGFudCwuYXJ0aWNsZS0tY29udGVudCBoNCsud2FybmluZywuYXJ0aWNsZS0tY29udGVudCBoNCsuY2F1dGlvbiwuYXJ0aWNsZS0tY29udGVudCBoNSsubm90ZSwuYXJ0aWNsZS0tY29udGVudCBoNSsudGlwLC5hcnRpY2xlLS1jb250ZW50IGg1Ky5pbXBvcnRhbnQsLmFydGljbGUtLWNvbnRlbnQgaDUrLndhcm5pbmcsLmFydGljbGUtLWNvbnRlbnQgaDUrLmNhdXRpb24sLmFydGljbGUtLWNvbnRlbnQgaDYrLm5vdGUsLmFydGljbGUtLWNvbnRlbnQgaDYrLnRpcCwuYXJ0aWNsZS0tY29udGVudCBoNisuaW1wb3J0YW50LC5hcnRpY2xlLS1jb250ZW50IGg2Ky53YXJuaW5nLC5hcnRpY2xlLS1jb250ZW50IGg2Ky5jYXV0aW9ue21hcmdpbi10b3A6MS4yNXJlbX0uYXJ0aWNsZS0tY29udGVudCBibG9ja3F1b3Rle3BhZGRpbmc6MXJlbSAxcmVtIDFyZW0gMS4yNXJlbTtib3JkZXItY29sb3I6cmdiYSgyMTIsMjE1LDIyMSwwLjI1KX0uYXJ0aWNsZS0tY29udGVudCBibG9ja3F1b3RlIHAsLmFydGljbGUtLWNvbnRlbnQgYmxvY2txdW90ZSBsaXtmb250LXNpemU6MS4xNXJlbTtmb250LXN0eWxlOml0YWxpYztjb2xvcjpyZ2JhKDIxMiwyMTUsMjIxLDAuNSl9LmFydGljbGUtLWNvbnRlbnQgYmxvY2txdW90ZSAqOmxhc3QtY2hpbGR7bWFyZ2luLWJvdHRvbTowfS5hcnRpY2xlLS1jb250ZW50IGJsb2NrcXVvdGUgLmNpdGV7ZGlzcGxheTpibG9jazttYXJnaW4tdG9wOi0xcmVtO2ZvbnQtc3R5bGU6aXRhbGljO2ZvbnQtc2l6ZTouODVyZW07b3BhY2l0eTouOH0uYXJ0aWNsZS0tY29udGVudD5wIHNwYW4uY2l0ZXt2ZXJ0aWNhbC1hbGlnbjpzdXBlcjtsaW5lLWhlaWdodDowO2ZvbnQtc2l6ZTouN3JlbTtmb250LXN0eWxlOml0YWxpY31AbWVkaWEgKG1heC13aWR0aDogNjAwcHgpey5hcnRpY2xlLS1jb250ZW50IGJsb2NrcXVvdGUsLmFydGljbGUtLWNvbnRlbnQgLmJsb2Nre3BhZGRpbmc6MS4zNXJlbSAxLjI1cmVtIC4xcmVtIDEuMjVyZW07bWFyZ2luOi41cmVtIDAgMXJlbX19LmFydGljbGUtLWNvbnRlbnQgLm5vdGU6YmVmb3Jle2NvbnRlbnQ6XCJOXCI7Y29sb3I6I2ZmZjtiYWNrZ3JvdW5kOiMwMEEzRkZ9LmFydGljbGUtLWNvbnRlbnQgLm5vdGV7Ym9yZGVyLWNvbG9yOiMwMEEzRkY7YmFja2dyb3VuZDpyZ2JhKDAsMTYzLDI1NSwwLjEpfS5hcnRpY2xlLS1jb250ZW50IC5ub3RlIGgxLC5hcnRpY2xlLS1jb250ZW50IC5ub3RlIGgyLC5hcnRpY2xlLS1jb250ZW50IC5ub3RlIGgzLC5hcnRpY2xlLS1jb250ZW50IC5ub3RlIGg0LC5hcnRpY2xlLS1jb250ZW50IC5ub3RlIGg1LC5hcnRpY2xlLS1jb250ZW50IC5ub3RlIGg2e2NvbG9yOiNmZmZ9LmFydGljbGUtLWNvbnRlbnQgLm5vdGUgaDEgYSwuYXJ0aWNsZS0tY29udGVudCAubm90ZSBoMiBhLC5hcnRpY2xlLS1jb250ZW50IC5ub3RlIGgzIGEsLmFydGljbGUtLWNvbnRlbnQgLm5vdGUgaDQgYSwuYXJ0aWNsZS0tY29udGVudCAubm90ZSBoNSBhLC5hcnRpY2xlLS1jb250ZW50IC5ub3RlIGg2IGF7Y29sb3I6aW5oZXJpdCAhaW1wb3J0YW50fS5hcnRpY2xlLS1jb250ZW50IC5ub3RlIGgxIGE6aG92ZXIsLmFydGljbGUtLWNvbnRlbnQgLm5vdGUgaDIgYTpob3ZlciwuYXJ0aWNsZS0tY29udGVudCAubm90ZSBoMyBhOmhvdmVyLC5hcnRpY2xlLS1jb250ZW50IC5ub3RlIGg0IGE6aG92ZXIsLmFydGljbGUtLWNvbnRlbnQgLm5vdGUgaDUgYTpob3ZlciwuYXJ0aWNsZS0tY29udGVudCAubm90ZSBoNiBhOmhvdmVye2NvbG9yOmluaGVyaXQgIWltcG9ydGFudH0uYXJ0aWNsZS0tY29udGVudCAubm90ZSBwLC5hcnRpY2xlLS1jb250ZW50IC5ub3RlIGxpe2NvbG9yOiNCRUYwRkZ9LmFydGljbGUtLWNvbnRlbnQgLm5vdGUgc3Ryb25ne2NvbG9yOiNmZmZ9LmFydGljbGUtLWNvbnRlbnQgLm5vdGUgYXtjb2xvcjojZmZmfS5hcnRpY2xlLS1jb250ZW50IC5ub3RlIGEgY29kZTphZnRlcntib3JkZXItY29sb3I6dHJhbnNwYXJlbnQgcmdiYSgwLDIwMSwyNTUsMC4zNSkgdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnR9LmFydGljbGUtLWNvbnRlbnQgLm5vdGUgYTpob3Zlcntjb2xvcjojNkJERkZGfS5hcnRpY2xlLS1jb250ZW50IC5ub3RlIGE6aG92ZXIgY29kZTphZnRlcntib3JkZXItY29sb3I6dHJhbnNwYXJlbnQgIzZCREZGRiB0cmFuc3BhcmVudCB0cmFuc3BhcmVudH0uYXJ0aWNsZS0tY29udGVudCAubm90ZSBvbCBsaTpiZWZvcmV7Y29sb3I6I0JFRjBGRn0uYXJ0aWNsZS0tY29udGVudCAubm90ZSBjb2RlLC5hcnRpY2xlLS1jb250ZW50IC5ub3RlIHByZXtjb2xvcjojMDBDOUZGO2JhY2tncm91bmQ6IzBhMDcxY30uYXJ0aWNsZS0tY29udGVudCAubm90ZSBpbWd7Ym94LXNoYWRvdzoxcHggM3B4IDEwcHggIzBGMEUxNX0uYXJ0aWNsZS0tY29udGVudCAubm90ZSB0YWJsZXtjb2xvcjojQkVGMEZGO2JveC1zaGFkb3c6MXB4IDNweCAxMHB4ICMwRjBFMTV9LmFydGljbGUtLWNvbnRlbnQgLm5vdGUgdGFibGUgdGhlYWR7YmFja2dyb3VuZDpsaW5lYXItZ3JhZGllbnQoNDVkZWcsICMwQjNBOEQsIzA2NkZDNSl9LmFydGljbGUtLWNvbnRlbnQgLm5vdGUgdGFibGUgdHI6bnRoLWNoaWxkKGV2ZW4pIHRke2JhY2tncm91bmQ6IzFiM2E1OH0uYXJ0aWNsZS0tY29udGVudCAubm90ZSBibG9ja3F1b3Rle2JvcmRlci1jb2xvcjpyZ2JhKDE5MCwyNDAsMjU1LDAuMjUpfS5hcnRpY2xlLS1jb250ZW50IC5ub3RlIGJsb2NrcXVvdGUgcHtjb2xvcjpyZ2JhKDE5MCwyNDAsMjU1LDAuNil9LmFydGljbGUtLWNvbnRlbnQgLm5vdGUgLmNvZGUtdGFicy13cmFwcGVyIC5jb2RlLXRhYnMgYXtiYWNrZ3JvdW5kOnRyYW5zcGFyZW50O2NvbG9yOnJnYmEoMTkwLDI0MCwyNTUsMC41KX0uYXJ0aWNsZS0tY29udGVudCAubm90ZSAuY29kZS10YWJzLXdyYXBwZXIgLmNvZGUtdGFicyBhOmhvdmVye2NvbG9yOiNiZWYwZmZ9LmFydGljbGUtLWNvbnRlbnQgLm5vdGUgLmNvZGUtdGFicy13cmFwcGVyIC5jb2RlLXRhYnMgYS5pcy1hY3RpdmV7Y29sb3I6I2JlZjBmZjtiYWNrZ3JvdW5kOiMwYTA3MWN9LmFydGljbGUtLWNvbnRlbnQgLm5vdGUgaHIsLmFydGljbGUtLWNvbnRlbnQgLm5vdGUgLmV4cGFuZHtib3JkZXItY29sb3I6cmdiYSgwLDE2MywyNTUsMC40KSAhaW1wb3J0YW50fS5hcnRpY2xlLS1jb250ZW50IC5ub3RlIHByZTo6LXdlYmtpdC1zY3JvbGxiYXJ7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDEwLDcsMjgsMCk7d2lkdGg6MTJweDtoZWlnaHQ6MTJweH0uYXJ0aWNsZS0tY29udGVudCAubm90ZSBwcmU6Oi13ZWJraXQtc2Nyb2xsYmFyLXRyYWNre2JhY2tncm91bmQtY29sb3I6IzBhMDcxYztib3JkZXItcmFkaXVzOjAgMCAycHggMnB4fS5hcnRpY2xlLS1jb250ZW50IC5ub3RlIHByZTo6LXdlYmtpdC1zY3JvbGxiYXItdGh1bWJ7YmFja2dyb3VuZC1jb2xvcjojMTkyYTNhO2JvcmRlcjozcHggc29saWQgIzBhMDcxYztib3JkZXItcmFkaXVzOjZweH0uYXJ0aWNsZS0tY29udGVudCAubm90ZSB0YWJsZTo6LXdlYmtpdC1zY3JvbGxiYXJ7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDI3LDU4LDg4LDApO3dpZHRoOjEycHg7aGVpZ2h0OjEycHh9LmFydGljbGUtLWNvbnRlbnQgLm5vdGUgdGFibGU6Oi13ZWJraXQtc2Nyb2xsYmFyLXRyYWNre2JhY2tncm91bmQtY29sb3I6IzFiM2E1ODtib3JkZXItcmFkaXVzOjAgMCAycHggMnB4fS5hcnRpY2xlLS1jb250ZW50IC5ub3RlIHRhYmxlOjotd2Via2l0LXNjcm9sbGJhci10aHVtYntiYWNrZ3JvdW5kLWNvbG9yOiMxOTJhM2E7Ym9yZGVyOjNweCBzb2xpZCAjMWIzYTU4O2JvcmRlci1yYWRpdXM6NnB4fS5hcnRpY2xlLS1jb250ZW50IC5ub3RlIC5oaWdobGlnaHR7Y29sb3I6IzAwQzlGRn0uYXJ0aWNsZS0tY29udGVudCAubm90ZSAuaGlnaGxpZ2h0IC5naCwuYXJ0aWNsZS0tY29udGVudCAubm90ZSAuaGlnaGxpZ2h0IC5nbywuYXJ0aWNsZS0tY29udGVudCAubm90ZSAuaGlnaGxpZ2h0IC5uYSwuYXJ0aWNsZS0tY29udGVudCAubm90ZSAuaGlnaGxpZ2h0IC5udCwuYXJ0aWNsZS0tY29udGVudCAubm90ZSAuaGlnaGxpZ2h0IC5udiwuYXJ0aWNsZS0tY29udGVudCAubm90ZSAuaGlnaGxpZ2h0IC5vd3tjb2xvcjojMDBDOUZGfS5hcnRpY2xlLS1jb250ZW50IC5ub3RlIC5oaWdobGlnaHQgLmMsLmFydGljbGUtLWNvbnRlbnQgLm5vdGUgLmhpZ2hsaWdodCAuY2gsLmFydGljbGUtLWNvbnRlbnQgLm5vdGUgLmhpZ2hsaWdodCAuY20sLmFydGljbGUtLWNvbnRlbnQgLm5vdGUgLmhpZ2hsaWdodCAuY3BmLC5hcnRpY2xlLS1jb250ZW50IC5ub3RlIC5oaWdobGlnaHQgLmMxLC5hcnRpY2xlLS1jb250ZW50IC5ub3RlIC5oaWdobGlnaHQgLmNzLC5hcnRpY2xlLS1jb250ZW50IC5ub3RlIC5oaWdobGlnaHQgLnd7Y29sb3I6IzU2NzM3NX0uYXJ0aWNsZS0tY29udGVudCAubm90ZSAuaGlnaGxpZ2h0IC5naXtiYWNrZ3JvdW5kLWNvbG9yOiM1NjczNzV9LmFydGljbGUtLWNvbnRlbnQgLm5vdGUgLmhpZ2hsaWdodCAuaywuYXJ0aWNsZS0tY29udGVudCAubm90ZSAuaGlnaGxpZ2h0IC5rYywuYXJ0aWNsZS0tY29udGVudCAubm90ZSAuaGlnaGxpZ2h0IC5rZCwuYXJ0aWNsZS0tY29udGVudCAubm90ZSAuaGlnaGxpZ2h0IC5rbiwuYXJ0aWNsZS0tY29udGVudCAubm90ZSAuaGlnaGxpZ2h0IC5rcCwuYXJ0aWNsZS0tY29udGVudCAubm90ZSAuaGlnaGxpZ2h0IC5rciwuYXJ0aWNsZS0tY29udGVudCAubm90ZSAuaGlnaGxpZ2h0IC5ubntjb2xvcjojMDBBM0ZGfS5hcnRpY2xlLS1jb250ZW50IC5ub3RlIC5oaWdobGlnaHQgLmJwLC5hcnRpY2xlLS1jb250ZW50IC5ub3RlIC5oaWdobGlnaHQgLmNwLC5hcnRpY2xlLS1jb250ZW50IC5ub3RlIC5oaWdobGlnaHQgLmRsLC5hcnRpY2xlLS1jb250ZW50IC5ub3RlIC5oaWdobGlnaHQgLmd0LC5hcnRpY2xlLS1jb250ZW50IC5ub3RlIC5oaWdobGlnaHQgLmd1LC5hcnRpY2xlLS1jb250ZW50IC5ub3RlIC5oaWdobGlnaHQgLmt0LC5hcnRpY2xlLS1jb250ZW50IC5ub3RlIC5oaWdobGlnaHQgLm5iLC5hcnRpY2xlLS1jb250ZW50IC5ub3RlIC5oaWdobGlnaHQgLm5jLC5hcnRpY2xlLS1jb250ZW50IC5ub3RlIC5oaWdobGlnaHQgLm5vLC5hcnRpY2xlLS1jb250ZW50IC5ub3RlIC5oaWdobGlnaHQgLnNhLC5hcnRpY2xlLS1jb250ZW50IC5ub3RlIC5oaWdobGlnaHQgLnNiLC5hcnRpY2xlLS1jb250ZW50IC5ub3RlIC5oaWdobGlnaHQgLnNjLC5hcnRpY2xlLS1jb250ZW50IC5ub3RlIC5oaWdobGlnaHQgLnNkLC5hcnRpY2xlLS1jb250ZW50IC5ub3RlIC5oaWdobGlnaHQgLnNlLC5hcnRpY2xlLS1jb250ZW50IC5ub3RlIC5oaWdobGlnaHQgLnNoLC5hcnRpY2xlLS1jb250ZW50IC5ub3RlIC5oaWdobGlnaHQgLnN4LC5hcnRpY2xlLS1jb250ZW50IC5ub3RlIC5oaWdobGlnaHQgLnNyLC5hcnRpY2xlLS1jb250ZW50IC5ub3RlIC5oaWdobGlnaHQgLnMxLC5hcnRpY2xlLS1jb250ZW50IC5ub3RlIC5oaWdobGlnaHQgLnMye2NvbG9yOiMwMDlGNUZ9LmFydGljbGUtLWNvbnRlbnQgLm5vdGUgLmhpZ2hsaWdodCAuZXJyLC5hcnRpY2xlLS1jb250ZW50IC5ub3RlIC5oaWdobGlnaHQgLmZtLC5hcnRpY2xlLS1jb250ZW50IC5ub3RlIC5oaWdobGlnaHQgLmdyLC5hcnRpY2xlLS1jb250ZW50IC5ub3RlIC5oaWdobGlnaHQgLmdkLC5hcnRpY2xlLS1jb250ZW50IC5ub3RlIC5oaWdobGlnaHQgLm5kLC5hcnRpY2xlLS1jb250ZW50IC5ub3RlIC5oaWdobGlnaHQgLm5lLC5hcnRpY2xlLS1jb250ZW50IC5ub3RlIC5oaWdobGlnaHQgLm5mLC5hcnRpY2xlLS1jb250ZW50IC5ub3RlIC5oaWdobGlnaHQgLm5sLC5hcnRpY2xlLS1jb250ZW50IC5ub3RlIC5oaWdobGlnaHQgLnNpe2NvbG9yOiNCRjNENUV9LmFydGljbGUtLWNvbnRlbnQgLm5vdGUgLmhpZ2hsaWdodCAubSwuYXJ0aWNsZS0tY29udGVudCAubm90ZSAuaGlnaGxpZ2h0IC5uaSwuYXJ0aWNsZS0tY29udGVudCAubm90ZSAuaGlnaGxpZ2h0IC5tYiwuYXJ0aWNsZS0tY29udGVudCAubm90ZSAuaGlnaGxpZ2h0IC5tZiwuYXJ0aWNsZS0tY29udGVudCAubm90ZSAuaGlnaGxpZ2h0IC5taCwuYXJ0aWNsZS0tY29udGVudCAubm90ZSAuaGlnaGxpZ2h0IC5taSwuYXJ0aWNsZS0tY29udGVudCAubm90ZSAuaGlnaGxpZ2h0IC5tbywuYXJ0aWNsZS0tY29udGVudCAubm90ZSAuaGlnaGxpZ2h0IC52YywuYXJ0aWNsZS0tY29udGVudCAubm90ZSAuaGlnaGxpZ2h0IC52ZywuYXJ0aWNsZS0tY29udGVudCAubm90ZSAuaGlnaGxpZ2h0IC52aSwuYXJ0aWNsZS0tY29udGVudCAubm90ZSAuaGlnaGxpZ2h0IC52bSwuYXJ0aWNsZS0tY29udGVudCAubm90ZSAuaGlnaGxpZ2h0IC5pbHtjb2xvcjojZmY2ZGIwfS5hcnRpY2xlLS1jb250ZW50IC5ub3RlIC5oaWdobGlnaHQgLmdwLC5hcnRpY2xlLS1jb250ZW50IC5ub3RlIC5oaWdobGlnaHQgLm97Y29sb3I6IzAwQTNGRn0uYXJ0aWNsZS0tY29udGVudCAubm90ZSAuaGlnaGxpZ2h0IC5zc3tjb2xvcjojZTkwfS5hcnRpY2xlLS1jb250ZW50IC5ub3RlIC5oaWdobGlnaHQgLmxhbmd1YWdlLWpzIC5taSsubngsLmFydGljbGUtLWNvbnRlbnQgLm5vdGUgLmhpZ2hsaWdodCAubGFuZ3VhZ2UtanMgLm1mKy5ueHtjb2xvcjojZmY2ZGIwfS5hcnRpY2xlLS1jb250ZW50IC5ub3RlIC5oaWdobGlnaHQgLmxhbmd1YWdlLXNxbCAubWkrLm57Y29sb3I6I2ZmNmRiMH0uYXJ0aWNsZS0tY29udGVudCAudGlwe2JvcmRlci1jb2xvcjojMDA5RjVGO2JhY2tncm91bmQ6cmdiYSgwLDE1OSw5NSwwLjEyKX0uYXJ0aWNsZS0tY29udGVudCAudGlwOmJlZm9yZXtjb250ZW50OlwiVFwiO2NvbG9yOiNmZmY7YmFja2dyb3VuZDojMDA5RjVGfS5hcnRpY2xlLS1jb250ZW50IC50aXAgaDEsLmFydGljbGUtLWNvbnRlbnQgLnRpcCBoMiwuYXJ0aWNsZS0tY29udGVudCAudGlwIGgzLC5hcnRpY2xlLS1jb250ZW50IC50aXAgaDQsLmFydGljbGUtLWNvbnRlbnQgLnRpcCBoNSwuYXJ0aWNsZS0tY29udGVudCAudGlwIGg2e2NvbG9yOiNmZmZ9LmFydGljbGUtLWNvbnRlbnQgLnRpcCBoMSBhLC5hcnRpY2xlLS1jb250ZW50IC50aXAgaDIgYSwuYXJ0aWNsZS0tY29udGVudCAudGlwIGgzIGEsLmFydGljbGUtLWNvbnRlbnQgLnRpcCBoNCBhLC5hcnRpY2xlLS1jb250ZW50IC50aXAgaDUgYSwuYXJ0aWNsZS0tY29udGVudCAudGlwIGg2IGF7Y29sb3I6aW5oZXJpdCAhaW1wb3J0YW50fS5hcnRpY2xlLS1jb250ZW50IC50aXAgaDEgYTpob3ZlciwuYXJ0aWNsZS0tY29udGVudCAudGlwIGgyIGE6aG92ZXIsLmFydGljbGUtLWNvbnRlbnQgLnRpcCBoMyBhOmhvdmVyLC5hcnRpY2xlLS1jb250ZW50IC50aXAgaDQgYTpob3ZlciwuYXJ0aWNsZS0tY29udGVudCAudGlwIGg1IGE6aG92ZXIsLmFydGljbGUtLWNvbnRlbnQgLnRpcCBoNiBhOmhvdmVye2NvbG9yOmluaGVyaXQgIWltcG9ydGFudH0uYXJ0aWNsZS0tY29udGVudCAudGlwIHAsLmFydGljbGUtLWNvbnRlbnQgLnRpcCBsaXtjb2xvcjojNjdENzRFfS5hcnRpY2xlLS1jb250ZW50IC50aXAgc3Ryb25ne2NvbG9yOiNmZmZ9LmFydGljbGUtLWNvbnRlbnQgLnRpcCBhe2NvbG9yOiNDNkY5OEV9LmFydGljbGUtLWNvbnRlbnQgLnRpcCBhIGNvZGU6YWZ0ZXJ7Ym9yZGVyLWNvbG9yOnRyYW5zcGFyZW50IHJnYmEoMTQ3LDE0OCwyNTUsMC4zNSkgdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnR9LmFydGljbGUtLWNvbnRlbnQgLnRpcCBhOmhvdmVye2NvbG9yOiNmZmZ9LmFydGljbGUtLWNvbnRlbnQgLnRpcCBhOmhvdmVyIGNvZGU6YWZ0ZXJ7Ym9yZGVyLWNvbG9yOnRyYW5zcGFyZW50ICNmZmYgdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnR9LmFydGljbGUtLWNvbnRlbnQgLnRpcCBvbCBsaTpiZWZvcmV7Y29sb3I6IzY3RDc0RX0uYXJ0aWNsZS0tY29udGVudCAudGlwIGNvZGUsLmFydGljbGUtLWNvbnRlbnQgLnRpcCBwcmV7Y29sb3I6IzkzOTRGRjtiYWNrZ3JvdW5kOiMwNDBkMGV9LmFydGljbGUtLWNvbnRlbnQgLnRpcCBpbWd7Ym94LXNoYWRvdzoxcHggM3B4IDEwcHggIzBGMEUxNX0uYXJ0aWNsZS0tY29udGVudCAudGlwIHRhYmxle2NvbG9yOiM2N0Q3NEU7Ym94LXNoYWRvdzoxcHggM3B4IDEwcHggIzBGMEUxNX0uYXJ0aWNsZS0tY29udGVudCAudGlwIHRhYmxlIHRoZWFke2JhY2tncm91bmQ6bGluZWFyLWdyYWRpZW50KDQ1ZGVnLCAjMDA2RjQ5LCMwMDlGNUYpfS5hcnRpY2xlLS1jb250ZW50IC50aXAgdGFibGUgdHI6bnRoLWNoaWxkKGV2ZW4pIHRke2JhY2tncm91bmQ6IzFhM2MzNH0uYXJ0aWNsZS0tY29udGVudCAudGlwIGJsb2NrcXVvdGV7Ym9yZGVyLWNvbG9yOnJnYmEoMTAzLDIxNSw3OCwwLjI1KX0uYXJ0aWNsZS0tY29udGVudCAudGlwIGJsb2NrcXVvdGUgcHtjb2xvcjpyZ2JhKDEwMywyMTUsNzgsMC42KX0uYXJ0aWNsZS0tY29udGVudCAudGlwIC5jb2RlLXRhYnMtd3JhcHBlciAuY29kZS10YWJzIGF7YmFja2dyb3VuZDp0cmFuc3BhcmVudDtjb2xvcjpyZ2JhKDEwMywyMTUsNzgsMC41KX0uYXJ0aWNsZS0tY29udGVudCAudGlwIC5jb2RlLXRhYnMtd3JhcHBlciAuY29kZS10YWJzIGE6aG92ZXJ7Y29sb3I6IzY3ZDc0ZX0uYXJ0aWNsZS0tY29udGVudCAudGlwIC5jb2RlLXRhYnMtd3JhcHBlciAuY29kZS10YWJzIGEuaXMtYWN0aXZle2NvbG9yOiM2N2Q3NGU7YmFja2dyb3VuZDojMDQwZDBlfS5hcnRpY2xlLS1jb250ZW50IC50aXAuZmxleHtmb250LXN0eWxlOml0YWxpYztkaXNwbGF5OmZsZXh9LmFydGljbGUtLWNvbnRlbnQgLnRpcC5mbGV4IGRpdjpmaXJzdC1jaGlsZHtwb3NpdGlvbjpyZWxhdGl2ZTttYXJnaW46LjI1cmVtIDJyZW0gMCAwfS5hcnRpY2xlLS1jb250ZW50IC50aXAgaHIsLmFydGljbGUtLWNvbnRlbnQgLnRpcCAuZXhwYW5ke2JvcmRlci1jb2xvcjpyZ2JhKDAsMTU5LDk1LDAuNCkgIWltcG9ydGFudH0uYXJ0aWNsZS0tY29udGVudCAudGlwIHByZTo6LXdlYmtpdC1zY3JvbGxiYXJ7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDQsMTMsMTQsMCk7d2lkdGg6MTJweDtoZWlnaHQ6MTJweH0uYXJ0aWNsZS0tY29udGVudCAudGlwIHByZTo6LXdlYmtpdC1zY3JvbGxiYXItdHJhY2t7YmFja2dyb3VuZC1jb2xvcjojMDQwZDBlO2JvcmRlci1yYWRpdXM6MCAwIDJweCAycHh9LmFydGljbGUtLWNvbnRlbnQgLnRpcCBwcmU6Oi13ZWJraXQtc2Nyb2xsYmFyLXRodW1ie2JhY2tncm91bmQtY29sb3I6IzE2MjYyNztib3JkZXI6M3B4IHNvbGlkICMwNDBkMGU7Ym9yZGVyLXJhZGl1czo2cHh9LmFydGljbGUtLWNvbnRlbnQgLnRpcCB0YWJsZTo6LXdlYmtpdC1zY3JvbGxiYXJ7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDI2LDYwLDUyLDApO3dpZHRoOjEycHg7aGVpZ2h0OjEycHh9LmFydGljbGUtLWNvbnRlbnQgLnRpcCB0YWJsZTo6LXdlYmtpdC1zY3JvbGxiYXItdHJhY2t7YmFja2dyb3VuZC1jb2xvcjojMWEzYzM0O2JvcmRlci1yYWRpdXM6MCAwIDJweCAycHh9LmFydGljbGUtLWNvbnRlbnQgLnRpcCB0YWJsZTo6LXdlYmtpdC1zY3JvbGxiYXItdGh1bWJ7YmFja2dyb3VuZC1jb2xvcjojMTYyNjI3O2JvcmRlcjozcHggc29saWQgIzFhM2MzNDtib3JkZXItcmFkaXVzOjZweH0uYXJ0aWNsZS0tY29udGVudCAudGlwIC5oaWdobGlnaHR7Y29sb3I6IzkzOTRGRn0uYXJ0aWNsZS0tY29udGVudCAudGlwIC5oaWdobGlnaHQgLmdoLC5hcnRpY2xlLS1jb250ZW50IC50aXAgLmhpZ2hsaWdodCAuZ28sLmFydGljbGUtLWNvbnRlbnQgLnRpcCAuaGlnaGxpZ2h0IC5uYSwuYXJ0aWNsZS0tY29udGVudCAudGlwIC5oaWdobGlnaHQgLm50LC5hcnRpY2xlLS1jb250ZW50IC50aXAgLmhpZ2hsaWdodCAubnYsLmFydGljbGUtLWNvbnRlbnQgLnRpcCAuaGlnaGxpZ2h0IC5vd3tjb2xvcjojOTM5NEZGfS5hcnRpY2xlLS1jb250ZW50IC50aXAgLmhpZ2hsaWdodCAuYywuYXJ0aWNsZS0tY29udGVudCAudGlwIC5oaWdobGlnaHQgLmNoLC5hcnRpY2xlLS1jb250ZW50IC50aXAgLmhpZ2hsaWdodCAuY20sLmFydGljbGUtLWNvbnRlbnQgLnRpcCAuaGlnaGxpZ2h0IC5jcGYsLmFydGljbGUtLWNvbnRlbnQgLnRpcCAuaGlnaGxpZ2h0IC5jMSwuYXJ0aWNsZS0tY29udGVudCAudGlwIC5oaWdobGlnaHQgLmNzLC5hcnRpY2xlLS1jb250ZW50IC50aXAgLmhpZ2hsaWdodCAud3tjb2xvcjojNTY3Mzc1fS5hcnRpY2xlLS1jb250ZW50IC50aXAgLmhpZ2hsaWdodCAuZ2l7YmFja2dyb3VuZC1jb2xvcjojNTY3Mzc1fS5hcnRpY2xlLS1jb250ZW50IC50aXAgLmhpZ2hsaWdodCAuaywuYXJ0aWNsZS0tY29udGVudCAudGlwIC5oaWdobGlnaHQgLmtjLC5hcnRpY2xlLS1jb250ZW50IC50aXAgLmhpZ2hsaWdodCAua2QsLmFydGljbGUtLWNvbnRlbnQgLnRpcCAuaGlnaGxpZ2h0IC5rbiwuYXJ0aWNsZS0tY29udGVudCAudGlwIC5oaWdobGlnaHQgLmtwLC5hcnRpY2xlLS1jb250ZW50IC50aXAgLmhpZ2hsaWdodCAua3IsLmFydGljbGUtLWNvbnRlbnQgLnRpcCAuaGlnaGxpZ2h0IC5ubntjb2xvcjojMDBBM0ZGfS5hcnRpY2xlLS1jb250ZW50IC50aXAgLmhpZ2hsaWdodCAuYnAsLmFydGljbGUtLWNvbnRlbnQgLnRpcCAuaGlnaGxpZ2h0IC5jcCwuYXJ0aWNsZS0tY29udGVudCAudGlwIC5oaWdobGlnaHQgLmRsLC5hcnRpY2xlLS1jb250ZW50IC50aXAgLmhpZ2hsaWdodCAuZ3QsLmFydGljbGUtLWNvbnRlbnQgLnRpcCAuaGlnaGxpZ2h0IC5ndSwuYXJ0aWNsZS0tY29udGVudCAudGlwIC5oaWdobGlnaHQgLmt0LC5hcnRpY2xlLS1jb250ZW50IC50aXAgLmhpZ2hsaWdodCAubmIsLmFydGljbGUtLWNvbnRlbnQgLnRpcCAuaGlnaGxpZ2h0IC5uYywuYXJ0aWNsZS0tY29udGVudCAudGlwIC5oaWdobGlnaHQgLm5vLC5hcnRpY2xlLS1jb250ZW50IC50aXAgLmhpZ2hsaWdodCAuc2EsLmFydGljbGUtLWNvbnRlbnQgLnRpcCAuaGlnaGxpZ2h0IC5zYiwuYXJ0aWNsZS0tY29udGVudCAudGlwIC5oaWdobGlnaHQgLnNjLC5hcnRpY2xlLS1jb250ZW50IC50aXAgLmhpZ2hsaWdodCAuc2QsLmFydGljbGUtLWNvbnRlbnQgLnRpcCAuaGlnaGxpZ2h0IC5zZSwuYXJ0aWNsZS0tY29udGVudCAudGlwIC5oaWdobGlnaHQgLnNoLC5hcnRpY2xlLS1jb250ZW50IC50aXAgLmhpZ2hsaWdodCAuc3gsLmFydGljbGUtLWNvbnRlbnQgLnRpcCAuaGlnaGxpZ2h0IC5zciwuYXJ0aWNsZS0tY29udGVudCAudGlwIC5oaWdobGlnaHQgLnMxLC5hcnRpY2xlLS1jb250ZW50IC50aXAgLmhpZ2hsaWdodCAuczJ7Y29sb3I6IzAwOUY1Rn0uYXJ0aWNsZS0tY29udGVudCAudGlwIC5oaWdobGlnaHQgLmVyciwuYXJ0aWNsZS0tY29udGVudCAudGlwIC5oaWdobGlnaHQgLmZtLC5hcnRpY2xlLS1jb250ZW50IC50aXAgLmhpZ2hsaWdodCAuZ3IsLmFydGljbGUtLWNvbnRlbnQgLnRpcCAuaGlnaGxpZ2h0IC5nZCwuYXJ0aWNsZS0tY29udGVudCAudGlwIC5oaWdobGlnaHQgLm5kLC5hcnRpY2xlLS1jb250ZW50IC50aXAgLmhpZ2hsaWdodCAubmUsLmFydGljbGUtLWNvbnRlbnQgLnRpcCAuaGlnaGxpZ2h0IC5uZiwuYXJ0aWNsZS0tY29udGVudCAudGlwIC5oaWdobGlnaHQgLm5sLC5hcnRpY2xlLS1jb250ZW50IC50aXAgLmhpZ2hsaWdodCAuc2l7Y29sb3I6I0JGM0Q1RX0uYXJ0aWNsZS0tY29udGVudCAudGlwIC5oaWdobGlnaHQgLm0sLmFydGljbGUtLWNvbnRlbnQgLnRpcCAuaGlnaGxpZ2h0IC5uaSwuYXJ0aWNsZS0tY29udGVudCAudGlwIC5oaWdobGlnaHQgLm1iLC5hcnRpY2xlLS1jb250ZW50IC50aXAgLmhpZ2hsaWdodCAubWYsLmFydGljbGUtLWNvbnRlbnQgLnRpcCAuaGlnaGxpZ2h0IC5taCwuYXJ0aWNsZS0tY29udGVudCAudGlwIC5oaWdobGlnaHQgLm1pLC5hcnRpY2xlLS1jb250ZW50IC50aXAgLmhpZ2hsaWdodCAubW8sLmFydGljbGUtLWNvbnRlbnQgLnRpcCAuaGlnaGxpZ2h0IC52YywuYXJ0aWNsZS0tY29udGVudCAudGlwIC5oaWdobGlnaHQgLnZnLC5hcnRpY2xlLS1jb250ZW50IC50aXAgLmhpZ2hsaWdodCAudmksLmFydGljbGUtLWNvbnRlbnQgLnRpcCAuaGlnaGxpZ2h0IC52bSwuYXJ0aWNsZS0tY29udGVudCAudGlwIC5oaWdobGlnaHQgLmlse2NvbG9yOiNmZjZkYjB9LmFydGljbGUtLWNvbnRlbnQgLnRpcCAuaGlnaGxpZ2h0IC5ncCwuYXJ0aWNsZS0tY29udGVudCAudGlwIC5oaWdobGlnaHQgLm97Y29sb3I6IzAwQTNGRn0uYXJ0aWNsZS0tY29udGVudCAudGlwIC5oaWdobGlnaHQgLnNze2NvbG9yOiNlOTB9LmFydGljbGUtLWNvbnRlbnQgLnRpcCAuaGlnaGxpZ2h0IC5sYW5ndWFnZS1qcyAubWkrLm54LC5hcnRpY2xlLS1jb250ZW50IC50aXAgLmhpZ2hsaWdodCAubGFuZ3VhZ2UtanMgLm1mKy5ueHtjb2xvcjojZmY2ZGIwfS5hcnRpY2xlLS1jb250ZW50IC50aXAgLmhpZ2hsaWdodCAubGFuZ3VhZ2Utc3FsIC5taSsubntjb2xvcjojZmY2ZGIwfS5hcnRpY2xlLS1jb250ZW50IC5pbXBvcnRhbnR7Ym9yZGVyLWNvbG9yOiM5Mzk0RkY7YmFja2dyb3VuZDpyZ2JhKDE0NywxNDgsMjU1LDAuMTUpfS5hcnRpY2xlLS1jb250ZW50IC5pbXBvcnRhbnQ6YmVmb3Jle2NvbnRlbnQ6XCJJXCI7Y29sb3I6I2ZmZjtiYWNrZ3JvdW5kOiM5Mzk0RkZ9LmFydGljbGUtLWNvbnRlbnQgLmltcG9ydGFudCBoMSwuYXJ0aWNsZS0tY29udGVudCAuaW1wb3J0YW50IGgyLC5hcnRpY2xlLS1jb250ZW50IC5pbXBvcnRhbnQgaDMsLmFydGljbGUtLWNvbnRlbnQgLmltcG9ydGFudCBoNCwuYXJ0aWNsZS0tY29udGVudCAuaW1wb3J0YW50IGg1LC5hcnRpY2xlLS1jb250ZW50IC5pbXBvcnRhbnQgaDZ7Y29sb3I6I2ZmZn0uYXJ0aWNsZS0tY29udGVudCAuaW1wb3J0YW50IGgxIGEsLmFydGljbGUtLWNvbnRlbnQgLmltcG9ydGFudCBoMiBhLC5hcnRpY2xlLS1jb250ZW50IC5pbXBvcnRhbnQgaDMgYSwuYXJ0aWNsZS0tY29udGVudCAuaW1wb3J0YW50IGg0IGEsLmFydGljbGUtLWNvbnRlbnQgLmltcG9ydGFudCBoNSBhLC5hcnRpY2xlLS1jb250ZW50IC5pbXBvcnRhbnQgaDYgYXtjb2xvcjppbmhlcml0ICFpbXBvcnRhbnR9LmFydGljbGUtLWNvbnRlbnQgLmltcG9ydGFudCBoMSBhOmhvdmVyLC5hcnRpY2xlLS1jb250ZW50IC5pbXBvcnRhbnQgaDIgYTpob3ZlciwuYXJ0aWNsZS0tY29udGVudCAuaW1wb3J0YW50IGgzIGE6aG92ZXIsLmFydGljbGUtLWNvbnRlbnQgLmltcG9ydGFudCBoNCBhOmhvdmVyLC5hcnRpY2xlLS1jb250ZW50IC5pbXBvcnRhbnQgaDUgYTpob3ZlciwuYXJ0aWNsZS0tY29udGVudCAuaW1wb3J0YW50IGg2IGE6aG92ZXJ7Y29sb3I6aW5oZXJpdCAhaW1wb3J0YW50fS5hcnRpY2xlLS1jb250ZW50IC5pbXBvcnRhbnQgcCwuYXJ0aWNsZS0tY29udGVudCAuaW1wb3J0YW50IGxpe2NvbG9yOiNCN0I4RkZ9LmFydGljbGUtLWNvbnRlbnQgLmltcG9ydGFudCBzdHJvbmd7Y29sb3I6I2ZmZn0uYXJ0aWNsZS0tY29udGVudCAuaW1wb3J0YW50IGF7Y29sb3I6Izc5N2FmZn0uYXJ0aWNsZS0tY29udGVudCAuaW1wb3J0YW50IGEgY29kZTphZnRlcntib3JkZXItY29sb3I6dHJhbnNwYXJlbnQgcmdiYSgxNTksMTQ2LDI1NSwwLjM1KSB0cmFuc3BhcmVudCB0cmFuc3BhcmVudH0uYXJ0aWNsZS0tY29udGVudCAuaW1wb3J0YW50IGE6aG92ZXJ7Y29sb3I6I2ZmZn0uYXJ0aWNsZS0tY29udGVudCAuaW1wb3J0YW50IGE6aG92ZXIgY29kZTphZnRlcntib3JkZXItY29sb3I6dHJhbnNwYXJlbnQgI2ZmZiB0cmFuc3BhcmVudCB0cmFuc3BhcmVudH0uYXJ0aWNsZS0tY29udGVudCAuaW1wb3J0YW50IG9sIGxpOmJlZm9yZXtjb2xvcjojQjdCOEZGfS5hcnRpY2xlLS1jb250ZW50IC5pbXBvcnRhbnQgY29kZSwuYXJ0aWNsZS0tY29udGVudCAuaW1wb3J0YW50IHByZXtjb2xvcjojOWY5MmZmO2JhY2tncm91bmQ6IzBhMDcxY30uYXJ0aWNsZS0tY29udGVudCAuaW1wb3J0YW50IGltZ3tib3gtc2hhZG93OjFweCAzcHggMTBweCAjMTExMTFkfS5hcnRpY2xlLS1jb250ZW50IC5pbXBvcnRhbnQgdGFibGV7Y29sb3I6I0I3QjhGRjtib3gtc2hhZG93OjFweCAzcHggMTBweCAjMTExMTFkfS5hcnRpY2xlLS1jb250ZW50IC5pbXBvcnRhbnQgdGFibGUgdGhlYWR7YmFja2dyb3VuZDpsaW5lYXItZ3JhZGllbnQoNDVkZWcsICM1MTNDQzYsIzkzOTRGRil9LmFydGljbGUtLWNvbnRlbnQgLmltcG9ydGFudCB0YWJsZSB0cjpudGgtY2hpbGQoZXZlbikgdGR7YmFja2dyb3VuZDojMWIxYjMzfS5hcnRpY2xlLS1jb250ZW50IC5pbXBvcnRhbnQgYmxvY2txdW90ZXtib3JkZXItY29sb3I6cmdiYSgxODMsMTg0LDI1NSwwLjI1KX0uYXJ0aWNsZS0tY29udGVudCAuaW1wb3J0YW50IGJsb2NrcXVvdGUgcHtjb2xvcjpyZ2JhKDE4MywxODQsMjU1LDAuNil9LmFydGljbGUtLWNvbnRlbnQgLmltcG9ydGFudCAuY29kZS10YWJzLXdyYXBwZXIgLmNvZGUtdGFicyBhe2JhY2tncm91bmQ6dHJhbnNwYXJlbnQ7Y29sb3I6cmdiYSgxODMsMTg0LDI1NSwwLjUpfS5hcnRpY2xlLS1jb250ZW50IC5pbXBvcnRhbnQgLmNvZGUtdGFicy13cmFwcGVyIC5jb2RlLXRhYnMgYTpob3Zlcntjb2xvcjojYjdiOGZmfS5hcnRpY2xlLS1jb250ZW50IC5pbXBvcnRhbnQgLmNvZGUtdGFicy13cmFwcGVyIC5jb2RlLXRhYnMgYS5pcy1hY3RpdmV7Y29sb3I6I2I3YjhmZjtiYWNrZ3JvdW5kOiMwYTA3MWN9LmFydGljbGUtLWNvbnRlbnQgLmltcG9ydGFudCBociwuYXJ0aWNsZS0tY29udGVudCAuaW1wb3J0YW50IC5leHBhbmR7Ym9yZGVyLWNvbG9yOnJnYmEoMTQ3LDE0OCwyNTUsMC40KSAhaW1wb3J0YW50fS5hcnRpY2xlLS1jb250ZW50IC5pbXBvcnRhbnQgcHJlOjotd2Via2l0LXNjcm9sbGJhcntiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMTAsNywyOCwwKTt3aWR0aDoxMnB4O2hlaWdodDoxMnB4fS5hcnRpY2xlLS1jb250ZW50IC5pbXBvcnRhbnQgcHJlOjotd2Via2l0LXNjcm9sbGJhci10cmFja3tiYWNrZ3JvdW5kLWNvbG9yOiMwYTA3MWM7Ym9yZGVyLXJhZGl1czowIDAgMnB4IDJweH0uYXJ0aWNsZS0tY29udGVudCAuaW1wb3J0YW50IHByZTo6LXdlYmtpdC1zY3JvbGxiYXItdGh1bWJ7YmFja2dyb3VuZC1jb2xvcjojNTY1MTllO2JvcmRlcjozcHggc29saWQgIzBhMDcxYztib3JkZXItcmFkaXVzOjZweH0uYXJ0aWNsZS0tY29udGVudCAuaW1wb3J0YW50IHRhYmxlOjotd2Via2l0LXNjcm9sbGJhcntiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMjcsMjcsNTEsMCk7d2lkdGg6MTJweDtoZWlnaHQ6MTJweH0uYXJ0aWNsZS0tY29udGVudCAuaW1wb3J0YW50IHRhYmxlOjotd2Via2l0LXNjcm9sbGJhci10cmFja3tiYWNrZ3JvdW5kLWNvbG9yOiMxYjFiMzM7Ym9yZGVyLXJhZGl1czowIDAgMnB4IDJweH0uYXJ0aWNsZS0tY29udGVudCAuaW1wb3J0YW50IHRhYmxlOjotd2Via2l0LXNjcm9sbGJhci10aHVtYntiYWNrZ3JvdW5kLWNvbG9yOiM1NjUxOWU7Ym9yZGVyOjNweCBzb2xpZCAjMWIxYjMzO2JvcmRlci1yYWRpdXM6NnB4fS5hcnRpY2xlLS1jb250ZW50IC5pbXBvcnRhbnQgLmhpZ2hsaWdodHtjb2xvcjojOWY5MmZmfS5hcnRpY2xlLS1jb250ZW50IC5pbXBvcnRhbnQgLmhpZ2hsaWdodCAuZ2gsLmFydGljbGUtLWNvbnRlbnQgLmltcG9ydGFudCAuaGlnaGxpZ2h0IC5nbywuYXJ0aWNsZS0tY29udGVudCAuaW1wb3J0YW50IC5oaWdobGlnaHQgLm5hLC5hcnRpY2xlLS1jb250ZW50IC5pbXBvcnRhbnQgLmhpZ2hsaWdodCAubnQsLmFydGljbGUtLWNvbnRlbnQgLmltcG9ydGFudCAuaGlnaGxpZ2h0IC5udiwuYXJ0aWNsZS0tY29udGVudCAuaW1wb3J0YW50IC5oaWdobGlnaHQgLm93e2NvbG9yOiM5ZjkyZmZ9LmFydGljbGUtLWNvbnRlbnQgLmltcG9ydGFudCAuaGlnaGxpZ2h0IC5jLC5hcnRpY2xlLS1jb250ZW50IC5pbXBvcnRhbnQgLmhpZ2hsaWdodCAuY2gsLmFydGljbGUtLWNvbnRlbnQgLmltcG9ydGFudCAuaGlnaGxpZ2h0IC5jbSwuYXJ0aWNsZS0tY29udGVudCAuaW1wb3J0YW50IC5oaWdobGlnaHQgLmNwZiwuYXJ0aWNsZS0tY29udGVudCAuaW1wb3J0YW50IC5oaWdobGlnaHQgLmMxLC5hcnRpY2xlLS1jb250ZW50IC5pbXBvcnRhbnQgLmhpZ2hsaWdodCAuY3MsLmFydGljbGUtLWNvbnRlbnQgLmltcG9ydGFudCAuaGlnaGxpZ2h0IC53e2NvbG9yOiM1ZjUxYWN9LmFydGljbGUtLWNvbnRlbnQgLmltcG9ydGFudCAuaGlnaGxpZ2h0IC5naXtiYWNrZ3JvdW5kLWNvbG9yOiM1ZjUxYWN9LmFydGljbGUtLWNvbnRlbnQgLmltcG9ydGFudCAuaGlnaGxpZ2h0IC5rLC5hcnRpY2xlLS1jb250ZW50IC5pbXBvcnRhbnQgLmhpZ2hsaWdodCAua2MsLmFydGljbGUtLWNvbnRlbnQgLmltcG9ydGFudCAuaGlnaGxpZ2h0IC5rZCwuYXJ0aWNsZS0tY29udGVudCAuaW1wb3J0YW50IC5oaWdobGlnaHQgLmtuLC5hcnRpY2xlLS1jb250ZW50IC5pbXBvcnRhbnQgLmhpZ2hsaWdodCAua3AsLmFydGljbGUtLWNvbnRlbnQgLmltcG9ydGFudCAuaGlnaGxpZ2h0IC5rciwuYXJ0aWNsZS0tY29udGVudCAuaW1wb3J0YW50IC5oaWdobGlnaHQgLm5ue2NvbG9yOiM1MTNDQzZ9LmFydGljbGUtLWNvbnRlbnQgLmltcG9ydGFudCAuaGlnaGxpZ2h0IC5icCwuYXJ0aWNsZS0tY29udGVudCAuaW1wb3J0YW50IC5oaWdobGlnaHQgLmNwLC5hcnRpY2xlLS1jb250ZW50IC5pbXBvcnRhbnQgLmhpZ2hsaWdodCAuZGwsLmFydGljbGUtLWNvbnRlbnQgLmltcG9ydGFudCAuaGlnaGxpZ2h0IC5ndCwuYXJ0aWNsZS0tY29udGVudCAuaW1wb3J0YW50IC5oaWdobGlnaHQgLmd1LC5hcnRpY2xlLS1jb250ZW50IC5pbXBvcnRhbnQgLmhpZ2hsaWdodCAua3QsLmFydGljbGUtLWNvbnRlbnQgLmltcG9ydGFudCAuaGlnaGxpZ2h0IC5uYiwuYXJ0aWNsZS0tY29udGVudCAuaW1wb3J0YW50IC5oaWdobGlnaHQgLm5jLC5hcnRpY2xlLS1jb250ZW50IC5pbXBvcnRhbnQgLmhpZ2hsaWdodCAubm8sLmFydGljbGUtLWNvbnRlbnQgLmltcG9ydGFudCAuaGlnaGxpZ2h0IC5zYSwuYXJ0aWNsZS0tY29udGVudCAuaW1wb3J0YW50IC5oaWdobGlnaHQgLnNiLC5hcnRpY2xlLS1jb250ZW50IC5pbXBvcnRhbnQgLmhpZ2hsaWdodCAuc2MsLmFydGljbGUtLWNvbnRlbnQgLmltcG9ydGFudCAuaGlnaGxpZ2h0IC5zZCwuYXJ0aWNsZS0tY29udGVudCAuaW1wb3J0YW50IC5oaWdobGlnaHQgLnNlLC5hcnRpY2xlLS1jb250ZW50IC5pbXBvcnRhbnQgLmhpZ2hsaWdodCAuc2gsLmFydGljbGUtLWNvbnRlbnQgLmltcG9ydGFudCAuaGlnaGxpZ2h0IC5zeCwuYXJ0aWNsZS0tY29udGVudCAuaW1wb3J0YW50IC5oaWdobGlnaHQgLnNyLC5hcnRpY2xlLS1jb250ZW50IC5pbXBvcnRhbnQgLmhpZ2hsaWdodCAuczEsLmFydGljbGUtLWNvbnRlbnQgLmltcG9ydGFudCAuaGlnaGxpZ2h0IC5zMntjb2xvcjojMDA5YTY0fS5hcnRpY2xlLS1jb250ZW50IC5pbXBvcnRhbnQgLmhpZ2hsaWdodCAuZXJyLC5hcnRpY2xlLS1jb250ZW50IC5pbXBvcnRhbnQgLmhpZ2hsaWdodCAuZm0sLmFydGljbGUtLWNvbnRlbnQgLmltcG9ydGFudCAuaGlnaGxpZ2h0IC5nciwuYXJ0aWNsZS0tY29udGVudCAuaW1wb3J0YW50IC5oaWdobGlnaHQgLmdkLC5hcnRpY2xlLS1jb250ZW50IC5pbXBvcnRhbnQgLmhpZ2hsaWdodCAubmQsLmFydGljbGUtLWNvbnRlbnQgLmltcG9ydGFudCAuaGlnaGxpZ2h0IC5uZSwuYXJ0aWNsZS0tY29udGVudCAuaW1wb3J0YW50IC5oaWdobGlnaHQgLm5mLC5hcnRpY2xlLS1jb250ZW50IC5pbXBvcnRhbnQgLmhpZ2hsaWdodCAubmwsLmFydGljbGUtLWNvbnRlbnQgLmltcG9ydGFudCAuaGlnaGxpZ2h0IC5zaXtjb2xvcjojQkYzRDVFfS5hcnRpY2xlLS1jb250ZW50IC5pbXBvcnRhbnQgLmhpZ2hsaWdodCAubSwuYXJ0aWNsZS0tY29udGVudCAuaW1wb3J0YW50IC5oaWdobGlnaHQgLm5pLC5hcnRpY2xlLS1jb250ZW50IC5pbXBvcnRhbnQgLmhpZ2hsaWdodCAubWIsLmFydGljbGUtLWNvbnRlbnQgLmltcG9ydGFudCAuaGlnaGxpZ2h0IC5tZiwuYXJ0aWNsZS0tY29udGVudCAuaW1wb3J0YW50IC5oaWdobGlnaHQgLm1oLC5hcnRpY2xlLS1jb250ZW50IC5pbXBvcnRhbnQgLmhpZ2hsaWdodCAubWksLmFydGljbGUtLWNvbnRlbnQgLmltcG9ydGFudCAuaGlnaGxpZ2h0IC5tbywuYXJ0aWNsZS0tY29udGVudCAuaW1wb3J0YW50IC5oaWdobGlnaHQgLnZjLC5hcnRpY2xlLS1jb250ZW50IC5pbXBvcnRhbnQgLmhpZ2hsaWdodCAudmcsLmFydGljbGUtLWNvbnRlbnQgLmltcG9ydGFudCAuaGlnaGxpZ2h0IC52aSwuYXJ0aWNsZS0tY29udGVudCAuaW1wb3J0YW50IC5oaWdobGlnaHQgLnZtLC5hcnRpY2xlLS1jb250ZW50IC5pbXBvcnRhbnQgLmhpZ2hsaWdodCAuaWx7Y29sb3I6I2UyNGJiYn0uYXJ0aWNsZS0tY29udGVudCAuaW1wb3J0YW50IC5oaWdobGlnaHQgLmdwLC5hcnRpY2xlLS1jb250ZW50IC5pbXBvcnRhbnQgLmhpZ2hsaWdodCAub3tjb2xvcjojMDBhNWVifS5hcnRpY2xlLS1jb250ZW50IC5pbXBvcnRhbnQgLmhpZ2hsaWdodCAuc3N7Y29sb3I6I2U5MH0uYXJ0aWNsZS0tY29udGVudCAuaW1wb3J0YW50IC5oaWdobGlnaHQgLmxhbmd1YWdlLWpzIC5taSsubngsLmFydGljbGUtLWNvbnRlbnQgLmltcG9ydGFudCAuaGlnaGxpZ2h0IC5sYW5ndWFnZS1qcyAubWYrLm54e2NvbG9yOiNlMjRiYmJ9LmFydGljbGUtLWNvbnRlbnQgLmltcG9ydGFudCAuaGlnaGxpZ2h0IC5sYW5ndWFnZS1zcWwgLm1pKy5ue2NvbG9yOiNlMjRiYmJ9LmFydGljbGUtLWNvbnRlbnQgLndhcm4sLmFydGljbGUtLWNvbnRlbnQgLndhcm5pbmd7Ym9yZGVyLWNvbG9yOiNGRjg1NjQ7YmFja2dyb3VuZDpyZ2JhKDI1NSw5NywxMzMsMC4xMDE5NjEpfS5hcnRpY2xlLS1jb250ZW50IC53YXJuOmJlZm9yZSwuYXJ0aWNsZS0tY29udGVudCAud2FybmluZzpiZWZvcmV7Y29udGVudDpcIldcIjtjb2xvcjojZmZmO2JhY2tncm91bmQ6I0ZGODU2NH0uYXJ0aWNsZS0tY29udGVudCAud2FybiBoMSwuYXJ0aWNsZS0tY29udGVudCAud2FybiBoMiwuYXJ0aWNsZS0tY29udGVudCAud2FybiBoMywuYXJ0aWNsZS0tY29udGVudCAud2FybiBoNCwuYXJ0aWNsZS0tY29udGVudCAud2FybiBoNSwuYXJ0aWNsZS0tY29udGVudCAud2FybiBoNiwuYXJ0aWNsZS0tY29udGVudCAud2FybmluZyBoMSwuYXJ0aWNsZS0tY29udGVudCAud2FybmluZyBoMiwuYXJ0aWNsZS0tY29udGVudCAud2FybmluZyBoMywuYXJ0aWNsZS0tY29udGVudCAud2FybmluZyBoNCwuYXJ0aWNsZS0tY29udGVudCAud2FybmluZyBoNSwuYXJ0aWNsZS0tY29udGVudCAud2FybmluZyBoNntjb2xvcjojZmZmfS5hcnRpY2xlLS1jb250ZW50IC53YXJuIGgxIGEsLmFydGljbGUtLWNvbnRlbnQgLndhcm4gaDIgYSwuYXJ0aWNsZS0tY29udGVudCAud2FybiBoMyBhLC5hcnRpY2xlLS1jb250ZW50IC53YXJuIGg0IGEsLmFydGljbGUtLWNvbnRlbnQgLndhcm4gaDUgYSwuYXJ0aWNsZS0tY29udGVudCAud2FybiBoNiBhLC5hcnRpY2xlLS1jb250ZW50IC53YXJuaW5nIGgxIGEsLmFydGljbGUtLWNvbnRlbnQgLndhcm5pbmcgaDIgYSwuYXJ0aWNsZS0tY29udGVudCAud2FybmluZyBoMyBhLC5hcnRpY2xlLS1jb250ZW50IC53YXJuaW5nIGg0IGEsLmFydGljbGUtLWNvbnRlbnQgLndhcm5pbmcgaDUgYSwuYXJ0aWNsZS0tY29udGVudCAud2FybmluZyBoNiBhe2NvbG9yOmluaGVyaXQgIWltcG9ydGFudH0uYXJ0aWNsZS0tY29udGVudCAud2FybiBoMSBhOmhvdmVyLC5hcnRpY2xlLS1jb250ZW50IC53YXJuIGgyIGE6aG92ZXIsLmFydGljbGUtLWNvbnRlbnQgLndhcm4gaDMgYTpob3ZlciwuYXJ0aWNsZS0tY29udGVudCAud2FybiBoNCBhOmhvdmVyLC5hcnRpY2xlLS1jb250ZW50IC53YXJuIGg1IGE6aG92ZXIsLmFydGljbGUtLWNvbnRlbnQgLndhcm4gaDYgYTpob3ZlciwuYXJ0aWNsZS0tY29udGVudCAud2FybmluZyBoMSBhOmhvdmVyLC5hcnRpY2xlLS1jb250ZW50IC53YXJuaW5nIGgyIGE6aG92ZXIsLmFydGljbGUtLWNvbnRlbnQgLndhcm5pbmcgaDMgYTpob3ZlciwuYXJ0aWNsZS0tY29udGVudCAud2FybmluZyBoNCBhOmhvdmVyLC5hcnRpY2xlLS1jb250ZW50IC53YXJuaW5nIGg1IGE6aG92ZXIsLmFydGljbGUtLWNvbnRlbnQgLndhcm5pbmcgaDYgYTpob3Zlcntjb2xvcjppbmhlcml0ICFpbXBvcnRhbnR9LmFydGljbGUtLWNvbnRlbnQgLndhcm4gcCwuYXJ0aWNsZS0tY29udGVudCAud2FybiBsaSwuYXJ0aWNsZS0tY29udGVudCAud2FybmluZyBwLC5hcnRpY2xlLS1jb250ZW50IC53YXJuaW5nIGxpe2NvbG9yOiNGRkI2QTB9LmFydGljbGUtLWNvbnRlbnQgLndhcm4gc3Ryb25nLC5hcnRpY2xlLS1jb250ZW50IC53YXJuaW5nIHN0cm9uZ3tjb2xvcjojZmZmfS5hcnRpY2xlLS1jb250ZW50IC53YXJuIGEsLmFydGljbGUtLWNvbnRlbnQgLndhcm5pbmcgYXtjb2xvcjojRkZEQ0NGICFpbXBvcnRhbnR9LmFydGljbGUtLWNvbnRlbnQgLndhcm4gYSBjb2RlOmFmdGVyLC5hcnRpY2xlLS1jb250ZW50IC53YXJuaW5nIGEgY29kZTphZnRlcntib3JkZXItY29sb3I6dHJhbnNwYXJlbnQgcmdiYSgyMzYsMTEwLDExMCwwLjM1KSB0cmFuc3BhcmVudCB0cmFuc3BhcmVudH0uYXJ0aWNsZS0tY29udGVudCAud2FybiBhOmhvdmVyLC5hcnRpY2xlLS1jb250ZW50IC53YXJuaW5nIGE6aG92ZXJ7Y29sb3I6I2ZmZiAhaW1wb3J0YW50fS5hcnRpY2xlLS1jb250ZW50IC53YXJuIGE6aG92ZXIgY29kZTphZnRlciwuYXJ0aWNsZS0tY29udGVudCAud2FybmluZyBhOmhvdmVyIGNvZGU6YWZ0ZXJ7Ym9yZGVyLWNvbG9yOnRyYW5zcGFyZW50ICNmZmYgdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnR9LmFydGljbGUtLWNvbnRlbnQgLndhcm4gb2wgbGk6YmVmb3JlLC5hcnRpY2xlLS1jb250ZW50IC53YXJuaW5nIG9sIGxpOmJlZm9yZXtjb2xvcjojRkZCNkEwfS5hcnRpY2xlLS1jb250ZW50IC53YXJuIGNvZGUsLmFydGljbGUtLWNvbnRlbnQgLndhcm4gcHJlLC5hcnRpY2xlLS1jb250ZW50IC53YXJuaW5nIGNvZGUsLmFydGljbGUtLWNvbnRlbnQgLndhcm5pbmcgcHJle2NvbG9yOiNlYzZlNmU7YmFja2dyb3VuZDojMGQwNjEwfS5hcnRpY2xlLS1jb250ZW50IC53YXJuIGltZywuYXJ0aWNsZS0tY29udGVudCAud2FybmluZyBpbWd7Ym94LXNoYWRvdzoxcHggM3B4IDEwcHggIzBkMDYxMH0uYXJ0aWNsZS0tY29udGVudCAud2FybiB0YWJsZSwuYXJ0aWNsZS0tY29udGVudCAud2FybmluZyB0YWJsZXtjb2xvcjojRkZCNkEwO2JveC1zaGFkb3c6MXB4IDNweCAxMHB4ICMwZDA2MTB9LmFydGljbGUtLWNvbnRlbnQgLndhcm4gdGFibGUgdGhlYWQsLmFydGljbGUtLWNvbnRlbnQgLndhcm5pbmcgdGFibGUgdGhlYWR7YmFja2dyb3VuZDpsaW5lYXItZ3JhZGllbnQoNDVkZWcsICNGOTVGNTMsI0ZGODU2NCl9LmFydGljbGUtLWNvbnRlbnQgLndhcm4gdGFibGUgdHI6bnRoLWNoaWxkKGV2ZW4pIHRkLC5hcnRpY2xlLS1jb250ZW50IC53YXJuaW5nIHRhYmxlIHRyOm50aC1jaGlsZChldmVuKSB0ZHtiYWNrZ3JvdW5kOiM0YTJhMmF9LmFydGljbGUtLWNvbnRlbnQgLndhcm4gYmxvY2txdW90ZSwuYXJ0aWNsZS0tY29udGVudCAud2FybmluZyBibG9ja3F1b3Rle2JvcmRlci1jb2xvcjpyZ2JhKDI1NSwxODIsMTYwLDAuMjUpfS5hcnRpY2xlLS1jb250ZW50IC53YXJuIGJsb2NrcXVvdGUgcCwuYXJ0aWNsZS0tY29udGVudCAud2FybmluZyBibG9ja3F1b3RlIHB7Y29sb3I6cmdiYSgyNTUsMTgyLDE2MCwwLjYpfS5hcnRpY2xlLS1jb250ZW50IC53YXJuIC5jb2RlLXRhYnMtd3JhcHBlciAuY29kZS10YWJzIGEsLmFydGljbGUtLWNvbnRlbnQgLndhcm5pbmcgLmNvZGUtdGFicy13cmFwcGVyIC5jb2RlLXRhYnMgYXtiYWNrZ3JvdW5kOnRyYW5zcGFyZW50O2NvbG9yOnJnYmEoMjU1LDE4MiwxNjAsMC41KX0uYXJ0aWNsZS0tY29udGVudCAud2FybiAuY29kZS10YWJzLXdyYXBwZXIgLmNvZGUtdGFicyBhOmhvdmVyLC5hcnRpY2xlLS1jb250ZW50IC53YXJuaW5nIC5jb2RlLXRhYnMtd3JhcHBlciAuY29kZS10YWJzIGE6aG92ZXJ7Y29sb3I6I2ZmYjZhMH0uYXJ0aWNsZS0tY29udGVudCAud2FybiAuY29kZS10YWJzLXdyYXBwZXIgLmNvZGUtdGFicyBhLmlzLWFjdGl2ZSwuYXJ0aWNsZS0tY29udGVudCAud2FybmluZyAuY29kZS10YWJzLXdyYXBwZXIgLmNvZGUtdGFicyBhLmlzLWFjdGl2ZXtjb2xvcjojZmZiNmEwO2JhY2tncm91bmQ6IzBkMDYxMH0uYXJ0aWNsZS0tY29udGVudCAud2FybiBociwuYXJ0aWNsZS0tY29udGVudCAud2FybiAuZXhwYW5kLC5hcnRpY2xlLS1jb250ZW50IC53YXJuaW5nIGhyLC5hcnRpY2xlLS1jb250ZW50IC53YXJuaW5nIC5leHBhbmR7Ym9yZGVyLWNvbG9yOnJnYmEoMjU1LDEzMywxMDAsMC40KSAhaW1wb3J0YW50fS5hcnRpY2xlLS1jb250ZW50IC53YXJuIHByZTo6LXdlYmtpdC1zY3JvbGxiYXIsLmFydGljbGUtLWNvbnRlbnQgLndhcm5pbmcgcHJlOjotd2Via2l0LXNjcm9sbGJhcntiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMTMsNiwxNiwwKTt3aWR0aDoxMnB4O2hlaWdodDoxMnB4fS5hcnRpY2xlLS1jb250ZW50IC53YXJuIHByZTo6LXdlYmtpdC1zY3JvbGxiYXItdHJhY2ssLmFydGljbGUtLWNvbnRlbnQgLndhcm5pbmcgcHJlOjotd2Via2l0LXNjcm9sbGJhci10cmFja3tiYWNrZ3JvdW5kLWNvbG9yOiMwZDA2MTA7Ym9yZGVyLXJhZGl1czowIDAgMnB4IDJweH0uYXJ0aWNsZS0tY29udGVudCAud2FybiBwcmU6Oi13ZWJraXQtc2Nyb2xsYmFyLXRodW1iLC5hcnRpY2xlLS1jb250ZW50IC53YXJuaW5nIHByZTo6LXdlYmtpdC1zY3JvbGxiYXItdGh1bWJ7YmFja2dyb3VuZC1jb2xvcjojMmEyMDI1O2JvcmRlcjozcHggc29saWQgIzBkMDYxMDtib3JkZXItcmFkaXVzOjZweH0uYXJ0aWNsZS0tY29udGVudCAud2FybiB0YWJsZTo6LXdlYmtpdC1zY3JvbGxiYXIsLmFydGljbGUtLWNvbnRlbnQgLndhcm5pbmcgdGFibGU6Oi13ZWJraXQtc2Nyb2xsYmFye2JhY2tncm91bmQtY29sb3I6cmdiYSg3NCw0Miw0MiwwKTt3aWR0aDoxMnB4O2hlaWdodDoxMnB4fS5hcnRpY2xlLS1jb250ZW50IC53YXJuIHRhYmxlOjotd2Via2l0LXNjcm9sbGJhci10cmFjaywuYXJ0aWNsZS0tY29udGVudCAud2FybmluZyB0YWJsZTo6LXdlYmtpdC1zY3JvbGxiYXItdHJhY2t7YmFja2dyb3VuZC1jb2xvcjojNGEyYTJhO2JvcmRlci1yYWRpdXM6MCAwIDJweCAycHh9LmFydGljbGUtLWNvbnRlbnQgLndhcm4gdGFibGU6Oi13ZWJraXQtc2Nyb2xsYmFyLXRodW1iLC5hcnRpY2xlLS1jb250ZW50IC53YXJuaW5nIHRhYmxlOjotd2Via2l0LXNjcm9sbGJhci10aHVtYntiYWNrZ3JvdW5kLWNvbG9yOiMxZjE4MWI7Ym9yZGVyOjNweCBzb2xpZCAjNGEyYTJhO2JvcmRlci1yYWRpdXM6NnB4fS5hcnRpY2xlLS1jb250ZW50IC53YXJuIC5oaWdobGlnaHQsLmFydGljbGUtLWNvbnRlbnQgLndhcm5pbmcgLmhpZ2hsaWdodHtjb2xvcjojZWM2ZTZlfS5hcnRpY2xlLS1jb250ZW50IC53YXJuIC5oaWdobGlnaHQgLmdoLC5hcnRpY2xlLS1jb250ZW50IC53YXJuIC5oaWdobGlnaHQgLmdvLC5hcnRpY2xlLS1jb250ZW50IC53YXJuIC5oaWdobGlnaHQgLm5hLC5hcnRpY2xlLS1jb250ZW50IC53YXJuIC5oaWdobGlnaHQgLm50LC5hcnRpY2xlLS1jb250ZW50IC53YXJuIC5oaWdobGlnaHQgLm52LC5hcnRpY2xlLS1jb250ZW50IC53YXJuIC5oaWdobGlnaHQgLm93LC5hcnRpY2xlLS1jb250ZW50IC53YXJuaW5nIC5oaWdobGlnaHQgLmdoLC5hcnRpY2xlLS1jb250ZW50IC53YXJuaW5nIC5oaWdobGlnaHQgLmdvLC5hcnRpY2xlLS1jb250ZW50IC53YXJuaW5nIC5oaWdobGlnaHQgLm5hLC5hcnRpY2xlLS1jb250ZW50IC53YXJuaW5nIC5oaWdobGlnaHQgLm50LC5hcnRpY2xlLS1jb250ZW50IC53YXJuaW5nIC5oaWdobGlnaHQgLm52LC5hcnRpY2xlLS1jb250ZW50IC53YXJuaW5nIC5oaWdobGlnaHQgLm93e2NvbG9yOiNlYzZlNmV9LmFydGljbGUtLWNvbnRlbnQgLndhcm4gLmhpZ2hsaWdodCAuYywuYXJ0aWNsZS0tY29udGVudCAud2FybiAuaGlnaGxpZ2h0IC5jaCwuYXJ0aWNsZS0tY29udGVudCAud2FybiAuaGlnaGxpZ2h0IC5jbSwuYXJ0aWNsZS0tY29udGVudCAud2FybiAuaGlnaGxpZ2h0IC5jcGYsLmFydGljbGUtLWNvbnRlbnQgLndhcm4gLmhpZ2hsaWdodCAuYzEsLmFydGljbGUtLWNvbnRlbnQgLndhcm4gLmhpZ2hsaWdodCAuY3MsLmFydGljbGUtLWNvbnRlbnQgLndhcm4gLmhpZ2hsaWdodCAudywuYXJ0aWNsZS0tY29udGVudCAud2FybmluZyAuaGlnaGxpZ2h0IC5jLC5hcnRpY2xlLS1jb250ZW50IC53YXJuaW5nIC5oaWdobGlnaHQgLmNoLC5hcnRpY2xlLS1jb250ZW50IC53YXJuaW5nIC5oaWdobGlnaHQgLmNtLC5hcnRpY2xlLS1jb250ZW50IC53YXJuaW5nIC5oaWdobGlnaHQgLmNwZiwuYXJ0aWNsZS0tY29udGVudCAud2FybmluZyAuaGlnaGxpZ2h0IC5jMSwuYXJ0aWNsZS0tY29udGVudCAud2FybmluZyAuaGlnaGxpZ2h0IC5jcywuYXJ0aWNsZS0tY29udGVudCAud2FybmluZyAuaGlnaGxpZ2h0IC53e2NvbG9yOiM4NDRjNGN9LmFydGljbGUtLWNvbnRlbnQgLndhcm4gLmhpZ2hsaWdodCAuZ2ksLmFydGljbGUtLWNvbnRlbnQgLndhcm5pbmcgLmhpZ2hsaWdodCAuZ2l7YmFja2dyb3VuZC1jb2xvcjojODQ0YzRjfS5hcnRpY2xlLS1jb250ZW50IC53YXJuIC5oaWdobGlnaHQgLmssLmFydGljbGUtLWNvbnRlbnQgLndhcm4gLmhpZ2hsaWdodCAua2MsLmFydGljbGUtLWNvbnRlbnQgLndhcm4gLmhpZ2hsaWdodCAua2QsLmFydGljbGUtLWNvbnRlbnQgLndhcm4gLmhpZ2hsaWdodCAua24sLmFydGljbGUtLWNvbnRlbnQgLndhcm4gLmhpZ2hsaWdodCAua3AsLmFydGljbGUtLWNvbnRlbnQgLndhcm4gLmhpZ2hsaWdodCAua3IsLmFydGljbGUtLWNvbnRlbnQgLndhcm4gLmhpZ2hsaWdodCAubm4sLmFydGljbGUtLWNvbnRlbnQgLndhcm5pbmcgLmhpZ2hsaWdodCAuaywuYXJ0aWNsZS0tY29udGVudCAud2FybmluZyAuaGlnaGxpZ2h0IC5rYywuYXJ0aWNsZS0tY29udGVudCAud2FybmluZyAuaGlnaGxpZ2h0IC5rZCwuYXJ0aWNsZS0tY29udGVudCAud2FybmluZyAuaGlnaGxpZ2h0IC5rbiwuYXJ0aWNsZS0tY29udGVudCAud2FybmluZyAuaGlnaGxpZ2h0IC5rcCwuYXJ0aWNsZS0tY29udGVudCAud2FybmluZyAuaGlnaGxpZ2h0IC5rciwuYXJ0aWNsZS0tY29udGVudCAud2FybmluZyAuaGlnaGxpZ2h0IC5ubntjb2xvcjojMDBBM0ZGfS5hcnRpY2xlLS1jb250ZW50IC53YXJuIC5oaWdobGlnaHQgLmJwLC5hcnRpY2xlLS1jb250ZW50IC53YXJuIC5oaWdobGlnaHQgLmNwLC5hcnRpY2xlLS1jb250ZW50IC53YXJuIC5oaWdobGlnaHQgLmRsLC5hcnRpY2xlLS1jb250ZW50IC53YXJuIC5oaWdobGlnaHQgLmd0LC5hcnRpY2xlLS1jb250ZW50IC53YXJuIC5oaWdobGlnaHQgLmd1LC5hcnRpY2xlLS1jb250ZW50IC53YXJuIC5oaWdobGlnaHQgLmt0LC5hcnRpY2xlLS1jb250ZW50IC53YXJuIC5oaWdobGlnaHQgLm5iLC5hcnRpY2xlLS1jb250ZW50IC53YXJuIC5oaWdobGlnaHQgLm5jLC5hcnRpY2xlLS1jb250ZW50IC53YXJuIC5oaWdobGlnaHQgLm5vLC5hcnRpY2xlLS1jb250ZW50IC53YXJuIC5oaWdobGlnaHQgLnNhLC5hcnRpY2xlLS1jb250ZW50IC53YXJuIC5oaWdobGlnaHQgLnNiLC5hcnRpY2xlLS1jb250ZW50IC53YXJuIC5oaWdobGlnaHQgLnNjLC5hcnRpY2xlLS1jb250ZW50IC53YXJuIC5oaWdobGlnaHQgLnNkLC5hcnRpY2xlLS1jb250ZW50IC53YXJuIC5oaWdobGlnaHQgLnNlLC5hcnRpY2xlLS1jb250ZW50IC53YXJuIC5oaWdobGlnaHQgLnNoLC5hcnRpY2xlLS1jb250ZW50IC53YXJuIC5oaWdobGlnaHQgLnN4LC5hcnRpY2xlLS1jb250ZW50IC53YXJuIC5oaWdobGlnaHQgLnNyLC5hcnRpY2xlLS1jb250ZW50IC53YXJuIC5oaWdobGlnaHQgLnMxLC5hcnRpY2xlLS1jb250ZW50IC53YXJuIC5oaWdobGlnaHQgLnMyLC5hcnRpY2xlLS1jb250ZW50IC53YXJuaW5nIC5oaWdobGlnaHQgLmJwLC5hcnRpY2xlLS1jb250ZW50IC53YXJuaW5nIC5oaWdobGlnaHQgLmNwLC5hcnRpY2xlLS1jb250ZW50IC53YXJuaW5nIC5oaWdobGlnaHQgLmRsLC5hcnRpY2xlLS1jb250ZW50IC53YXJuaW5nIC5oaWdobGlnaHQgLmd0LC5hcnRpY2xlLS1jb250ZW50IC53YXJuaW5nIC5oaWdobGlnaHQgLmd1LC5hcnRpY2xlLS1jb250ZW50IC53YXJuaW5nIC5oaWdobGlnaHQgLmt0LC5hcnRpY2xlLS1jb250ZW50IC53YXJuaW5nIC5oaWdobGlnaHQgLm5iLC5hcnRpY2xlLS1jb250ZW50IC53YXJuaW5nIC5oaWdobGlnaHQgLm5jLC5hcnRpY2xlLS1jb250ZW50IC53YXJuaW5nIC5oaWdobGlnaHQgLm5vLC5hcnRpY2xlLS1jb250ZW50IC53YXJuaW5nIC5oaWdobGlnaHQgLnNhLC5hcnRpY2xlLS1jb250ZW50IC53YXJuaW5nIC5oaWdobGlnaHQgLnNiLC5hcnRpY2xlLS1jb250ZW50IC53YXJuaW5nIC5oaWdobGlnaHQgLnNjLC5hcnRpY2xlLS1jb250ZW50IC53YXJuaW5nIC5oaWdobGlnaHQgLnNkLC5hcnRpY2xlLS1jb250ZW50IC53YXJuaW5nIC5oaWdobGlnaHQgLnNlLC5hcnRpY2xlLS1jb250ZW50IC53YXJuaW5nIC5oaWdobGlnaHQgLnNoLC5hcnRpY2xlLS1jb250ZW50IC53YXJuaW5nIC5oaWdobGlnaHQgLnN4LC5hcnRpY2xlLS1jb250ZW50IC53YXJuaW5nIC5oaWdobGlnaHQgLnNyLC5hcnRpY2xlLS1jb250ZW50IC53YXJuaW5nIC5oaWdobGlnaHQgLnMxLC5hcnRpY2xlLS1jb250ZW50IC53YXJuaW5nIC5oaWdobGlnaHQgLnMye2NvbG9yOiMwMDlGNUZ9LmFydGljbGUtLWNvbnRlbnQgLndhcm4gLmhpZ2hsaWdodCAuZXJyLC5hcnRpY2xlLS1jb250ZW50IC53YXJuIC5oaWdobGlnaHQgLmZtLC5hcnRpY2xlLS1jb250ZW50IC53YXJuIC5oaWdobGlnaHQgLmdyLC5hcnRpY2xlLS1jb250ZW50IC53YXJuIC5oaWdobGlnaHQgLmdkLC5hcnRpY2xlLS1jb250ZW50IC53YXJuIC5oaWdobGlnaHQgLm5kLC5hcnRpY2xlLS1jb250ZW50IC53YXJuIC5oaWdobGlnaHQgLm5lLC5hcnRpY2xlLS1jb250ZW50IC53YXJuIC5oaWdobGlnaHQgLm5mLC5hcnRpY2xlLS1jb250ZW50IC53YXJuIC5oaWdobGlnaHQgLm5sLC5hcnRpY2xlLS1jb250ZW50IC53YXJuIC5oaWdobGlnaHQgLnNpLC5hcnRpY2xlLS1jb250ZW50IC53YXJuaW5nIC5oaWdobGlnaHQgLmVyciwuYXJ0aWNsZS0tY29udGVudCAud2FybmluZyAuaGlnaGxpZ2h0IC5mbSwuYXJ0aWNsZS0tY29udGVudCAud2FybmluZyAuaGlnaGxpZ2h0IC5nciwuYXJ0aWNsZS0tY29udGVudCAud2FybmluZyAuaGlnaGxpZ2h0IC5nZCwuYXJ0aWNsZS0tY29udGVudCAud2FybmluZyAuaGlnaGxpZ2h0IC5uZCwuYXJ0aWNsZS0tY29udGVudCAud2FybmluZyAuaGlnaGxpZ2h0IC5uZSwuYXJ0aWNsZS0tY29udGVudCAud2FybmluZyAuaGlnaGxpZ2h0IC5uZiwuYXJ0aWNsZS0tY29udGVudCAud2FybmluZyAuaGlnaGxpZ2h0IC5ubCwuYXJ0aWNsZS0tY29udGVudCAud2FybmluZyAuaGlnaGxpZ2h0IC5zaXtjb2xvcjojQkYzRDVFfS5hcnRpY2xlLS1jb250ZW50IC53YXJuIC5oaWdobGlnaHQgLm0sLmFydGljbGUtLWNvbnRlbnQgLndhcm4gLmhpZ2hsaWdodCAubmksLmFydGljbGUtLWNvbnRlbnQgLndhcm4gLmhpZ2hsaWdodCAubWIsLmFydGljbGUtLWNvbnRlbnQgLndhcm4gLmhpZ2hsaWdodCAubWYsLmFydGljbGUtLWNvbnRlbnQgLndhcm4gLmhpZ2hsaWdodCAubWgsLmFydGljbGUtLWNvbnRlbnQgLndhcm4gLmhpZ2hsaWdodCAubWksLmFydGljbGUtLWNvbnRlbnQgLndhcm4gLmhpZ2hsaWdodCAubW8sLmFydGljbGUtLWNvbnRlbnQgLndhcm4gLmhpZ2hsaWdodCAudmMsLmFydGljbGUtLWNvbnRlbnQgLndhcm4gLmhpZ2hsaWdodCAudmcsLmFydGljbGUtLWNvbnRlbnQgLndhcm4gLmhpZ2hsaWdodCAudmksLmFydGljbGUtLWNvbnRlbnQgLndhcm4gLmhpZ2hsaWdodCAudm0sLmFydGljbGUtLWNvbnRlbnQgLndhcm4gLmhpZ2hsaWdodCAuaWwsLmFydGljbGUtLWNvbnRlbnQgLndhcm5pbmcgLmhpZ2hsaWdodCAubSwuYXJ0aWNsZS0tY29udGVudCAud2FybmluZyAuaGlnaGxpZ2h0IC5uaSwuYXJ0aWNsZS0tY29udGVudCAud2FybmluZyAuaGlnaGxpZ2h0IC5tYiwuYXJ0aWNsZS0tY29udGVudCAud2FybmluZyAuaGlnaGxpZ2h0IC5tZiwuYXJ0aWNsZS0tY29udGVudCAud2FybmluZyAuaGlnaGxpZ2h0IC5taCwuYXJ0aWNsZS0tY29udGVudCAud2FybmluZyAuaGlnaGxpZ2h0IC5taSwuYXJ0aWNsZS0tY29udGVudCAud2FybmluZyAuaGlnaGxpZ2h0IC5tbywuYXJ0aWNsZS0tY29udGVudCAud2FybmluZyAuaGlnaGxpZ2h0IC52YywuYXJ0aWNsZS0tY29udGVudCAud2FybmluZyAuaGlnaGxpZ2h0IC52ZywuYXJ0aWNsZS0tY29udGVudCAud2FybmluZyAuaGlnaGxpZ2h0IC52aSwuYXJ0aWNsZS0tY29udGVudCAud2FybmluZyAuaGlnaGxpZ2h0IC52bSwuYXJ0aWNsZS0tY29udGVudCAud2FybmluZyAuaGlnaGxpZ2h0IC5pbHtjb2xvcjojZmZiNGZifS5hcnRpY2xlLS1jb250ZW50IC53YXJuIC5oaWdobGlnaHQgLmdwLC5hcnRpY2xlLS1jb250ZW50IC53YXJuIC5oaWdobGlnaHQgLm8sLmFydGljbGUtLWNvbnRlbnQgLndhcm5pbmcgLmhpZ2hsaWdodCAuZ3AsLmFydGljbGUtLWNvbnRlbnQgLndhcm5pbmcgLmhpZ2hsaWdodCAub3tjb2xvcjojMDBBM0ZGfS5hcnRpY2xlLS1jb250ZW50IC53YXJuIC5oaWdobGlnaHQgLnNzLC5hcnRpY2xlLS1jb250ZW50IC53YXJuaW5nIC5oaWdobGlnaHQgLnNze2NvbG9yOiNlOTB9LmFydGljbGUtLWNvbnRlbnQgLndhcm4gLmhpZ2hsaWdodCAubGFuZ3VhZ2UtanMgLm1pKy5ueCwuYXJ0aWNsZS0tY29udGVudCAud2FybiAuaGlnaGxpZ2h0IC5sYW5ndWFnZS1qcyAubWYrLm54LC5hcnRpY2xlLS1jb250ZW50IC53YXJuaW5nIC5oaWdobGlnaHQgLmxhbmd1YWdlLWpzIC5taSsubngsLmFydGljbGUtLWNvbnRlbnQgLndhcm5pbmcgLmhpZ2hsaWdodCAubGFuZ3VhZ2UtanMgLm1mKy5ueHtjb2xvcjojZmZiNGZifS5hcnRpY2xlLS1jb250ZW50IC53YXJuIC5oaWdobGlnaHQgLmxhbmd1YWdlLXNxbCAubWkrLm4sLmFydGljbGUtLWNvbnRlbnQgLndhcm5pbmcgLmhpZ2hsaWdodCAubGFuZ3VhZ2Utc3FsIC5taSsubntjb2xvcjojZmZiNGZifS5hcnRpY2xlLS1jb250ZW50IC5jYXV0aW9ue2JvcmRlci1jb2xvcjojZDMwOTcxO2JhY2tncm91bmQ6cmdiYSgyMTEsOSwxMTMsMC4xMil9LmFydGljbGUtLWNvbnRlbnQgLmNhdXRpb246YmVmb3Jle2NvbnRlbnQ6XCJDXCI7Y29sb3I6I2ZmZjtiYWNrZ3JvdW5kOiNkMzA5NzF9LmFydGljbGUtLWNvbnRlbnQgLmNhdXRpb24gaDEsLmFydGljbGUtLWNvbnRlbnQgLmNhdXRpb24gaDIsLmFydGljbGUtLWNvbnRlbnQgLmNhdXRpb24gaDMsLmFydGljbGUtLWNvbnRlbnQgLmNhdXRpb24gaDQsLmFydGljbGUtLWNvbnRlbnQgLmNhdXRpb24gaDUsLmFydGljbGUtLWNvbnRlbnQgLmNhdXRpb24gaDZ7Y29sb3I6I2ZmZn0uYXJ0aWNsZS0tY29udGVudCAuY2F1dGlvbiBoMSBhLC5hcnRpY2xlLS1jb250ZW50IC5jYXV0aW9uIGgyIGEsLmFydGljbGUtLWNvbnRlbnQgLmNhdXRpb24gaDMgYSwuYXJ0aWNsZS0tY29udGVudCAuY2F1dGlvbiBoNCBhLC5hcnRpY2xlLS1jb250ZW50IC5jYXV0aW9uIGg1IGEsLmFydGljbGUtLWNvbnRlbnQgLmNhdXRpb24gaDYgYXtjb2xvcjppbmhlcml0ICFpbXBvcnRhbnR9LmFydGljbGUtLWNvbnRlbnQgLmNhdXRpb24gaDEgYTpob3ZlciwuYXJ0aWNsZS0tY29udGVudCAuY2F1dGlvbiBoMiBhOmhvdmVyLC5hcnRpY2xlLS1jb250ZW50IC5jYXV0aW9uIGgzIGE6aG92ZXIsLmFydGljbGUtLWNvbnRlbnQgLmNhdXRpb24gaDQgYTpob3ZlciwuYXJ0aWNsZS0tY29udGVudCAuY2F1dGlvbiBoNSBhOmhvdmVyLC5hcnRpY2xlLS1jb250ZW50IC5jYXV0aW9uIGg2IGE6aG92ZXJ7Y29sb3I6aW5oZXJpdCAhaW1wb3J0YW50fS5hcnRpY2xlLS1jb250ZW50IC5jYXV0aW9uIHAsLmFydGljbGUtLWNvbnRlbnQgLmNhdXRpb24gbGl7Y29sb3I6I2ZlOWRiY30uYXJ0aWNsZS0tY29udGVudCAuY2F1dGlvbiBzdHJvbmd7Y29sb3I6I2ZmZn0uYXJ0aWNsZS0tY29udGVudCAuY2F1dGlvbiBhe2NvbG9yOiNmM2Q1ZTEgIWltcG9ydGFudH0uYXJ0aWNsZS0tY29udGVudCAuY2F1dGlvbiBhIGNvZGU6YWZ0ZXJ7Ym9yZGVyLWNvbG9yOnRyYW5zcGFyZW50IHJnYmEoMjU1LDEwMywxNTUsMC4zNSkgdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnR9LmFydGljbGUtLWNvbnRlbnQgLmNhdXRpb24gYTpob3Zlcntjb2xvcjojZmZmICFpbXBvcnRhbnR9LmFydGljbGUtLWNvbnRlbnQgLmNhdXRpb24gYTpob3ZlciBjb2RlOmFmdGVye2JvcmRlci1jb2xvcjp0cmFuc3BhcmVudCAjZmZmIHRyYW5zcGFyZW50IHRyYW5zcGFyZW50fS5hcnRpY2xlLS1jb250ZW50IC5jYXV0aW9uIG9sIGxpOmJlZm9yZXtjb2xvcjojZmU5ZGJjfS5hcnRpY2xlLS1jb250ZW50IC5jYXV0aW9uIGNvZGUsLmFydGljbGUtLWNvbnRlbnQgLmNhdXRpb24gcHJle2NvbG9yOiNmZjY3OWI7YmFja2dyb3VuZDojMGQwNjEwfS5hcnRpY2xlLS1jb250ZW50IC5jYXV0aW9uIGltZ3tib3gtc2hhZG93OjFweCAzcHggMTBweCAjMGYwNTBlfS5hcnRpY2xlLS1jb250ZW50IC5jYXV0aW9uIHRhYmxle2NvbG9yOiNmZTlkYmM7Ym94LXNoYWRvdzoxcHggM3B4IDEwcHggIzBmMDUwZX0uYXJ0aWNsZS0tY29udGVudCAuY2F1dGlvbiB0YWJsZSB0aGVhZHtiYWNrZ3JvdW5kOmxpbmVhci1ncmFkaWVudCg0NWRlZywgI2QzMDk3MSwjZmY1OThmKX0uYXJ0aWNsZS0tY29udGVudCAuY2F1dGlvbiB0YWJsZSB0cjpudGgtY2hpbGQoZXZlbikgdGR7YmFja2dyb3VuZDojMzkxYjM1fS5hcnRpY2xlLS1jb250ZW50IC5jYXV0aW9uIGJsb2NrcXVvdGV7Ym9yZGVyLWNvbG9yOnJnYmEoMjU0LDE1NywxODgsMC4yNSl9LmFydGljbGUtLWNvbnRlbnQgLmNhdXRpb24gYmxvY2txdW90ZSBwe2NvbG9yOnJnYmEoMjU0LDE1NywxODgsMC42KX0uYXJ0aWNsZS0tY29udGVudCAuY2F1dGlvbiAuY29kZS10YWJzLXdyYXBwZXIgLmNvZGUtdGFicyBhe2JhY2tncm91bmQ6dHJhbnNwYXJlbnQ7Y29sb3I6cmdiYSgyNTQsMTU3LDE4OCwwLjUpfS5hcnRpY2xlLS1jb250ZW50IC5jYXV0aW9uIC5jb2RlLXRhYnMtd3JhcHBlciAuY29kZS10YWJzIGE6aG92ZXJ7Y29sb3I6I2ZlOWRiY30uYXJ0aWNsZS0tY29udGVudCAuY2F1dGlvbiAuY29kZS10YWJzLXdyYXBwZXIgLmNvZGUtdGFicyBhLmlzLWFjdGl2ZXtjb2xvcjojZmU5ZGJjO2JhY2tncm91bmQ6IzBkMDYxMH0uYXJ0aWNsZS0tY29udGVudCAuY2F1dGlvbiBociwuYXJ0aWNsZS0tY29udGVudCAuY2F1dGlvbiAuZXhwYW5ke2JvcmRlci1jb2xvcjpyZ2JhKDIxMSw5LDExMywwLjQpICFpbXBvcnRhbnR9LmFydGljbGUtLWNvbnRlbnQgLmNhdXRpb24gcHJlOjotd2Via2l0LXNjcm9sbGJhcntiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMTMsNiwxNiwwKTt3aWR0aDoxMnB4O2hlaWdodDoxMnB4fS5hcnRpY2xlLS1jb250ZW50IC5jYXV0aW9uIHByZTo6LXdlYmtpdC1zY3JvbGxiYXItdHJhY2t7YmFja2dyb3VuZC1jb2xvcjojMGQwNjEwO2JvcmRlci1yYWRpdXM6MCAwIDJweCAycHh9LmFydGljbGUtLWNvbnRlbnQgLmNhdXRpb24gcHJlOjotd2Via2l0LXNjcm9sbGJhci10aHVtYntiYWNrZ3JvdW5kLWNvbG9yOiM1YzFiMzg7Ym9yZGVyOjNweCBzb2xpZCAjMGQwNjEwO2JvcmRlci1yYWRpdXM6NnB4fS5hcnRpY2xlLS1jb250ZW50IC5jYXV0aW9uIHRhYmxlOjotd2Via2l0LXNjcm9sbGJhcntiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoNTcsMjcsNTMsMCk7d2lkdGg6MTJweDtoZWlnaHQ6MTJweH0uYXJ0aWNsZS0tY29udGVudCAuY2F1dGlvbiB0YWJsZTo6LXdlYmtpdC1zY3JvbGxiYXItdHJhY2t7YmFja2dyb3VuZC1jb2xvcjojMzkxYjM1O2JvcmRlci1yYWRpdXM6MCAwIDJweCAycHh9LmFydGljbGUtLWNvbnRlbnQgLmNhdXRpb24gdGFibGU6Oi13ZWJraXQtc2Nyb2xsYmFyLXRodW1ie2JhY2tncm91bmQtY29sb3I6IzkxMmE1ODtib3JkZXI6M3B4IHNvbGlkICMzOTFiMzU7Ym9yZGVyLXJhZGl1czo2cHh9LmFydGljbGUtLWNvbnRlbnQgLmNhdXRpb24gLmhpZ2hsaWdodHtjb2xvcjojZmY2NzlifS5hcnRpY2xlLS1jb250ZW50IC5jYXV0aW9uIC5oaWdobGlnaHQgLmdoLC5hcnRpY2xlLS1jb250ZW50IC5jYXV0aW9uIC5oaWdobGlnaHQgLmdvLC5hcnRpY2xlLS1jb250ZW50IC5jYXV0aW9uIC5oaWdobGlnaHQgLm5hLC5hcnRpY2xlLS1jb250ZW50IC5jYXV0aW9uIC5oaWdobGlnaHQgLm50LC5hcnRpY2xlLS1jb250ZW50IC5jYXV0aW9uIC5oaWdobGlnaHQgLm52LC5hcnRpY2xlLS1jb250ZW50IC5jYXV0aW9uIC5oaWdobGlnaHQgLm93e2NvbG9yOiNmZjY3OWJ9LmFydGljbGUtLWNvbnRlbnQgLmNhdXRpb24gLmhpZ2hsaWdodCAuYywuYXJ0aWNsZS0tY29udGVudCAuY2F1dGlvbiAuaGlnaGxpZ2h0IC5jaCwuYXJ0aWNsZS0tY29udGVudCAuY2F1dGlvbiAuaGlnaGxpZ2h0IC5jbSwuYXJ0aWNsZS0tY29udGVudCAuY2F1dGlvbiAuaGlnaGxpZ2h0IC5jcGYsLmFydGljbGUtLWNvbnRlbnQgLmNhdXRpb24gLmhpZ2hsaWdodCAuYzEsLmFydGljbGUtLWNvbnRlbnQgLmNhdXRpb24gLmhpZ2hsaWdodCAuY3MsLmFydGljbGUtLWNvbnRlbnQgLmNhdXRpb24gLmhpZ2hsaWdodCAud3tjb2xvcjojOGYzZjVhfS5hcnRpY2xlLS1jb250ZW50IC5jYXV0aW9uIC5oaWdobGlnaHQgLmdpe2JhY2tncm91bmQtY29sb3I6IzhmM2Y1YX0uYXJ0aWNsZS0tY29udGVudCAuY2F1dGlvbiAuaGlnaGxpZ2h0IC5rLC5hcnRpY2xlLS1jb250ZW50IC5jYXV0aW9uIC5oaWdobGlnaHQgLmtjLC5hcnRpY2xlLS1jb250ZW50IC5jYXV0aW9uIC5oaWdobGlnaHQgLmtkLC5hcnRpY2xlLS1jb250ZW50IC5jYXV0aW9uIC5oaWdobGlnaHQgLmtuLC5hcnRpY2xlLS1jb250ZW50IC5jYXV0aW9uIC5oaWdobGlnaHQgLmtwLC5hcnRpY2xlLS1jb250ZW50IC5jYXV0aW9uIC5oaWdobGlnaHQgLmtyLC5hcnRpY2xlLS1jb250ZW50IC5jYXV0aW9uIC5oaWdobGlnaHQgLm5ue2NvbG9yOiMzZDk3ZTV9LmFydGljbGUtLWNvbnRlbnQgLmNhdXRpb24gLmhpZ2hsaWdodCAuYnAsLmFydGljbGUtLWNvbnRlbnQgLmNhdXRpb24gLmhpZ2hsaWdodCAuY3AsLmFydGljbGUtLWNvbnRlbnQgLmNhdXRpb24gLmhpZ2hsaWdodCAuZGwsLmFydGljbGUtLWNvbnRlbnQgLmNhdXRpb24gLmhpZ2hsaWdodCAuZ3QsLmFydGljbGUtLWNvbnRlbnQgLmNhdXRpb24gLmhpZ2hsaWdodCAuZ3UsLmFydGljbGUtLWNvbnRlbnQgLmNhdXRpb24gLmhpZ2hsaWdodCAua3QsLmFydGljbGUtLWNvbnRlbnQgLmNhdXRpb24gLmhpZ2hsaWdodCAubmIsLmFydGljbGUtLWNvbnRlbnQgLmNhdXRpb24gLmhpZ2hsaWdodCAubmMsLmFydGljbGUtLWNvbnRlbnQgLmNhdXRpb24gLmhpZ2hsaWdodCAubm8sLmFydGljbGUtLWNvbnRlbnQgLmNhdXRpb24gLmhpZ2hsaWdodCAuc2EsLmFydGljbGUtLWNvbnRlbnQgLmNhdXRpb24gLmhpZ2hsaWdodCAuc2IsLmFydGljbGUtLWNvbnRlbnQgLmNhdXRpb24gLmhpZ2hsaWdodCAuc2MsLmFydGljbGUtLWNvbnRlbnQgLmNhdXRpb24gLmhpZ2hsaWdodCAuc2QsLmFydGljbGUtLWNvbnRlbnQgLmNhdXRpb24gLmhpZ2hsaWdodCAuc2UsLmFydGljbGUtLWNvbnRlbnQgLmNhdXRpb24gLmhpZ2hsaWdodCAuc2gsLmFydGljbGUtLWNvbnRlbnQgLmNhdXRpb24gLmhpZ2hsaWdodCAuc3gsLmFydGljbGUtLWNvbnRlbnQgLmNhdXRpb24gLmhpZ2hsaWdodCAuc3IsLmFydGljbGUtLWNvbnRlbnQgLmNhdXRpb24gLmhpZ2hsaWdodCAuczEsLmFydGljbGUtLWNvbnRlbnQgLmNhdXRpb24gLmhpZ2hsaWdodCAuczJ7Y29sb3I6Izk0N2VmZn0uYXJ0aWNsZS0tY29udGVudCAuY2F1dGlvbiAuaGlnaGxpZ2h0IC5lcnIsLmFydGljbGUtLWNvbnRlbnQgLmNhdXRpb24gLmhpZ2hsaWdodCAuZm0sLmFydGljbGUtLWNvbnRlbnQgLmNhdXRpb24gLmhpZ2hsaWdodCAuZ3IsLmFydGljbGUtLWNvbnRlbnQgLmNhdXRpb24gLmhpZ2hsaWdodCAuZ2QsLmFydGljbGUtLWNvbnRlbnQgLmNhdXRpb24gLmhpZ2hsaWdodCAubmQsLmFydGljbGUtLWNvbnRlbnQgLmNhdXRpb24gLmhpZ2hsaWdodCAubmUsLmFydGljbGUtLWNvbnRlbnQgLmNhdXRpb24gLmhpZ2hsaWdodCAubmYsLmFydGljbGUtLWNvbnRlbnQgLmNhdXRpb24gLmhpZ2hsaWdodCAubmwsLmFydGljbGUtLWNvbnRlbnQgLmNhdXRpb24gLmhpZ2hsaWdodCAuc2l7Y29sb3I6I0JGM0Q1RX0uYXJ0aWNsZS0tY29udGVudCAuY2F1dGlvbiAuaGlnaGxpZ2h0IC5tLC5hcnRpY2xlLS1jb250ZW50IC5jYXV0aW9uIC5oaWdobGlnaHQgLm5pLC5hcnRpY2xlLS1jb250ZW50IC5jYXV0aW9uIC5oaWdobGlnaHQgLm1iLC5hcnRpY2xlLS1jb250ZW50IC5jYXV0aW9uIC5oaWdobGlnaHQgLm1mLC5hcnRpY2xlLS1jb250ZW50IC5jYXV0aW9uIC5oaWdobGlnaHQgLm1oLC5hcnRpY2xlLS1jb250ZW50IC5jYXV0aW9uIC5oaWdobGlnaHQgLm1pLC5hcnRpY2xlLS1jb250ZW50IC5jYXV0aW9uIC5oaWdobGlnaHQgLm1vLC5hcnRpY2xlLS1jb250ZW50IC5jYXV0aW9uIC5oaWdobGlnaHQgLnZjLC5hcnRpY2xlLS1jb250ZW50IC5jYXV0aW9uIC5oaWdobGlnaHQgLnZnLC5hcnRpY2xlLS1jb250ZW50IC5jYXV0aW9uIC5oaWdobGlnaHQgLnZpLC5hcnRpY2xlLS1jb250ZW50IC5jYXV0aW9uIC5oaWdobGlnaHQgLnZtLC5hcnRpY2xlLS1jb250ZW50IC5jYXV0aW9uIC5oaWdobGlnaHQgLmlse2NvbG9yOiNmZmEwZGV9LmFydGljbGUtLWNvbnRlbnQgLmNhdXRpb24gLmhpZ2hsaWdodCAuZ3AsLmFydGljbGUtLWNvbnRlbnQgLmNhdXRpb24gLmhpZ2hsaWdodCAub3tjb2xvcjojM2Q5N2U1fS5hcnRpY2xlLS1jb250ZW50IC5jYXV0aW9uIC5oaWdobGlnaHQgLnNze2NvbG9yOiNlOTB9LmFydGljbGUtLWNvbnRlbnQgLmNhdXRpb24gLmhpZ2hsaWdodCAubGFuZ3VhZ2UtanMgLm1pKy5ueCwuYXJ0aWNsZS0tY29udGVudCAuY2F1dGlvbiAuaGlnaGxpZ2h0IC5sYW5ndWFnZS1qcyAubWYrLm54e2NvbG9yOiNmZmEwZGV9LmFydGljbGUtLWNvbnRlbnQgLmNhdXRpb24gLmhpZ2hsaWdodCAubGFuZ3VhZ2Utc3FsIC5taSsubntjb2xvcjojZmZhMGRlfS5hcnRpY2xlLS1jb250ZW50IC5ibG9jay5zcGVjaWFsLXN0YXRle2JhY2tncm91bmQ6bGluZWFyLWdyYWRpZW50KDQ1ZGVnLCAjZDMwOTcxLCM5YjJhZmYpO3BhZGRpbmc6NHB4O2JvcmRlcjpub25lO2JvcmRlci1yYWRpdXM6MjVweCAhaW1wb3J0YW50fS5hcnRpY2xlLS1jb250ZW50IC5ibG9jay5zcGVjaWFsLXN0YXRlIC5zdGF0ZS1jb250ZW50e2JhY2tncm91bmQ6IzE0MTQxRjtib3JkZXItcmFkaXVzOjIxcHg7cGFkZGluZzpjYWxjKDEuNjVyZW0gLSA0cHgpIGNhbGMoMnJlbSAtIDRweCkgY2FsYyguMXJlbSArIDRweCkgY2FsYygycmVtIC0gNHB4KX0uYXJ0aWNsZS0tY29udGVudCAuYmxvY2suc3BlY2lhbC1zdGF0ZSAuc3RhdGUtY29udGVudCBoNHtjb2xvcjojZmZmfS5hcnRpY2xlLS1jb250ZW50IC5ibG9jay5zcGVjaWFsLXN0YXRlIC5zdGF0ZS1jb250ZW50IHB7bWFyZ2luLWJvdHRvbToxcmVtfS5hcnRpY2xlLS1jb250ZW50IC5ibG9jay5zcGVjaWFsLXN0YXRlIC5zdGF0ZS1jb250ZW50IC5idG57Ym9yZGVyLXJhZGl1czo0cHg7YmFja2dyb3VuZDpsaW5lYXItZ3JhZGllbnQoNDVkZWcsICNkMzA5NzEsIzliMmFmZil9LmFydGljbGUtLWNvbnRlbnQgLmJsb2NrLnNwZWNpYWwtc3RhdGUgLnN0YXRlLWNvbnRlbnQgLmJ0bjphZnRlcntiYWNrZ3JvdW5kOmxpbmVhci1ncmFkaWVudCg0NWRlZywgI2E4MDg1YSwgIzdiMTRkNil9LmFydGljbGUtLWNvbnRlbnQgLmJsb2NrLnNwZWNpYWwtc3RhdGUgLnN0YXRlLWNvbnRlbnQgLmV4cGFuZC13cmFwcGVye2JvcmRlcjpub25lO21hcmdpbjouNXJlbSAwIDEuNXJlbX0uYXJ0aWNsZS0tY29udGVudCAuYmxvY2suc3BlY2lhbC1zdGF0ZSAuc3RhdGUtY29udGVudCAuZXhwYW5ke2JvcmRlcjpub25lO3BhZGRpbmc6MH0uYXJ0aWNsZS0tY29udGVudCAuYmxvY2suc3BlY2lhbC1zdGF0ZSAuc3RhdGUtY29udGVudCAuZXhwYW5kIC5leHBhbmQtY29udGVudCBwe21hcmdpbi1sZWZ0OjJyZW19LmFydGljbGUtLWNvbnRlbnQgLmJsb2NrLnNwZWNpYWwtc3RhdGUgLnN0YXRlLWNvbnRlbnQgLmV4cGFuZCB1bHttYXJnaW4tdG9wOi0xcmVtfS5hcnRpY2xlLS1jb250ZW50IC5ibG9jay5zcGVjaWFsLXN0YXRlIC5zdGF0ZS1jb250ZW50IC5leHBhbmQgdWwuZmVlZGJhY2stY2hhbm5lbHN7cGFkZGluZzowO21hcmdpbjotMXJlbSAwIDEuNXJlbSAycmVtO2xpc3Qtc3R5bGU6bm9uZX0uYXJ0aWNsZS0tY29udGVudCAuYmxvY2suc3BlY2lhbC1zdGF0ZSAuc3RhdGUtY29udGVudCAuZXhwYW5kIHVsLmZlZWRiYWNrLWNoYW5uZWxzIGF7Y29sb3I6I2ZmZjtmb250LXdlaWdodDo1MDA7cG9zaXRpb246cmVsYXRpdmV9LmFydGljbGUtLWNvbnRlbnQgLmJsb2NrLnNwZWNpYWwtc3RhdGUgLnN0YXRlLWNvbnRlbnQgLmV4cGFuZCB1bC5mZWVkYmFjay1jaGFubmVscyBhLmRpc2NvcmQ6YmVmb3Jle2NvbnRlbnQ6dXJsKFwiL3N2Z3MvZGlzY29yZC5zdmdcIik7ZGlzcGxheTppbmxpbmUtYmxvY2s7aGVpZ2h0OjEuMXJlbTt3aWR0aDoxLjI1cmVtO3ZlcnRpY2FsLWFsaWduOnRvcDttYXJnaW46MnB4IC42NXJlbSAwIDB9LmFydGljbGUtLWNvbnRlbnQgLmJsb2NrLnNwZWNpYWwtc3RhdGUgLnN0YXRlLWNvbnRlbnQgLmV4cGFuZCB1bC5mZWVkYmFjay1jaGFubmVscyBhLmNvbW11bml0eTpiZWZvcmV7Y29udGVudDpcIlxcZTkwMFwiO2NvbG9yOiNmZmY7bWFyZ2luOjAgLjY1cmVtIDAgMDtmb250LXNpemU6MS4ycmVtO2ZvbnQtZmFtaWx5OidpY29tb29uLXYyJzt2ZXJ0aWNhbC1hbGlnbjptaWRkbGV9LmFydGljbGUtLWNvbnRlbnQgLmJsb2NrLnNwZWNpYWwtc3RhdGUgLnN0YXRlLWNvbnRlbnQgLmV4cGFuZCB1bC5mZWVkYmFjay1jaGFubmVscyBhLnNsYWNrOmJlZm9yZXtjb250ZW50OnVybChcIi9zdmdzL3NsYWNrLnN2Z1wiKTtkaXNwbGF5OmlubGluZS1ibG9jaztoZWlnaHQ6MS4xcmVtO3dpZHRoOjEuMXJlbTt2ZXJ0aWNhbC1hbGlnbjp0ZXh0LXRvcDttYXJnaW4tcmlnaHQ6LjY1cmVtfS5hcnRpY2xlLS1jb250ZW50IC5ibG9jay5zcGVjaWFsLXN0YXRlIC5zdGF0ZS1jb250ZW50IC5leHBhbmQgdWwuZmVlZGJhY2stY2hhbm5lbHMgYS5yZWRkaXQ6YmVmb3Jle2NvbnRlbnQ6dXJsKFwiL3N2Z3MvcmVkZGl0LnN2Z1wiKTtkaXNwbGF5OmlubGluZS1ibG9jaztoZWlnaHQ6MS4xcmVtO3dpZHRoOjEuMnJlbTt2ZXJ0aWNhbC1hbGlnbjp0b3A7bWFyZ2luOjJweCAuNjVyZW0gMCAwfS5hcnRpY2xlLS1jb250ZW50IC5ibG9jay5zcGVjaWFsLXN0YXRlIC5zdGF0ZS1jb250ZW50IC5leHBhbmQgdWwuZmVlZGJhY2stY2hhbm5lbHMgYTo6YWZ0ZXJ7Y29udGVudDpcIlxcZTkwYVwiO2ZvbnQtZmFtaWx5OidpY29tb29uLXY0Jztmb250LXdlaWdodDpib2xkO2ZvbnQtc2l6ZToxLjNyZW07ZGlzcGxheTppbmxpbmUtYmxvY2s7cG9zaXRpb246YWJzb2x1dGU7YmFja2dyb3VuZDpsaW5lYXItZ3JhZGllbnQoNDVkZWcsICNkMzA5NzEsIzliMmFmZik7YmFja2dyb3VuZC1jbGlwOnRleHQ7LXdlYmtpdC10ZXh0LWZpbGwtY29sb3I6dHJhbnNwYXJlbnQ7cmlnaHQ6MDt0cmFuc2Zvcm06dHJhbnNsYXRlWCgwLjI1cmVtKTtvcGFjaXR5OjA7dHJhbnNpdGlvbjp0cmFuc2Zvcm0gLjJzLCBvcGFjaXR5IC4yc30uYXJ0aWNsZS0tY29udGVudCAuYmxvY2suc3BlY2lhbC1zdGF0ZSAuc3RhdGUtY29udGVudCAuZXhwYW5kIHVsLmZlZWRiYWNrLWNoYW5uZWxzIGE6aG92ZXI6OmFmdGVye3RyYW5zZm9ybTp0cmFuc2xhdGVYKDEuNXJlbSk7b3BhY2l0eToxfS5hcnRpY2xlLS1jb250ZW50IGEuYnRue3Bvc2l0aW9uOnJlbGF0aXZlO2Rpc3BsYXk6aW5saW5lLWJsb2NrO21hcmdpbjouNXJlbSAuMjVyZW0gLjVyZW0gMDtwYWRkaW5nOjAuODVyZW0gMS41cmVtO2NvbG9yOiNmZmYgIWltcG9ydGFudDtib3JkZXItcmFkaXVzOjJweDtmb250LXNpemU6MS4wNXJlbTt6LWluZGV4OjE7YmFja2dyb3VuZDpsaW5lYXItZ3JhZGllbnQoNDVkZWcsICMwNjZGQzUsIzAwQTNGRil9LmFydGljbGUtLWNvbnRlbnQgYS5idG46YWZ0ZXJ7Y29udGVudDpcIlwiO3Bvc2l0aW9uOmFic29sdXRlO2Rpc3BsYXk6YmxvY2s7dG9wOjA7cmlnaHQ6MDt3aWR0aDoxMDAlO2hlaWdodDoxMDAlO2JvcmRlci1yYWRpdXM6MnB4O2JhY2tncm91bmQ6bGluZWFyLWdyYWRpZW50KDQ1ZGVnLCAjMDBBM0ZGLCM2QkRGRkYpO29wYWNpdHk6MDt0cmFuc2l0aW9uOm9wYWNpdHkgLjJzO3otaW5kZXg6LTF9LmFydGljbGUtLWNvbnRlbnQgYS5idG46aG92ZXJ7Y3Vyc29yOnBvaW50ZXJ9LmFydGljbGUtLWNvbnRlbnQgYS5idG46aG92ZXI6YWZ0ZXJ7b3BhY2l0eToxfS5hcnRpY2xlLS1jb250ZW50IGEuYnRuLmRvd25sb2FkOmJlZm9yZXtjb250ZW50OlwiXFxlOTFkXCI7Zm9udC1mYW1pbHk6XCJpY29tb29uLXYyXCI7bWFyZ2luLXJpZ2h0Oi41cmVtO2ZvbnQtc2l6ZToxLjFyZW19LmFydGljbGUtLWNvbnRlbnQgYS5idG4uZ2l0aHViOmJlZm9yZXtjb250ZW50OlwiXFxlYWIwXCI7Zm9udC1mYW1pbHk6XCJpY29tb29uLXYyXCI7bWFyZ2luLXJpZ2h0Oi41cmVtO2ZvbnQtc2l6ZToxLjFyZW19LmFydGljbGUtLWNvbnRlbnQgYS5idG4uYXJyb3cgc3Bhbi5DYXJldE91dGxpbmVSaWdodHtmb250LXNpemU6MS41cmVtO2xpbmUtaGVpZ2h0OjA7dmVydGljYWwtYWxpZ246c3ViO2Rpc3BsYXk6aW5saW5lLWJsb2NrO21hcmdpbi1yaWdodDotLjY1cmVtfS5hcnRpY2xlLS1jb250ZW50IGEuYnRuLnNtYWxse3BhZGRpbmc6LjRyZW0gMXJlbX0uYXJ0aWNsZS0tY29udGVudCBhLmJ0bi5zbWFsbC1wbHVze3BhZGRpbmc6LjI1ZW07bGluZS1oZWlnaHQ6LjY1cmVtfS5hcnRpY2xlLS1jb250ZW50IC5zZWxlY3QtdXJse21hcmdpbjotMi41cmVtIDAgMXJlbTt0ZXh0LWFsaWduOnJpZ2h0O2Rpc3BsYXk6bm9uZX0uYXJ0aWNsZS0tY29udGVudCAudXJsLXRyaWdnZXJ7cGFkZGluZzouMjVyZW0gLjVyZW07ZGlzcGxheTppbmxpbmUtYmxvY2s7Zm9udC1zaXplOi44NXJlbTtmb250LXN0eWxlOml0YWxpYztjb2xvcjpyZ2JhKDI1NSwyNTUsMjU1LDAuNSk7YmFja2dyb3VuZDojMDcwNzBFO2JvcmRlci1yYWRpdXM6MCAwIDJweCAycHh9LmFydGljbGUtLWNvbnRlbnQgLnVybC10cmlnZ2VyOmJlZm9yZXtjb250ZW50OlwiXFxlOTI0XCI7ZGlzcGxheTppbmxpbmUtYmxvY2s7bWFyZ2luLXJpZ2h0Oi4zNXJlbTtmb250LWZhbWlseTpcImljb21vb24tdjJcIjtmb250LXN0eWxlOm5vcm1hbDtmb250LXNpemU6LjhyZW19LmFydGljbGUtLWNvbnRlbnQgLnVybC10cmlnZ2VyOmhvdmVye2NvbG9yOiNmZmZ9LmFydGljbGUtLWNvbnRlbnQgbGkgLnVybC10cmlnZ2Vye3BhZGRpbmc6MHJlbSAuNXJlbX0uYXJ0aWNsZS0tY29udGVudCAuY29kZS10YWItY29udGVudCAuc2VsZWN0LXVybHttYXJnaW4tdG9wOi0zLjE1cmVtfS5hcnRpY2xlLS1jb250ZW50IC5jYXB0aW9ue21hcmdpbjotMS44cmVtIDAgMnJlbTtwYWRkaW5nLWxlZnQ6LjI1cmVtO2ZvbnQtc2l6ZTouOTVyZW07Zm9udC1zdHlsZTppdGFsaWN9LmFydGljbGUtLWNvbnRlbnQgLmNhcHRpb24gcHtsaW5lLWhlaWdodDoxLjI1cmVtO2NvbG9yOnJnYmEoMjEyLDIxNSwyMjEsMC44KX0uYXJ0aWNsZS0tY29udGVudCAuY2FwdGlvbiBjb2Rle2ZvbnQtc2l6ZTouOXJlbX0uYXJ0aWNsZS0tY29udGVudCBwKy5jYXB0aW9uLC5hcnRpY2xlLS1jb250ZW50IGxpKy5jYXB0aW9uLC5hcnRpY2xlLS1jb250ZW50IG9sKy5jYXB0aW9uLC5hcnRpY2xlLS1jb250ZW50IHVsKy5jYXB0aW9ue3BhZGRpbmc6MDttYXJnaW46LS43NXJlbSAwIDA7b3BhY2l0eToxfS5hcnRpY2xlLS1jb250ZW50IGgyKy5jYXB0aW9uLC5hcnRpY2xlLS1jb250ZW50IGgzKy5jYXB0aW9uLC5hcnRpY2xlLS1jb250ZW50IGg0Ky5jYXB0aW9uLC5hcnRpY2xlLS1jb250ZW50IGg1Ky5jYXB0aW9uLC5hcnRpY2xlLS1jb250ZW50IGg2Ky5jYXB0aW9ue3BhZGRpbmc6MDttYXJnaW46MDtvcGFjaXR5OjF9LmFydGljbGUtLWNvbnRlbnQgI3F1ZXJ5LXBsYW4tZGlhZ3JhbSsuY2FwdGlvbnttYXJnaW4tdG9wOjB9LmFydGljbGUtLWNvbnRlbnQgLmNoaWxkcmVuLWxpbmtzIGgyLC5hcnRpY2xlLS1jb250ZW50IC5jaGlsZHJlbi1saW5rcyBoMywuYXJ0aWNsZS0tY29udGVudCAuY2hpbGRyZW4tbGlua3MgaDQsLmFydGljbGUtLWNvbnRlbnQgLmxpc3QtbGlua3MgaDIsLmFydGljbGUtLWNvbnRlbnQgLmxpc3QtbGlua3MgaDMsLmFydGljbGUtLWNvbnRlbnQgLmxpc3QtbGlua3MgaDR7bWFyZ2luLXRvcDotLjVyZW19LmFydGljbGUtLWNvbnRlbnQgLmNoaWxkcmVuLWxpbmtzIGgyIGEgYTphZnRlciwuYXJ0aWNsZS0tY29udGVudCAuY2hpbGRyZW4tbGlua3MgaDMgYSBhOmFmdGVyLC5hcnRpY2xlLS1jb250ZW50IC5jaGlsZHJlbi1saW5rcyBoNCBhIGE6YWZ0ZXIsLmFydGljbGUtLWNvbnRlbnQgLmxpc3QtbGlua3MgaDIgYSBhOmFmdGVyLC5hcnRpY2xlLS1jb250ZW50IC5saXN0LWxpbmtzIGgzIGEgYTphZnRlciwuYXJ0aWNsZS0tY29udGVudCAubGlzdC1saW5rcyBoNCBhIGE6YWZ0ZXJ7Y29udGVudDpcIlxcZTkxYVwiO2ZvbnQtZmFtaWx5OlwiaWNvbW9vbi12MlwiO2NvbG9yOnJnYmEoMjU1LDI1NSwyNTUsMC4zNSk7dmVydGljYWwtYWxpZ246Ym90dG9tO3RyYW5zaXRpb246Y29sb3IgLjJzO21hcmdpbi1sZWZ0Oi40cmVtfS5hcnRpY2xlLS1jb250ZW50IC5jaGlsZHJlbi1saW5rcyBoMiBhOmhvdmVyOmFmdGVyLC5hcnRpY2xlLS1jb250ZW50IC5jaGlsZHJlbi1saW5rcyBoMyBhOmhvdmVyOmFmdGVyLC5hcnRpY2xlLS1jb250ZW50IC5jaGlsZHJlbi1saW5rcyBoNCBhOmhvdmVyOmFmdGVyLC5hcnRpY2xlLS1jb250ZW50IC5saXN0LWxpbmtzIGgyIGE6aG92ZXI6YWZ0ZXIsLmFydGljbGUtLWNvbnRlbnQgLmxpc3QtbGlua3MgaDMgYTpob3ZlcjphZnRlciwuYXJ0aWNsZS0tY29udGVudCAubGlzdC1saW5rcyBoNCBhOmhvdmVyOmFmdGVye2NvbG9yOiMwMEEzRkZ9LmFydGljbGUtLWNvbnRlbnQgLmNoaWxkcmVuLWxpbmtzPmhyOmxhc3QtY2hpbGQsLmFydGljbGUtLWNvbnRlbnQgLmxpc3QtbGlua3M+aHI6bGFzdC1jaGlsZHtkaXNwbGF5Om5vbmV9LmFydGljbGUtLWNvbnRlbnQgdWwuY2hpbGRyZW4tbGlzdCt1bHttYXJnaW4tdG9wOi0xLjI1cmVtfS5hcnRpY2xlLS1jb250ZW50IGNvZGUsLmFydGljbGUtLWNvbnRlbnQgcHJle2JhY2tncm91bmQ6IzA3MDcwRTtmb250LWZhbWlseTpcIklCTSBQbGV4IE1vbm9cIixtb25vc3BhY2U7Y29sb3I6I0I3QjhGRn0uYXJ0aWNsZS0tY29udGVudCBwIGNvZGUsLmFydGljbGUtLWNvbnRlbnQgbGkgY29kZSwuYXJ0aWNsZS0tY29udGVudCB0YWJsZSBjb2Rle3BhZGRpbmc6LjFyZW0gLjRyZW0gLjJyZW07Ym9yZGVyLXJhZGl1czoycHg7Y29sb3I6I0I3QjhGRjt3aGl0ZS1zcGFjZTpub3dyYXA7Zm9udC1zaXplOjFyZW07Zm9udC1zdHlsZTpub3JtYWx9LmFydGljbGUtLWNvbnRlbnQgaDEgY29kZSwuYXJ0aWNsZS0tY29udGVudCBoMiBjb2RlLC5hcnRpY2xlLS1jb250ZW50IGgzIGNvZGUsLmFydGljbGUtLWNvbnRlbnQgaDQgY29kZSwuYXJ0aWNsZS0tY29udGVudCBoNSBjb2RlLC5hcnRpY2xlLS1jb250ZW50IGg2IGNvZGV7cGFkZGluZzppbmhlcml0ICFpbXBvcnRhbnQ7YmFja2dyb3VuZDppbmhlcml0ICFpbXBvcnRhbnQ7Zm9udC1zaXplOmluaGVyaXQgIWltcG9ydGFudDtmb250LXdlaWdodDppbmhlcml0ICFpbXBvcnRhbnQ7Zm9udC1mYW1pbHk6XCJQcm94aW1hIE5vdmFcIixzYW5zLXNlcmlmO2NvbG9yOmluaGVyaXQgIWltcG9ydGFudH0uYXJ0aWNsZS0tY29udGVudCBhIGNvZGV7Zm9udC13ZWlnaHQ6bm9ybWFsO3RyYW5zaXRpb246Y29sb3IgLjJzO3Bvc2l0aW9uOnJlbGF0aXZlO2NvbG9yOiMwMEEzRkZ9LmFydGljbGUtLWNvbnRlbnQgYSBjb2RlOmFmdGVye2NvbnRlbnQ6XCJcIjtwb3NpdGlvbjphYnNvbHV0ZTtkaXNwbGF5OmJsb2NrO3RvcDowO3JpZ2h0OjA7Ym9yZGVyLXN0eWxlOnNvbGlkO2JvcmRlci13aWR0aDowIC40cmVtIC40cmVtIDA7Ym9yZGVyLWNvbG9yOnRyYW5zcGFyZW50IHJnYmEoMCwxNjMsMjU1LDAuMzUpIHRyYW5zcGFyZW50IHRyYW5zcGFyZW50O3RyYW5zaXRpb246Ym9yZGVyIC4yc30uYXJ0aWNsZS0tY29udGVudCBhOmhvdmVyIGNvZGV7Y29sb3I6I2ZmZn0uYXJ0aWNsZS0tY29udGVudCBhOmhvdmVyIGNvZGU6YWZ0ZXJ7Ym9yZGVyLWNvbG9yOnRyYW5zcGFyZW50ICNmZmYgdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnR9LmFydGljbGUtLWNvbnRlbnQgcHJle21hcmdpbjoycmVtIDAgMi4yNXJlbTtwYWRkaW5nOjEuNzVyZW0gMS43NXJlbSAxLjI1cmVtO2JvcmRlci1yYWRpdXM6MnB4O292ZXJmbG93LXg6c2Nyb2xsO292ZXJmbG93LXk6aGlkZGVuO2ZvbnQtc2l6ZToxcmVtfS5hcnRpY2xlLS1jb250ZW50IHByZSBjb2Rle3BhZGRpbmc6MDtsaW5lLWhlaWdodDoxLjdyZW07d2hpdGUtc3BhY2U6cHJlfS5hcnRpY2xlLS1jb250ZW50IHByZSAuYXBpe21hcmdpbi1yaWdodDouMzVyZW07cGFkZGluZzouMTVyZW0gLjVyZW0gLjI1cmVtO2JvcmRlci1yYWRpdXM6MnB4O2NvbG9yOiNmZmY7Zm9udC1mYW1pbHk6XCJJQk0gUGxleCBNb25vXCIsbW9ub3NwYWNlO2ZvbnQtd2VpZ2h0OmJvbGQ7Zm9udC1zaXplOjFyZW19LmFydGljbGUtLWNvbnRlbnQgcHJlIC5hcGkuZ2V0e2JhY2tncm91bmQ6IzAwOUY1Rn0uYXJ0aWNsZS0tY29udGVudCBwcmUgLmFwaS5wb3N0e2JhY2tncm91bmQ6IzA2NkZDNX0uYXJ0aWNsZS0tY29udGVudCBwcmUgLmFwaS5wYXRjaHtiYWNrZ3JvdW5kOiNFODVCMUN9LmFydGljbGUtLWNvbnRlbnQgcHJlIC5hcGkuZGVsZXRle2JhY2tncm91bmQ6I0JGM0Q1RX0uYXJ0aWNsZS0tY29udGVudCBwcmUgLmFwaS5wdXR7YmFja2dyb3VuZDojNTEzQ0M2fS5hcnRpY2xlLS1jb250ZW50IHByZS5hcGktZW5kcG9pbnQgYXtwb3NpdGlvbjpyZWxhdGl2ZTtjb2xvcjojMDBBM0ZGO3RleHQtZGVjb3JhdGlvbjpub25lfS5hcnRpY2xlLS1jb250ZW50IHByZS5hcGktZW5kcG9pbnQgYTphZnRlcntjb250ZW50OlwiXFxlOTBkXCI7cG9zaXRpb246YWJzb2x1dGU7cmlnaHQ6LTEuNDVyZW07dG9wOjAuNjVyZW07Zm9udC1mYW1pbHk6XCJpY29tb29uLXY0XCI7Y29sb3I6I2ZmZjtkaXNwbGF5OmlubGluZS1ibG9jaztmb250LXNpemU6MS4xcmVtO2xpbmUtaGVpZ2h0OjA7b3BhY2l0eTowO3RyYW5zaXRpb246b3BhY2l0eSAuMnN9LmFydGljbGUtLWNvbnRlbnQgcHJlLmFwaS1lbmRwb2ludCBhOmhvdmVye2NvbG9yOiNmZmZ9LmFydGljbGUtLWNvbnRlbnQgcHJlLmFwaS1lbmRwb2ludCBhOmhvdmVyOmFmdGVye29wYWNpdHk6LjZ9LmFydGljbGUtLWNvbnRlbnQgc3Bhbi5jb2RlLWNhbGxvdXQsLmFydGljbGUtLWNvbnRlbnQgLmNvZGUtcGxhY2Vob2xkZXJ7Zm9udC13ZWlnaHQ6Ym9sZDttYXJnaW46MCAuMTVyZW19LmFydGljbGUtLWNvbnRlbnQgc3Bhbi5jb2RlLWNhbGxvdXQuZ3JlZW4sLmFydGljbGUtLWNvbnRlbnQgLmNvZGUtcGxhY2Vob2xkZXIuZ3JlZW57Y29sb3I6IzAwOUY1Rn0uYXJ0aWNsZS0tY29udGVudCBzcGFuLmNvZGUtY2FsbG91dC5tYWdlbnRhLC5hcnRpY2xlLS1jb250ZW50IC5jb2RlLXBsYWNlaG9sZGVyLm1hZ2VudGF7Y29sb3I6I2QzMDk3MX0uYXJ0aWNsZS0tY29udGVudCBzcGFuLmNvZGUtY2FsbG91dC5vcmFuZ2UsLmFydGljbGUtLWNvbnRlbnQgLmNvZGUtcGxhY2Vob2xkZXIub3Jhbmdle2NvbG9yOiNGOTVGNTN9LmFydGljbGUtLWNvbnRlbnQgc3Bhbi5jb2RlLWNhbGxvdXQuZGVsZXRlLC5hcnRpY2xlLS1jb250ZW50IHNwYW4uY29kZS1jYWxsb3V0LnN0cmlrZSwuYXJ0aWNsZS0tY29udGVudCAuY29kZS1wbGFjZWhvbGRlci5kZWxldGUsLmFydGljbGUtLWNvbnRlbnQgLmNvZGUtcGxhY2Vob2xkZXIuc3RyaWtle3RleHQtZGVjb3JhdGlvbjpsaW5lLXRocm91Z2h9LmFydGljbGUtLWNvbnRlbnQgLmNvZGUtcGxhY2Vob2xkZXItd3JhcHBlcntkaXNwbGF5OmlubGluZTtwb3NpdGlvbjpyZWxhdGl2ZX0uYXJ0aWNsZS0tY29udGVudCAuY29kZS1wbGFjZWhvbGRlci13cmFwcGVyIC5jb2RlLXBsYWNlaG9sZGVye2Rpc3BsYXk6aW5saW5lLWJsb2NrO21hcmdpbjowIC4xNXJlbTtwYWRkaW5nOjA7bGluZS1oZWlnaHQ6MS40ZW07Y29sb3I6I2U2NTlhMjtmb250LXdlaWdodDpub3JtYWw7Zm9udC1zdHlsZTpub3JtYWw7Ym9yZGVyLWJvdHRvbToxcHggZG90dGVkO3RyYW5zaXRpb246Y29sb3IgLjJzO2N1cnNvcjpwb2ludGVyfS5hcnRpY2xlLS1jb250ZW50IC5jb2RlLXBsYWNlaG9sZGVyLXdyYXBwZXIgLmNvZGUtcGxhY2Vob2xkZXIgLmNvZGUtcGxhY2Vob2xkZXItZWRpdC1pY29ue2ZvbnQtc3R5bGU6bm9ybWFsfS5hcnRpY2xlLS1jb250ZW50IC5jb2RlLXBsYWNlaG9sZGVyLXdyYXBwZXIgLmNvZGUtcGxhY2Vob2xkZXIgLmNvZGUtcGxhY2Vob2xkZXItZWRpdC1pY29uOjpiZWZvcmV7bWFyZ2luLWxlZnQ6LjJyZW07Zm9udC1zaXplOi44ZW07dHJhbnNpdGlvbjpvcGFjaXR5IC4ycztvcGFjaXR5Oi42NTt6LWluZGV4Oi0xfS5hcnRpY2xlLS1jb250ZW50IC5jb2RlLXBsYWNlaG9sZGVyLXdyYXBwZXIgLmNvZGUtcGxhY2Vob2xkZXI6aG92ZXJ7Y29sb3I6IzVlZTRlNH0uYXJ0aWNsZS0tY29udGVudCAuY29kZS1wbGFjZWhvbGRlci13cmFwcGVyIC5jb2RlLXBsYWNlaG9sZGVyOmhvdmVyIC5jb2RlLXBsYWNlaG9sZGVyLWVkaXQtaWNvbjo6YmVmb3Jle29wYWNpdHk6MX0uYXJ0aWNsZS0tY29udGVudCAuY29kZS1wbGFjZWhvbGRlci13cmFwcGVyIC5jb2RlLWlucHV0LXdyYXBwZXJ7cG9zaXRpb246YWJzb2x1dGU7dG9wOi0zcHg7bGVmdDotNC41cHg7ei1pbmRleDoxO2NvbG9yOmluaGVyaXR9LmFydGljbGUtLWNvbnRlbnQgLmNvZGUtcGxhY2Vob2xkZXItd3JhcHBlciAuY29kZS1pbnB1dC13cmFwcGVyIGlucHV0LnBsYWNlaG9sZGVyLWVkaXR7d2lkdGg6MTAwJTttYXgtd2lkdGg6MTAwJTtib3JkZXI6MXB4IHNvbGlkICMxQTFBMkE7Ym9yZGVyLXJhZGl1czo0cHg7YmFja2dyb3VuZC1jb2xvcjojMUExQTJBO3BhZGRpbmc6MnB4IDIwcHggMnB4IDZweDtjb2xvcjojNWVlNGU0O2ZvbnQtd2VpZ2h0Om5vcm1hbH0uYXJ0aWNsZS0tY29udGVudCAuY29kZS1wbGFjZWhvbGRlci13cmFwcGVyIC5jb2RlLWlucHV0LXdyYXBwZXIgaW5wdXQucGxhY2Vob2xkZXItZWRpdDpmb2N1c3tvdXRsaW5lOm5vbmU7Ym9yZGVyLWNvbG9yOnJnYmEoOTQsMjI4LDIyOCwwLjc1KTtib3gtc2hhZG93OjFweCAxcHggOHB4IHJnYmEoOTQsMjI4LDIyOCwwLjUpO2JvcmRlci1yYWRpdXM6MnB4fS5hcnRpY2xlLS1jb250ZW50IC5jb2RlLXBsYWNlaG9sZGVyLXdyYXBwZXIgLmNvZGUtaW5wdXQtd3JhcHBlcjpob3ZlcntjdXJzb3I6cG9pbnRlcn0uYXJ0aWNsZS0tY29udGVudCAuY29kZS1wbGFjZWhvbGRlci13cmFwcGVyIC5jb2RlLWlucHV0LXdyYXBwZXI6YWZ0ZXJ7Y29udGVudDpcIlxcZTkzN1wiO2NvbG9yOiM1ZWU0ZTQ7Zm9udC1mYW1pbHk6J2ljb21vb24tdjQnO2Rpc3BsYXk6YmxvY2s7cG9zaXRpb246YWJzb2x1dGU7dG9wOjA7cmlnaHQ6M3B4fS5hcnRpY2xlLS1jb250ZW50IC5jb2RlLXBsYWNlaG9sZGVyLWtleSBjb2Rle2NvbG9yOiNlNjU5YTIgIWltcG9ydGFudH0uYXJ0aWNsZS0tY29udGVudCBwcmUgc3Bhbi50Yy1keW5hbWljLXZhbHVle2JvcmRlcjoxcHggc29saWQ7Ym9yZGVyLXJhZGl1czo2cHg7cGFkZGluZzowIC4yNXJlbTstLXBhcmFtLWNvbG9yOiAjZmY3OWM2Oy0tcGFyYW0tYmc6ICNmZjc5YzYzMzstLWVudi1jb2xvcjogIzAwOTJiODstLWVudi1iZzogIzAwOTJiODMzOy0tc2VjcmV0LWNvbG9yOiAjOWEwOWZmOy0tc2VjcmV0LWJnOiAjOTgwOWZmMzN9LmFydGljbGUtLWNvbnRlbnQgcHJlIHNwYW4udGMtZHluYW1pYy12YWx1ZS5wYXJhbXtjb2xvcjp2YXIoLS1wYXJhbS1jb2xvcik7YmFja2dyb3VuZDp2YXIoLS1wYXJhbS1iZyk7Ym9yZGVyLWNvbG9yOnZhcigtLXBhcmFtLWNvbG9yKX0uYXJ0aWNsZS0tY29udGVudCBwcmUgc3Bhbi50Yy1keW5hbWljLXZhbHVlLmVudntjb2xvcjp2YXIoLS1lbnYtY29sb3IpO2JhY2tncm91bmQ6dmFyKC0tZW52LWJnKTtib3JkZXItY29sb3I6dmFyKC0tZW52LWNvbG9yKX0uYXJ0aWNsZS0tY29udGVudCBwcmUgc3Bhbi50Yy1keW5hbWljLXZhbHVlLnNlY3JldHtjb2xvcjp2YXIoLS1zZWNyZXQtY29sb3IpO2JhY2tncm91bmQ6dmFyKC0tc2VjcmV0LWJnKTtib3JkZXItY29sb3I6dmFyKC0tc2VjcmV0LWNvbG9yKX1AbWVkaWEgKG1heC13aWR0aDogNjAwcHgpey5hcnRpY2xlLS1jb250ZW50IHByZXtwYWRkaW5nOjEuMmVtIDEuMmVtIC43NXJlbX19LmFydGljbGUtLWNvbnRlbnQgZGl2LmNvbHVtbnMtd3JhcHBlcntjb250YWluZXItdHlwZTppbmxpbmUtc2l6ZTtjb250YWluZXItbmFtZTpjb2x1bW5zfS5hcnRpY2xlLS1jb250ZW50IGRpdi5jb2x1bW5zLTJ7Y29sdW1uczoyfS5hcnRpY2xlLS1jb250ZW50IGRpdi5jb2x1bW5zLTN7Y29sdW1uczozfS5hcnRpY2xlLS1jb250ZW50IGRpdi5jb2x1bW5zLTR7Y29sdW1uczo0fS5hcnRpY2xlLS1jb250ZW50IGRpdi5jb2x1bW5zLTIsLmFydGljbGUtLWNvbnRlbnQgZGl2LmNvbHVtbnMtMywuYXJ0aWNsZS0tY29udGVudCBkaXYuY29sdW1ucy00e21hcmdpbjoxLjVyZW0gMCAyLjVyZW19LmFydGljbGUtLWNvbnRlbnQgZGl2LmNvbHVtbnMtMj4qOmZpcnN0LWNoaWxkLC5hcnRpY2xlLS1jb250ZW50IGRpdi5jb2x1bW5zLTM+KjpmaXJzdC1jaGlsZCwuYXJ0aWNsZS0tY29udGVudCBkaXYuY29sdW1ucy00Pio6Zmlyc3QtY2hpbGR7bWFyZ2luLXRvcDowfUBjb250YWluZXIgY29sdW1ucyAobWF4LXdpZHRoOiA3ODBweCl7LmFydGljbGUtLWNvbnRlbnQgZGl2LmNvbHVtbnMtNHtjb2x1bW5zOjN9fUBjb250YWluZXIgY29sdW1ucyAobWF4LXdpZHRoOiA1NTBweCl7LmFydGljbGUtLWNvbnRlbnQgZGl2LmNvbHVtbnMtMywuYXJ0aWNsZS0tY29udGVudCBkaXYuY29sdW1ucy00e2NvbHVtbnM6Mn19QGNvbnRhaW5lciBjb2x1bW5zIChtYXgtd2lkdGg6IDM1MHB4KXsuYXJ0aWNsZS0tY29udGVudCBkaXYuY29sdW1ucy0yLC5hcnRpY2xlLS1jb250ZW50IGRpdi5jb2x1bW5zLTMsLmFydGljbGUtLWNvbnRlbnQgZGl2LmNvbHVtbnMtNHtjb2x1bW5zOjF9fS5hcnRpY2xlLS1jb250ZW50IC5tZXJtYWlke29wYWNpdHk6MDtjb2xvcjojMTQxNDFGO21hcmdpbjozcmVtIDA7dHJhbnNpdGlvbjpvcGFjaXR5IC41cztmb250LWZhbWlseTpcIlByb3hpbWEgTm92YVwiLHNhbnMtc2VyaWZ9LmFydGljbGUtLWNvbnRlbnQgLm1lcm1haWQgLmFycm93aGVhZFBhdGgsLmFydGljbGUtLWNvbnRlbnQgLm1lcm1haWQgLmFycm93TWFya2VyUGF0aHtmaWxsOiM0MzQ0NTMgIWltcG9ydGFudH0uYXJ0aWNsZS0tY29udGVudCAubWVybWFpZCAuZWRnZVBhdGggLnBhdGgsLmFydGljbGUtLWNvbnRlbnQgLm1lcm1haWQgLmZsb3djaGFydC1saW5re3N0cm9rZTojNDM0NDUzICFpbXBvcnRhbnR9LmFydGljbGUtLWNvbnRlbnQgLm1lcm1haWQgLmxhYmVsLC5hcnRpY2xlLS1jb250ZW50IC5tZXJtYWlkIC5ub2RlTGFiZWx7Y29sb3I6I0Q0RDdERCAhaW1wb3J0YW50fS5hcnRpY2xlLS1jb250ZW50IC5tZXJtYWlkIC5jbHVzdGVyLWxhYmVsIC5ub2RlTGFiZWx7Y29sb3I6I0I3QjhGRiAhaW1wb3J0YW50fS5hcnRpY2xlLS1jb250ZW50IC5tZXJtYWlkIC5lZGdlTGFiZWx7Y29sb3I6I0Q0RDdERCAhaW1wb3J0YW50O2JhY2tncm91bmQ6IzA3MDcwRSAhaW1wb3J0YW50O2ZvbnQtc2l6ZTouODVlbTtmb250LXdlaWdodDo1MDB9LmFydGljbGUtLWNvbnRlbnQgLm1lcm1haWQgLmVkZ2VMYWJlbCBwe2JhY2tncm91bmQ6IzE0MTQxRiAhaW1wb3J0YW50fS5hcnRpY2xlLS1jb250ZW50IC5tZXJtYWlkIC5ub2RlIHJlY3QsLmFydGljbGUtLWNvbnRlbnQgLm1lcm1haWQgLm5vZGUgY2lyY2xlLC5hcnRpY2xlLS1jb250ZW50IC5tZXJtYWlkIC5ub2RlIGVsbGlwc2UsLmFydGljbGUtLWNvbnRlbnQgLm1lcm1haWQgLm5vZGUgcG9seWdvbiwuYXJ0aWNsZS0tY29udGVudCAubWVybWFpZCAubm9kZSBwYXRoe2ZpbGw6IzE0MTQxRiAhaW1wb3J0YW50O3N0cm9rZTojNDM0NDUzICFpbXBvcnRhbnQ7c3Ryb2tlLXdpZHRoOjJweCAhaW1wb3J0YW50fS5hcnRpY2xlLS1jb250ZW50IC5tZXJtYWlkIC5ub2RlIHNwYW4ubGFiZWx7Y29sb3I6I0Q0RDdERCAhaW1wb3J0YW50fS5hcnRpY2xlLS1jb250ZW50IC5tZXJtYWlkIC5jbHVzdGVyIHJlY3QsLmFydGljbGUtLWNvbnRlbnQgLm1lcm1haWQgLmNsdXN0ZXIgY2lyY2xlLC5hcnRpY2xlLS1jb250ZW50IC5tZXJtYWlkIC5jbHVzdGVyIGVsbGlwc2UsLmFydGljbGUtLWNvbnRlbnQgLm1lcm1haWQgLmNsdXN0ZXIgcG9seWdvbiwuYXJ0aWNsZS0tY29udGVudCAubWVybWFpZCAuY2x1c3RlciBwYXRoe2ZpbGw6IzA3MDcwRSAhaW1wb3J0YW50O3N0cm9rZTpub25lICFpbXBvcnRhbnR9LmFydGljbGUtLWNvbnRlbnQgLm1lcm1haWRbZGF0YS1wcm9jZXNzZWQ9XCJ0cnVlXCJde29wYWNpdHk6MX0uYXJ0aWNsZS0tY29udGVudCAuZXhwYW5kLXdyYXBwZXJ7bWFyZ2luOjJyZW0gMCAycmVtfS5hcnRpY2xlLS1jb250ZW50IGg1Ky5leHBhbmQtd3JhcHBlciwuYXJ0aWNsZS0tY29udGVudCBoNisuZXhwYW5kLXdyYXBwZXJ7bWFyZ2luLXRvcDouNzVyZW19LmFydGljbGUtLWNvbnRlbnQgLmV4cGFuZHtwb3NpdGlvbjpyZWxhdGl2ZTtib3JkZXItdG9wOjFweCBzb2xpZCAjMzgzODQ2O3BhZGRpbmc6Ljc1cmVtIDB9LmFydGljbGUtLWNvbnRlbnQgLmV4cGFuZDpsYXN0LW9mLXR5cGUsLmFydGljbGUtLWNvbnRlbnQgLmV4cGFuZDpvbmx5LWNoaWxke2JvcmRlci1ib3R0b206MXB4IHNvbGlkICMzODM4NDZ9LmFydGljbGUtLWNvbnRlbnQgLmV4cGFuZC1sYWJlbHtkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2ZvbnQtd2VpZ2h0OmJvbGQ7bWFyZ2luLWJvdHRvbTowO3BhZGRpbmctcmlnaHQ6Mi41cmVtO2N1cnNvcjpwb2ludGVyfS5hcnRpY2xlLS1jb250ZW50IC5leHBhbmQtbGFiZWw6aG92ZXIgLmV4cGFuZC10b2dnbGV7YmFja2dyb3VuZDojMDBDOUZGfS5hcnRpY2xlLS1jb250ZW50IC5leHBhbmQtbGlua3tkaXNwbGF5OmJsb2NrO3Bvc2l0aW9uOmFic29sdXRlO3RvcDoxcmVtO3JpZ2h0Oi43NXJlbTttaW4taGVpZ2h0OjIwcHg7bWluLXdpZHRoOjIwcHg7Zm9udC1zaXplOjEuMjVyZW07Y29sb3I6I0ZBRkFGQztvcGFjaXR5Oi4zO3RyYW5zaXRpb246b3BhY2l0eSAuMnN9LmFydGljbGUtLWNvbnRlbnQgLmV4cGFuZC1saW5rOmhvdmVye2NvbG9yOiNGQUZBRkM7b3BhY2l0eToxfS5hcnRpY2xlLS1jb250ZW50IC5leHBhbmQtdG9nZ2xle3Bvc2l0aW9uOnJlbGF0aXZlO2Rpc3BsYXk6aW5saW5lLWJsb2NrO21pbi1oZWlnaHQ6MjBweDttaW4td2lkdGg6MjBweDtiYWNrZ3JvdW5kOiMyQUEzRkY7Ym9yZGVyLXJhZGl1czo1MCU7bWFyZ2luLXJpZ2h0Oi43NXJlbTt0cmFuc2l0aW9uOmJhY2tncm91bmQtY29sb3IgLjJzfS5hcnRpY2xlLS1jb250ZW50IC5leHBhbmQtdG9nZ2xlOmJlZm9yZSwuYXJ0aWNsZS0tY29udGVudCAuZXhwYW5kLXRvZ2dsZTphZnRlcntjb250ZW50OlwiXCI7ZGlzcGxheTpibG9jazt3aWR0aDoxMHB4O2hlaWdodDoycHg7cG9zaXRpb246YWJzb2x1dGU7YmFja2dyb3VuZDojMTQxNDFGO3RyYW5zaXRpb246YWxsIC40czt0b3A6OXB4O2xlZnQ6NXB4fS5hcnRpY2xlLS1jb250ZW50IC5leHBhbmQtdG9nZ2xlOmFmdGVye3RyYW5zZm9ybTpyb3RhdGUoOTBkZWcpfS5hcnRpY2xlLS1jb250ZW50IC5leHBhbmQtdG9nZ2xlLm9wZW46YmVmb3JlLC5hcnRpY2xlLS1jb250ZW50IC5leHBhbmQtdG9nZ2xlLm9wZW46YWZ0ZXJ7dHJhbnNmb3JtOnJvdGF0ZSgxODBkZWcpfS5hcnRpY2xlLS1jb250ZW50IC5leHBhbmQtY29udGVudHtwYWRkaW5nLXRvcDoxcmVtfS5hcnRpY2xlLS1jb250ZW50IC5mZWVkYmFja3tkaXNwbGF5OmZsZXg7anVzdGlmeS1jb250ZW50OnNwYWNlLWJldHdlZW47Ym9yZGVyOm5vbmU7Ym9yZGVyLXJhZGl1czoycHg7Ym94LXNoYWRvdzoxcHggMnB4IDZweCAjMDcwNzBFO2JhY2tncm91bmQ6cmdiYSgyMTIsMjE1LDIyMSwwLjAzKX0uYXJ0aWNsZS0tY29udGVudCAuZmVlZGJhY2sgaDR7Y29sb3I6I2ZmZn0uYXJ0aWNsZS0tY29udGVudCAuc3VwcG9ydHtwYWRkaW5nLXJpZ2h0OjJyZW19LmFydGljbGUtLWNvbnRlbnQgLnN1cHBvcnQgdWx7bWFyZ2luLWJvdHRvbToxLjI1cmVtO3BhZGRpbmc6MDtsaXN0LXN0eWxlOm5vbmV9LmFydGljbGUtLWNvbnRlbnQgLnN1cHBvcnQgdWwgYXtjb2xvcjojZmZmO2ZvbnQtd2VpZ2h0OjUwMDtwb3NpdGlvbjpyZWxhdGl2ZX0uYXJ0aWNsZS0tY29udGVudCAuc3VwcG9ydCB1bCBhOjphZnRlcntjb250ZW50OlwiXFxlOTBhXCI7Zm9udC1mYW1pbHk6J2ljb21vb24tdjQnO2ZvbnQtd2VpZ2h0OmJvbGQ7Zm9udC1zaXplOjEuM3JlbTtkaXNwbGF5OmlubGluZS1ibG9jaztwb3NpdGlvbjphYnNvbHV0ZTtiYWNrZ3JvdW5kOmxpbmVhci1ncmFkaWVudCg0NWRlZywgI2QzMDk3MSwjOWIyYWZmKTtiYWNrZ3JvdW5kLWNsaXA6dGV4dDstd2Via2l0LXRleHQtZmlsbC1jb2xvcjp0cmFuc3BhcmVudDtyaWdodDowO3RyYW5zZm9ybTp0cmFuc2xhdGVYKDAuMjVyZW0pO29wYWNpdHk6MDt0cmFuc2l0aW9uOnRyYW5zZm9ybSAuMnMsIG9wYWNpdHkgLjJzfS5hcnRpY2xlLS1jb250ZW50IC5zdXBwb3J0IHVsIGE6aG92ZXI6OmFmdGVye3RyYW5zZm9ybTp0cmFuc2xhdGVYKDEuNXJlbSk7b3BhY2l0eToxfS5hcnRpY2xlLS1jb250ZW50IC5zdXBwb3J0IHVsIGEuZGlzY29yZDpiZWZvcmV7Y29udGVudDp1cmwoXCIvc3Zncy9kaXNjb3JkLnN2Z1wiKTtkaXNwbGF5OmlubGluZS1ibG9jaztoZWlnaHQ6MS4xcmVtO3dpZHRoOjEuMjVyZW07dmVydGljYWwtYWxpZ246dG9wO21hcmdpbjoycHggLjY1cmVtIDAgMH0uYXJ0aWNsZS0tY29udGVudCAuc3VwcG9ydCB1bCBhLmNvbW11bml0eTpiZWZvcmV7Y29udGVudDpcIlxcZTkwMFwiO2NvbG9yOiNmZmY7bWFyZ2luLXJpZ2h0Oi43NXJlbTtmb250LXNpemU6MS4ycmVtO2ZvbnQtZmFtaWx5OidpY29tb29uLXYyJzt2ZXJ0aWNhbC1hbGlnbjptaWRkbGV9LmFydGljbGUtLWNvbnRlbnQgLnN1cHBvcnQgdWwgYS5zbGFjazpiZWZvcmV7Y29udGVudDp1cmwoXCIvc3Zncy9zbGFjay5zdmdcIik7ZGlzcGxheTppbmxpbmUtYmxvY2s7aGVpZ2h0OjEuMXJlbTt3aWR0aDoxLjFyZW07dmVydGljYWwtYWxpZ246dGV4dC10b3A7bWFyZ2luLXJpZ2h0Oi44cmVtfS5hcnRpY2xlLS1jb250ZW50IC5zdXBwb3J0IHVsIGEucmVkZGl0OmJlZm9yZXtjb250ZW50OnVybChcIi9zdmdzL3JlZGRpdC5zdmdcIik7ZGlzcGxheTppbmxpbmUtYmxvY2s7aGVpZ2h0OjEuMXJlbTt3aWR0aDoxLjJyZW07dmVydGljYWwtYWxpZ246dG9wO21hcmdpbjoycHggLjc1cmVtIDAgMH0uYXJ0aWNsZS0tY29udGVudCAuYWN0aW9uc3ttaW4td2lkdGg6MjMwcHg7cGFkZGluZy1ib3R0b206MS43NXJlbX0uYXJ0aWNsZS0tY29udGVudCAuYWN0aW9ucyBhe2Rpc3BsYXk6YmxvY2s7cGFkZGluZy1sZWZ0OjFyZW07Zm9udC1zaXplOi45NXJlbX0uYXJ0aWNsZS0tY29udGVudCAuYWN0aW9ucyBhLmJ0bntjb2xvcjojRDREN0REICFpbXBvcnRhbnQ7YmFja2dyb3VuZDojMzMzMzQ2ICFpbXBvcnRhbnR9LmFydGljbGUtLWNvbnRlbnQgLmFjdGlvbnMgYS5idG46YWZ0ZXJ7YmFja2dyb3VuZDpsaW5lYXItZ3JhZGllbnQoNDVkZWcsICMwNjZGQzUsIzAwQTNGRil9LmFydGljbGUtLWNvbnRlbnQgLmFjdGlvbnMgYS5idG46aG92ZXJ7Y29sb3I6I2ZmZiAhaW1wb3J0YW50fS5hcnRpY2xlLS1jb250ZW50IC5hY3Rpb25zIGE6YmVmb3Jle2Rpc3BsYXk6aW5saW5lLWJsb2NrO21hcmdpbi1yaWdodDouN3JlbTtmb250LWZhbWlseTonaWNvbW9vbi12Mid9LmFydGljbGUtLWNvbnRlbnQgLmFjdGlvbnMgYS5lZGl0OmJlZm9yZXtjb250ZW50OlwiXFxlOTJmXCI7Zm9udC1zaXplOi44NXJlbX0uYXJ0aWNsZS0tY29udGVudCAuYWN0aW9ucyBhLmlzc3VlOmJlZm9yZXtjb250ZW50OlwiXFxlOTM0XCI7Zm9udC1zaXplOjFyZW19LmFydGljbGUtLWNvbnRlbnQgLmhlbHBmdWx7cG9zaXRpb246cmVsYXRpdmU7ZGlzcGxheTpmbGV4O2ZsZXgtZGlyZWN0aW9uOnJvdztqdXN0aWZ5LWNvbnRlbnQ6c3BhY2UtYmV0d2Vlbn0uYXJ0aWNsZS0tY29udGVudCAuaGVscGZ1bCBwe21hcmdpbi1ib3R0b206MH0uYXJ0aWNsZS0tY29udGVudCAuaGVscGZ1bCBsYWJlbC5yYWRpby1idG5ze3Bvc2l0aW9uOnJlbGF0aXZlO2Rpc3BsYXk6aW5saW5lLWJsb2NrO21pbi13aWR0aDo0cmVtO3BhZGRpbmc6LjVyZW0gMXJlbTtmb250LXNpemU6Ljk1cmVtO2ZvbnQtd2VpZ2h0OjUwMDt0ZXh0LWFsaWduOmNlbnRlcjtjb2xvcjojRkFGQUZDO2JvcmRlci1yYWRpdXM6M3B4O2JhY2tncm91bmQ6cmdiYSgyMTIsMjE1LDIyMSwwLjEpO2N1cnNvcjpwb2ludGVyO3otaW5kZXg6MX0uYXJ0aWNsZS0tY29udGVudCAuaGVscGZ1bCBsYWJlbC5yYWRpby1idG5zOmFmdGVye2NvbnRlbnQ6XCJcIjtkaXNwbGF5OmJsb2NrO3Bvc2l0aW9uOmFic29sdXRlO21hcmdpbjowO3BhZGRpbmc6MDt0b3A6MDtsZWZ0OjA7d2lkdGg6MTAwJTtoZWlnaHQ6MTAwJTtib3JkZXItcmFkaXVzOjNweDttaW4td2lkdGg6NHJlbTt6LWluZGV4Oi0xO29wYWNpdHk6MDt0cmFuc2l0aW9uOm9wYWNpdHkgLjJzLCBjb2xvciAuMnN9LmFydGljbGUtLWNvbnRlbnQgLmhlbHBmdWwgbGFiZWwucmFkaW8tYnRucyNoZWxwZnVsOmFmdGVye2JhY2tncm91bmQ6bGluZWFyLWdyYWRpZW50KDQ1ZGVnLCAjMDA5RjVGLCMzNEJCNTUpfS5hcnRpY2xlLS1jb250ZW50IC5oZWxwZnVsIGxhYmVsLnJhZGlvLWJ0bnMjbm90LWhlbHBmdWw6YWZ0ZXJ7YmFja2dyb3VuZDpsaW5lYXItZ3JhZGllbnQoNDVkZWcsICNGOTVGNTMsI0ZGODU2NCl9LmFydGljbGUtLWNvbnRlbnQgLmhlbHBmdWwgbGFiZWwucmFkaW8tYnRuczpob3Zlcntjb2xvcjojZmZmfS5hcnRpY2xlLS1jb250ZW50IC5oZWxwZnVsIGxhYmVsLnJhZGlvLWJ0bnM6aG92ZXI6YWZ0ZXJ7b3BhY2l0eToxfS5hcnRpY2xlLS1jb250ZW50IC5oZWxwZnVsIGlucHV0W3R5cGU9J3JhZGlvJ117ZGlzcGxheTpub25lfS5hcnRpY2xlLS1jb250ZW50IC5oZWxwZnVsIC5sb2FkZXItd3JhcHBlciwuYXJ0aWNsZS0tY29udGVudCAuaGVscGZ1bCAjdGhhbmsteW91e3Bvc2l0aW9uOmFic29sdXRlO2Rpc3BsYXk6bm9uZTt0b3A6MDtsZWZ0OjA7d2lkdGg6MTAwJTtoZWlnaHQ6MTAwJTtiYWNrZ3JvdW5kLWNvbG9yOiMxNDE0MUZ9LmFydGljbGUtLWNvbnRlbnQgLmhlbHBmdWwgLmxvYWRlci13cmFwcGVye3otaW5kZXg6NX0uYXJ0aWNsZS0tY29udGVudCAuaGVscGZ1bCAubG9hZGVyLXdyYXBwZXIgLmxvYWRlcnttYXJnaW46MCBhdXRvfS5hcnRpY2xlLS1jb250ZW50IC5oZWxwZnVsICN0aGFuay15b3V7ei1pbmRleDoxMH0uYXJ0aWNsZS0tY29udGVudCAuaGVscGZ1bCAjdGhhbmsteW91IHB7dGV4dC1hbGlnbjpjZW50ZXJ9QG1lZGlhIChtYXgtd2lkdGg6IDgwMHB4KXsuYXJ0aWNsZS0tY29udGVudCAuZmVlZGJhY2t7ZmxleC1kaXJlY3Rpb246Y29sdW1ufX1AbWVkaWEgKG1heC13aWR0aDogNjAwcHgpey5hcnRpY2xlLS1jb250ZW50IC5hY3Rpb25ze3BhZGRpbmctYm90dG9tOjFyZW19fS5hcnRpY2xlLS1jb250ZW50IC5mbGV4LXdyYXBwZXJ7ZGlzcGxheTpmbGV4O2ZsZXgtd3JhcDp3cmFwO21hcmdpbjoxLjVyZW0gMH0uYXJ0aWNsZS0tY29udGVudCAuZmxleC1jb250YWluZXJ7bWFyZ2luLXJpZ2h0OjEuNXJlbX0uYXJ0aWNsZS0tY29udGVudCAuZmxleC1jb250YWluZXIuaGFsZnt3aWR0aDpjYWxjKDUwJSAtIDEuNXJlbSl9LmFydGljbGUtLWNvbnRlbnQgLmZsZXgtY29udGFpbmVyLnRoaXJke3dpZHRoOmNhbGMoMzMuMzMlIC0gMS41cmVtKX0uYXJ0aWNsZS0tY29udGVudCAuZmxleC1jb250YWluZXIucXVhcnRlcnt3aWR0aDpjYWxjKDI1JSAtIDEuNXJlbSl9LmFydGljbGUtLWNvbnRlbnQgLmZsZXgtY29udGFpbmVyLnR3by10aGlyZHN7d2lkdGg6Y2FsYyg2NiUgLSAycmVtKX0uYXJ0aWNsZS0tY29udGVudCAuZmxleC1jb250YWluZXIuaGFsZiB0YWJsZTpub3QoOmxhc3QtY2hpbGQpLC5hcnRpY2xlLS1jb250ZW50IC5mbGV4LWNvbnRhaW5lci50aGlyZCB0YWJsZTpub3QoOmxhc3QtY2hpbGQpLC5hcnRpY2xlLS1jb250ZW50IC5mbGV4LWNvbnRhaW5lci5xdWFydGVyIHRhYmxlOm5vdCg6bGFzdC1jaGlsZCl7bWFyZ2luLXJpZ2h0OjEuNXJlbX0uYXJ0aWNsZS0tY29udGVudCAuZmxleC1jb250YWluZXIgaW1ne21hcmdpbi1ib3R0b206MH0uYXJ0aWNsZS0tY29udGVudCAuZmxleC1jb250YWluZXIgdGFibGV7ZGlzcGxheTp0YWJsZX0uYXJ0aWNsZS0tY29udGVudCAuZmxleC1jb250YWluZXIgcDpsYXN0LWNoaWxke21hcmdpbi1ib3R0b206MC41cmVtfS5hcnRpY2xlLS1jb250ZW50IC5mbGV4LWNvbnRhaW5lci5vcGVyYXRvci1leGFtcGxlIC5oaWdobGlnaHQ6Zmlyc3QtY2hpbGQgLmNvZGVibG9jayBwcmV7bWFyZ2luLXRvcDowO21hcmdpbi1ib3R0b206MS41cmVtfS5hcnRpY2xlLS1jb250ZW50IC5mbGV4LWNvbnRhaW5lci5vcGVyYXRvci1leGFtcGxlIHRhYmxlOmZpcnN0LWNoaWxke21hcmdpbi10b3A6MDttYXJnaW4tYm90dG9tOjEuNXJlbX0uYXJ0aWNsZS0tY29udGVudCAuZmxleC1jb250YWluZXIub3BlcmF0b3ItZXhhbXBsZSB0YWJsZTpmaXJzdC1jaGlsZCB0aHtmb250LXNpemU6MS4wNXJlbX0uYXJ0aWNsZS0tY29udGVudCAuZmxleC1jb250YWluZXIub3BlcmF0b3ItZXhhbXBsZSB0YWJsZTpmaXJzdC1jaGlsZCB0aCwuYXJ0aWNsZS0tY29udGVudCAuZmxleC1jb250YWluZXIub3BlcmF0b3ItZXhhbXBsZSB0YWJsZTpmaXJzdC1jaGlsZCB0ZHtwYWRkaW5nOi42NXJlbSAxLjE1cmVtfUBtZWRpYSAobWF4LXdpZHRoOiA2MDBweCl7LmFydGljbGUtLWNvbnRlbnQgLmZsZXgtY29udGFpbmVyLmhhbGYsLmFydGljbGUtLWNvbnRlbnQgLmZsZXgtY29udGFpbmVyLnRoaXJkLC5hcnRpY2xlLS1jb250ZW50IC5mbGV4LWNvbnRhaW5lci50d28tdGhpcmRze3dpZHRoOmNhbGMoMTAwJSAtIDFyZW0pfS5hcnRpY2xlLS1jb250ZW50IC5mbGV4LWNvbnRhaW5lci5xdWFydGVye3dpZHRoOmNhbGMoNTAlIC0gMXJlbSl9LmFydGljbGUtLWNvbnRlbnQgLmZsZXgtY29udGFpbmVyIHA6bGFzdC1jaGlsZHttYXJnaW4tYm90dG9tOjEuNXJlbX19LmFydGljbGUtLWNvbnRlbnQgaDI6YWZ0ZXIsLmFydGljbGUtLWNvbnRlbnQgaDM6YWZ0ZXIsLmFydGljbGUtLWNvbnRlbnQgaDQ6YWZ0ZXJ7Y29udGVudDphdHRyKGRhdGEtdHlwZSk7ZGlzcGxheTppbmxpbmUtYmxvY2s7bWFyZ2luLWxlZnQ6LjVyZW07Zm9udC1zdHlsZTppdGFsaWM7Zm9udC1zaXplOi42MmVtO2ZvbnQtd2VpZ2h0OjIwMDtvcGFjaXR5Oi41fS5hcnRpY2xlLS1jb250ZW50IC5mdW5jdGlvbi1saXN0IGEuZXhwZXJpbWVudGFsOjphZnRlcntjb250ZW50OidcXGU5MDMnO2ZvbnQtZmFtaWx5OidpY29tb29uLXY0JzttYXJnaW4tbGVmdDouNDVyZW07Y29sb3I6cmdiYSgyMTIsMjE1LDIyMSwwLjM1KTtmb250LXN0eWxlOm5vcm1hbDtkaXNwbGF5OmlubGluZS1ibG9jazt2ZXJ0aWNhbC1hbGlnbjptaWRkbGV9LmFydGljbGUtLWNvbnRlbnQgI2ZsdXgtZ3JvdXAta2V5cy1kZW1vIHRhYmxle21hcmdpbi1ib3R0b206MS4yNXJlbX0uYXJ0aWNsZS0tY29udGVudCAjZmx1eC1ncm91cC1rZXlzLWRlbW8gdGFibGUgdGQ6Zmlyc3QtY2hpbGQsLmFydGljbGUtLWNvbnRlbnQgI2ZsdXgtZ3JvdXAta2V5cy1kZW1vIHRhYmxlIHRoOmZpcnN0LWNoaWxke3RleHQtYWxpZ246bGVmdH0uYXJ0aWNsZS0tY29udGVudCAjZmx1eC1ncm91cC1rZXlzLWRlbW8gdGFibGUgdGQ6bGFzdC1jaGlsZCwuYXJ0aWNsZS0tY29udGVudCAjZmx1eC1ncm91cC1rZXlzLWRlbW8gdGFibGUgdGg6bGFzdC1jaGlsZHt0ZXh0LWFsaWduOnJpZ2h0fS5hcnRpY2xlLS1jb250ZW50ICNmbHV4LWdyb3VwLWtleXMtZGVtbyB0YWJsZSB0ZC5ncm91cGVkLWJ5LC5hcnRpY2xlLS1jb250ZW50ICNmbHV4LWdyb3VwLWtleXMtZGVtbyB0YWJsZSB0aC5ncm91cGVkLWJ5e2ZvbnQtd2VpZ2h0OmJvbGR9LmFydGljbGUtLWNvbnRlbnQgI2ZsdXgtZ3JvdXAta2V5cy1kZW1vIHRhYmxlIHRoLmdyb3VwZWQtYnl7Y29sb3I6I0Q2RjYyMn0uYXJ0aWNsZS0tY29udGVudCAjZmx1eC1ncm91cC1rZXlzLWRlbW8gdGFibGUgdGQuZ3JvdXBlZC1ieXtjb2xvcjojRDZGNjIyfS5hcnRpY2xlLS1jb250ZW50ICNmbHV4LWdyb3VwLWtleXMtZGVtbyAjZ3JvdXAtYnktY29sdW1ucyAuY29sdW1uLWxpc3R7cGFkZGluZzowO21hcmdpbjouNXJlbSAwIDA7bGlzdC1zdHlsZTpub25lfS5hcnRpY2xlLS1jb250ZW50ICNmbHV4LWdyb3VwLWtleXMtZGVtbyAjZ3JvdXAtYnktY29sdW1ucyAuY29sdW1uLWxpc3QgbGl7bWFyZ2luOjA7bGluZS1oZWlnaHQ6MS4zNXJlbX0uYXJ0aWNsZS0tY29udGVudCAjZmx1eC1ncm91cC1rZXlzLWRlbW8gI2dyb3VwLWJ5LWNvbHVtbnMgbGFiZWx7ZGlzcGxheTppbmxpbmUtYmxvY2s7cGFkZGluZzouMjVyZW0gMDtjb2xvcjojRDREN0REO3Bvc2l0aW9uOnJlbGF0aXZlfS5hcnRpY2xlLS1jb250ZW50ICNmbHV4LWdyb3VwLWtleXMtZGVtbyAjZ3JvdXAtYnktY29sdW1ucyBsYWJlbDphZnRlcntjb250ZW50OmF0dHIoZGF0YS1jb3VudCk7bWFyZ2luLWxlZnQ6MDtmb250LXNpemU6Ljg1cmVtO29wYWNpdHk6LjV9LmFydGljbGUtLWNvbnRlbnQgI2ZsdXgtZ3JvdXAta2V5cy1kZW1vICNncm91cC1ieS1jb2x1bW5zIC5jaGVja2JveHtkaXNwbGF5OmlubGluZS1ibG9jaztwb3NpdGlvbjpyZWxhdGl2ZTtoZWlnaHQ6MS4xNWVtO3dpZHRoOjEuMTVlbTtiYWNrZ3JvdW5kOnJnYmEoMjEyLDIxNSwyMjEsMC4wNSk7bWFyZ2luLXJpZ2h0Oi4zcmVtO3ZlcnRpY2FsLWFsaWduOnRleHQtdG9wO2JvcmRlci1yYWRpdXM6MnB4O2N1cnNvcjpwb2ludGVyO2JvcmRlcjoxLjVweCBzb2xpZCByZ2JhKDIxMiwyMTUsMjIxLDAuMik7dXNlci1zZWxlY3Q6bm9uZX0uYXJ0aWNsZS0tY29udGVudCAjZmx1eC1ncm91cC1rZXlzLWRlbW8gI2dyb3VwLWJ5LWNvbHVtbnMgaW5wdXRbdHlwZT0nY2hlY2tib3gnXXttYXJnaW4tcmlnaHQ6LTEuMXJlbTtwYWRkaW5nOjA7dmVydGljYWwtYWxpZ246dG9wO29wYWNpdHk6MDtjdXJzb3I6cG9pbnRlcn0uYXJ0aWNsZS0tY29udGVudCAjZmx1eC1ncm91cC1rZXlzLWRlbW8gI2dyb3VwLWJ5LWNvbHVtbnMgaW5wdXRbdHlwZT0nY2hlY2tib3gnXSsuY2hlY2tib3g6YWZ0ZXJ7Y29udGVudDpcIlwiO2Rpc3BsYXk6YmxvY2s7cG9zaXRpb246YWJzb2x1dGU7aGVpZ2h0Oi41cmVtO3dpZHRoOi41cmVtO2JvcmRlci1yYWRpdXM6NTAlO2JhY2tncm91bmQ6IzAwQTNGRjt0b3A6NTAlO2xlZnQ6NTAlO29wYWNpdHk6MDt0cmFuc2Zvcm06c2NhbGUoMikgdHJhbnNsYXRlKC0yMCUsIC0yMCUpO3RyYW5zaXRpb246YWxsIC4yc30uYXJ0aWNsZS0tY29udGVudCAjZmx1eC1ncm91cC1rZXlzLWRlbW8gI2dyb3VwLWJ5LWNvbHVtbnMgaW5wdXRbdHlwZT0nY2hlY2tib3gnXTpjaGVja2VkKy5jaGVja2JveDphZnRlcntvcGFjaXR5OjE7dHJhbnNmb3JtOnNjYWxlKDEpIHRyYW5zbGF0ZSgtNTAlLCAtNTAlKX0uYXJ0aWNsZS0tY29udGVudCAjZmx1eC1ncm91cC1rZXlzLWRlbW8gcHJlI2dyb3VwLWJ5LWV4YW1wbGV7bGluZS1oZWlnaHQ6MS40cmVtO2ZvbnQtc2l6ZTouOTVyZW19LmFydGljbGUtLWNvbnRlbnQgI2ZsdXgtZ3JvdXAta2V5cy1kZW1vIHByZSNncm91cC1ieS1leGFtcGxlIC5ueHtjb2xvcjojMDBBM0ZGfS5hcnRpY2xlLS1jb250ZW50ICNmbHV4LWdyb3VwLWtleXMtZGVtbyBwcmUjZ3JvdXAtYnktZXhhbXBsZSAuczJ7Y29sb3I6IzAwOUY1Rn0uYXJ0aWNsZS0tY29udGVudCAuZmx1eC13YXRlci1kaWFncmFte2JhY2tncm91bmQ6dXJsKFwiL2ltZy9mbHV4LzAteC13YXRlci1wcm9jZXNzLWRhcmsuc3ZnXCIpO21hcmdpbjoycmVtIDAgLjVyZW07d2lkdGg6MTAwJTtoZWlnaHQ6MDtwYWRkaW5nLXRvcDo2My43MSU7YmFja2dyb3VuZC1yZXBlYXQ6bm8tcmVwZWF0fS5hcnRpY2xlLS1jb250ZW50ICNmbHV4LWRhdGEtbW9kZWx7bWF4LXdpZHRoOjUwMHB4O21hcmdpbjozcmVtIDB9LmFydGljbGUtLWNvbnRlbnQgI2ZsdXgtZGF0YS1tb2RlbCAuc3RyZWFtLW9mLXRhYmxlc3twb3NpdGlvbjpyZWxhdGl2ZTtib3JkZXI6MXB4IGRhc2hlZCAjRDREN0REO3BhZGRpbmc6MXJlbTtib3JkZXItcmFkaXVzOjRweH0uYXJ0aWNsZS0tY29udGVudCAjZmx1eC1kYXRhLW1vZGVsIC5zdHJlYW0tb2YtdGFibGVzOmJlZm9yZXtjb250ZW50OlwiU3RyZWFtIG9mIHRhYmxlc1wiO2ZvbnQtd2VpZ2h0OjUwMDtjb2xvcjojRkFGQUZDO2JhY2tncm91bmQ6IzE0MTQxRjtwb3NpdGlvbjphYnNvbHV0ZTtwYWRkaW5nOjAgMXJlbTt0b3A6LS42NXJlbX0uYXJ0aWNsZS0tY29udGVudCAjZmx1eC1kYXRhLW1vZGVsIHRhYmxle2Rpc3BsYXk6dGFibGU7d2lkdGg6MTAwJTtvdmVyZmxvdzp2aXNpYmxlO21hcmdpbjowfS5hcnRpY2xlLS1jb250ZW50ICNmbHV4LWRhdGEtbW9kZWwgdGFibGUgdGgsLmFydGljbGUtLWNvbnRlbnQgI2ZsdXgtZGF0YS1tb2RlbCB0YWJsZSB0ZHtib3JkZXItcmlnaHQ6MXB4IGRhc2hlZCByZ2JhKDIxMiwyMTUsMjIxLDAuMjUpfS5hcnRpY2xlLS1jb250ZW50ICNmbHV4LWRhdGEtbW9kZWwgdGFibGUgdGg6bGFzdC1jaGlsZCwuYXJ0aWNsZS0tY29udGVudCAjZmx1eC1kYXRhLW1vZGVsIHRhYmxlIHRkOmxhc3QtY2hpbGR7Ym9yZGVyOm5vbmV9LmFydGljbGUtLWNvbnRlbnQgI2ZsdXgtZGF0YS1tb2RlbCB0YWJsZSB0aHtib3JkZXItY29sb3I6cmdiYSgyNTUsMjU1LDI1NSwwLjI1KX0uYXJ0aWNsZS0tY29udGVudCAjZmx1eC1kYXRhLW1vZGVsIC50YWJsZS1ncm91cHtwYWRkaW5nOjFyZW19LmFydGljbGUtLWNvbnRlbnQgI2ZsdXgtZGF0YS1tb2RlbCAudGFibGUtZ3JvdXA6Zmlyc3QtY2hpbGR7Ym9yZGVyOjFweCBkYXNoZWQgI0Q0RDdERDtib3JkZXItcmFkaXVzOjJweDtwb3NpdGlvbjpyZWxhdGl2ZTttYXJnaW4tYm90dG9tOi4yNXJlbX0uYXJ0aWNsZS0tY29udGVudCAjZmx1eC1kYXRhLW1vZGVsIC50YWJsZS1ncm91cDpmaXJzdC1jaGlsZDpiZWZvcmV7Y29udGVudDpcIlRhYmxlXCI7Zm9udC13ZWlnaHQ6NTAwO2NvbG9yOiNGQUZBRkM7YmFja2dyb3VuZDojMTQxNDFGO3Bvc2l0aW9uOmFic29sdXRlO3BhZGRpbmc6MCAuNzVyZW07dG9wOi0uNjVyZW07cmlnaHQ6MXJlbX0uYXJ0aWNsZS0tY29udGVudCAjZmx1eC1kYXRhLW1vZGVsIC50YWJsZS1ncm91cDpudGgtY2hpbGQoMikgdGg6Zmlyc3QtY2hpbGR7Ym9yZGVyOm5vbmV9LmFydGljbGUtLWNvbnRlbnQgI2ZsdXgtZGF0YS1tb2RlbCAudGFibGUtZ3JvdXA6bnRoLWNoaWxkKDIpIHRoOm50aC1jaGlsZCgyKXtib3JkZXItdG9wOjFweCBkYXNoZWQgI0Q0RDdERDtib3JkZXItbGVmdDoxcHggZGFzaGVkIHJnYmEoMjU1LDI1NSwyNTUsMC44NSk7Ym9yZGVyLXJpZ2h0OjFweCBkYXNoZWQgcmdiYSgyNTUsMjU1LDI1NSwwLjg1KTtwb3NpdGlvbjpyZWxhdGl2ZX0uYXJ0aWNsZS0tY29udGVudCAjZmx1eC1kYXRhLW1vZGVsIC50YWJsZS1ncm91cDpudGgtY2hpbGQoMikgdGg6bnRoLWNoaWxkKDIpOmJlZm9yZXtjb250ZW50OlwiQ29sdW1uXCI7Zm9udC13ZWlnaHQ6NTAwO2NvbG9yOiNmZmYsMC44NTtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6LjJyZW07bGVmdDouNXJlbX0uYXJ0aWNsZS0tY29udGVudCAjZmx1eC1kYXRhLW1vZGVsIC50YWJsZS1ncm91cDpudGgtY2hpbGQoMikgdGQ6Zmlyc3QtY2hpbGR7Ym9yZGVyOm5vbmV9LmFydGljbGUtLWNvbnRlbnQgI2ZsdXgtZGF0YS1tb2RlbCAudGFibGUtZ3JvdXA6bnRoLWNoaWxkKDIpIHRkOm50aC1jaGlsZCgyKXtib3JkZXItbGVmdDoxcHggZGFzaGVkICNENEQ3REQ7Ym9yZGVyLXJpZ2h0OjFweCBkYXNoZWQgI0Q0RDdERH0uYXJ0aWNsZS0tY29udGVudCAjZmx1eC1kYXRhLW1vZGVsIC50YWJsZS1ncm91cDpudGgtY2hpbGQoMikgdHI6bGFzdC1jaGlsZCB0ZDpudGgtY2hpbGQoMil7Ym9yZGVyLWJvdHRvbToxcHggZGFzaGVkICNENEQ3RER9LmFydGljbGUtLWNvbnRlbnQgI2ZsdXgtZGF0YS1tb2RlbCAudGFibGUtZ3JvdXA6bnRoLWNoaWxkKDMpIHRyOm50aC1jaGlsZCgyKXtib3JkZXItdG9wOjFweCBkYXNoZWQgI0Q0RDdERDtib3JkZXItYm90dG9tOjFweCBkYXNoZWQgI0Q0RDdERH0uYXJ0aWNsZS0tY29udGVudCAjZmx1eC1kYXRhLW1vZGVsIC50YWJsZS1ncm91cDpudGgtY2hpbGQoMykgdHI6bnRoLWNoaWxkKDIpIHRkOmZpcnN0LWNoaWxke2JvcmRlci1sZWZ0OjFweCBkYXNoZWQgI0Q0RDdERDtwb3NpdGlvbjpyZWxhdGl2ZX0uYXJ0aWNsZS0tY29udGVudCAjZmx1eC1kYXRhLW1vZGVsIC50YWJsZS1ncm91cDpudGgtY2hpbGQoMykgdHI6bnRoLWNoaWxkKDIpIHRkOmZpcnN0LWNoaWxkOmJlZm9yZXtjb250ZW50OlwiUm93XCI7Zm9udC13ZWlnaHQ6NTAwO2NvbG9yOiNGQUZBRkM7cG9zaXRpb246YWJzb2x1dGU7dG9wOi4xNXJlbTtsZWZ0Oi41cmVtfS5hcnRpY2xlLS1jb250ZW50ICNmbHV4LWRhdGEtbW9kZWwgLnRhYmxlLWdyb3VwOm50aC1jaGlsZCgzKSB0cjpudGgtY2hpbGQoMikgdGQ6bGFzdC1jaGlsZHtib3JkZXItcmlnaHQ6MXB4IGRhc2hlZCAjRDREN0REfS5hcnRpY2xlLS1jb250ZW50ICNmbHV4LXRhYmxlLW9wc3tkaXNwbGF5OmZsZXg7anVzdGlmeS1jb250ZW50OnNwYWNlLWJldHdlZW47YWxpZ24taXRlbXM6Y2VudGVyO21heC13aWR0aDo2NTBweDttYXJnaW4tYm90dG9tOjJyZW19LmFydGljbGUtLWNvbnRlbnQgI2ZsdXgtdGFibGUtb3BzIC5zdHJlYW0tb2YtdGFibGVze2ZsZXgtZ3JvdzoxfS5hcnRpY2xlLS1jb250ZW50ICNmbHV4LXRhYmxlLW9wcyAuc3RyZWFtLW9mLXRhYmxlczpmaXJzdC1jaGlsZHtwYWRkaW5nLWxlZnQ6MH0uYXJ0aWNsZS0tY29udGVudCAjZmx1eC10YWJsZS1vcHMgLnN0cmVhbS1vZi10YWJsZXM6bGFzdC1jaGlsZHtwYWRkaW5nLXJpZ2h0OjB9LmFydGljbGUtLWNvbnRlbnQgI2ZsdXgtdGFibGUtb3BzIC5vcGVyYXRpb257ZGlzcGxheTpmbGV4O2ZsZXgtZ3JvdzoxO2FsaWduLWl0ZW1zOmNlbnRlcn0uYXJ0aWNsZS0tY29udGVudCAjZmx1eC10YWJsZS1vcHMgLm9wZXJhdGlvbiAuYXJyb3d7cG9zaXRpb246cmVsYXRpdmU7YmFja2dyb3VuZDojRDREN0REO2ZsZXgtZ3JvdzoxO2hlaWdodDoxcHg7bWFyZ2luOjAgLjc1cmVtO29wYWNpdHk6LjM1fS5hcnRpY2xlLS1jb250ZW50ICNmbHV4LXRhYmxlLW9wcyAub3BlcmF0aW9uIC5hcnJvdzphZnRlcntjb250ZW50OlwiXCI7cG9zaXRpb246YWJzb2x1dGU7d2lkdGg6MDtoZWlnaHQ6MDtib3JkZXItc3R5bGU6c29saWQ7Ym9yZGVyLXdpZHRoOjdweCAwIDdweCA4cHg7Ym9yZGVyLWNvbG9yOnRyYW5zcGFyZW50IHRyYW5zcGFyZW50IHRyYW5zcGFyZW50ICNENEQ3REQ7cmlnaHQ6LTFweDt0b3A6LTdweH0uYXJ0aWNsZS0tY29udGVudCAjZmx1eC10YWJsZS1vcHMgLm9wZXJhdGlvbiBwe21hcmdpbjowO3RleHQtYWxpZ246Y2VudGVyfS5hcnRpY2xlLS1jb250ZW50ICNmbHV4LXRhYmxlLW9wcyB0YWJsZXtkaXNwbGF5OnRhYmxlO3dpZHRoOjEwMCU7b3ZlcmZsb3c6dmlzaWJsZTttYXJnaW46MXJlbSAwfS5hcnRpY2xlLS1jb250ZW50ICNmbHV4LXRhYmxlLW9wcyB0YWJsZSB0aCwuYXJ0aWNsZS0tY29udGVudCAjZmx1eC10YWJsZS1vcHMgdGFibGUgdGR7Ym9yZGVyLXJpZ2h0OjFweCBkYXNoZWQgcmdiYSgyMTIsMjE1LDIyMSwwLjI1KX0uYXJ0aWNsZS0tY29udGVudCAjZmx1eC10YWJsZS1vcHMgdGFibGUgdGg6bGFzdC1jaGlsZCwuYXJ0aWNsZS0tY29udGVudCAjZmx1eC10YWJsZS1vcHMgdGFibGUgdGQ6bGFzdC1jaGlsZHtib3JkZXI6bm9uZX0uYXJ0aWNsZS0tY29udGVudCAjZmx1eC10YWJsZS1vcHMgdGFibGUgdGh7Ym9yZGVyLWNvbG9yOnJnYmEoMjU1LDI1NSwyNTUsMC4yNSl9QG1lZGlhIChtYXgtd2lkdGg6IDYwMHB4KXsuYXJ0aWNsZS0tY29udGVudCAjZmx1eC10YWJsZS1vcHMgdGg6bGFzdC1jaGlsZCwuYXJ0aWNsZS0tY29udGVudCAjZmx1eC10YWJsZS1vcHMgdGQ6bGFzdC1jaGlsZHtkaXNwbGF5Om5vbmV9LmFydGljbGUtLWNvbnRlbnQgI2ZsdXgtdGFibGUtb3BzIHRoOm50aC1jaGlsZCgyKSwuYXJ0aWNsZS0tY29udGVudCAjZmx1eC10YWJsZS1vcHMgdGQ6bnRoLWNoaWxkKDIpe2JvcmRlcjpub25lfS5hcnRpY2xlLS1jb250ZW50ICNmbHV4LXRhYmxlLW9wcyB0aDpudGgtY2hpbGQoMil7Ym9yZGVyLXJhZGl1czowIDJweCAwIDB9LmFydGljbGUtLWNvbnRlbnQgI2ZsdXgtdGFibGUtb3BzIHRyOmxhc3QtY2hpbGQgdGQ6bnRoLWNoaWxkKDIpe2JvcmRlci1yYWRpdXM6MCAwIDJweCAwfX0uYXJ0aWNsZS0tY29udGVudCAuZnMtZGlhZ3JhbXtkaXNwbGF5OmlubGluZS1ibG9jazttYXJnaW46MXJlbSAwIDJyZW07cGFkZGluZzoxLjVyZW0gMi41cmVtIDEuNXJlbSAxLjVyZW07Zm9udC1mYW1pbHk6XCJJQk0gUGxleCBNb25vXCIsbW9ub3NwYWNlO2JvcmRlci1yYWRpdXM6MnB4O2JveC1zaGFkb3c6MXB4IDNweCAxMHB4ICMwNzA3MEV9LmFydGljbGUtLWNvbnRlbnQgLmZzLWRpYWdyYW0+dWx7cGFkZGluZzowO21hcmdpbjowfS5hcnRpY2xlLS1jb250ZW50IC5mcy1kaWFncmFtPnVsIGxpe2xpbmUtaGVpZ2h0OjJyZW07Y29sb3I6I0I3QjhGRn0uYXJ0aWNsZS0tY29udGVudCAuZnMtZGlhZ3JhbT51bCB1bHtwYWRkaW5nLWxlZnQ6MnJlbTttYXJnaW46MH0uYXJ0aWNsZS0tY29udGVudCAuZnMtZGlhZ3JhbT51bCB1bCBsaXtwb3NpdGlvbjpyZWxhdGl2ZTttYXJnaW46MCAwIDAgLTEuNDVyZW07cGFkZGluZy1sZWZ0OjEuNDVyZW07bGluZS1oZWlnaHQ6Mi41cmVtO2JvcmRlci1sZWZ0OjFweCBzb2xpZCAjQjdCOEZGfS5hcnRpY2xlLS1jb250ZW50IC5mcy1kaWFncmFtPnVsIHVsIGxpOmJlZm9yZXtjb250ZW50OlwiXCI7ZGlzcGxheTppbmxpbmUtYmxvY2s7d2lkdGg6MXJlbTtoZWlnaHQ6LjI1cmVtO21hcmdpbi1yaWdodDouNTVyZW07bWFyZ2luLWxlZnQ6LTEuNDVyZW07Ym9yZGVyLXRvcDoxcHggc29saWQgI0I3QjhGRn0uYXJ0aWNsZS0tY29udGVudCAuZnMtZGlhZ3JhbT51bCB1bCBsaTpsYXN0LWNoaWxke2JvcmRlcjpub25lfS5hcnRpY2xlLS1jb250ZW50IC5mcy1kaWFncmFtPnVsIHVsIGxpOmxhc3QtY2hpbGQ6YWZ0ZXJ7Y29udGVudDpcIlwiO3Bvc2l0aW9uOmFic29sdXRlO21hcmdpbjowO3BhZGRpbmc6MDtsZWZ0OjA7dG9wOjA7aGVpZ2h0OjEuNHJlbTtib3JkZXItbGVmdDoxcHggc29saWQgI0I3QjhGRn0uYXJ0aWNsZS0tY29udGVudCAuZnMtZGlhZ3JhbSB1bHtsaXN0LXN0eWxlOm5vbmV9LmFydGljbGUtLWNvbnRlbnQgI3NoYXJkLWRpYWdyYW0sLmFydGljbGUtLWNvbnRlbnQgI2RhdGEtcmV0ZW50aW9ue2Rpc3BsYXk6ZmxleDtmbGV4LWRpcmVjdGlvbjpjb2x1bW47bWF4LXdpZHRoOjU1MHB4O21hcmdpbjoyLjVyZW0gYXV0byAzcmVtfS5hcnRpY2xlLS1jb250ZW50ICNzaGFyZC1kaWFncmFtIHAsLmFydGljbGUtLWNvbnRlbnQgI2RhdGEtcmV0ZW50aW9uIHB7bWFyZ2luLWJvdHRvbTowO2xpbmUtaGVpZ2h0OjEuMjVlbX0uYXJ0aWNsZS0tY29udGVudCAjc2hhcmQtZGlhZ3JhbSAucGVyaW9kcywuYXJ0aWNsZS0tY29udGVudCAjZGF0YS1yZXRlbnRpb24gLnBlcmlvZHN7ZGlzcGxheTpmbGV4O2ZsZXgtZGlyZWN0aW9uOnJvdztqdXN0aWZ5LWNvbnRlbnQ6c3BhY2UtYmV0d2Vlbn0uYXJ0aWNsZS0tY29udGVudCAjc2hhcmQtZGlhZ3JhbSAudGltZWxpbmUsLmFydGljbGUtLWNvbnRlbnQgI2RhdGEtcmV0ZW50aW9uIC50aW1lbGluZXtkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246cm93O21hcmdpbi10b3A6LjI1cmVtO3BhZGRpbmc6MCAuNXJlbX0uYXJ0aWNsZS0tY29udGVudCAjc2hhcmQtZGlhZ3JhbSAudGltZWxpbmUgLmludGVydmFsLC5hcnRpY2xlLS1jb250ZW50ICNkYXRhLXJldGVudGlvbiAudGltZWxpbmUgLmludGVydmFse2JvcmRlci10b3A6MXB4IHNvbGlkICNENEQ3REQ7Ym9yZGVyLXJpZ2h0OjFweCBzb2xpZCAjRDREN0REO2hlaWdodDouNzVyZW07ZmxleC1ncm93OjF9LmFydGljbGUtLWNvbnRlbnQgI3NoYXJkLWRpYWdyYW0gLnRpbWVsaW5lIC5pbnRlcnZhbDpmaXJzdC1jaGlsZCwuYXJ0aWNsZS0tY29udGVudCAjZGF0YS1yZXRlbnRpb24gLnRpbWVsaW5lIC5pbnRlcnZhbDpmaXJzdC1jaGlsZHtib3JkZXItbGVmdDoxcHggc29saWQgI0Q0RDdERH0uYXJ0aWNsZS0tY29udGVudCAjc2hhcmQtZGlhZ3JhbSAudGltZWxpbmUgLm9uZS1xdWFydGVyLC5hcnRpY2xlLS1jb250ZW50ICNkYXRhLXJldGVudGlvbiAudGltZWxpbmUgLm9uZS1xdWFydGVye3dpZHRoOjI1JTtoZWlnaHQ6Ljc1cmVtfS5hcnRpY2xlLS1jb250ZW50ICNzaGFyZC1kaWFncmFtIC50aW1lbGluZSAudGhyZWUtcXVhcnRlcnMsLmFydGljbGUtLWNvbnRlbnQgI2RhdGEtcmV0ZW50aW9uIC50aW1lbGluZSAudGhyZWUtcXVhcnRlcnN7d2lkdGg6NzUlO2hlaWdodDouNzVyZW19LmFydGljbGUtLWNvbnRlbnQgI3NoYXJkLWRpYWdyYW0gLnRpbWVsaW5lIC5ib3JkZXItbGVmdCwuYXJ0aWNsZS0tY29udGVudCAjZGF0YS1yZXRlbnRpb24gLnRpbWVsaW5lIC5ib3JkZXItbGVmdHtib3JkZXItbGVmdDoxcHggc29saWQgI0Q0RDdERH0uYXJ0aWNsZS0tY29udGVudCAjc2hhcmQtZGlhZ3JhbSAudGltZWxpbmUgLnJldGVudGlvbi1sYWJlbCwuYXJ0aWNsZS0tY29udGVudCAjZGF0YS1yZXRlbnRpb24gLnRpbWVsaW5lIC5yZXRlbnRpb24tbGFiZWx7cG9zaXRpb246cmVsYXRpdmV9LmFydGljbGUtLWNvbnRlbnQgI3NoYXJkLWRpYWdyYW0gLnRpbWVsaW5lIC5yZXRlbnRpb24tbGFiZWw6YmVmb3JlLC5hcnRpY2xlLS1jb250ZW50ICNkYXRhLXJldGVudGlvbiAudGltZWxpbmUgLnJldGVudGlvbi1sYWJlbDpiZWZvcmV7Y29udGVudDpcIlwiO2Rpc3BsYXk6aW5saW5lLWJsb2NrO3dpZHRoOi42NXJlbTttYXJnaW4tcmlnaHQ6LjVyZW07Ym9yZGVyLXRvcDoxcHggc29saWQgI0Q0RDdERDt2ZXJ0aWNhbC1hbGlnbjptaWRkbGV9LmFydGljbGUtLWNvbnRlbnQgI3NoYXJkLWRpYWdyYW0gLnRpbWVsaW5lIC5kZWxldGVkLWxhYmVsLC5hcnRpY2xlLS1jb250ZW50ICNkYXRhLXJldGVudGlvbiAudGltZWxpbmUgLmRlbGV0ZWQtbGFiZWx7Y29sb3I6I0JGM0Q1RTt0ZXh0LWFsaWduOmNlbnRlcjtmb250LXNpemU6LjlyZW19LmFydGljbGUtLWNvbnRlbnQgI3NoYXJkLWRpYWdyYW0gLnNoYXJkLWdyb3VwcywuYXJ0aWNsZS0tY29udGVudCAjZGF0YS1yZXRlbnRpb24gLnNoYXJkLWdyb3Vwc3tkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246cm93O2p1c3RpZnktY29udGVudDpzcGFjZS1hcm91bmQ7bWFyZ2luLXRvcDouMjVyZW07cGFkZGluZzouNXJlbTtsaW5lLWhlaWdodDoxcmVtfS5hcnRpY2xlLS1jb250ZW50ICNzaGFyZC1kaWFncmFtIC5zaGFyZC1ncm91cHMgLnNoYXJkLWdyb3VwLC5hcnRpY2xlLS1jb250ZW50ICNkYXRhLXJldGVudGlvbiAuc2hhcmQtZ3JvdXBzIC5zaGFyZC1ncm91cHttYXJnaW46MCAuMjVyZW07dGV4dC1hbGlnbjpjZW50ZXI7cGFkZGluZzouNXJlbTtib3JkZXItcmFkaXVzOi41cmVtO2JhY2tncm91bmQ6IzI2MjczODtmbGV4LWdyb3c6MTtib3gtc2hhZG93OjJweCAycHggOHB4ICMwNzA3MEV9LmFydGljbGUtLWNvbnRlbnQgI3NoYXJkLWRpYWdyYW0gLnNoYXJkLWdyb3VwcyAuc2hhcmQtZ3JvdXAgcDpmaXJzdC1jaGlsZCwuYXJ0aWNsZS0tY29udGVudCAjZGF0YS1yZXRlbnRpb24gLnNoYXJkLWdyb3VwcyAuc2hhcmQtZ3JvdXAgcDpmaXJzdC1jaGlsZHttYXJnaW4tYm90dG9tOi43NXJlbX0uYXJ0aWNsZS0tY29udGVudCAjc2hhcmQtZGlhZ3JhbSAuc2hhcmQtZ3JvdXBzIC5zaGFyZC1ncm91cCAuc2hhcmQsLmFydGljbGUtLWNvbnRlbnQgI2RhdGEtcmV0ZW50aW9uIC5zaGFyZC1ncm91cHMgLnNoYXJkLWdyb3VwIC5zaGFyZHtkaXNwbGF5OmJsb2NrO21hcmdpbi10b3A6LjVyZW07cGFkZGluZzouNjVyZW0gMXJlbTtjb2xvcjojZmZmO2JvcmRlci1yYWRpdXM6LjI1cmVtO2JhY2tncm91bmQ6bGluZWFyLWdyYWRpZW50KDkwZGVnLCAjOEUxRkMzLCMwNjZGQzUpO2JhY2tncm91bmQtYXR0YWNobWVudDpmaXhlZH0uYXJ0aWNsZS0tY29udGVudCAjc2hhcmQtZGlhZ3JhbSAuc2hhcmQtZ3JvdXBzIC5zaGFyZC1ncm91cC5kZWxldGVkLC5hcnRpY2xlLS1jb250ZW50ICNkYXRhLXJldGVudGlvbiAuc2hhcmQtZ3JvdXBzIC5zaGFyZC1ncm91cC5kZWxldGVke29wYWNpdHk6LjN9LmFydGljbGUtLWNvbnRlbnQgI3NoYXJkLWRpYWdyYW0gLnNoYXJkLWdyb3VwcyAuc2hhcmQtZ3JvdXAuZGVsZXRlZCAuc2hhcmQsLmFydGljbGUtLWNvbnRlbnQgI2RhdGEtcmV0ZW50aW9uIC5zaGFyZC1ncm91cHMgLnNoYXJkLWdyb3VwLmRlbGV0ZWQgLnNoYXJke2JhY2tncm91bmQ6bGluZWFyLWdyYWRpZW50KDQ1ZGVnLCAjQkYzRDVFLCNEQzRFNTgpfS5hcnRpY2xlLS1jb250ZW50IC5zZXJpZXMtZGlhZ3JhbXtkaXNwbGF5OmZsZXg7d2lkdGg6Zml0LWNvbnRlbnQ7bWF4LXdpZHRoOjEwMCU7bWFyZ2luOjFyZW0gMy4yNXJlbSAxLjc1cmVtIDA7cGFkZGluZy1yaWdodDoxLjVyZW07Ym9yZGVyLXJpZ2h0OjJweCBzb2xpZCAjRDZGNjIyfS5hcnRpY2xlLS1jb250ZW50IC5zZXJpZXMtZGlhZ3JhbSB0YWJsZXttYXJnaW46MH0uYXJ0aWNsZS0tY29udGVudCAuc2VyaWVzLWRpYWdyYW06YWZ0ZXJ7Y29udGVudDpcIlNlcmllc1wiO3RvcDo0cmVtO3JpZ2h0Oi0zLjVyZW19LmFydGljbGUtLWNvbnRlbnQgLnNlcmllcy1kaWFncmFtOmxhc3QtY2hpbGR7bWFyZ2luLWJvdHRvbTozcmVtfS5hcnRpY2xlLS1jb250ZW50IHRhYmxlIHRyLnBvaW50e2JvcmRlcjoycHggc29saWQgI0Q2RjYyMn0uYXJ0aWNsZS0tY29udGVudCB0YWJsZSB0ci5wb2ludDphZnRlcntjb250ZW50OlwiUG9pbnRcIjtib3R0b206LS44cmVtO2xlZnQ6MXJlbX0uYXJ0aWNsZS0tY29udGVudCAuc2VyaWVzLWRpYWdyYW0sLmFydGljbGUtLWNvbnRlbnQgdGFibGUgdHIucG9pbnR7cG9zaXRpb246cmVsYXRpdmV9LmFydGljbGUtLWNvbnRlbnQgLnNlcmllcy1kaWFncmFtOmFmdGVyLC5hcnRpY2xlLS1jb250ZW50IHRhYmxlIHRyLnBvaW50OmFmdGVye2NvbG9yOiMyMDIwMjg7YmFja2dyb3VuZDojRDZGNjIyO2JvcmRlci1yYWRpdXM6MnB4O3Bvc2l0aW9uOmFic29sdXRlO2ZvbnQtc2l6ZTouOXJlbTtmb250LXdlaWdodDo1MDA7cGFkZGluZzouMnJlbSAuNXJlbTtsaW5lLWhlaWdodDouOXJlbX0uYXJ0aWNsZS0tY29udGVudCAuc3FsIHRhYmxlIHRyLnBvaW50c3twb3NpdGlvbjpyZWxhdGl2ZX0uYXJ0aWNsZS0tY29udGVudCAuc3FsIHRhYmxlIHRyLnBvaW50cyB0ZDpmaXJzdC1jaGlsZDpiZWZvcmUsLmFydGljbGUtLWNvbnRlbnQgLnNxbCB0YWJsZSB0ci5wb2ludHMgdGQ6Zmlyc3QtY2hpbGQ6YWZ0ZXJ7ZGlzcGxheTpibG9jaztib3JkZXItcmFkaXVzOjJweDtwb3NpdGlvbjphYnNvbHV0ZTtmb250LXNpemU6LjlyZW07Zm9udC13ZWlnaHQ6NTAwO3BhZGRpbmc6LjJyZW0gLjVyZW07bGluZS1oZWlnaHQ6LjlyZW07ei1pbmRleDoxO3RvcDotLjI1cmVtO29wYWNpdHk6MDt0cmFuc2l0aW9uOm9wYWNpdHkgLjJzLCB0b3AgLjJzfS5hcnRpY2xlLS1jb250ZW50IC5zcWwgdGFibGUgdHIucG9pbnRzIHRkOmZpcnN0LWNoaWxkOmJlZm9yZXtjb250ZW50OlwiUG9pbnQgMVwiO2NvbG9yOiNmZmY7YmFja2dyb3VuZDojZDMwOTcxfS5hcnRpY2xlLS1jb250ZW50IC5zcWwgdGFibGUgdHIucG9pbnRzIHRkOmZpcnN0LWNoaWxkOmFmdGVye2NvbnRlbnQ6XCJQb2ludCAyXCI7Y29sb3I6IzIwMjAyODtiYWNrZ3JvdW5kOiNENkY2MjI7bGVmdDo1cmVtfS5hcnRpY2xlLS1jb250ZW50IC5zcWwgdGFibGUgdHIucG9pbnRzOmhvdmVyIHRkOmZpcnN0LWNoaWxkOmJlZm9yZSwuYXJ0aWNsZS0tY29udGVudCAuc3FsIHRhYmxlIHRyLnBvaW50czpob3ZlciB0ZDpmaXJzdC1jaGlsZDphZnRlcntvcGFjaXR5OjE7dG9wOi0uNjVyZW19LmFydGljbGUtLWNvbnRlbnQgLnNxbCB0YWJsZSBzcGFuLnBvaW50e3Bvc2l0aW9uOnJlbGF0aXZlO2Rpc3BsYXk6aW5saW5lLWJsb2NrfS5hcnRpY2xlLS1jb250ZW50IC5zcWwgdGFibGUgc3Bhbi5wb2ludC5vbmU6YmVmb3Jle2NvbnRlbnQ6XCJcIjtkaXNwbGF5OmJsb2NrO3Bvc2l0aW9uOmFic29sdXRlO3dpZHRoOjEwMCU7aGVpZ2h0OjJweDtib3JkZXItdG9wOjJweCBzb2xpZCAjZDMwOTcxO2JvdHRvbTotMnB4fS5hcnRpY2xlLS1jb250ZW50IC5zcWwgdGFibGUgc3Bhbi5wb2ludC50d286YWZ0ZXJ7Y29udGVudDpcIlwiO2Rpc3BsYXk6YmxvY2s7cG9zaXRpb246YWJzb2x1dGU7d2lkdGg6MTAwJTtoZWlnaHQ6MnB4O2JvcmRlci10b3A6MnB4IHNvbGlkICNENkY2MjI7Ym90dG9tOi04cHh9LmFydGljbGUtLWNvbnRlbnQgI2xpbmUtcHJvdG9jb2wtYW5hdG9teXtvdmVyZmxvdzpzY3JvbGw7bWFyZ2luOjNyZW0gMCAyLjVyZW19LmFydGljbGUtLWNvbnRlbnQgI2xpbmUtcHJvdG9jb2wtYW5hdG9teSBwe3BhZGRpbmc6M3JlbSAwIDJyZW07d2hpdGUtc3BhY2U6bm93cmFwO2ZvbnQtZmFtaWx5OlwiSUJNIFBsZXggTW9ub1wiLG1vbm9zcGFjZTtvdmVyZmxvdzp2aXNpYmxlO3RleHQtYWxpZ246Y2VudGVyfS5hcnRpY2xlLS1jb250ZW50ICNsaW5lLXByb3RvY29sLWFuYXRvbXkgcCBzcGFue3BhZGRpbmc6Ljc1cmVtIDAgLjc1cmVtfS5hcnRpY2xlLS1jb250ZW50ICNsaW5lLXByb3RvY29sLWFuYXRvbXkgcCBzcGFuLmVse3Bvc2l0aW9uOnJlbGF0aXZlO2JvcmRlci10b3A6MnB4IHNvbGlkICNENkY2MjJ9LmFydGljbGUtLWNvbnRlbnQgI2xpbmUtcHJvdG9jb2wtYW5hdG9teSBwIHNwYW4uZWw6YmVmb3Jle2Rpc3BsYXk6YmxvY2s7cG9zaXRpb246YWJzb2x1dGU7Zm9udC1mYW1pbHk6XCJQcm94aW1hIE5vdmFcIixzYW5zLXNlcmlmO2ZvbnQtc2l6ZTouOTVyZW07Y29sb3I6I0Q2RjYyMjtmb250LXdlaWdodDo1MDA7dG9wOi0yLjc1cmVtO2xlZnQ6NTAlO3RyYW5zZm9ybTp0cmFuc2xhdGVYKC01MCUpfS5hcnRpY2xlLS1jb250ZW50ICNsaW5lLXByb3RvY29sLWFuYXRvbXkgcCBzcGFuLmVsOmFmdGVye2NvbnRlbnQ6XCJcIjtkaXNwbGF5OmJsb2NrO3Bvc2l0aW9uOmFic29sdXRlO2hlaWdodDoxcmVtO3dpZHRoOjJweDt0b3A6LTFyZW07bGVmdDo1MCU7dHJhbnNmb3JtOnRyYW5zbGF0ZVgoLTUwJSk7YmFja2dyb3VuZDojRDZGNjIyfS5hcnRpY2xlLS1jb250ZW50ICNsaW5lLXByb3RvY29sLWFuYXRvbXkgcCBzcGFuLmVsLm1lYXN1cmVtZW50OmJlZm9yZXtjb250ZW50OlwibWVhc3VyZW1lbnRcIn0uYXJ0aWNsZS0tY29udGVudCAjbGluZS1wcm90b2NvbC1hbmF0b215IHAgc3Bhbi5lbC50YWdzZXQ6YmVmb3Jle2NvbnRlbnQ6XCJ0YWcgc2V0XCJ9LmFydGljbGUtLWNvbnRlbnQgI2xpbmUtcHJvdG9jb2wtYW5hdG9teSBwIHNwYW4uZWwuZmllbGRzZXQ6YmVmb3Jle2NvbnRlbnQ6XCJmaWVsZCBzZXRcIn0uYXJ0aWNsZS0tY29udGVudCAjbGluZS1wcm90b2NvbC1hbmF0b215IHAgc3Bhbi5lbC50aW1lc3RhbXA6YmVmb3Jle2NvbnRlbnQ6XCJ0aW1lc3RhbXBcIn0uYXJ0aWNsZS0tY29udGVudCAjbGluZS1wcm90b2NvbC1hbmF0b215IHAgc3Bhbi53aGl0ZXNwYWNlLC5hcnRpY2xlLS1jb250ZW50ICNsaW5lLXByb3RvY29sLWFuYXRvbXkgcCBzcGFuLmNvbW1he3Bvc2l0aW9uOnJlbGF0aXZlO2JvcmRlci1ib3R0b206MnB4IHNvbGlkICNENkY2MjJ9LmFydGljbGUtLWNvbnRlbnQgI2xpbmUtcHJvdG9jb2wtYW5hdG9teSBwIHNwYW4ud2hpdGVzcGFjZTpiZWZvcmUsLmFydGljbGUtLWNvbnRlbnQgI2xpbmUtcHJvdG9jb2wtYW5hdG9teSBwIHNwYW4uY29tbWE6YmVmb3Jle3doaXRlLXNwYWNlOm5vd3JhcDtkaXNwbGF5OmJsb2NrO3Bvc2l0aW9uOmFic29sdXRlO2ZvbnQtZmFtaWx5OlwiUHJveGltYSBOb3ZhXCIsc2Fucy1zZXJpZjtmb250LXNpemU6Ljk1cmVtO2NvbG9yOiNENkY2MjI7Zm9udC13ZWlnaHQ6NTAwO2JvdHRvbTotMi43NXJlbTtsZWZ0OjUwJTt0cmFuc2Zvcm06dHJhbnNsYXRlWCgtNTAlKX0uYXJ0aWNsZS0tY29udGVudCAjbGluZS1wcm90b2NvbC1hbmF0b215IHAgc3Bhbi53aGl0ZXNwYWNlOmFmdGVyLC5hcnRpY2xlLS1jb250ZW50ICNsaW5lLXByb3RvY29sLWFuYXRvbXkgcCBzcGFuLmNvbW1hOmFmdGVye2NvbnRlbnQ6XCJcIjtkaXNwbGF5OmJsb2NrO3Bvc2l0aW9uOmFic29sdXRlO2hlaWdodDoxcmVtO3dpZHRoOjJweDtib3R0b206LTFyZW07bGVmdDo1MCU7dHJhbnNmb3JtOnRyYW5zbGF0ZVgoLTUwJSk7YmFja2dyb3VuZDojRDZGNjIyfS5hcnRpY2xlLS1jb250ZW50ICNsaW5lLXByb3RvY29sLWFuYXRvbXkgcCBzcGFuLndoaXRlc3BhY2Uud2hpdGVzcGFjZTpiZWZvcmUsLmFydGljbGUtLWNvbnRlbnQgI2xpbmUtcHJvdG9jb2wtYW5hdG9teSBwIHNwYW4uY29tbWEud2hpdGVzcGFjZTpiZWZvcmV7Y29udGVudDphdHRyKGRhdGEtd2hpdGVzcGFjZSkgXCIgd2hpdGVzcGFjZVwifS5hcnRpY2xlLS1jb250ZW50ICNsaW5lLXByb3RvY29sLWFuYXRvbXkgcCBzcGFuLndoaXRlc3BhY2UuY29tbWE6YmVmb3JlLC5hcnRpY2xlLS1jb250ZW50ICNsaW5lLXByb3RvY29sLWFuYXRvbXkgcCBzcGFuLmNvbW1hLmNvbW1hOmJlZm9yZXtjb250ZW50OmF0dHIoZGF0YS13aGl0ZXNwYWNlKSBcIjFzdCBjb21tYVwifS5hcnRpY2xlLS1jb250ZW50ICNsaW5lLXByb3RvY29sLWFuYXRvbXkudjMgcCBzcGFuLm1lYXN1cmVtZW50OjpiZWZvcmV7Y29udGVudDpcInRhYmxlXCJ9LmFydGljbGUtLWNvbnRlbnQgI2xpbmUtcHJvdG9jb2wtYW5hdG9teS5oaWRlLWVsZW1lbnRzIHAgc3Bhbi5lbHtib3JkZXI6bm9uZX0uYXJ0aWNsZS0tY29udGVudCAjbGluZS1wcm90b2NvbC1hbmF0b215LmhpZGUtZWxlbWVudHMgcCBzcGFuLmVsOmJlZm9yZSwuYXJ0aWNsZS0tY29udGVudCAjbGluZS1wcm90b2NvbC1hbmF0b215LmhpZGUtZWxlbWVudHMgcCBzcGFuLmVsOmFmdGVye2Rpc3BsYXk6bm9uZX0uYXJ0aWNsZS0tY29udGVudCAjbGluZS1wcm90b2NvbC1hbmF0b215LmhpZGUtY29tbWFzIHAgc3Bhbi5jb21tYXtib3JkZXI6bm9uZX0uYXJ0aWNsZS0tY29udGVudCAjbGluZS1wcm90b2NvbC1hbmF0b215LmhpZGUtY29tbWFzIHAgc3Bhbi5jb21tYTpiZWZvcmUsLmFydGljbGUtLWNvbnRlbnQgI2xpbmUtcHJvdG9jb2wtYW5hdG9teS5oaWRlLWNvbW1hcyBwIHNwYW4uY29tbWE6YWZ0ZXJ7ZGlzcGxheTpub25lfS5hcnRpY2xlLS1jb250ZW50ICNsaW5lLXByb3RvY29sLWFuYXRvbXkuaGlkZS13aGl0ZXNwYWNlIHAgc3Bhbi53aGl0ZXNwYWNle2JvcmRlcjpub25lfS5hcnRpY2xlLS1jb250ZW50ICNsaW5lLXByb3RvY29sLWFuYXRvbXkuaGlkZS13aGl0ZXNwYWNlIHAgc3Bhbi53aGl0ZXNwYWNlOmJlZm9yZSwuYXJ0aWNsZS0tY29udGVudCAjbGluZS1wcm90b2NvbC1hbmF0b215LmhpZGUtd2hpdGVzcGFjZSBwIHNwYW4ud2hpdGVzcGFjZTphZnRlcntkaXNwbGF5Om5vbmV9LmFydGljbGUtLWNvbnRlbnQgI2luZmx1eHFsLXdpbmRvdy1kaWFncmFte21pbi13aWR0aDo1MjBweDtvdmVyZmxvdzpzY3JvbGw7ZGlzcGxheTpmbGV4O2ZsZXgtZGlyZWN0aW9uOnJvd30uYXJ0aWNsZS0tY29udGVudCAjaW5mbHV4cWwtd2luZG93LWRpYWdyYW0gI3RpbWVyYW5nZS1sYWJlbHtwb3NpdGlvbjpyZWxhdGl2ZTt3aWR0aDouN3JlbTttYXJnaW46MTAuNXJlbSAuNXJlbSA2LjVyZW0gLjVyZW07Ym9yZGVyLXdpZHRoOjFweCAwIDFweCAxcHg7Ym9yZGVyLXN0eWxlOnNvbGlkO2JvcmRlci1jb2xvcjpyZ2JhKDIxMiwyMTUsMjIxLDAuMyl9LmFydGljbGUtLWNvbnRlbnQgI2luZmx1eHFsLXdpbmRvdy1kaWFncmFtICN0aW1lcmFuZ2UtbGFiZWw6OmJlZm9yZXtjb250ZW50OlwiUXVlcmllZCB0aW1lIHJhbmdlXCI7ZGlzcGxheTpibG9jaztwb3NpdGlvbjphYnNvbHV0ZTtiYWNrZ3JvdW5kOiMxNDE0MUY7cGFkZGluZzowIC43NXJlbTtmb250LXdlaWdodDo1MDA7Zm9udC1zaXplOi45cmVtO2NvbG9yOnJnYmEoMjEyLDIxNSwyMjEsMC41KTt0cmFuc2Zvcm06cm90YXRlKC05MGRlZyk7d2hpdGUtc3BhY2U6bm93cmFwO3RvcDoxMy41cmVtO2xlZnQ6LTQuN3JlbX0uYXJ0aWNsZS0tY29udGVudCAjaW5mbHV4cWwtd2luZG93LWRpYWdyYW0gdGR7Zm9udC13ZWlnaHQ6bWVkaXVtO2NvbG9yOiNGQUZBRkN9LmFydGljbGUtLWNvbnRlbnQgI2luZmx1eHFsLXdpbmRvdy1kaWFncmFtIHRkIHNwYW4uZXhjbHVkZXtvcGFjaXR5Oi4zNTtmb250LXdlaWdodDpub3JtYWx9LmFydGljbGUtLWNvbnRlbnQgI2luZmx1eHFsLXdpbmRvdy1kaWFncmFtIC53aW5kb3dze2Rpc3BsYXk6ZmxleDtmbGV4LWRpcmVjdGlvbjpjb2x1bW47anVzdGlmeS1jb250ZW50OnNwYWNlLWJldHdlZW47cGFkZGluZzo0cmVtIDAgMi41cmVtIC4yNXJlbX0uYXJ0aWNsZS0tY29udGVudCAjaW5mbHV4cWwtd2luZG93LWRpYWdyYW0gLndpbmRvdy1ob3Vye2p1c3RpZnktY29udGVudDpzcGFjZS1iZXR3ZWVuO2hlaWdodDoxMDAlO21hcmdpbi1ib3R0b206LjVyZW07Ym9yZGVyLWxlZnQ6MXB4IHNvbGlkIHJnYmEoMjEyLDIxNSwyMjEsMC4zKTtmbGV4OjEgMSAwO3Bvc2l0aW9uOnJlbGF0aXZlfS5hcnRpY2xlLS1jb250ZW50ICNpbmZsdXhxbC13aW5kb3ctZGlhZ3JhbSAud2luZG93LWhvdXI6OmJlZm9yZSwuYXJ0aWNsZS0tY29udGVudCAjaW5mbHV4cWwtd2luZG93LWRpYWdyYW0gLndpbmRvdy1ob3VyOjphZnRlcntjb250ZW50OlwiXCI7cG9zaXRpb246YWJzb2x1dGU7ZGlzcGxheTpibG9jazt3aWR0aDo5cHg7aGVpZ2h0OjFweDtsZWZ0Oi0xMHB4O2JvcmRlci10b3A6MXB4IHNvbGlkIHJnYmEoMjEyLDIxNSwyMjEsMC4zKX0uYXJ0aWNsZS0tY29udGVudCAjaW5mbHV4cWwtd2luZG93LWRpYWdyYW0gLndpbmRvdy1ob3VyOjpiZWZvcmV7dG9wOjB9LmFydGljbGUtLWNvbnRlbnQgI2luZmx1eHFsLXdpbmRvdy1kaWFncmFtIC53aW5kb3ctaG91cjo6YWZ0ZXJ7Ym90dG9tOi0xcHh9LmFydGljbGUtLWNvbnRlbnQgI2luZmx1eHFsLXdpbmRvdy1kaWFncmFtIC53aW5kb3ctaG91ciBwe3doaXRlLXNwYWNlOm5vd3JhcDttYXJnaW4tdG9wOi41NXJlbTtwb3NpdGlvbjpyZWxhdGl2ZX0uYXJ0aWNsZS0tY29udGVudCAjaW5mbHV4cWwtd2luZG93LWRpYWdyYW0gLndpbmRvdy1ob3VyIHA6OmJlZm9yZXtjb250ZW50OlwiXCI7ZGlzcGxheTppbmxpbmUtYmxvY2s7bWFyZ2luLXJpZ2h0Oi41cmVtO3dpZHRoOjFyZW07aGVpZ2h0OjA7Ym9yZGVyLXRvcDoxcHggc29saWQgcmdiYSgyMTIsMjE1LDIyMSwwLjMpO3ZlcnRpY2FsLWFsaWduOm1pZGRsZX0uYXJ0aWNsZS0tY29udGVudCAjaW5mbHV4cWwtd2luZG93LWRpYWdyYW0gLndpbmRvdy1ob3VyIHA6OmFmdGVye2NvbnRlbnQ6XCJQcmVkZWZpbmVkIHdpbmRvdyBib3VuZGFyeVwiO2Rpc3BsYXk6YmxvY2s7cG9zaXRpb246YWJzb2x1dGU7dG9wOjEuMjVyZW07bGVmdDoxLjVyZW07Zm9udC1zaXplOi45cmVtO2ZvbnQtd2VpZ2h0OjUwMDtjb2xvcjpyZ2JhKDIxMiwyMTUsMjIxLDAuNSl9LmFydGljbGUtLWNvbnRlbnQgLnNjYWxpbmctc3RyYXRlZ3l7bWFyZ2luOjJyZW0gMCAzcmVtfS5hcnRpY2xlLS1jb250ZW50IC5zY2FsaW5nLXN0cmF0ZWd5IC5ub2Rle2JvcmRlcjoycHggc29saWQgI0Q0RDdERDtib3JkZXItcmFkaXVzOjZweDtoZWlnaHQ6NnJlbTt3aWR0aDo0cmVtfS5hcnRpY2xlLS1jb250ZW50IC5zY2FsaW5nLXN0cmF0ZWd5IC5kYXNoZWR7Ym9yZGVyLXN0eWxlOmRhc2hlZDtib3JkZXItY29sb3I6cmdiYSgyMTIsMjE1LDIyMSwwLjUpfS5hcnRpY2xlLS1jb250ZW50IC5zY2FsaW5nLXN0cmF0ZWd5IC5vdXRlcntoZWlnaHQ6YXV0bzt3aWR0aDpmaXQtY29udGVudDtwb3NpdGlvbjpyZWxhdGl2ZX0uYXJ0aWNsZS0tY29udGVudCAuc2NhbGluZy1zdHJhdGVneSAuaW5uZXJ7bWFyZ2luOjJyZW0gMS4yNXJlbSAtMnB4fS5hcnRpY2xlLS1jb250ZW50IC5zY2FsaW5nLXN0cmF0ZWd5Lmhvcml6b250YWx7ZGlzcGxheTpmbGV4fS5hcnRpY2xlLS1jb250ZW50IC5zY2FsaW5nLXN0cmF0ZWd5Lmhvcml6b250YWwgLm5vZGU6bm90KDpmaXJzdC1jaGlsZCl7bWFyZ2luLWxlZnQ6MS4yNXJlbX0uYXJ0aWNsZS0tY29udGVudCAjcXVlcnktcGxhbi1kaWFncmFte2Rpc3BsYXk6ZmxleDtmbGV4LWRpcmVjdGlvbjpjb2x1bW47Zm9udC1zaXplOjFyZW07bWFyZ2luOjNyZW0gMCAzLjVyZW07bWF4LXdpZHRoOjgwMHB4fS5hcnRpY2xlLS1jb250ZW50ICNxdWVyeS1wbGFuLWRpYWdyYW0gLnBsYW4tY29sdW1ue3BhZGRpbmc6MCAuNXJlbX0uYXJ0aWNsZS0tY29udGVudCAjcXVlcnktcGxhbi1kaWFncmFtIC5wbGFuLWJsb2Nre2JhY2tncm91bmQ6IzA3MDcwRTtjb2xvcjojQjdCOEZGO3RleHQtYWxpZ246Y2VudGVyO3BhZGRpbmc6MXJlbSAxLjVyZW07Ym9yZGVyLXJhZGl1czo0cHh9LmFydGljbGUtLWNvbnRlbnQgI3F1ZXJ5LXBsYW4tZGlhZ3JhbSAucGxhbi1hcnJvd3ttYXJnaW46LjVyZW0gYXV0bztoZWlnaHQ6MS41cmVtO3dpZHRoOjFweDtib3JkZXItbGVmdDoxcHggc29saWQgI0I3QjhGRjtwb3NpdGlvbjpyZWxhdGl2ZX0uYXJ0aWNsZS0tY29udGVudCAjcXVlcnktcGxhbi1kaWFncmFtIC5wbGFuLWFycm93OmJlZm9yZXtjb250ZW50OlwiXFwyNUIyXCI7cG9zaXRpb246YWJzb2x1dGU7dG9wOi4yNXJlbTtsZWZ0Oi0uMzJyZW07Y29sb3I6I0I3QjhGRjtsaW5lLWhlaWdodDowfS5hcnRpY2xlLS1jb250ZW50ICNxdWVyeS1wbGFuLWRpYWdyYW0gLnBsYW4tYXJyb3cuc3BsaXR7d2lkdGg6NTAlO21hcmdpbi10b3A6MnJlbTtoZWlnaHQ6MXJlbTtkaXNwbGF5OmZsZXg7anVzdGlmeS1jb250ZW50OmNlbnRlcjtib3JkZXItd2lkdGg6MXB4IDFweCAwIDFweDtib3JkZXItc3R5bGU6c29saWQ7Ym9yZGVyLWNvbG9yOiNCN0I4RkZ9LmFydGljbGUtLWNvbnRlbnQgI3F1ZXJ5LXBsYW4tZGlhZ3JhbSAucGxhbi1hcnJvdy5zcGxpdDpiZWZvcmV7cG9zaXRpb246cmVsYXRpdmU7dG9wOi0xLjI1cmVtO2xlZnQ6LTAuMjZyZW07d2lkdGg6MDttYXJnaW4tbGVmdDouMnJlbX0uYXJ0aWNsZS0tY29udGVudCAjcXVlcnktcGxhbi1kaWFncmFtIC5wbGFuLWFycm93LnNwbGl0OmFmdGVye2NvbnRlbnQ6XCJcIjtkaXNwbGF5OmJsb2NrO2hlaWdodDoxcmVtO3dpZHRoOjA7Ym9yZGVyLWxlZnQ6MXB4IHNvbGlkICNCN0I4RkY7bWFyZ2luOi0xcmVtIDB9LmFydGljbGUtLWNvbnRlbnQgI3F1ZXJ5LXBsYW4tZGlhZ3JhbSAucGxhbi1zaW5nbGUtY29sdW1ue2Rpc3BsYXk6ZmxleDtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyfS5hcnRpY2xlLS1jb250ZW50ICNxdWVyeS1wbGFuLWRpYWdyYW0gLnBsYW4tZG91YmxlLWNvbHVtbntkaXNwbGF5OmZsZXg7anVzdGlmeS1jb250ZW50OnNwYWNlLWFyb3VuZH0uYXJ0aWNsZS0tY29udGVudCAjc3NvLWF1dGgtZmxvd3ttYXgtd2lkdGg6NjUwcHg7bWFyZ2luOjJyZW0gYXV0b30uYXJ0aWNsZS0tY29udGVudCAjc3NvLWF1dGgtZmxvdyAucm93e2Rpc3BsYXk6ZmxleH0uYXJ0aWNsZS0tY29udGVudCAjc3NvLWF1dGgtZmxvdyAucm93LmxlZnR7anVzdGlmeS1jb250ZW50OnN0YXJ0fS5hcnRpY2xlLS1jb250ZW50ICNzc28tYXV0aC1mbG93IC5yb3cuY2VudGVye2p1c3RpZnktY29udGVudDpjZW50ZXJ9LmFydGljbGUtLWNvbnRlbnQgI3Nzby1hdXRoLWZsb3cgLnJvdy5yaWdodHtqdXN0aWZ5LWNvbnRlbnQ6ZW5kfS5hcnRpY2xlLS1jb250ZW50ICNzc28tYXV0aC1mbG93IC5hdXRoLWl0ZW17bWFyZ2luOjFyZW07Y29sb3I6I2ZmZjtkaXNwbGF5OmZsZXg7anVzdGlmeS1jb250ZW50OmNlbnRlcjthbGlnbi1pdGVtczpjZW50ZXI7ZmxleC1kaXJlY3Rpb246Y29sdW1uO3BhZGRpbmc6MS41cmVtIDEuNzVyZW07YmFja2dyb3VuZDpsaW5lYXItZ3JhZGllbnQoLTEzNWRlZywgIzhFMUZDMywjMDY2RkM1KTtib3JkZXItcmFkaXVzOjRweDttaW4td2lkdGg6MjIwcHg7bWluLWhlaWdodDo5MHB4O3RleHQtYWxpZ246Y2VudGVyO2ZvbnQtd2VpZ2h0OjUwMH0uYXJ0aWNsZS0tY29udGVudCAjc3NvLWF1dGgtZmxvdyAjYXV0aDA6OmFmdGVyLC5hcnRpY2xlLS1jb250ZW50ICNzc28tYXV0aC1mbG93ICNpZHA6OmFmdGVye2Rpc3BsYXk6YmxvY2s7bWFyZ2luLXRvcDouMjVyZW07Zm9udC13ZWlnaHQ6bm9ybWFsO2ZvbnQtc3R5bGU6aXRhbGljO2ZvbnQtc2l6ZToxcmVtO29wYWNpdHk6Ljc1fS5hcnRpY2xlLS1jb250ZW50ICNzc28tYXV0aC1mbG93ICNhdXRoMDo6YWZ0ZXJ7Y29udGVudDpcIk1hbmFnZWQgYnkgSW5mbHV4RGF0YVwifS5hcnRpY2xlLS1jb250ZW50ICNzc28tYXV0aC1mbG93ICNpZHA6OmFmdGVye2NvbnRlbnQ6XCJNYW5hZ2VkIGJ5IHlvdVwifS5hcnRpY2xlLS1jb250ZW50ICNzc28tYXV0aC1mbG93IC5hcnJvd3tkaXNwbGF5OmJsb2NrO3dpZHRoOjY1cHg7aGVpZ2h0OjY1cHg7cG9zaXRpb246cmVsYXRpdmU7ZGlzcGxheTpmbGV4O2p1c3RpZnktY29udGVudDpjZW50ZXI7YWxpZ24taXRlbXM6Y2VudGVyO2NvbG9yOiNENEQ3REQ7Ym9yZGVyLXN0eWxlOmRhc2hlZDtib3JkZXItY29sb3I6I0Q0RDdERH0uYXJ0aWNsZS0tY29udGVudCAjc3NvLWF1dGgtZmxvdyAuYXJyb3cucmlnaHQ6YmVmb3JlLC5hcnRpY2xlLS1jb250ZW50ICNzc28tYXV0aC1mbG93IC5hcnJvdy5sZWZ0OmJlZm9yZXtjb250ZW50OmF0dHIoc3RlcCk7YmFja2dyb3VuZDojMTQxNDFGO2ZvbnQtc2l6ZTouOXJlbTt3aWR0aDoxLjVyZW07aGVpZ2h0OjEuNXJlbTtib3JkZXI6MXB4IHNvbGlkICNENEQ3REQ7dGV4dC1hbGlnbjpjZW50ZXI7bGluZS1oZWlnaHQ6MS41cmVtO2JvcmRlci1yYWRpdXM6NTAlfS5hcnRpY2xlLS1jb250ZW50ICNzc28tYXV0aC1mbG93IC5hcnJvdy5yaWdodDphZnRlciwuYXJ0aWNsZS0tY29udGVudCAjc3NvLWF1dGgtZmxvdyAuYXJyb3cubGVmdDphZnRlcntwb3NpdGlvbjphYnNvbHV0ZTtsaW5lLWhlaWdodDowO2ZvbnQtc2l6ZToxLjM1cmVtfS5hcnRpY2xlLS1jb250ZW50ICNzc28tYXV0aC1mbG93IC5hcnJvdy5yaWdodHtib3JkZXItcmFkaXVzOjAgMTAwJSAwIDA7Ym9yZGVyLXdpZHRoOjJweCAycHggMCAwO2FsaWduLXNlbGY6ZmxleC1lbmR9LmFydGljbGUtLWNvbnRlbnQgI3Nzby1hdXRoLWZsb3cgLmFycm93LnJpZ2h0OmJlZm9yZXt0cmFuc2xhdGU6NDUlIC00NSV9LmFydGljbGUtLWNvbnRlbnQgI3Nzby1hdXRoLWZsb3cgLmFycm93LnJpZ2h0OmFmdGVye2NvbnRlbnQ6XCLij7dcIjtib3R0b206MDtyaWdodDotLjRyZW19LmFydGljbGUtLWNvbnRlbnQgI3Nzby1hdXRoLWZsb3cgLmFycm93LmxlZnR7Ym9yZGVyLXJhZGl1czowIDAgMCAxMDAlO2JvcmRlci13aWR0aDowIDAgMnB4IDJweDthbGlnbi1zZWxmOmZsZXgtc3RhcnR9LmFydGljbGUtLWNvbnRlbnQgI3Nzby1hdXRoLWZsb3cgLmFycm93LmxlZnQ6YmVmb3Jle3RyYW5zbGF0ZTotNDUlIDQ1JX0uYXJ0aWNsZS0tY29udGVudCAjc3NvLWF1dGgtZmxvdyAuYXJyb3cubGVmdDphZnRlcntjb250ZW50Olwi4o+2XCI7dG9wOjA7bGVmdDotLjRyZW19QG1lZGlhIChtYXgtd2lkdGg6IDYwMHB4KXsuYXJ0aWNsZS0tY29udGVudCAjc3NvLWF1dGgtZmxvd3ttYXgtd2lkdGg6MzUwcHg7bWFyZ2luOjZyZW0gYXV0b30uYXJ0aWNsZS0tY29udGVudCAjc3NvLWF1dGgtZmxvdyAucm93e2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjttYXJnaW46LTUwcHggMH0uYXJ0aWNsZS0tY29udGVudCAjc3NvLWF1dGgtZmxvdyAuYXV0aC1pdGVte21hcmdpbjouNXJlbSAwfS5hcnRpY2xlLS1jb250ZW50ICNzc28tYXV0aC1mbG93IC5hcnJvd3t3aWR0aDoycmVtO2hlaWdodDo1NXB4fS5hcnRpY2xlLS1jb250ZW50ICNzc28tYXV0aC1mbG93IC5hcnJvdy5yaWdodCwuYXJ0aWNsZS0tY29udGVudCAjc3NvLWF1dGgtZmxvdyAuYXJyb3cubGVmdHtib3JkZXItd2lkdGg6MCAycHggMCAwO2JvcmRlci1yYWRpdXM6MH0uYXJ0aWNsZS0tY29udGVudCAjc3NvLWF1dGgtZmxvdyAuYXJyb3cucmlnaHR7YWxpZ24tc2VsZjpmbGV4LXN0YXJ0O21hcmdpbi1sZWZ0OjRyZW19LmFydGljbGUtLWNvbnRlbnQgI3Nzby1hdXRoLWZsb3cgLmFycm93LnJpZ2h0OmJlZm9yZXt0cmFuc2xhdGU6NjAlIC0xNSV9LmFydGljbGUtLWNvbnRlbnQgI3Nzby1hdXRoLWZsb3cgLmFycm93LmxlZnR7YWxpZ24tc2VsZjpmbGV4LWVuZDttYXJnaW4tcmlnaHQ6NnJlbX0uYXJ0aWNsZS0tY29udGVudCAjc3NvLWF1dGgtZmxvdyAuYXJyb3cubGVmdDpiZWZvcmV7dHJhbnNsYXRlOjYwJSAxMCV9LmFydGljbGUtLWNvbnRlbnQgI3Nzby1hdXRoLWZsb3cgLmFycm93LmxlZnQ6YWZ0ZXJ7cmlnaHQ6LS40cmVtO2xlZnQ6dW5zZXR9fS5hcnRpY2xlLS1jb250ZW50ICNxdWl4LWRvd25zYW1wbGUtcGlwZWxpbmV7bWFyZ2luOjNyZW0gYXV0b30uYXJ0aWNsZS0tY29udGVudCAjcXVpeC1kb3duc2FtcGxlLXBpcGVsaW5lIC5sb2dvLXJvd3tkaXNwbGF5OmZsZXh9LmFydGljbGUtLWNvbnRlbnQgI3F1aXgtZG93bnNhbXBsZS1waXBlbGluZSAubG9nby1yb3cudG9we2p1c3RpZnktY29udGVudDpmbGV4LXN0YXJ0O21hcmdpbi1ib3R0b206LTIuNnJlbX0uYXJ0aWNsZS0tY29udGVudCAjcXVpeC1kb3duc2FtcGxlLXBpcGVsaW5lIC5sb2dvLXJvdy50b3AgLnF1aXgtY29ubmVjdG9ye21hcmdpbi10b3A6LjVyZW19LmFydGljbGUtLWNvbnRlbnQgI3F1aXgtZG93bnNhbXBsZS1waXBlbGluZSAubG9nby1yb3cuYm90dG9te2p1c3RpZnktY29udGVudDpmbGV4LWVuZDttYXJnaW4tdG9wOi0yLjZyZW19LmFydGljbGUtLWNvbnRlbnQgI3F1aXgtZG93bnNhbXBsZS1waXBlbGluZSAuaW5mbHV4ZGItY29ubmVjdG9ye2Rpc3BsYXk6ZmxleDtmbGV4LWRpcmVjdGlvbjpjb2x1bW47YWxpZ24taXRlbXM6Y2VudGVyO3dpZHRoOjI5JX0uYXJ0aWNsZS0tY29udGVudCAjcXVpeC1kb3duc2FtcGxlLXBpcGVsaW5lIC5pbmZsdXhkYi1sb2dve2JhY2tncm91bmQ6dXJsKFwiL3N2Z3MvaW5mbHV4ZGItbG9nby13aGl0ZS5zdmdcIik7d2lkdGg6MTc1cHg7aGVpZ2h0OjU1cHg7YmFja2dyb3VuZC1yZXBlYXQ6bm8tcmVwZWF0O2JhY2tncm91bmQtc2l6ZTpjb250YWluO3Bvc2l0aW9uOnJlbGF0aXZlfS5hcnRpY2xlLS1jb250ZW50ICNxdWl4LWRvd25zYW1wbGUtcGlwZWxpbmUgLmluZmx1eGRiLWxvZ286YWZ0ZXJ7Y29udGVudDphdHRyKGRhdGEtcHJlY2lzaW9uKSBcIiBkYXRhIGRiXCI7cG9zaXRpb246YWJzb2x1dGU7Ym90dG9tOi0ycHg7bGVmdDo0NXB4O3dpZHRoOjEwMCU7Y29sb3I6I0Q0RDdERDtmb250LXN0eWxlOml0YWxpYztmb250LXNpemU6MXJlbX0uYXJ0aWNsZS0tY29udGVudCAjcXVpeC1kb3duc2FtcGxlLXBpcGVsaW5lIC5xdWl4LWNvbm5lY3RvcntkaXNwbGF5OmJsb2NrO2hlaWdodDo4MHB4O3dpZHRoOjIwcHg7cG9zaXRpb246cmVsYXRpdmV9LmFydGljbGUtLWNvbnRlbnQgI3F1aXgtZG93bnNhbXBsZS1waXBlbGluZSAucXVpeC1jb25uZWN0b3I6YmVmb3Jle2NvbnRlbnQ6XCJcIjtkaXNwbGF5OmJsb2NrO2hlaWdodDoxMDAlO3dpZHRoOjEwMCU7YmFja2dyb3VuZC1jb2xvcjojRDREN0REO21hc2staW1hZ2U6dXJsKFwiL3N2Z3MvcXVpeC1jb25uZWN0b3ItcGx1Zy5zdmdcIik7bWFzay1yZXBlYXQ6bm8tcmVwZWF0O2JhY2tncm91bmQtc2l6ZTpjb250YWlufS5hcnRpY2xlLS1jb250ZW50ICNxdWl4LWRvd25zYW1wbGUtcGlwZWxpbmUgLnF1aXgtY29ubmVjdG9yOmFmdGVye2NvbnRlbnQ6XCJDb25uZWN0b3JcIjtkaXNwbGF5OmJsb2NrO3Bvc2l0aW9uOmFic29sdXRlO3RvcDoxLjVyZW07bGVmdDoxLjc1cmVtO3BhZGRpbmc6LjI1cmVtIC41cmVtO2NvbG9yOiNENEQ3REQ7Zm9udC1zaXplOjFyZW07Zm9udC1zdHlsZTppdGFsaWM7YmFja2dyb3VuZC1jb2xvcjojMTQxNDFGO2JvcmRlci1yYWRpdXM6NnB4O2JvcmRlcjoxLjVweCBzb2xpZCByZ2JhKDIxMiwyMTUsMjIxLDAuNSk7Ym94LXNoYWRvdzoycHggMnB4IDZweCByZ2JhKDE1LDE0LDIxLDAuNSl9LmFydGljbGUtLWNvbnRlbnQgI3F1aXgtZG93bnNhbXBsZS1waXBlbGluZSAucXVpeC1zdHJlYW0tY29udGFpbmVye2Rpc3BsYXk6ZmxleDtmbGV4LWRpcmVjdGlvbjpyb3c7Ym9yZGVyOjJweCBkYXNoZWQgI0Q0RDdERDtiYWNrZ3JvdW5kOnJnYmEoMjEyLDIxNSwyMjEsMC4xKTtib3JkZXItcmFkaXVzOjhweDtwYWRkaW5nOjIuNXJlbTtqdXN0aWZ5LWNvbnRlbnQ6c3BhY2UtYmV0d2VlbjthbGlnbi1pdGVtczpjZW50ZXJ9LmFydGljbGUtLWNvbnRlbnQgI3F1aXgtZG93bnNhbXBsZS1waXBlbGluZSAucXVpeC1zdHJlYW0tY29tcG9uZW50e3BhZGRpbmc6MXJlbTtib3JkZXItcmFkaXVzOjRweDtib3JkZXItc3R5bGU6ZGFzaGVkO2JvcmRlci13aWR0aDoycHg7cG9zaXRpb246cmVsYXRpdmV9LmFydGljbGUtLWNvbnRlbnQgI3F1aXgtZG93bnNhbXBsZS1waXBlbGluZSAucXVpeC1zdHJlYW0tY29tcG9uZW50IHB7bWFyZ2luOjA7bGluZS1oZWlnaHQ6MS4ycmVtO2ZvbnQtc2l6ZToxcmVtO3RleHQtYWxpZ246Y2VudGVyO2NvbG9yOiNGQUZBRkN9LmFydGljbGUtLWNvbnRlbnQgI3F1aXgtZG93bnNhbXBsZS1waXBlbGluZSAucXVpeC1zdHJlYW0tY29tcG9uZW50OmJlZm9yZXtjb250ZW50OnVybChcIi9zdmdzL3F1aXgtcHl0aG9uLWhlYXJ0LnN2Z1wiKTtkaXNwbGF5OmJsb2NrO3Bvc2l0aW9uOmFic29sdXRlO3dpZHRoOjQwcHg7aGVpZ2h0OjQwcHg7dG9wOi0xNXB4O2xlZnQ6LTE1cHg7ZmlsdGVyOmRyb3Atc2hhZG93KDJweCAwcHggMHB4ICMxNDE0MUYpIGRyb3Atc2hhZG93KC0ycHggMHB4IDBweCAjMTQxNDFGKSBkcm9wLXNoYWRvdygwcHggMnB4IDBweCAjMTQxNDFGKSBkcm9wLXNoYWRvdygwcHggLTJweCAwcHggIzE0MTQxRil9LmFydGljbGUtLWNvbnRlbnQgI3F1aXgtZG93bnNhbXBsZS1waXBlbGluZSAucXVpeC1zdHJlYW0tY29tcG9uZW50I3NvdXJjZS1wcm9kdWNlcntiYWNrZ3JvdW5kOnJnYmEoNDIsMTYzLDI1NSwwLjIpO2JvcmRlci1jb2xvcjojMkFBM0ZGfS5hcnRpY2xlLS1jb250ZW50ICNxdWl4LWRvd25zYW1wbGUtcGlwZWxpbmUgLnF1aXgtc3RyZWFtLWNvbXBvbmVudCNkb3duc2FtcGxpbmctcHJvY2Vzc3tiYWNrZ3JvdW5kOnJnYmEoMTkxLDQ3LDIyOSwwLjIpO2JvcmRlci1jb2xvcjojQkYyRkU1fS5hcnRpY2xlLS1jb250ZW50ICNxdWl4LWRvd25zYW1wbGUtcGlwZWxpbmUgLnF1aXgtc3RyZWFtLWNvbXBvbmVudCNzaW5rLWNvbnN1bWVye2JhY2tncm91bmQ6cmdiYSgyNDQsMTQxLDU2LDAuMik7Ym9yZGVyLWNvbG9yOiNGNDhEMzh9LmFydGljbGUtLWNvbnRlbnQgI3F1aXgtZG93bnNhbXBsZS1waXBlbGluZSAuYXJyb3d7bWFyZ2luOi41cmVtIC43NXJlbSAuNXJlbSAuNXJlbTtoZWlnaHQ6MnB4O3dpZHRoOmF1dG87bWluLXdpZHRoOjI1cHg7YmFja2dyb3VuZDojRDREN0REO3Bvc2l0aW9uOnJlbGF0aXZlfS5hcnRpY2xlLS1jb250ZW50ICNxdWl4LWRvd25zYW1wbGUtcGlwZWxpbmUgLmFycm93OmFmdGVye2NvbnRlbnQ6XCLilrZcIjtwb3NpdGlvbjphYnNvbHV0ZTtyaWdodDotNHB4O3RvcDotLjQ4ZW07Zm9udC1zaXplOi43NXJlbTtjb2xvcjojRDREN0REfS5hcnRpY2xlLS1jb250ZW50ICNxdWl4LWRvd25zYW1wbGUtcGlwZWxpbmUgLmthZmthLXRvZ2dsZXtkaXNwbGF5OmZsZXg7anVzdGlmeS1jb250ZW50OmZsZXgtZW5kO3dpZHRoOjYwcHg7bWluLXdpZHRoOjYwcHg7aGVpZ2h0OjQwcHg7Ym9yZGVyLXJhZGl1czoyMHB4O2JhY2tncm91bmQ6IzA3MDcwRTtwb3NpdGlvbjpyZWxhdGl2ZX0uYXJ0aWNsZS0tY29udGVudCAjcXVpeC1kb3duc2FtcGxlLXBpcGVsaW5lIC5rYWZrYS10b2dnbGU6YWZ0ZXJ7Y29udGVudDpcIlRPUElDOlxcYVwiIGF0dHIodG9waWMpO3Bvc2l0aW9uOmFic29sdXRlO3dpZHRoOjIxNSU7Y29sb3I6I0Q0RDdERDt0ZXh0LWFsaWduOmNlbnRlcjtmb250LXN0eWxlOml0YWxpYztib3R0b206LTQycHg7Zm9udC1zaXplOi45cmVtO2xlZnQ6LTYwJTt3aGl0ZS1zcGFjZTpwcmUtd3JhcH0uYXJ0aWNsZS0tY29udGVudCAjcXVpeC1kb3duc2FtcGxlLXBpcGVsaW5lIC5rYWZrYS10b2dnbGUgLnRvZ2dsZS1pY29ue2Rpc3BsYXk6YmxvY2s7aGVpZ2h0OjM0cHg7d2lkdGg6MzRweDttYXJnaW46M3B4O2JvcmRlci1yYWRpdXM6NTAlO2JhY2tncm91bmQ6dXJsKFwiL3N2Z3MvYXBhY2hlLWthZmthLWljb24uc3ZnXCIpO2JhY2tncm91bmQtY29sb3I6I2ZmZjtiYWNrZ3JvdW5kLXNpemU6ODYlO2JhY2tncm91bmQtcG9zaXRpb246OTAlO2JhY2tncm91bmQtcmVwZWF0Om5vLXJlcGVhdH0uYXJ0aWNsZS0tY29udGVudCAjcXVpeC1kb3duc2FtcGxlLXBpcGVsaW5lICNxdWl4LWJyYW5kLWljb25ze2hlaWdodDo1MHB4O2Rpc3BsYXk6ZmxleDthbGlnbi1pdGVtczpmbGV4LXN0YXJ0O21hcmdpbi10b3A6LTNyZW19LmFydGljbGUtLWNvbnRlbnQgI3F1aXgtZG93bnNhbXBsZS1waXBlbGluZSAjcXVpeC1icmFuZC1pY29ucz4qe2hlaWdodDo0NXB4O2Rpc3BsYXk6aW5saW5lLWJsb2NrO2JhY2tncm91bmQtY29sb3I6IzBGMEUxNTtib3JkZXItcmFkaXVzOjZweDttYXJnaW4tcmlnaHQ6LjI1cmVtO2JveC1zaGFkb3c6MCAxcHggMTBweCByZ2JhKDI1NSwyNTUsMjU1LDAuMSl9LmFydGljbGUtLWNvbnRlbnQgI3F1aXgtZG93bnNhbXBsZS1waXBlbGluZSAjcXVpeC1icmFuZC1pY29ucz4qIGltZ3ttYXJnaW46MDtib3gtc2hhZG93Om5vbmU7Ym9yZGVyLXJhZGl1czowO2hlaWdodDoxMDAlfS5hcnRpY2xlLS1jb250ZW50ICNxdWl4LWRvd25zYW1wbGUtcGlwZWxpbmUgI3F1aXgtYnJhbmQtaWNvbnMgLnF1aXgtbG9nb3twYWRkaW5nOi43NXJlbX0uYXJ0aWNsZS0tY29udGVudCAjcXVpeC1kb3duc2FtcGxlLXBpcGVsaW5lICNxdWl4LWJyYW5kLWljb25zIC5xdWl4LXN0cmVhbXMtbG9nb3twb3NpdGlvbjpyZWxhdGl2ZTtwYWRkaW5nOi42cmVtfS5hcnRpY2xlLS1jb250ZW50ICNxdWl4LWRvd25zYW1wbGUtcGlwZWxpbmUgI3F1aXgtYnJhbmQtaWNvbnMgLnF1aXgtc3RyZWFtcy1sb2dvOjphZnRlcntjb250ZW50OlwiUXVpeFxcQSBTdHJlYW1zXCI7ZGlzcGxheTppbmxpbmUtYmxvY2s7d2hpdGUtc3BhY2U6cHJlLXdyYXA7Zm9udC1zaXplOi45MnJlbTtmb250LXdlaWdodDo1MDA7Y29sb3I6I2ZmZjtsaW5lLWhlaWdodDouOXJlbTttYXJnaW4tbGVmdDouMTVyZW19LmFydGljbGUtLWNvbnRlbnQgdGFibGUud2luZG93LWZyYW1lLXVuaXRzLmdyb3VwcyAuZ3JvdXB7cG9zaXRpb246cmVsYXRpdmU7b3V0bGluZS1zdHlsZTpzb2xpZDtvdXRsaW5lLXdpZHRoOjNweDtvdXRsaW5lLW9mZnNldDotNXB4O2JvcmRlci1yYWRpdXM6MTBweH0uYXJ0aWNsZS0tY29udGVudCB0YWJsZS53aW5kb3ctZnJhbWUtdW5pdHMuZ3JvdXBzIC5ncm91cDo6YmVmb3Jle2NvbnRlbnQ6XCJSb3cgR3JvdXBcIjtkaXNwbGF5OmJsb2NrO3BhZGRpbmc6LjI1cmVtIC41cmVtO3Bvc2l0aW9uOmFic29sdXRlO3RvcDozcHg7bGVmdDozcHg7Ym9yZGVyLXJhZGl1czo0cHg7Y29sb3I6I2ZmZjtmb250LXNpemU6LjhyZW07Zm9udC13ZWlnaHQ6Ym9sZDt0ZXh0LXRyYW5zZm9ybTp1cHBlcmNhc2U7bGV0dGVyLXNwYWNpbmc6LjAyZW07Ym94LXNoYWRvdzo0cHggNHB4IDRweCAjMTQxNDFGfS5hcnRpY2xlLS1jb250ZW50IHRhYmxlLndpbmRvdy1mcmFtZS11bml0cy5ncm91cHMgLmdyb3VwIHRkOm50aC1jaGlsZCgyKSwuYXJ0aWNsZS0tY29udGVudCB0YWJsZS53aW5kb3ctZnJhbWUtdW5pdHMuZ3JvdXBzIC5ncm91cCB0ZDpudGgtY2hpbGQoMyl7Zm9udC13ZWlnaHQ6Ym9sZDt0ZXh0LWRlY29yYXRpb246dW5kZXJsaW5lO3RleHQtZGVjb3JhdGlvbi10aGlja25lc3M6MnB4O3RleHQtdW5kZXJsaW5lLW9mZnNldDo1cHh9LmFydGljbGUtLWNvbnRlbnQgdGFibGUud2luZG93LWZyYW1lLXVuaXRzLmdyb3VwcyAuZ3JvdXA6bnRoLW9mLXR5cGUoMSl7b3V0bGluZS1jb2xvcjojZDMwOTcxfS5hcnRpY2xlLS1jb250ZW50IHRhYmxlLndpbmRvdy1mcmFtZS11bml0cy5ncm91cHMgLmdyb3VwOm50aC1vZi10eXBlKDEpOjpiZWZvcmV7YmFja2dyb3VuZDojZDMwOTcxfS5hcnRpY2xlLS1jb250ZW50IHRhYmxlLndpbmRvdy1mcmFtZS11bml0cy5ncm91cHMgLmdyb3VwOm50aC1vZi10eXBlKDEpIHRkOm50aC1jaGlsZCgyKSwuYXJ0aWNsZS0tY29udGVudCB0YWJsZS53aW5kb3ctZnJhbWUtdW5pdHMuZ3JvdXBzIC5ncm91cDpudGgtb2YtdHlwZSgxKSB0ZDpudGgtY2hpbGQoMyl7dGV4dC1kZWNvcmF0aW9uLWNvbG9yOiNkMzA5NzF9LmFydGljbGUtLWNvbnRlbnQgdGFibGUud2luZG93LWZyYW1lLXVuaXRzLmdyb3VwcyAuZ3JvdXA6bnRoLW9mLXR5cGUoMil7b3V0bGluZS1jb2xvcjojOWIyYWZmfS5hcnRpY2xlLS1jb250ZW50IHRhYmxlLndpbmRvdy1mcmFtZS11bml0cy5ncm91cHMgLmdyb3VwOm50aC1vZi10eXBlKDIpOjpiZWZvcmV7YmFja2dyb3VuZDojOWIyYWZmfS5hcnRpY2xlLS1jb250ZW50IHRhYmxlLndpbmRvdy1mcmFtZS11bml0cy5ncm91cHMgLmdyb3VwOm50aC1vZi10eXBlKDIpIHRkOm50aC1jaGlsZCgyKSwuYXJ0aWNsZS0tY29udGVudCB0YWJsZS53aW5kb3ctZnJhbWUtdW5pdHMuZ3JvdXBzIC5ncm91cDpudGgtb2YtdHlwZSgyKSB0ZDpudGgtY2hpbGQoMyl7dGV4dC1kZWNvcmF0aW9uLWNvbG9yOiM5YjJhZmZ9LmFydGljbGUtLWNvbnRlbnQgdGFibGUud2luZG93LWZyYW1lLXVuaXRzLmdyb3VwcyAuZ3JvdXA6bnRoLW9mLXR5cGUoMyl7b3V0bGluZS1jb2xvcjojMkFBM0ZGfS5hcnRpY2xlLS1jb250ZW50IHRhYmxlLndpbmRvdy1mcmFtZS11bml0cy5ncm91cHMgLmdyb3VwOm50aC1vZi10eXBlKDMpOjpiZWZvcmV7YmFja2dyb3VuZDojMkFBM0ZGfS5hcnRpY2xlLS1jb250ZW50IHRhYmxlLndpbmRvdy1mcmFtZS11bml0cy5ncm91cHMgLmdyb3VwOm50aC1vZi10eXBlKDMpIHRkOm50aC1jaGlsZCgyKSwuYXJ0aWNsZS0tY29udGVudCB0YWJsZS53aW5kb3ctZnJhbWUtdW5pdHMuZ3JvdXBzIC5ncm91cDpudGgtb2YtdHlwZSgzKSB0ZDpudGgtY2hpbGQoMyl7dGV4dC1kZWNvcmF0aW9uLWNvbG9yOiMyQUEzRkZ9LmFydGljbGUtLWNvbnRlbnQgdGFibGUud2luZG93LWZyYW1lLXVuaXRzLmdyb3VwcyAuZ3JvdXA6bnRoLW9mLXR5cGUoNCl7b3V0bGluZS1jb2xvcjojMEIzQThEfS5hcnRpY2xlLS1jb250ZW50IHRhYmxlLndpbmRvdy1mcmFtZS11bml0cy5ncm91cHMgLmdyb3VwOm50aC1vZi10eXBlKDQpOjpiZWZvcmV7YmFja2dyb3VuZDojMEIzQThEfS5hcnRpY2xlLS1jb250ZW50IHRhYmxlLndpbmRvdy1mcmFtZS11bml0cy5ncm91cHMgLmdyb3VwOm50aC1vZi10eXBlKDQpIHRkOm50aC1jaGlsZCgyKSwuYXJ0aWNsZS0tY29udGVudCB0YWJsZS53aW5kb3ctZnJhbWUtdW5pdHMuZ3JvdXBzIC5ncm91cDpudGgtb2YtdHlwZSg0KSB0ZDpudGgtY2hpbGQoMyl7dGV4dC1kZWNvcmF0aW9uLWNvbG9yOiMwQjNBOER9LmFydGljbGUtLWNvbnRlbnQgdGFibGUud2luZG93LWZyYW1lLXVuaXRzLmdyb3Vwcy13aXRoLWZyYW1lIC5mcmFtZSwuYXJ0aWNsZS0tY29udGVudCB0YWJsZS53aW5kb3ctZnJhbWUtdW5pdHMuZ3JvdXBzLXdpdGgtZnJhbWUgdHIuY3VycmVudC1yb3d7cG9zaXRpb246cmVsYXRpdmU7b3V0bGluZS1zdHlsZTpzb2xpZDtvdXRsaW5lLXdpZHRoOjNweDtvdXRsaW5lLW9mZnNldDotNXB4O2JvcmRlci1yYWRpdXM6MTBweH0uYXJ0aWNsZS0tY29udGVudCB0YWJsZS53aW5kb3ctZnJhbWUtdW5pdHMuZ3JvdXBzLXdpdGgtZnJhbWUgLmZyYW1lOjphZnRlciwuYXJ0aWNsZS0tY29udGVudCB0YWJsZS53aW5kb3ctZnJhbWUtdW5pdHMuZ3JvdXBzLXdpdGgtZnJhbWUgdHIuY3VycmVudC1yb3c6OmFmdGVye2Rpc3BsYXk6YmxvY2s7cGFkZGluZzouMjVyZW0gLjVyZW07cG9zaXRpb246YWJzb2x1dGU7dG9wOjNweDtsZWZ0OjNweDtib3JkZXItcmFkaXVzOjRweDtjb2xvcjojZmZmO2ZvbnQtc2l6ZTouOHJlbTtmb250LXdlaWdodDpib2xkO3RleHQtdHJhbnNmb3JtOnVwcGVyY2FzZTtsZXR0ZXItc3BhY2luZzouMDJlbTtib3gtc2hhZG93OjRweCA0cHggNHB4ICMxNDE0MUZ9LmFydGljbGUtLWNvbnRlbnQgdGFibGUud2luZG93LWZyYW1lLXVuaXRzLmdyb3Vwcy13aXRoLWZyYW1lIC5mcmFtZSB0cjpudGgtY2hpbGQobiArIDEpOm50aC1jaGlsZCgtbiArIDMpIHRkLC5hcnRpY2xlLS1jb250ZW50IHRhYmxlLndpbmRvdy1mcmFtZS11bml0cy5ncm91cHMtd2l0aC1mcmFtZSB0ci5jdXJyZW50LXJvdyB0cjpudGgtY2hpbGQobiArIDEpOm50aC1jaGlsZCgtbiArIDMpIHRke3RleHQtZGVjb3JhdGlvbi1jb2xvcjojZDMwOTcxfS5hcnRpY2xlLS1jb250ZW50IHRhYmxlLndpbmRvdy1mcmFtZS11bml0cy5ncm91cHMtd2l0aC1mcmFtZSAuZnJhbWUgdHI6bnRoLWNoaWxkKG4gKyA0KTpudGgtY2hpbGQoLW4gKyA2KSB0ZCwuYXJ0aWNsZS0tY29udGVudCB0YWJsZS53aW5kb3ctZnJhbWUtdW5pdHMuZ3JvdXBzLXdpdGgtZnJhbWUgdHIuY3VycmVudC1yb3cgdHI6bnRoLWNoaWxkKG4gKyA0KTpudGgtY2hpbGQoLW4gKyA2KSB0ZHt0ZXh0LWRlY29yYXRpb24tY29sb3I6I0JGMkZFNX0uYXJ0aWNsZS0tY29udGVudCB0YWJsZS53aW5kb3ctZnJhbWUtdW5pdHMuZ3JvdXBzLXdpdGgtZnJhbWUgLmZyYW1lIHRyOm50aC1jaGlsZChuICsgNyk6bnRoLWNoaWxkKC1uICsgOCkgdGQsLmFydGljbGUtLWNvbnRlbnQgdGFibGUud2luZG93LWZyYW1lLXVuaXRzLmdyb3Vwcy13aXRoLWZyYW1lIHRyLmN1cnJlbnQtcm93IHRyOm50aC1jaGlsZChuICsgNyk6bnRoLWNoaWxkKC1uICsgOCkgdGR7dGV4dC1kZWNvcmF0aW9uLWNvbG9yOiMyQUEzRkZ9LmFydGljbGUtLWNvbnRlbnQgdGFibGUud2luZG93LWZyYW1lLXVuaXRzLmdyb3Vwcy13aXRoLWZyYW1lIC5mcmFtZSB0ZDpudGgtY2hpbGQobiArIDIpOm50aC1jaGlsZCgtbiArIDMpLC5hcnRpY2xlLS1jb250ZW50IHRhYmxlLndpbmRvdy1mcmFtZS11bml0cy5ncm91cHMtd2l0aC1mcmFtZSB0ci5jdXJyZW50LXJvdyB0ZDpudGgtY2hpbGQobiArIDIpOm50aC1jaGlsZCgtbiArIDMpe2ZvbnQtd2VpZ2h0OmJvbGQ7dGV4dC1kZWNvcmF0aW9uOnVuZGVybGluZTt0ZXh0LWRlY29yYXRpb24tdGhpY2tuZXNzOjJweDt0ZXh0LXVuZGVybGluZS1vZmZzZXQ6NXB4fS5hcnRpY2xlLS1jb250ZW50IHRhYmxlLndpbmRvdy1mcmFtZS11bml0cy5ncm91cHMtd2l0aC1mcmFtZSB0ci5jdXJyZW50LXJvd3tvdXRsaW5lLWNvbG9yOiNkMzA5NzF9LmFydGljbGUtLWNvbnRlbnQgdGFibGUud2luZG93LWZyYW1lLXVuaXRzLmdyb3Vwcy13aXRoLWZyYW1lIHRyLmN1cnJlbnQtcm93OjphZnRlcntjb250ZW50OlwiQ3VycmVudCBSb3dcIjtiYWNrZ3JvdW5kOiNkMzA5NzF9LmFydGljbGUtLWNvbnRlbnQgdGFibGUud2luZG93LWZyYW1lLXVuaXRzLmdyb3Vwcy13aXRoLWZyYW1lIHRyLmN1cnJlbnQtcm93IHRke3RleHQtZGVjb3JhdGlvbi1jb2xvcjojMkFBM0ZGICFpbXBvcnRhbnR9LmFydGljbGUtLWNvbnRlbnQgdGFibGUud2luZG93LWZyYW1lLXVuaXRzLmdyb3Vwcy13aXRoLWZyYW1lIC5mcmFtZXtvdXRsaW5lLWNvbG9yOiM5YjJhZmZ9LmFydGljbGUtLWNvbnRlbnQgdGFibGUud2luZG93LWZyYW1lLXVuaXRzLmdyb3Vwcy13aXRoLWZyYW1lIC5mcmFtZTo6YWZ0ZXJ7Y29udGVudDpcIkZyYW1lXCI7YmFja2dyb3VuZDojOWIyYWZmfS5hcnRpY2xlLS1jb250ZW50IHRhYmxlLndpbmRvdy1mcmFtZS11bml0cy5ncm91cHMtd2l0aC1mcmFtZSAuZ3JvdXB7cG9zaXRpb246cmVsYXRpdmU7b3V0bGluZS1jb2xvcjojMEIzQThEfS5hcnRpY2xlLS1jb250ZW50IHRhYmxlLndpbmRvdy1mcmFtZS11bml0cy5ncm91cHMtd2l0aC1mcmFtZSAuZ3JvdXAgdGQ6bnRoLWNoaWxkKDIpLC5hcnRpY2xlLS1jb250ZW50IHRhYmxlLndpbmRvdy1mcmFtZS11bml0cy5ncm91cHMtd2l0aC1mcmFtZSAuZ3JvdXAgdGQ6bnRoLWNoaWxkKDMpe2ZvbnQtd2VpZ2h0OmJvbGQ7dGV4dC1kZWNvcmF0aW9uOnVuZGVybGluZTt0ZXh0LWRlY29yYXRpb24tdGhpY2tuZXNzOjJweDt0ZXh0LXVuZGVybGluZS1vZmZzZXQ6NXB4O3RleHQtZGVjb3JhdGlvbi1jb2xvcjojMEIzQThEfS5hcnRpY2xlLS1jb250ZW50IHRhYmxlLndpbmRvdy1mcmFtZS11bml0cy5yYW5nZS1pbnRlcnZhbCAuZnJhbWUsLmFydGljbGUtLWNvbnRlbnQgdGFibGUud2luZG93LWZyYW1lLXVuaXRzLnJhbmdlLWludGVydmFsIHRyLmN1cnJlbnQtcm93e3Bvc2l0aW9uOnJlbGF0aXZlO291dGxpbmUtc3R5bGU6c29saWQ7b3V0bGluZS13aWR0aDozcHg7b3V0bGluZS1vZmZzZXQ6LTVweDtib3JkZXItcmFkaXVzOjEwcHh9LmFydGljbGUtLWNvbnRlbnQgdGFibGUud2luZG93LWZyYW1lLXVuaXRzLnJhbmdlLWludGVydmFsIC5mcmFtZSB0ZDpmaXJzdC1jaGlsZCwuYXJ0aWNsZS0tY29udGVudCB0YWJsZS53aW5kb3ctZnJhbWUtdW5pdHMucmFuZ2UtaW50ZXJ2YWwgdHIuY3VycmVudC1yb3cgdGQ6Zmlyc3QtY2hpbGR7Zm9udC13ZWlnaHQ6Ym9sZDt0ZXh0LWRlY29yYXRpb246dW5kZXJsaW5lO3RleHQtZGVjb3JhdGlvbi10aGlja25lc3M6MnB4O3RleHQtdW5kZXJsaW5lLW9mZnNldDo1cHg7dGV4dC1kZWNvcmF0aW9uLWNvbG9yOiM5YjJhZmZ9LmFydGljbGUtLWNvbnRlbnQgdGFibGUud2luZG93LWZyYW1lLXVuaXRzLnJhbmdlLWludGVydmFsIC5mcmFtZTo6YWZ0ZXIsLmFydGljbGUtLWNvbnRlbnQgdGFibGUud2luZG93LWZyYW1lLXVuaXRzLnJhbmdlLWludGVydmFsIHRyLmN1cnJlbnQtcm93OjphZnRlcntkaXNwbGF5OmJsb2NrO3BhZGRpbmc6LjI1cmVtIC41cmVtO3Bvc2l0aW9uOmFic29sdXRlO3RvcDozcHg7cmlnaHQ6M3B4O2JvcmRlci1yYWRpdXM6NHB4O2NvbG9yOiNmZmY7Zm9udC1zaXplOi44cmVtO2ZvbnQtd2VpZ2h0OmJvbGQ7dGV4dC10cmFuc2Zvcm06dXBwZXJjYXNlO2xldHRlci1zcGFjaW5nOi4wMmVtO2JveC1zaGFkb3c6LTRweCA0cHggNHB4ICMxNDE0MUZ9LmFydGljbGUtLWNvbnRlbnQgdGFibGUud2luZG93LWZyYW1lLXVuaXRzLnJhbmdlLWludGVydmFsIHRyLmN1cnJlbnQtcm93e291dGxpbmUtY29sb3I6I2QzMDk3MX0uYXJ0aWNsZS0tY29udGVudCB0YWJsZS53aW5kb3ctZnJhbWUtdW5pdHMucmFuZ2UtaW50ZXJ2YWwgdHIuY3VycmVudC1yb3cgdGQ6Zmlyc3QtY2hpbGR7dGV4dC1kZWNvcmF0aW9uLWNvbG9yOiNkMzA5NzF9LmFydGljbGUtLWNvbnRlbnQgdGFibGUud2luZG93LWZyYW1lLXVuaXRzLnJhbmdlLWludGVydmFsIHRyLmN1cnJlbnQtcm93OjphZnRlcntjb250ZW50OlwiQ3VycmVudCBSb3dcIjtiYWNrZ3JvdW5kOiNkMzA5NzE7Ym94LXNoYWRvdzotNHB4IDRweCA0cHggIzI2MjczOH0uYXJ0aWNsZS0tY29udGVudCB0YWJsZS53aW5kb3ctZnJhbWUtdW5pdHMucmFuZ2UtaW50ZXJ2YWwgLmZyYW1le291dGxpbmUtY29sb3I6IzliMmFmZn0uYXJ0aWNsZS0tY29udGVudCB0YWJsZS53aW5kb3ctZnJhbWUtdW5pdHMucmFuZ2UtaW50ZXJ2YWwgLmZyYW1lOjphZnRlcntjb250ZW50OlwiRnJhbWVcIjtiYWNrZ3JvdW5kOiM5YjJhZmZ9LmFydGljbGUtLWNvbnRlbnQgdGFibGUud2luZG93LWZyYW1lLXVuaXRzLnJhbmdlLW51bWVyaWMgLmZyYW1lLC5hcnRpY2xlLS1jb250ZW50IHRhYmxlLndpbmRvdy1mcmFtZS11bml0cy5yYW5nZS1udW1lcmljIHRyLmN1cnJlbnQtcm93LC5hcnRpY2xlLS1jb250ZW50IHRhYmxlLndpbmRvdy1mcmFtZS11bml0cy5yb3dzIC5mcmFtZSwuYXJ0aWNsZS0tY29udGVudCB0YWJsZS53aW5kb3ctZnJhbWUtdW5pdHMucm93cyB0ci5jdXJyZW50LXJvd3twb3NpdGlvbjpyZWxhdGl2ZTtvdXRsaW5lLXN0eWxlOnNvbGlkO291dGxpbmUtd2lkdGg6M3B4O291dGxpbmUtb2Zmc2V0Oi01cHg7Ym9yZGVyLXJhZGl1czoxMHB4fS5hcnRpY2xlLS1jb250ZW50IHRhYmxlLndpbmRvdy1mcmFtZS11bml0cy5yYW5nZS1udW1lcmljIC5mcmFtZTo6YWZ0ZXIsLmFydGljbGUtLWNvbnRlbnQgdGFibGUud2luZG93LWZyYW1lLXVuaXRzLnJhbmdlLW51bWVyaWMgdHIuY3VycmVudC1yb3c6OmFmdGVyLC5hcnRpY2xlLS1jb250ZW50IHRhYmxlLndpbmRvdy1mcmFtZS11bml0cy5yb3dzIC5mcmFtZTo6YWZ0ZXIsLmFydGljbGUtLWNvbnRlbnQgdGFibGUud2luZG93LWZyYW1lLXVuaXRzLnJvd3MgdHIuY3VycmVudC1yb3c6OmFmdGVye2Rpc3BsYXk6YmxvY2s7cGFkZGluZzouMjVyZW0gLjVyZW07cG9zaXRpb246YWJzb2x1dGU7dG9wOjNweDtsZWZ0OjNweDtib3JkZXItcmFkaXVzOjRweDtjb2xvcjojZmZmO2ZvbnQtc2l6ZTouOHJlbTtmb250LXdlaWdodDpib2xkO3RleHQtdHJhbnNmb3JtOnVwcGVyY2FzZTtsZXR0ZXItc3BhY2luZzouMDJlbTtib3gtc2hhZG93OjRweCA0cHggNHB4ICMxNDE0MUZ9LmFydGljbGUtLWNvbnRlbnQgdGFibGUud2luZG93LWZyYW1lLXVuaXRzLnJhbmdlLW51bWVyaWMgdHIuY3VycmVudC1yb3csLmFydGljbGUtLWNvbnRlbnQgdGFibGUud2luZG93LWZyYW1lLXVuaXRzLnJvd3MgdHIuY3VycmVudC1yb3d7b3V0bGluZS1jb2xvcjojZDMwOTcxfS5hcnRpY2xlLS1jb250ZW50IHRhYmxlLndpbmRvdy1mcmFtZS11bml0cy5yYW5nZS1udW1lcmljIHRyLmN1cnJlbnQtcm93OjphZnRlciwuYXJ0aWNsZS0tY29udGVudCB0YWJsZS53aW5kb3ctZnJhbWUtdW5pdHMucm93cyB0ci5jdXJyZW50LXJvdzo6YWZ0ZXJ7Y29udGVudDpcIkN1cnJlbnQgUm93XCI7YmFja2dyb3VuZDojZDMwOTcxfS5hcnRpY2xlLS1jb250ZW50IHRhYmxlLndpbmRvdy1mcmFtZS11bml0cy5yYW5nZS1udW1lcmljIC5mcmFtZSwuYXJ0aWNsZS0tY29udGVudCB0YWJsZS53aW5kb3ctZnJhbWUtdW5pdHMucm93cyAuZnJhbWV7b3V0bGluZS1jb2xvcjojOWIyYWZmfS5hcnRpY2xlLS1jb250ZW50IHRhYmxlLndpbmRvdy1mcmFtZS11bml0cy5yYW5nZS1udW1lcmljIC5mcmFtZTo6YWZ0ZXIsLmFydGljbGUtLWNvbnRlbnQgdGFibGUud2luZG93LWZyYW1lLXVuaXRzLnJvd3MgLmZyYW1lOjphZnRlcntjb250ZW50OlwiRnJhbWVcIjtiYWNrZ3JvdW5kOiM5YjJhZmZ9LmFydGljbGUtLWNvbnRlbnQgdGFibGUud2luZG93LWZyYW1lLXVuaXRzLnJhbmdlLW51bWVyaWMgLmZyYW1lIHRkOm50aC1jaGlsZCgzKXtmb250LXdlaWdodDpib2xkO3RleHQtZGVjb3JhdGlvbjp1bmRlcmxpbmU7dGV4dC1kZWNvcmF0aW9uLXRoaWNrbmVzczoycHg7dGV4dC11bmRlcmxpbmUtb2Zmc2V0OjVweDt0ZXh0LWRlY29yYXRpb24tY29sb3I6IzliMmFmZn0uYXJ0aWNsZS0tY29udGVudCB0YWJsZS53aW5kb3ctZnJhbWUtdW5pdHMucmFuZ2UtbnVtZXJpYyAuZnJhbWUgdHIuY3VycmVudC1yb3cgdGQ6bnRoLWNoaWxkKDMpe3RleHQtZGVjb3JhdGlvbi1jb2xvcjojZDMwOTcxfUBtZWRpYSAobWF4LXdpZHRoOiAxMjgwcHgpey5hcnRpY2xlLS1jb250ZW50ICNxdWl4LWRvd25zYW1wbGUtcGlwZWxpbmV7bWF4LXdpZHRoOjMyNXB4fS5hcnRpY2xlLS1jb250ZW50ICNxdWl4LWRvd25zYW1wbGUtcGlwZWxpbmUgLmxvZ28tcm93IC5pbmZsdXhkYi1jb25uZWN0b3J7d2lkdGg6MTAwJX0uYXJ0aWNsZS0tY29udGVudCAjcXVpeC1kb3duc2FtcGxlLXBpcGVsaW5lIC5xdWl4LXN0cmVhbS1jb250YWluZXJ7ZmxleC1kaXJlY3Rpb246Y29sdW1ufS5hcnRpY2xlLS1jb250ZW50ICNxdWl4LWRvd25zYW1wbGUtcGlwZWxpbmUgLmFycm93e21hcmdpbjouNXJlbSAuNXJlbSAuNzVyZW0gLjVyZW07d2lkdGg6MnB4O21pbi13aWR0aDoycHg7aGVpZ2h0OmF1dG87bWluLWhlaWdodDoyNXB4fS5hcnRpY2xlLS1jb250ZW50ICNxdWl4LWRvd25zYW1wbGUtcGlwZWxpbmUgLmFycm93OmFmdGVye2NvbnRlbnQ6XCLilrxcIjtyaWdodDotNC4yNXB4O2JvdHRvbTotLjVlbTt0b3A6dW5zZXQ7Zm9udC1zaXplOjFyZW19LmFydGljbGUtLWNvbnRlbnQgI3F1aXgtZG93bnNhbXBsZS1waXBlbGluZSAua2Fma2EtdG9nZ2xle21hcmdpbi1ib3R0b206MS41cmVtfS5hcnRpY2xlLS1jb250ZW50ICNxdWl4LWRvd25zYW1wbGUtcGlwZWxpbmUgLmthZmthLXRvZ2dsZTphZnRlcntjb250ZW50OlwiVE9QSUM6IFwiIGF0dHIodG9waWMpO3dpZHRoOjQwMCU7Ym90dG9tOi0yNXB4O2xlZnQ6LTE1MCV9LmFydGljbGUtLWNvbnRlbnQgI3F1aXgtZG93bnNhbXBsZS1waXBlbGluZSAjcXVpeC1icmFuZC1pY29uc3ttYXJnaW4tdG9wOjEuNXJlbTthbGlnbi1pdGVtczpjZW50ZXI7anVzdGlmeS1jb250ZW50OmNlbnRlcn19QG1lZGlhIChtYXgtd2lkdGg6IDYwMHB4KXsuYXJ0aWNsZS0tY29udGVudCAjc2hhcmQtZGlhZ3JhbXtmbGV4LWRpcmVjdGlvbjpyb3d9LmFydGljbGUtLWNvbnRlbnQgI3NoYXJkLWRpYWdyYW0gLnBlcmlvZHN7ZmxleC1kaXJlY3Rpb246Y29sdW1uO21hcmdpbi1yaWdodDouNXJlbX0uYXJ0aWNsZS0tY29udGVudCAjc2hhcmQtZGlhZ3JhbSAudGltZWxpbmV7ZmxleC1kaXJlY3Rpb246Y29sdW1uO3BhZGRpbmc6LjVyZW0gMH0uYXJ0aWNsZS0tY29udGVudCAjc2hhcmQtZGlhZ3JhbSAudGltZWxpbmUgLmludGVydmFse3dpZHRoOi43NXJlbTtib3JkZXItdG9wOm5vbmU7Ym9yZGVyLXJpZ2h0Om5vbmU7Ym9yZGVyLWxlZnQ6MXB4IHNvbGlkICNENEQ3REQ7Ym9yZGVyLWJvdHRvbToxcHggc29saWQgI0Q0RDdERH0uYXJ0aWNsZS0tY29udGVudCAjc2hhcmQtZGlhZ3JhbSAudGltZWxpbmUgLmludGVydmFsOmZpcnN0LWNoaWxke2JvcmRlci10b3A6MXB4IHNvbGlkICNENEQ3RER9LmFydGljbGUtLWNvbnRlbnQgI3NoYXJkLWRpYWdyYW0gLnNoYXJkLWdyb3Vwc3tmbGV4LWRpcmVjdGlvbjpjb2x1bW59LmFydGljbGUtLWNvbnRlbnQgI3NoYXJkLWRpYWdyYW0gLnNoYXJkLWdyb3VwcyAuc2hhcmQtZ3JvdXB7bWFyZ2luOi4yNXJlbSAwfS5hcnRpY2xlLS1jb250ZW50IC5zZXJpZXMtZGlhZ3JhbXt3aWR0aDphdXRvfS5hcnRpY2xlLS1jb250ZW50ICNpbmZsdXhxbC13aW5kb3ctZGlhZ3JhbXtqdXN0aWZ5LWNvbnRlbnQ6ZmxleC1zdGFydDttaW4td2lkdGg6MzAwcHh9LmFydGljbGUtLWNvbnRlbnQgI2luZmx1eHFsLXdpbmRvdy1kaWFncmFtIC53aW5kb3ctaG91cnt3aWR0aDo2MHB4fS5hcnRpY2xlLS1jb250ZW50ICNpbmZsdXhxbC13aW5kb3ctZGlhZ3JhbSAud2luZG93LWhvdXIgcHt0cmFuc2Zvcm06cm90YXRlKC05MGRlZyk7cG9zaXRpb246cmVsYXRpdmU7bWFyZ2luLXRvcDo4Ljc1cmVtO2ZvbnQtc2l6ZTouOTVyZW19LmFydGljbGUtLWNvbnRlbnQgI2luZmx1eHFsLXdpbmRvdy1kaWFncmFtIC53aW5kb3ctaG91ciBwOjpiZWZvcmV7dHJhbnNmb3JtOnJvdGF0ZSg5MGRlZyk7cG9zaXRpb246YWJzb2x1dGU7dG9wOi0uNXJlbTtsZWZ0OjQuNXJlbX0uYXJ0aWNsZS0tY29udGVudCAjaW5mbHV4cWwtd2luZG93LWRpYWdyYW0gLndpbmRvdy1ob3VyIHA6OmFmdGVye2xlZnQ6MH19LmFydGljbGUtLWNvbnRlbnQgLmluZmx1eGRidS1iYW5uZXJ7YmFja2dyb3VuZC1jb2xvcjojMDIwYTQ3O21hcmdpbjoyLjVyZW0gMCAzcmVtO3BhZGRpbmc6Mi41cmVtO2JvcmRlci1yYWRpdXM6MS41cmVtO2JveC1zaGFkb3c6MnB4IDJweCA4cHggIzA3MDcwRTtiYWNrZ3JvdW5kLWltYWdlOnVybChcIi9zdmdzL2hvbWUtYmctY2lyY2xlLXJpZ2h0LnN2Z1wiKTtiYWNrZ3JvdW5kLXNpemU6Y292ZXI7ZGlzcGxheTpmbGV4O2p1c3RpZnktY29udGVudDpzcGFjZS1iZXR3ZWVuO2FsaWduLWl0ZW1zOmNlbnRlcn0uYXJ0aWNsZS0tY29udGVudCAuaW5mbHV4ZGJ1LWJhbm5lciAuaW5mbHV4ZGJ1LWxvZ297bWF4LXdpZHRoOjE3MHB4O21hcmdpbjowIDAgMXJlbTtib3gtc2hhZG93Om5vbmV9LmFydGljbGUtLWNvbnRlbnQgLmluZmx1eGRidS1iYW5uZXIgLmJhbm5lci1jb250ZW50e21hcmdpbi1yaWdodDoxcmVtO21heC13aWR0aDo2NSV9LmFydGljbGUtLWNvbnRlbnQgLmluZmx1eGRidS1iYW5uZXIgLmJhbm5lci1jb250ZW50IGg0e21hcmdpbi10b3A6LTEuNzVyZW07Zm9udC1zaXplOjEuNXJlbTtmb250LXN0eWxlOm5vcm1hbDtjb2xvcjojZmZmfS5hcnRpY2xlLS1jb250ZW50IC5pbmZsdXhkYnUtYmFubmVyIC5iYW5uZXItY29udGVudCBwe21hcmdpbi1ib3R0b206MDtjb2xvcjojZmZmfS5hcnRpY2xlLS1jb250ZW50IC5pbmZsdXhkYnUtYmFubmVyIC5iYW5uZXItY29udGVudCBwIHN0cm9uZ3tjb2xvcjojZmZmfS5hcnRpY2xlLS1jb250ZW50IC5pbmZsdXhkYnUtYmFubmVyIC5iYW5uZXItY3Rhe3Bvc2l0aW9uOnJlbGF0aXZlfS5hcnRpY2xlLS1jb250ZW50IC5pbmZsdXhkYnUtYmFubmVyIC5iYW5uZXItY3RhIGF7ZGlzcGxheTpibG9jaztwb3NpdGlvbjpyZWxhdGl2ZTtwYWRkaW5nOjFyZW0gMS41cmVtO2NvbG9yOiNmZmY7dGV4dC1hbGlnbjpjZW50ZXI7Ym9yZGVyLXJhZGl1czoycHg7YmFja2dyb3VuZDpsaW5lYXItZ3JhZGllbnQoNDVkZWcsICNkMzA5NzEsIzliMmFmZik7ei1pbmRleDoxfS5hcnRpY2xlLS1jb250ZW50IC5pbmZsdXhkYnUtYmFubmVyIC5iYW5uZXItY3RhIGE6YWZ0ZXJ7Y29udGVudDpcIlwiO3Bvc2l0aW9uOmFic29sdXRlO3BhZGRpbmc6MDt0b3A6MDtyaWdodDowO3dpZHRoOjEwMCU7aGVpZ2h0OjEwMCU7Ym9yZGVyLXJhZGl1czoycHg7YmFja2dyb3VuZDpsaW5lYXItZ3JhZGllbnQoMjcwZGVnLCAjNzcxY2M3LCNiMjAyNWIpO3RyYW5zaXRpb246b3BhY2l0eSAuMnM7ei1pbmRleDotMTtvcGFjaXR5OjB9LmFydGljbGUtLWNvbnRlbnQgLmluZmx1eGRidS1iYW5uZXIgLmJhbm5lci1jdGEgYTpob3ZlcjphZnRlcntvcGFjaXR5OjF9QG1lZGlhIChtYXgtd2lkdGg6IDYwMHB4KXsuYXJ0aWNsZS0tY29udGVudCAuaW5mbHV4ZGJ1LWJhbm5lcntmbGV4LWRpcmVjdGlvbjpjb2x1bW59LmFydGljbGUtLWNvbnRlbnQgLmluZmx1eGRidS1iYW5uZXIgLmJhbm5lci1jb250ZW50e21heC13aWR0aDoxMDAlfS5hcnRpY2xlLS1jb250ZW50IC5pbmZsdXhkYnUtYmFubmVyIC5iYW5uZXItY29udGVudCBoNHttYXJnaW4tdG9wOi0xLjI1cmVtfS5hcnRpY2xlLS1jb250ZW50IC5pbmZsdXhkYnUtYmFubmVyIC5iYW5uZXItY3Rhe21hcmdpbi10b3A6MS43NXJlbTt3aWR0aDoxMDAlfX0uYXJ0aWNsZS0tY29udGVudCAuaW5mbHV4cWwtdGFibGUtbWV0YSBwe2ZvbnQtc2l6ZTouOXJlbTtsaW5lLWhlaWdodDoxLjI1cmVtfS5hcnRpY2xlLS1jb250ZW50IC5pbmZsdXhxbC10YWJsZS1tZXRhIHA6bGFzdC1jaGlsZHttYXJnaW4tYm90dG9tOjByZW19LmFydGljbGUtLWNvbnRlbnQgdGFibGUrLmluZmx1eHFsLXRhYmxlLW1ldGF7bWFyZ2luLXRvcDotMS41cmVtfS5hcnRpY2xlLS1jb250ZW50IC5rZXliaW5kaW5ne2ZvbnQtZmFtaWx5OlwiUHJveGltYSBOb3ZhXCIsc2Fucy1zZXJpZn0uYXJ0aWNsZS0tY29udGVudCAua2V5YmluZGluZyBjb2Rle2ZvbnQtZmFtaWx5OlwiUHJveGltYSBOb3ZhXCIsc2Fucy1zZXJpZn0uYXJ0aWNsZS0tY29udGVudCAua2V5YmluZGluZy5vc3ggY29kZXtmb250LWZhbWlseTotYXBwbGUtc3lzdGVtLEJsaW5rTWFjU3lzdGVtRm9udCxcIlByb3hpbWEgTm92YVwiLHNhbnMtc2VyaWYsXCJIZWx2ZXRpY2EgTmV1ZVwiLEFyaWFsLHNhbnMtc2VyaWZ9LmFydGljbGUtLWNvbnRlbnQgLmtleWJpbmRpbmcgY29kZS5vc3h7Zm9udC1mYW1pbHk6LWFwcGxlLXN5c3RlbSxCbGlua01hY1N5c3RlbUZvbnQsXCJQcm94aW1hIE5vdmFcIixzYW5zLXNlcmlmLFwiSGVsdmV0aWNhIE5ldWVcIixBcmlhbCxzYW5zLXNlcmlmfS5hcnRpY2xlLS1jb250ZW50ICNsaXN0LWZpbHRlcnN7ZGlzcGxheTpmbGV4O2ZsZXgtZmxvdzpyb3cgd3JhcDthbGlnbi1pdGVtczpmbGV4LXN0YXJ0fS5hcnRpY2xlLS1jb250ZW50ICNsaXN0LWZpbHRlcnMgLmZpbHRlci1jYXRlZ29yeXtmbGV4OjEgMSAyMDBweDttYXJnaW46MCAxLjI1cmVtIDEuMjVyZW0gMDttYXgtd2lkdGg6MzMlfS5hcnRpY2xlLS1jb250ZW50ICNsaXN0LWZpbHRlcnMgLmZpbHRlci1jYXRlZ29yeS50d28tY29sdW1uc3tmbGV4OjEgMiA0MDBweDttYXgtd2lkdGg6NjYlfS5hcnRpY2xlLS1jb250ZW50ICNsaXN0LWZpbHRlcnMgLmZpbHRlci1jYXRlZ29yeS50d28tY29sdW1ucyAuZmlsdGVyLWxpc3R7Y29sdW1uczoyfS5hcnRpY2xlLS1jb250ZW50ICNsaXN0LWZpbHRlcnMgaDV7Ym9yZGVyLWJvdHRvbToxcHggc29saWQgcmdiYSgyMTIsMjE1LDIyMSwwLjI1KTtwYWRkaW5nLWJvdHRvbTouNjVyZW19LmFydGljbGUtLWNvbnRlbnQgI2xpc3QtZmlsdGVycyAuZmlsdGVyLWxpc3R7cGFkZGluZzowO21hcmdpbjouNXJlbSAwIDA7bGlzdC1zdHlsZTpub25lfS5hcnRpY2xlLS1jb250ZW50ICNsaXN0LWZpbHRlcnMgLmZpbHRlci1saXN0IGxpe21hcmdpbjowO2xpbmUtaGVpZ2h0OjEuMzVyZW19LmFydGljbGUtLWNvbnRlbnQgI2xpc3QtZmlsdGVycyBsYWJlbHtkaXNwbGF5OmJsb2NrO3BhZGRpbmc6LjI1cmVtIDA7Y29sb3I6I0Q0RDdERDtwb3NpdGlvbjpyZWxhdGl2ZX0uYXJ0aWNsZS0tY29udGVudCAjbGlzdC1maWx0ZXJzIGxhYmVsOmFmdGVye2NvbnRlbnQ6YXR0cihkYXRhLWNvdW50KTttYXJnaW4tbGVmdDowO2ZvbnQtc2l6ZTouODVyZW07b3BhY2l0eTouNX0uYXJ0aWNsZS0tY29udGVudCAjbGlzdC1maWx0ZXJzIC5jaGVja2JveHtkaXNwbGF5OmlubGluZS1ibG9jaztwb3NpdGlvbjpyZWxhdGl2ZTtoZWlnaHQ6MS4xNWVtO3dpZHRoOjEuMTVlbTtiYWNrZ3JvdW5kOnJnYmEoMjEyLDIxNSwyMjEsMC4wNSk7bWFyZ2luLXJpZ2h0Oi4zcmVtO3ZlcnRpY2FsLWFsaWduOnRleHQtdG9wO2JvcmRlci1yYWRpdXM6MnB4O2N1cnNvcjpwb2ludGVyO2JvcmRlcjoxLjVweCBzb2xpZCByZ2JhKDIxMiwyMTUsMjIxLDAuMik7dXNlci1zZWxlY3Q6bm9uZX0uYXJ0aWNsZS0tY29udGVudCAjbGlzdC1maWx0ZXJzIGlucHV0W3R5cGU9J2NoZWNrYm94J117bWFyZ2luLXJpZ2h0Oi0xLjFyZW07cGFkZGluZzowO3ZlcnRpY2FsLWFsaWduOnRvcDtvcGFjaXR5OjA7Y3Vyc29yOnBvaW50ZXJ9LmFydGljbGUtLWNvbnRlbnQgI2xpc3QtZmlsdGVycyBpbnB1dFt0eXBlPSdjaGVja2JveCddKy5jaGVja2JveDphZnRlcntjb250ZW50OlwiXCI7ZGlzcGxheTpibG9jaztwb3NpdGlvbjphYnNvbHV0ZTtoZWlnaHQ6LjVyZW07d2lkdGg6LjVyZW07Ym9yZGVyLXJhZGl1czo1MCU7YmFja2dyb3VuZDojMDBBM0ZGO3RvcDo1MCU7bGVmdDo1MCU7b3BhY2l0eTowO3RyYW5zZm9ybTpzY2FsZSgyKSB0cmFuc2xhdGUoLTIwJSwgLTIwJSk7dHJhbnNpdGlvbjphbGwgLjJzfS5hcnRpY2xlLS1jb250ZW50ICNsaXN0LWZpbHRlcnMgaW5wdXRbdHlwZT0nY2hlY2tib3gnXTpjaGVja2VkKy5jaGVja2JveDphZnRlcntvcGFjaXR5OjE7dHJhbnNmb3JtOnNjYWxlKDEpIHRyYW5zbGF0ZSgtNTAlLCAtNTAlKX1AbWVkaWEgKG1heC13aWR0aDogMTEwMHB4KXsuYXJ0aWNsZS0tY29udGVudCAjbGlzdC1maWx0ZXJzIC5maWx0ZXItY2F0ZWdvcnl7bWF4LXdpZHRoOjUwJX0uYXJ0aWNsZS0tY29udGVudCAjbGlzdC1maWx0ZXJzIC5maWx0ZXItY2F0ZWdvcnkudHdvLWNvbHVtbnMsLmFydGljbGUtLWNvbnRlbnQgI2xpc3QtZmlsdGVycyAuZmlsdGVyLWNhdGVnb3J5LnRocmVlLWNvbHVtbnN7bWF4LXdpZHRoOjEwMCV9fUBtZWRpYSAobWF4LXdpZHRoOiA2MDBweCl7LmFydGljbGUtLWNvbnRlbnQgI2xpc3QtZmlsdGVycyAuZmlsdGVyLWNhdGVnb3J5e21heC13aWR0aDoxMDAlfX0uYXJ0aWNsZS0tY29udGVudCBvbCwuYXJ0aWNsZS0tY29udGVudCB1bHtwYWRkaW5nLWxlZnQ6MS42cmVtO21hcmdpbjoxcmVtIDAgMS41cmVtIDB9LmFydGljbGUtLWNvbnRlbnQgb2wgb2wsLmFydGljbGUtLWNvbnRlbnQgb2wgdWwsLmFydGljbGUtLWNvbnRlbnQgdWwgb2wsLmFydGljbGUtLWNvbnRlbnQgdWwgdWx7bWFyZ2luOjB9LmFydGljbGUtLWNvbnRlbnQgdWx7bGlzdC1zdHlsZS10eXBlOmRpc2N9LmFydGljbGUtLWNvbnRlbnQgdWwgbGk6YmVmb3Jle2NvbnRlbnQ6XCJcIiAhaW1wb3J0YW50O2Rpc3BsYXk6bm9uZX0uYXJ0aWNsZS0tY29udGVudCB1bCBvbHtsaXN0LXN0eWxlOnJldmVydH0uYXJ0aWNsZS0tY29udGVudCB1bCBvbCBsaTo6bWFya2Vye2ZvbnQtd2VpZ2h0OmJvbGQ7Y29sb3I6I0ZBRkFGQ30uYXJ0aWNsZS0tY29udGVudCBvbHtsaXN0LXN0eWxlOm5vbmU7Y291bnRlci1yZXNldDppdGVtfS5hcnRpY2xlLS1jb250ZW50IG9sIGxpe3Bvc2l0aW9uOnJlbGF0aXZlO2NvdW50ZXItaW5jcmVtZW50Oml0ZW19LmFydGljbGUtLWNvbnRlbnQgb2wgbGk6YmVmb3Jle2NvbnRlbnQ6Y291bnRlcihpdGVtKSBcIi4gXCI7cG9zaXRpb246YWJzb2x1dGU7bGVmdDotMS42ZW07Y29sb3I6I0ZBRkFGQztmb250LXdlaWdodDpib2xkfS5hcnRpY2xlLS1jb250ZW50IG9sIGxpPm9sIGxpOmJlZm9yZXtjb250ZW50OmNvdW50ZXIoaXRlbSwgbG93ZXItbGF0aW4pIFwiLiBcIn0uYXJ0aWNsZS0tY29udGVudCBvbCBsaT5vbCBsaSBvbCBsaTpiZWZvcmV7Y29udGVudDpjb3VudGVyKGl0ZW0pIFwiLiBcIn0uYXJ0aWNsZS0tY29udGVudCBvbCBsaT5vbCBsaSBvbCBsaSBvbCBsaTpiZWZvcmV7Y29udGVudDpjb3VudGVyKGl0ZW0sIGxvd2VyLWxhdGluKSBcIi4gXCJ9LmFydGljbGUtLWNvbnRlbnQgb2wgbGk+b2wgbGkgb2wgbGkgb2wgbGkgb2wgbGk6YmVmb3Jle2NvbnRlbnQ6Y291bnRlcihpdGVtKSBcIi4gXCJ9LmFydGljbGUtLWNvbnRlbnQgb2wgbGkgdWx7Y291bnRlci1yZXNldDppdGVtfS5hcnRpY2xlLS1jb250ZW50IG9sIGxpIHVsPm9se2NvdW50ZXItcmVzZXQ6aXRlbX0uYXJ0aWNsZS0tY29udGVudCBsaXttYXJnaW46LjI1cmVtIDB9LmFydGljbGUtLWNvbnRlbnQgbGk6bm90KDpsYXN0LWNoaWxkKT5wOm9ubHktY2hpbGR7bWFyZ2luLWJvdHRvbTowfS5hcnRpY2xlLS1jb250ZW50IGxpIHArdWwsLmFydGljbGUtLWNvbnRlbnQgbGkgcCtvbHttYXJnaW46LS45cmVtIDAgLjVyZW19LmFydGljbGUtLWNvbnRlbnQgbGkgLmxpc3Qtbm90ZXtmb250LXNpemU6Ljg1cmVtfS5hcnRpY2xlLS1jb250ZW50IGxpIGg0LC5hcnRpY2xlLS1jb250ZW50IGxpIGg1LC5hcnRpY2xlLS1jb250ZW50IGxpIGg2e21hcmdpbi10b3A6MWVtO3BhZGRpbmctdG9wOjB9LmFydGljbGUtLWNvbnRlbnQgZW0ub3A5MCwuYXJ0aWNsZS0tY29udGVudCBzcGFuLm9wOTAsLmFydGljbGUtLWNvbnRlbnQgc3Ryb25nLm9wOTB7b3BhY2l0eTouOX0uYXJ0aWNsZS0tY29udGVudCBlbS5vcDg1LC5hcnRpY2xlLS1jb250ZW50IHNwYW4ub3A4NSwuYXJ0aWNsZS0tY29udGVudCBzdHJvbmcub3A4NXtvcGFjaXR5Oi44NX0uYXJ0aWNsZS0tY29udGVudCBlbS5vcDgwLC5hcnRpY2xlLS1jb250ZW50IHNwYW4ub3A4MCwuYXJ0aWNsZS0tY29udGVudCBzdHJvbmcub3A4MHtvcGFjaXR5Oi44fS5hcnRpY2xlLS1jb250ZW50IGVtLm9wNzUsLmFydGljbGUtLWNvbnRlbnQgc3Bhbi5vcDc1LC5hcnRpY2xlLS1jb250ZW50IHN0cm9uZy5vcDc1e29wYWNpdHk6Ljc1fS5hcnRpY2xlLS1jb250ZW50IGVtLm9wNzAsLmFydGljbGUtLWNvbnRlbnQgc3Bhbi5vcDcwLC5hcnRpY2xlLS1jb250ZW50IHN0cm9uZy5vcDcwe29wYWNpdHk6Ljd9LmFydGljbGUtLWNvbnRlbnQgZW0ub3A2NSwuYXJ0aWNsZS0tY29udGVudCBzcGFuLm9wNjUsLmFydGljbGUtLWNvbnRlbnQgc3Ryb25nLm9wNjV7b3BhY2l0eTouNjV9LmFydGljbGUtLWNvbnRlbnQgZW0ub3A2MCwuYXJ0aWNsZS0tY29udGVudCBzcGFuLm9wNjAsLmFydGljbGUtLWNvbnRlbnQgc3Ryb25nLm9wNjB7b3BhY2l0eTouNn0uYXJ0aWNsZS0tY29udGVudCBlbS5vcDU1LC5hcnRpY2xlLS1jb250ZW50IHNwYW4ub3A1NSwuYXJ0aWNsZS0tY29udGVudCBzdHJvbmcub3A1NXtvcGFjaXR5Oi41NX0uYXJ0aWNsZS0tY29udGVudCBlbS5vcDUwLC5hcnRpY2xlLS1jb250ZW50IHNwYW4ub3A1MCwuYXJ0aWNsZS0tY29udGVudCBzdHJvbmcub3A1MHtvcGFjaXR5Oi41fS5hcnRpY2xlLS1jb250ZW50IGVtLm9wNDUsLmFydGljbGUtLWNvbnRlbnQgc3Bhbi5vcDQ1LC5hcnRpY2xlLS1jb250ZW50IHN0cm9uZy5vcDQ1e29wYWNpdHk6LjQ1fS5hcnRpY2xlLS1jb250ZW50IGVtLm9wNDAsLmFydGljbGUtLWNvbnRlbnQgc3Bhbi5vcDQwLC5hcnRpY2xlLS1jb250ZW50IHN0cm9uZy5vcDQwe29wYWNpdHk6LjR9LmFydGljbGUtLWNvbnRlbnQgZW0ub3AzNSwuYXJ0aWNsZS0tY29udGVudCBzcGFuLm9wMzUsLmFydGljbGUtLWNvbnRlbnQgc3Ryb25nLm9wMzV7b3BhY2l0eTouMzV9LmFydGljbGUtLWNvbnRlbnQgZW0ub3AzMCwuYXJ0aWNsZS0tY29udGVudCBzcGFuLm9wMzAsLmFydGljbGUtLWNvbnRlbnQgc3Ryb25nLm9wMzB7b3BhY2l0eTouM30uYXJ0aWNsZS0tY29udGVudCBlbS5vcDI1LC5hcnRpY2xlLS1jb250ZW50IHNwYW4ub3AyNSwuYXJ0aWNsZS0tY29udGVudCBzdHJvbmcub3AyNXtvcGFjaXR5Oi4yNX0uYXJ0aWNsZS0tY29udGVudCBlbS5vcDIwLC5hcnRpY2xlLS1jb250ZW50IHNwYW4ub3AyMCwuYXJ0aWNsZS0tY29udGVudCBzdHJvbmcub3AyMHtvcGFjaXR5Oi4yfS5hcnRpY2xlLS1jb250ZW50IGVtLm9wMTUsLmFydGljbGUtLWNvbnRlbnQgc3Bhbi5vcDE1LC5hcnRpY2xlLS1jb250ZW50IHN0cm9uZy5vcDE1e29wYWNpdHk6LjE1fS5hcnRpY2xlLS1jb250ZW50IGVtLm9wMTAsLmFydGljbGUtLWNvbnRlbnQgc3Bhbi5vcDEwLC5hcnRpY2xlLS1jb250ZW50IHN0cm9uZy5vcDEwe29wYWNpdHk6LjF9LmFydGljbGUtLWNvbnRlbnQgLnBhZ2UtbmF2LWJ0bnN7ZGlzcGxheTpmbGV4O2p1c3RpZnktY29udGVudDpzcGFjZS1iZXR3ZWVuO21hcmdpbjozcmVtIDAgMXJlbX0uYXJ0aWNsZS0tY29udGVudCAucGFnZS1uYXYtYnRucyAuYnRue2Rpc3BsYXk6ZmxleDttYXgtd2lkdGg6NDklO3RleHQtYWxpZ246Y2VudGVyO2FsaWduLWl0ZW1zOmNlbnRlcn0uYXJ0aWNsZS0tY29udGVudCAucGFnZS1uYXYtYnRucyAuYnRuLnByZXZ7bWFyZ2luOjAgYXV0byAwIDA7cGFkZGluZzouNzVyZW0gMS4yNXJlbSAuNzVyZW0gLjc1cmVtfS5hcnRpY2xlLS1jb250ZW50IC5wYWdlLW5hdi1idG5zIC5idG4ucHJldjpiZWZvcmV7Y29udGVudDpcIlxcZTkwYVwiO2Rpc3BsYXk6aW5saW5lLWJsb2NrO2ZvbnQtZmFtaWx5OlwiaWNvbW9vbi12MlwiO21hcmdpbi1yaWdodDouNXJlbTt2ZXJ0aWNhbC1hbGlnbjptaWRkbGV9LmFydGljbGUtLWNvbnRlbnQgLnBhZ2UtbmF2LWJ0bnMgLmJ0bi5uZXh0e21hcmdpbjowIDAgMCBhdXRvO3BhZGRpbmc6Ljc1cmVtIC43NXJlbSAuNzVyZW0gMS4yNXJlbTtmbGV4LWRpcmVjdGlvbjpyb3ctcmV2ZXJzZX0uYXJ0aWNsZS0tY29udGVudCAucGFnZS1uYXYtYnRucyAuYnRuLm5leHQ6YmVmb3Jle2NvbnRlbnQ6XCJcXGU5MGNcIjtkaXNwbGF5OmlubGluZS1ibG9jaztmb250LWZhbWlseTpcImljb21vb24tdjJcIjttYXJnaW4tbGVmdDouNXJlbTt2ZXJ0aWNhbC1hbGlnbjptaWRkbGV9LmFydGljbGUtLWNvbnRlbnQgLnBhZ2UtbmF2LWJ0bnMgLmJ0bjpvbmx5LWNoaWxke21heC13aWR0aDpub25lfS5hcnRpY2xlLS1jb250ZW50IC5yZWxhdGVke2JvcmRlci10b3A6MXB4IHNvbGlkICMzODM4NDY7cGFkZGluZy10b3A6MS41cmVtfS5hcnRpY2xlLS1jb250ZW50IC5yZWxhdGVkIGg0e2ZvbnQtc2l6ZToxLjE1cmVtfS5hcnRpY2xlLS1jb250ZW50IC5yZWxhdGVkIHVse2xpc3Qtc3R5bGU6bm9uZTtwYWRkaW5nOjA7bWFyZ2luLXRvcDowfS5hcnRpY2xlLS1jb250ZW50IC5yZWxhdGVkIGxpe21hcmdpbjouNXJlbSAwO2xpbmUtaGVpZ2h0OjEuMjVyZW19LmFydGljbGUtLWNvbnRlbnQgLmV4cGFuZC13cmFwcGVyKy5yZWxhdGVke2JvcmRlci10b3A6bm9uZTttYXJnaW4tdG9wOi0ycmVtfS5hcnRpY2xlLS1jb250ZW50ICNyZWxlYXNlLXRvY3ttYXJnaW46MnJlbSAwIDNyZW19LmFydGljbGUtLWNvbnRlbnQgI3JlbGVhc2UtdG9jIHVse2xpc3Qtc3R5bGU6bm9uZTtvdmVyZmxvdzpoaWRkZW47cGFkZGluZy1sZWZ0OjA7bWFyZ2luLWJvdHRvbTouNzVyZW07dHJhbnNpdGlvbjpoZWlnaHQgLjJzfS5hcnRpY2xlLS1jb250ZW50ICNyZWxlYXNlLXRvYyB1bCBsaXtsaW5lLWhlaWdodDoxLjJlbTttYXJnaW46LjVyZW0gMH0uYXJ0aWNsZS0tY29udGVudCAjcmVsZWFzZS10b2MgdWwgbGk6OmFmdGVye2NvbnRlbnQ6YXR0cihkYXRlKTtmb250LXNpemU6MXJlbTttYXJnaW4tbGVmdDouNXJlbTtjb2xvcjpyZ2JhKDIxMiwyMTUsMjIxLDAuNSl9LmFydGljbGUtLWNvbnRlbnQgI3JlbGVhc2UtdG9jLmNsdXN0ZXJlZCB1bHtwYWRkaW5nLWxlZnQ6MS41cmVtfS5hcnRpY2xlLS1jb250ZW50ICNyZWxlYXNlLXRvYy5jbHVzdGVyZWQgdWwgLmNoZWNrcG9pbnR7bWFyZ2luLWxlZnQ6LTEuNXJlbX0uYXJ0aWNsZS0tY29udGVudCAjcmVsZWFzZS10b2MuY2x1c3RlcmVkIHVsIC5jaGVja3BvaW50OjpiZWZvcmV7Y29udGVudDonXFxlOTNiJyAhaW1wb3J0YW50O2ZvbnQtZmFtaWx5OidpY29tb29uLXY0Jztjb2xvcjojZDMwOTcxO2Rpc3BsYXk6aW5saW5lLWJsb2NrO21hcmdpbjowIC41cmVtIDAgMDt2ZXJ0aWNhbC1hbGlnbjp0b3B9LmFydGljbGUtLWNvbnRlbnQgI3JlbGVhc2UtdG9jIC5zaG93LW1vcmV7Y29sb3I6IzAwQTNGRjt0cmFuc2l0aW9uOmNvbG9yIC4ycztmb250LXdlaWdodDo1MDA7Zm9udC1zaXplOjFyZW19LmFydGljbGUtLWNvbnRlbnQgI3JlbGVhc2UtdG9jIC5zaG93LW1vcmU6OmJlZm9yZXtjb250ZW50OidcXGU5MzUnO2ZvbnQtZmFtaWx5OidpY29tb29uLXY0Jztmb250LXNpemU6LjlyZW07Y29sb3I6IzE0MTQxRjtiYWNrZ3JvdW5kOiMwMEEzRkY7Ym9yZGVyLXJhZGl1czo1MCU7bWFyZ2luLXJpZ2h0Oi41cmVtO3RyYW5zaXRpb246YmFja2dyb3VuZCAuMTVzfS5hcnRpY2xlLS1jb250ZW50ICNyZWxlYXNlLXRvYyAuc2hvdy1tb3JlOmhvdmVye2N1cnNvcjpwb2ludGVyO2NvbG9yOiNmZmZ9LmFydGljbGUtLWNvbnRlbnQgI3JlbGVhc2UtdG9jIC5zaG93LW1vcmU6aG92ZXI6OmJlZm9yZXtiYWNrZ3JvdW5kOiNmZmZ9LmFydGljbGUtLWNvbnRlbnQgcHJlOjotd2Via2l0LXNjcm9sbGJhcntiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoNyw3LDE0LDApO3dpZHRoOjEycHg7aGVpZ2h0OjEycHh9LmFydGljbGUtLWNvbnRlbnQgcHJlOjotd2Via2l0LXNjcm9sbGJhci10cmFja3tiYWNrZ3JvdW5kLWNvbG9yOiMwNzA3MEU7Ym9yZGVyLXJhZGl1czowIDAgMnB4IDJweH0uYXJ0aWNsZS0tY29udGVudCBwcmU6Oi13ZWJraXQtc2Nyb2xsYmFyLXRodW1ie2JhY2tncm91bmQtY29sb3I6IzI5MjkzMztib3JkZXI6M3B4IHNvbGlkICMwNzA3MEU7Ym9yZGVyLXJhZGl1czo2cHh9LmFydGljbGUtLWNvbnRlbnQgdGFibGU6Oi13ZWJraXQtc2Nyb2xsYmFye2JhY2tncm91bmQtY29sb3I6cmdiYSgzOCwzOSw1NiwwKTt3aWR0aDoxMnB4O2hlaWdodDoxMnB4fS5hcnRpY2xlLS1jb250ZW50IHRhYmxlOjotd2Via2l0LXNjcm9sbGJhci10cmFja3tiYWNrZ3JvdW5kLWNvbG9yOiMyNjI3Mzg7Ym9yZGVyLXJhZGl1czowIDAgMnB4IDJweH0uYXJ0aWNsZS0tY29udGVudCB0YWJsZTo6LXdlYmtpdC1zY3JvbGxiYXItdGh1bWJ7YmFja2dyb3VuZC1jb2xvcjojMEYwRTE1O2JvcmRlcjozcHggc29saWQgIzI2MjczODtib3JkZXItcmFkaXVzOjZweH0uYXJ0aWNsZS0tY29udGVudCBzdmdbaWRePSdnZW8tczItY2VsbHMtJ117bWF4LXdpZHRoOjI1MHB4fS5hcnRpY2xlLS1jb250ZW50IHN2Z1tpZF49J2dlby1zMi1jZWxscy0nXSAuZ2VvLWNlbGx7ZmlsbDpyZ2JhKDQyLDE2MywyNTUsMC4yNSk7c3Ryb2tlOiMyQUEzRkY7c3Ryb2tlLXdpZHRoOjM7c3Ryb2tlLWxpbmVqb2luOnJvdW5kO3N0cm9rZS1taXRlcmxpbWl0OjEwfS5hcnRpY2xlLS1jb250ZW50IHN2Z1tpZF49J2dlby1zMi1jZWxscy0nXSAuZ2VvLXJlZ2lvbntmaWxsOnJnYmEoMjA2LDg4LDIzNSwwLjM1KTtzdHJva2U6I0NFNThFQjtzdHJva2Utd2lkdGg6MztzdHJva2UtbGluZWpvaW46cm91bmQ7c3Ryb2tlLW1pdGVybGltaXQ6MTB9LmFydGljbGUtLWNvbnRlbnQgc3ZnW2lkXj0nZ2VvLXMyLWNlbGxzLSddIC5nZW8tcG9pbnR7ZmlsbDojRDZGNjIyfS5hcnRpY2xlLS1jb250ZW50IHN2ZyN0aW1lZC1tb3ZpbmctYXZlcmFnZXttYXJnaW46MXJlbSAwIDNyZW07bWF4LXdpZHRoOjQyNXB4fS5hcnRpY2xlLS1jb250ZW50IHN2ZyN0aW1lZC1tb3ZpbmctYXZlcmFnZSAuc3Qwe3N0cm9rZTojRDREN0REfS5hcnRpY2xlLS1jb250ZW50IHN2ZyN0aW1lZC1tb3ZpbmctYXZlcmFnZSAuc3Qxe2ZpbGw6I0Q0RDdERH0uYXJ0aWNsZS0tY29udGVudCBzdmcjdGltZWQtbW92aW5nLWF2ZXJhZ2UgLnN0Mntmb250LWZhbWlseTpcIlByb3hpbWEgTm92YVwiLHNhbnMtc2VyaWY7Zm9udC13ZWlnaHQ6NTAwfS5hcnRpY2xlLS1jb250ZW50IHN2ZyNqb2luLWRpYWdyYW17ZGlzcGxheTpibG9jazttYXgtd2lkdGg6MjUwcHg7bWFyZ2luOjFyZW0gMCAycmVtfS5hcnRpY2xlLS1jb250ZW50IHN2ZyNqb2luLWRpYWdyYW0uY2VudGVye21hcmdpbjowIGF1dG8gMnJlbSBhdXRvfS5hcnRpY2xlLS1jb250ZW50IHN2ZyNqb2luLWRpYWdyYW0uc21hbGx7bWF4LXdpZHRoOjEyNXB4fS5hcnRpY2xlLS1jb250ZW50IHN2ZyNqb2luLWRpYWdyYW0uc21hbGwgcGF0aHtzdHJva2Utd2lkdGg6M30uYXJ0aWNsZS0tY29udGVudCBzdmcjam9pbi1kaWFncmFtIHBhdGh7c3Ryb2tlOiNENEQ3REQ7c3Ryb2tlLXdpZHRoOjI7c3Ryb2tlLW1pdGVybGltaXQ6MTA7ZmlsbDpub25lfS5hcnRpY2xlLS1jb250ZW50IHN2ZyNqb2luLWRpYWdyYW0uaW5uZXIgcGF0aCNjZW50ZXJ7ZmlsbDpyZ2JhKDIxMiwyMTUsMjIxLDAuMzUpfS5hcnRpY2xlLS1jb250ZW50IHN2ZyNqb2luLWRpYWdyYW0ubGVmdCBwYXRoI2xlZnQsLmFydGljbGUtLWNvbnRlbnQgc3ZnI2pvaW4tZGlhZ3JhbS5sZWZ0IHBhdGgjY2VudGVye2ZpbGw6cmdiYSgyMTIsMjE1LDIyMSwwLjM1KX0uYXJ0aWNsZS0tY29udGVudCBzdmcjam9pbi1kaWFncmFtLnJpZ2h0IHBhdGgjY2VudGVyLC5hcnRpY2xlLS1jb250ZW50IHN2ZyNqb2luLWRpYWdyYW0ucmlnaHQgcGF0aCNyaWdodHtmaWxsOnJnYmEoMjEyLDIxNSwyMjEsMC4zNSl9LmFydGljbGUtLWNvbnRlbnQgc3ZnI2pvaW4tZGlhZ3JhbS5mdWxsIHBhdGgjbGVmdCwuYXJ0aWNsZS0tY29udGVudCBzdmcjam9pbi1kaWFncmFtLmZ1bGwgcGF0aCNjZW50ZXIsLmFydGljbGUtLWNvbnRlbnQgc3ZnI2pvaW4tZGlhZ3JhbS5mdWxsIHBhdGgjcmlnaHR7ZmlsbDpyZ2JhKDIxMiwyMTUsMjIxLDAuMzUpfS5hcnRpY2xlLS1jb250ZW50IHN2ZyNpbmZsdXhkYi12My1zdG9yYWdlLWFyY2hpdGVjdHVyZXttYXJnaW46MnJlbSAwIDNyZW07bWF4LXdpZHRoOjc1MHB4fS5hcnRpY2xlLS1jb250ZW50IHN2ZyNpbmZsdXhkYi12My1zdG9yYWdlLWFyY2hpdGVjdHVyZSAuc2hhcGV7ZmlsbDpub25lO3N0cm9rZTojRDREN0REO3N0cm9rZS13aWR0aDoxLjU7c3Ryb2tlLW1pdGVybGltaXQ6MTB9LmFydGljbGUtLWNvbnRlbnQgc3ZnI2luZmx1eGRiLXYzLXN0b3JhZ2UtYXJjaGl0ZWN0dXJlIC5zaGFwZS5vcDcwe29wYWNpdHk6MC43fS5hcnRpY2xlLS1jb250ZW50IHN2ZyNpbmZsdXhkYi12My1zdG9yYWdlLWFyY2hpdGVjdHVyZSAuc2hhcGUub3A1MHtvcGFjaXR5OjAuNX0uYXJ0aWNsZS0tY29udGVudCBzdmcjaW5mbHV4ZGItdjMtc3RvcmFnZS1hcmNoaXRlY3R1cmUgLnNoYXBlLm9wMjV7b3BhY2l0eTowLjI1fS5hcnRpY2xlLS1jb250ZW50IHN2ZyNpbmZsdXhkYi12My1zdG9yYWdlLWFyY2hpdGVjdHVyZSAuc2hhcGUuZGFzaGVke3N0cm9rZS13aWR0aDoxO3N0cm9rZS1kYXNoYXJyYXk6NCwzfS5hcnRpY2xlLS1jb250ZW50IHN2ZyNpbmZsdXhkYi12My1zdG9yYWdlLWFyY2hpdGVjdHVyZSAudGl0bGV7ZmlsbDojOTM5NEZGO2ZvbnQtd2VpZ2h0OjUwMDtmb250LXNpemU6MjBweH0uYXJ0aWNsZS0tY29udGVudCBzdmcjaW5mbHV4ZGItdjMtc3RvcmFnZS1hcmNoaXRlY3R1cmUgLnRleHR7ZmlsbDojRDREN0REO2ZvbnQtc2l6ZToxOHB4fS5hcnRpY2xlLS1jb250ZW50IHN2ZyNpbmZsdXhkYi12My1zdG9yYWdlLWFyY2hpdGVjdHVyZSAudGV4dC5zbWFsbHtmb250LXNpemU6MTZweH0uYXJ0aWNsZS0tY29udGVudCBzdmcjaW5mbHV4ZGItdjMtc3RvcmFnZS1hcmNoaXRlY3R1cmUgLnRleHQuYm9sZHtmb250LXdlaWdodDo1MDA7Y29sb3I6I0ZBRkFGQ30uYXJ0aWNsZS0tY29udGVudCBzdmcjaW5mbHV4ZGItdjMtc3RvcmFnZS1hcmNoaXRlY3R1cmUgLnRleHQuaXRhbGlje2ZvbnQtc3R5bGU6aXRhbGljfS5hcnRpY2xlLS1jb250ZW50IHN2ZyNpbmZsdXhkYi12My1zdG9yYWdlLWFyY2hpdGVjdHVyZSAuZGlhZ3JhbS1saW5le2ZpbGw6bm9uZTtzdHJva2U6I0Q2RjYyMjtzdHJva2Utd2lkdGg6MS41O3N0cm9rZS1taXRlcmxpbWl0OjEwfS5hcnRpY2xlLS1jb250ZW50IHN2ZyNpbmZsdXhkYi12My1zdG9yYWdlLWFyY2hpdGVjdHVyZSAuZGlhZ3JhbS1saW5lLmRhc2hlZHtzdHJva2UtZGFzaGFycmF5OjIsNH0uYXJ0aWNsZS0tY29udGVudCBzdmcjaW5mbHV4ZGItdjMtc3RvcmFnZS1hcmNoaXRlY3R1cmUgLmFycm93e2ZpbGw6I0Q2RjYyMn1AbWVkaWEgKG1heC13aWR0aDogNjAwcHgpey5hcnRpY2xlLS1jb250ZW50IHN2ZyNqb2luLWRpYWdyYW17bWFyZ2luOjFyZW0gYXV0byAycmVtfX0uYXJ0aWNsZS0tY29udGVudCBzcGFuLmtleS1nZW8tY2VsbHtkaXNwbGF5OmlubGluZS1ibG9jazt2ZXJ0aWNhbC1hbGlnbjptaWRkbGU7bWFyZ2luOjAgLjVyZW0gLjI1cmVtIDA7d2lkdGg6MS4xZW07aGVpZ2h0OjEuMWVtO2JvcmRlcjoycHggc29saWQgIzJBQTNGRjtiYWNrZ3JvdW5kOnJnYmEoNDIsMTYzLDI1NSwwLjI1KTtib3JkZXItcmFkaXVzOjJweH0uYXJ0aWNsZS0tY29udGVudCBzcGFuLmtleS1nZW8tcmVnaW9ue2Rpc3BsYXk6aW5saW5lLWJsb2NrO3ZlcnRpY2FsLWFsaWduOm1pZGRsZTttYXJnaW46MCAuNXJlbSAuMjVyZW0gMDt3aWR0aDoxLjFlbTtoZWlnaHQ6MS4xZW07Ym9yZGVyOjJweCBzb2xpZCAjQ0U1OEVCO2JhY2tncm91bmQ6cmdiYSgyMDYsODgsMjM1LDAuMzUpO2JvcmRlci1yYWRpdXM6MnB4fS5hcnRpY2xlLS1jb250ZW50IHNwYW4ua2V5LWdlby1wb2ludHtkaXNwbGF5OmlubGluZS1ibG9jazttYXJnaW46MCAuN3JlbSAwIC4yNXJlbTt3aWR0aDouNjVyZW07aGVpZ2h0Oi42NXJlbTtib3JkZXItcmFkaXVzOjUwJTtiYWNrZ3JvdW5kOiNENkY2MjJ9LmFydGljbGUtLWNvbnRlbnQgLnRhYnMtd3JhcHBlcnttYXJnaW46Mi41cmVtIDAgLjVyZW19LmFydGljbGUtLWNvbnRlbnQgLmNvZGUtdGFicy13cmFwcGVye21hcmdpbjoxLjVyZW0gMCAuNXJlbX0uYXJ0aWNsZS0tY29udGVudCAudGFicyBwe2Rpc3BsYXk6ZmxleDtmbGV4LXdyYXA6d3JhcH0uYXJ0aWNsZS0tY29udGVudCAudGFicyBhe2ZsZXgtZ3JvdzoxO21hcmdpbjoycHg7cG9zaXRpb246cmVsYXRpdmU7Zm9udC1zaXplOjFyZW07Zm9udC13ZWlnaHQ6NTAwO3BhZGRpbmc6LjY1cmVtIDEuMjVyZW07ZGlzcGxheTppbmxpbmUtYmxvY2s7d2hpdGUtc3BhY2U6bm93cmFwO3RleHQtYWxpZ246Y2VudGVyO2NvbG9yOiNBNEE4QjYgIWltcG9ydGFudDtib3JkZXItcmFkaXVzOjJweDtiYWNrZ3JvdW5kLWNvbG9yOiMwNzA3MEU7dHJhbnNpdGlvbjpiYWNrZ3JvdW5kLWNvbG9yIC4ycywgY29sb3IgLjJzO3otaW5kZXg6MX0uYXJ0aWNsZS0tY29udGVudCAudGFicyBhOmFmdGVye2NvbnRlbnQ6XCJcIjtwb3NpdGlvbjphYnNvbHV0ZTtkaXNwbGF5OmJsb2NrO3RvcDowO3JpZ2h0OjA7d2lkdGg6MTAwJTtoZWlnaHQ6MTAwJTtib3JkZXItcmFkaXVzOjJweDtiYWNrZ3JvdW5kOmxpbmVhci1ncmFkaWVudCg0NWRlZywgIzA2NkZDNSwjMDBBM0ZGKTtvcGFjaXR5OjA7dHJhbnNpdGlvbjpvcGFjaXR5IC4yczt6LWluZGV4Oi0xfS5hcnRpY2xlLS1jb250ZW50IC50YWJzIGE6aG92ZXJ7Y29sb3I6I2ZmZiAhaW1wb3J0YW50fS5hcnRpY2xlLS1jb250ZW50IC50YWJzIGE6aG92ZXI6YWZ0ZXJ7b3BhY2l0eToxfS5hcnRpY2xlLS1jb250ZW50IC50YWJzIGEuaXMtYWN0aXZle2NvbG9yOiNmZmYgIWltcG9ydGFudH0uYXJ0aWNsZS0tY29udGVudCAudGFicyBhLmlzLWFjdGl2ZTphZnRlcntvcGFjaXR5OjE7YmFja2dyb3VuZDpsaW5lYXItZ3JhZGllbnQoNDVkZWcsICMwNjZGQzUsIzAwQTNGRil9LmFydGljbGUtLWNvbnRlbnQgLnRhYnMuc21hbGwgcHtqdXN0aWZ5LWNvbnRlbnQ6ZmxleC1zdGFydH0uYXJ0aWNsZS0tY29udGVudCAudGFicy5zbWFsbCBhe2ZsZXgtZ3Jvdzp1bnNldDtwYWRkaW5nOi4zNXJlbSAxcmVtfS5hcnRpY2xlLS1jb250ZW50IC50YWJzLnNtYWxsIC50YWItdmlldy1vdXRwdXR7cGFkZGluZzouNXJlbSAuNXJlbSAwO2ZvbnQtc2l6ZTouOXJlbTtvcGFjaXR5Oi42NTtmb250LXN0eWxlOml0YWxpYzt0cmFuc2l0aW9uOm9wYWNpdHkgLjJzfS5hcnRpY2xlLS1jb250ZW50IC50YWJzLnNtYWxsIC50YWItdmlldy1vdXRwdXQ6YmVmb3Jle2NvbnRlbnQ6XCJcXGU5N2FcIjttYXJnaW4tcmlnaHQ6MC4yNWVtO2ZvbnQtZmFtaWx5OidpY29tb29uLXYzJztmb250LXN0eWxlOm5vcm1hbH0uYXJ0aWNsZS0tY29udGVudCAudGFicy5zbWFsbCBhLmlzLWFjdGl2ZSsudGFiLXZpZXctb3V0cHV0e29wYWNpdHk6MH0uYXJ0aWNsZS0tY29udGVudCAudGFicy5tZWRpdW0gcHtqdXN0aWZ5LWNvbnRlbnQ6ZmxleC1zdGFydH0uYXJ0aWNsZS0tY29udGVudCAudGFicy5tZWRpdW0gYXtmbGV4LWdyb3c6dW5zZXR9LmFydGljbGUtLWNvbnRlbnQgLnRhYnMuZXZlbi13cmFwIGF7ZmxleC1iYXNpczoyNSV9LmFydGljbGUtLWNvbnRlbnQgLmNvZGUtdGFicyBwe21hcmdpbjowO3RleHQtYWxpZ246cmlnaHQ7ZGlzcGxheTpibG9ja30uYXJ0aWNsZS0tY29udGVudCAuY29kZS10YWJzIGF7cGFkZGluZzouMXJlbSAuNzVyZW07bWFyZ2luOjA7Ym9yZGVyLXJhZGl1czoycHggMnB4IDAgMDtkaXNwbGF5OmlubGluZS1ibG9jaztmb250LXNpemU6MXJlbTtiYWNrZ3JvdW5kOiMxNDE0MUY7Y29sb3I6cmdiYSgyNTUsMjU1LDI1NSwwLjUpfS5hcnRpY2xlLS1jb250ZW50IC5jb2RlLXRhYnMgYTpob3Zlcntjb2xvcjojZmZmfS5hcnRpY2xlLS1jb250ZW50IC5jb2RlLXRhYnMgYS5pcy1hY3RpdmV7YmFja2dyb3VuZC1jb2xvcjojMDcwNzBFO2NvbG9yOiNmZmZ9LmFydGljbGUtLWNvbnRlbnQgLmNvZGUtdGFiLWNvbnRlbnR7cGFkZGluZzowfS5hcnRpY2xlLS1jb250ZW50IC5jb2RlLXRhYi1jb250ZW50IHByZXttYXJnaW46MCAwIDNyZW07Ym9yZGVyLXJhZGl1czoycHggMCAycHggMnB4fS5hcnRpY2xlLS1jb250ZW50IC50YWItY29udGVudCwuYXJ0aWNsZS0tY29udGVudCAuY29kZS10YWJzLWNvbnRlbnR7bWFyZ2luOi43NXJlbSAwIDNyZW07d2lkdGg6MTAwJX0uYXJ0aWNsZS0tY29udGVudCAudGFiLWNvbnRlbnQ+Om5vdCh0YWJsZSwuZnMtZGlhZ3JhbSxpbWcpLC5hcnRpY2xlLS1jb250ZW50IC5jb2RlLXRhYnMtY29udGVudD46bm90KHRhYmxlLC5mcy1kaWFncmFtLGltZyl7d2lkdGg6MTAwJTttYXJnaW4tbGVmdDowfS5hcnRpY2xlLS1jb250ZW50IC50YWItY29udGVudCB0YWJsZTpsYXN0LWNoaWxkLC5hcnRpY2xlLS1jb250ZW50IC5jb2RlLXRhYnMtY29udGVudCB0YWJsZTpsYXN0LWNoaWxke21hcmdpbi1ib3R0b206MH0uYXJ0aWNsZS0tY29udGVudCAudGFiLWNvbnRlbnQ6bm90KDpmaXJzdC1vZi10eXBlKXtkaXNwbGF5Om5vbmV9LmFydGljbGUtLWNvbnRlbnQgLmNvZGUtdGFiLWNvbnRlbnQ6bm90KDpmaXJzdC1vZi10eXBlKXtkaXNwbGF5Om5vbmV9LmFydGljbGUtLWNvbnRlbnQgdGFibGV7ZGlzcGxheTppbmxpbmUtYmxvY2s7bWFyZ2luOjFyZW0gMXJlbSAzcmVtIDA7Ym9yZGVyLXNwYWNpbmc6MDtjb2xvcjojRDREN0REO21heC13aWR0aDoxMDAlO292ZXJmbG93LXg6YXV0bztvdmVyZmxvdy15OmhpZGRlbjtib3gtc2hhZG93OjFweCAzcHggMTBweCAjMDcwNzBFO2JvcmRlci1yYWRpdXM6MnB4fS5hcnRpY2xlLS1jb250ZW50IHRhYmxlIHRoLC5hcnRpY2xlLS1jb250ZW50IHRhYmxlIHRke3BhZGRpbmc6Ljg1cmVtIDEuMjVyZW19LmFydGljbGUtLWNvbnRlbnQgdGFibGUgdGhlYWR7YmFja2dyb3VuZDpsaW5lYXItZ3JhZGllbnQoOTBkZWcsICM4RTFGQzMsIzA2NkZDNSk7YmFja2dyb3VuZC1hdHRhY2htZW50OmZpeGVkfS5hcnRpY2xlLS1jb250ZW50IHRhYmxlIHRoe2NvbG9yOiNmZmZ9LmFydGljbGUtLWNvbnRlbnQgdGFibGUgdGggc3Ryb25ne2NvbG9yOiNmZmZ9LmFydGljbGUtLWNvbnRlbnQgdGFibGUgdGg6Zmlyc3QtY2hpbGR7Ym9yZGVyLXJhZGl1czoycHggMCAwIDB9LmFydGljbGUtLWNvbnRlbnQgdGFibGUgdGg6bGFzdC1jaGlsZHtib3JkZXItcmFkaXVzOjAgMnB4IDAgMH0uYXJ0aWNsZS0tY29udGVudCB0YWJsZSB0ZHtmb250LXNpemU6MS4wNXJlbTtsaW5lLWhlaWdodDoxLjVlbX0uYXJ0aWNsZS0tY29udGVudCB0YWJsZSB0ZCBjb2Rle2ZvbnQtc2l6ZTouOTVyZW19LmFydGljbGUtLWNvbnRlbnQgdGFibGUgdHI6bnRoLWNoaWxkKGV2ZW4pe2JhY2tncm91bmQ6IzI2MjczOH0uYXJ0aWNsZS0tY29udGVudCB0YWJsZSB0cjpsYXN0LWNoaWxkIHRkOmZpcnN0LWNoaWxke2JvcmRlci1yYWRpdXM6MCAwIDAgMnB4fS5hcnRpY2xlLS1jb250ZW50IHRhYmxlIHRyOmxhc3QtY2hpbGQgdGQ6bGFzdC1jaGlsZHtib3JkZXItcmFkaXVzOjAgMCAycHggMH0uYXJ0aWNsZS0tY29udGVudCB0YWJsZSBpbWd7bWFyZ2luLWJvdHRvbTowfS5hcnRpY2xlLS1jb250ZW50IHRhYmxlLmNsb3VkLXVybHMgYXt3aGl0ZS1zcGFjZTpub3dyYXB9LmFydGljbGUtLWNvbnRlbnQgdGFibGUuY2xvdWQtdXJscyBwe21hcmdpbjowIDAgLjVyZW0gMH0uYXJ0aWNsZS0tY29udGVudCB0YWJsZS5jbG91ZC11cmxzIHA6bGFzdC1jaGlsZHttYXJnaW4tYm90dG9tOjB9LmFydGljbGUtLWNvbnRlbnQgdGFibGUuY2xvdWQtdXJscyAuY2x1c3Rlci1uYW1le2ZvbnQtd2VpZ2h0OjUwMDtjb2xvcjojRkFGQUZDfS5hcnRpY2xlLS1jb250ZW50IHRhYmxlK3RhYmxle21hcmdpbi10b3A6LTEuNXJlbX0uYXJ0aWNsZS0tY29udGVudCAjZmxhZ3M6bm90KC5uby1zaG9ydGhhbmQpK3RhYmxlIHRkOm50aC1jaGlsZCgyKSBjb2RlLC5hcnRpY2xlLS1jb250ZW50ICNvcHRpb25zOm5vdCgubm8tc2hvcnRoYW5kKSt0YWJsZSB0ZDpudGgtY2hpbGQoMikgY29kZSwuYXJ0aWNsZS0tY29udGVudCAjZ2xvYmFsLWZsYWdzK3RhYmxlIHRkOm50aC1jaGlsZCgyKSBjb2RlLC5hcnRpY2xlLS1jb250ZW50ICNnbG9iYWwtb3B0aW9ucyt0YWJsZSB0ZDpudGgtY2hpbGQoMikgY29kZSwuYXJ0aWNsZS0tY29udGVudCAuc2hvcnRoYW5kLWZsYWdzK3RhYmxlIHRkOm50aC1jaGlsZCgyKSBjb2Rle21hcmdpbi1sZWZ0Oi0ycmVtfS5hcnRpY2xlLS1jb250ZW50IHAudGFibGUtZ3JvdXAta2V5e21hcmdpbjoxcmVtIDAgLS43NXJlbTtmb250LXdlaWdodDo1MDA7Zm9udC1zaXplOi45NXJlbX0uYXJ0aWNsZS0tY29udGVudCB0YWJsZSsudGFibGUtZ3JvdXAta2V5e21hcmdpbi10b3A6LTJyZW19LmFydGljbGUtLWNvbnRlbnQgdGFibGUuZmx1eC1pbmZsdXhkYi12ZXJzaW9ucyB0Ym9keXtkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246Y29sdW1uLXJldmVyc2V9LmFydGljbGUtLWNvbnRlbnQgdGFibGUuZmx1eC1pbmZsdXhkYi12ZXJzaW9ucyB0Ym9keSB0cntkaXNwbGF5OmZsZXg7anVzdGlmeS1jb250ZW50OnNwYWNlLWJldHdlZW59LmFydGljbGUtLWNvbnRlbnQgLnRhZ3N7Ym9yZGVyLXRvcDoxcHggc29saWQgIzM4Mzg0NjtwYWRkaW5nLXRvcDoxLjc1cmVtO21hcmdpbjoycmVtIDAgMXJlbX0uYXJ0aWNsZS0tY29udGVudCAudGFncyAudGFne2JhY2tncm91bmQ6IzA3MDcwRTttYXJnaW46LjEycmVtIDA7cGFkZGluZzouNHJlbSAuNjVyZW07Zm9udC1zdHlsZTppdGFsaWM7Zm9udC13ZWlnaHQ6NTAwO2NvbG9yOnJnYmEoMjEyLDIxNSwyMjEsMC43NSkgIWltcG9ydGFudDtmb250LXNpemU6LjlyZW07Ym9yZGVyLXJhZGl1czoxcmVtfS5hcnRpY2xlLS1jb250ZW50IC50YWdzIC50YWc6YWZ0ZXJ7Ym9yZGVyLXJhZGl1czoxcmVtO2JhY2tncm91bmQ6bGluZWFyLWdyYWRpZW50KDQ1ZGVnLCAjQkYyRkU1LCM5Mzk0RkYpfS5hcnRpY2xlLS1jb250ZW50IC50YWdzIC50YWc6aG92ZXJ7Y29sb3I6I2ZmZiAhaW1wb3J0YW50fS5hcnRpY2xlLS1jb250ZW50IC5yZWxhdGVkKy50YWdzLC5hcnRpY2xlLS1jb250ZW50IC5leHBhbmQtd3JhcHBlcisudGFnc3tib3JkZXI6bm9uZTtwYWRkaW5nLXRvcDowO21hcmdpbjoxLjVyZW0gMCAxcmVtfS5hcnRpY2xlLS1jb250ZW50IC5wbHVnaW4tY2FyZHtwb3NpdGlvbjpyZWxhdGl2ZTtwYWRkaW5nOjFyZW0gMS41cmVtO21hcmdpbi1ib3R0b206LjVyZW07anVzdGlmeS1jb250ZW50OmNlbnRlcjthbGlnbi1pdGVtczpjZW50ZXI7YmFja2dyb3VuZDpyZ2JhKDcsNywxNCwwLjQpO2JvcmRlci1yYWRpdXM6MnB4fS5hcnRpY2xlLS1jb250ZW50IC5wbHVnaW4tY2FyZCBoM3twYWRkaW5nOjA7bWFyZ2luLXRvcDouMjVyZW19LmFydGljbGUtLWNvbnRlbnQgLnBsdWdpbi1jYXJkLm5ldyBoMzphZnRlcntjb250ZW50OlwiTmV3XCI7bWFyZ2luLWxlZnQ6LjNyZW07cGFkZGluZzouMjVyZW0gLjVyZW07Zm9udC1zdHlsZTppdGFsaWM7Y29sb3I6I0Q2RjYyMjtmb250LXNpemU6MS4ycmVtO29wYWNpdHk6MX0uYXJ0aWNsZS0tY29udGVudCAucGx1Z2luLWNhcmQgcC5tZXRhe21hcmdpbjouNzVyZW0gMDtmb250LXdlaWdodDo1MDA7bGluZS1oZWlnaHQ6MS43NXJlbX0uYXJ0aWNsZS0tY29udGVudCAucGx1Z2luLWNhcmQgcC5tZXRhIC5kZXByZWNhdGVke21hcmdpbi1sZWZ0Oi41cmVtO2ZvbnQtc3R5bGU6aXRhbGljO2NvbG9yOiNlOTB9LmFydGljbGUtLWNvbnRlbnQgLnBsdWdpbi1jYXJkIC5pbmZvPnA6bGFzdC1jaGlsZHttYXJnaW4tYm90dG9tOi41cmVtfS5hcnRpY2xlLS1jb250ZW50IC5wbHVnaW4tY2FyZCAuaW5mbz51bDpsYXN0LWNoaWxke21hcmdpbi1ib3R0b206LjVyZW19LmFydGljbGUtLWNvbnRlbnQgLnBsdWdpbi1jYXJkIC5pbmZvPm9sOmxhc3QtY2hpbGR7bWFyZ2luLWJvdHRvbTouNXJlbX0uYXJ0aWNsZS0tY29udGVudCAucGx1Z2luLWNhcmQgLnBsdWdpbi1saW5re3Bvc2l0aW9uOmFic29sdXRlO3RvcDowO3JpZ2h0OjAuNXJlbTtvcGFjaXR5OjAuMjU7dHJhbnNpdGlvbjpvcGFjaXR5IC4ycywgYmFja2dyb3VuZCAuMnMsIGNvbG9yIC4ycztiYWNrZ3JvdW5kOmxpbmVhci1ncmFkaWVudCg0NWRlZywgIzA2NkZDNSwjMDBBM0ZGKX0uYXJ0aWNsZS0tY29udGVudCAucGx1Z2luLWNhcmQ6aG92ZXIgLnBsdWdpbi1saW5re29wYWNpdHk6MTtiYWNrZ3JvdW5kOmxpbmVhci1ncmFkaWVudCg0NWRlZywgIzA2NkZDNSwjMDBBM0ZGKX0uYXJ0aWNsZS0tY29udGVudCAucGx1Z2luLWNhcmQgYmxvY2txdW90ZXtib3JkZXItY29sb3I6IzAwQTNGRjtiYWNrZ3JvdW5kOnJnYmEoMCwxNjMsMjU1LDAuMTIpfS5hcnRpY2xlLS1jb250ZW50IC5wbHVnaW4tY2FyZCBibG9ja3F1b3RlIGgzLC5hcnRpY2xlLS1jb250ZW50IC5wbHVnaW4tY2FyZCBibG9ja3F1b3RlIGg0LC5hcnRpY2xlLS1jb250ZW50IC5wbHVnaW4tY2FyZCBibG9ja3F1b3RlIGg1LC5hcnRpY2xlLS1jb250ZW50IC5wbHVnaW4tY2FyZCBibG9ja3F1b3RlIGg2e2NvbG9yOiNmZmZ9LmFydGljbGUtLWNvbnRlbnQgLnBsdWdpbi1jYXJkIGJsb2NrcXVvdGUgcCwuYXJ0aWNsZS0tY29udGVudCAucGx1Z2luLWNhcmQgYmxvY2txdW90ZSBsaXtjb2xvcjojQkVGMEZGO2ZvbnQtc2l6ZToxcmVtO2ZvbnQtc3R5bGU6bm9ybWFsfS5hcnRpY2xlLS1jb250ZW50IC5wbHVnaW4tY2FyZCBibG9ja3F1b3RlIHN0cm9uZ3tjb2xvcjppbmhlcml0fS5hcnRpY2xlLS1jb250ZW50IC5wbHVnaW4tY2FyZCBibG9ja3F1b3RlIGF7Y29sb3I6I2ZmZn0uYXJ0aWNsZS0tY29udGVudCAucGx1Z2luLWNhcmQgYmxvY2txdW90ZSBhIGNvZGU6YWZ0ZXJ7Ym9yZGVyLWNvbG9yOnRyYW5zcGFyZW50IHJnYmEoMCwyMDEsMjU1LDAuMzUpIHRyYW5zcGFyZW50IHRyYW5zcGFyZW50fS5hcnRpY2xlLS1jb250ZW50IC5wbHVnaW4tY2FyZCBibG9ja3F1b3RlIGE6aG92ZXJ7Y29sb3I6IzZCREZGRn0uYXJ0aWNsZS0tY29udGVudCAucGx1Z2luLWNhcmQgYmxvY2txdW90ZSBhOmhvdmVyIGNvZGU6YWZ0ZXJ7Ym9yZGVyLWNvbG9yOnRyYW5zcGFyZW50ICM2QkRGRkYgdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnR9LmFydGljbGUtLWNvbnRlbnQgLnBsdWdpbi1jYXJkIGJsb2NrcXVvdGUgb2wgbGk6YmVmb3Jle2NvbG9yOiNCRUYwRkZ9LmFydGljbGUtLWNvbnRlbnQgLnBsdWdpbi1jYXJkIGJsb2NrcXVvdGUgY29kZSwuYXJ0aWNsZS0tY29udGVudCAucGx1Z2luLWNhcmQgYmxvY2txdW90ZSBwcmV7Y29sb3I6IzAwQzlGRjtiYWNrZ3JvdW5kOiMwYTA3MWN9QG1lZGlhIChtYXgtd2lkdGg6IDYwMHB4KXsuYXJ0aWNsZS0tY29udGVudCAucGx1Z2luLWNhcmQgLnBsdWdpbi1saW5re29wYWNpdHk6MTtiYWNrZ3JvdW5kOmxpbmVhci1ncmFkaWVudCg0NWRlZywgIzA2NkZDNSwjMDBBM0ZGKTtwYWRkaW5nOi4yNXJlbSAuMzVyZW0gLjM1cmVtO2xpbmUtaGVpZ2h0OjB9LmFydGljbGUtLWNvbnRlbnQgLnBsdWdpbi1jYXJkIC5wbHVnaW4tbGluayAuaWNvbi1naXRodWJ7bWFyZ2luOjB9LmFydGljbGUtLWNvbnRlbnQgLnBsdWdpbi1jYXJkIC5wbHVnaW4tbGluayAuaGlkZXtkaXNwbGF5Om5vbmV9fS5hcnRpY2xlLS1jb250ZW50IC50aXRsZXttYXJnaW4tYm90dG9tOjIuNjVyZW19LmFydGljbGUtLWNvbnRlbnQgLnRpdGxlIC5tZXRhZGF0YXtwYWRkaW5nOjA7bWFyZ2luOjB9LmFydGljbGUtLWNvbnRlbnQgLnRpdGxlIC5tZXRhZGF0YSBsaXttYXJnaW4tYm90dG9tOjA7cGFkZGluZzouNDVlbSAuNzVlbTtjb2xvcjojZmZmO2JhY2tncm91bmQ6cmdiYSgyNTUsMjU1LDI1NSwwLjA3KTtmb250LXNpemU6Ljk1cmVtO2ZvbnQtd2VpZ2h0OjUwMDtsaW5lLWhlaWdodDoxLjFyZW07Ym9yZGVyLXJhZGl1czoxLjFlbTtkaXNwbGF5OmlubGluZS1ibG9ja30uYXJ0aWNsZS0tY29udGVudCAudGl0bGUgLm1ldGFkYXRhIGxpLnVwZGF0ZWQtaW4sLmFydGljbGUtLWNvbnRlbnQgLnRpdGxlIC5tZXRhZGF0YSBsaS5kYXRlLC5hcnRpY2xlLS1jb250ZW50IC50aXRsZSAubWV0YWRhdGEgbGkuZmx1eC1pbmZsdXhkYntwYWRkaW5nOjAgMCAwIC40ZW07YmFja2dyb3VuZDpub25lO2ZvbnQtd2VpZ2h0Om5vcm1hbDtmb250LXN0eWxlOml0YWxpYztjb2xvcjpyZ2JhKDI1NSwyNTUsMjU1LDAuNil9LmFydGljbGUtLWNvbnRlbnQgLnRpdGxlIC5tZXRhZGF0YSAudXBkYXRlZC1pbisuZGF0ZTo6YmVmb3Jle2NvbnRlbnQ6XCLigKJcIiAhaW1wb3J0YW50O2Rpc3BsYXk6aW5saW5lO21hcmdpbi1yaWdodDouNXJlbX0uYXJ0aWNsZS0tY29udGVudCAudGl0bGUgLm1ldGFkYXRhIC5mbHV4LWluZmx1eGRiIGF7Y3Vyc29yOnBvaW50ZXI7b3BhY2l0eTouOTt0cmFuc2l0aW9uOmNvbG9yIC4ycywgb3BhY2l0eSAuMnN9LmFydGljbGUtLWNvbnRlbnQgLnRpdGxlIC5tZXRhZGF0YSAuZmx1eC1pbmZsdXhkYiBhOmhvdmVye29wYWNpdHk6MX1AbWVkaWEgKG1heC13aWR0aDogNjAwcHgpey5hcnRpY2xlLS1jb250ZW50IC50aXRsZXttYXJnaW4tYm90dG9tOjJyZW19LmFydGljbGUtLWNvbnRlbnQgLnRpdGxlIGgxe21hcmdpbjouMzVlbSAwIC4yZW07Zm9udC1zaXplOjIuNHJlbX19LmFydGljbGUtLWNvbnRlbnQgLnRydW5jYXRle3Bvc2l0aW9uOnJlbGF0aXZlO21hcmdpbi1ib3R0b206My41cmVtfS5hcnRpY2xlLS1jb250ZW50IC50cnVuY2F0ZSAudHJ1bmNhdGUtY29udGVudHtvdmVyZmxvdzpoaWRkZW47bWF4LWhlaWdodDo5OTk5cHg7dHJhbnNpdGlvbjptYXgtaGVpZ2h0IC40c30uYXJ0aWNsZS0tY29udGVudCAudHJ1bmNhdGUgLnRydW5jYXRlLWNvbnRlbnQuY2xvc2Vke21pbi1oZWlnaHQ6MjUwcHg7bWF4LWhlaWdodDoyNXZofS5hcnRpY2xlLS1jb250ZW50IC50cnVuY2F0ZSAudHJ1bmNhdGUtYm90dG9te3Bvc2l0aW9uOmFic29sdXRlO2JvdHRvbTotMzBweDt3aWR0aDoxMDAlO3otaW5kZXg6MTAwO2hlaWdodDphdXRvfS5hcnRpY2xlLS1jb250ZW50IC50cnVuY2F0ZSBhLnRydW5jYXRlLXRvZ2dsZXtkaXNwbGF5OmJsb2NrO3dpZHRoOjEwMHB4O21hcmdpbjowIGF1dG87Y29sb3I6I0Q0RDdERDtiYWNrZ3JvdW5kOiMxNDE0MUY7cGFkZGluZzouNDVyZW07dGV4dC1hbGlnbjpjZW50ZXI7Zm9udC1zaXplOi43NXJlbTt0ZXh0LXRyYW5zZm9ybTp1cHBlcmNhc2U7Ym9yZGVyLXJhZGl1czoycHg7dHJhbnNpdGlvbjpjb2xvciAuMnN9LmFydGljbGUtLWNvbnRlbnQgLnRydW5jYXRlIGEudHJ1bmNhdGUtdG9nZ2xlOmJlZm9yZXtjb250ZW50OlwiU2hvdyBMZXNzXCJ9LmFydGljbGUtLWNvbnRlbnQgLnRydW5jYXRlIGEudHJ1bmNhdGUtdG9nZ2xlOmhvdmVye2NvbG9yOiMwMEEzRkZ9LmFydGljbGUtLWNvbnRlbnQgLnRydW5jYXRlLmNsb3NlZCAudHJ1bmNhdGUtYm90dG9te2JvdHRvbTowO2JhY2tncm91bmQtaW1hZ2U6bGluZWFyLWdyYWRpZW50KHRvIGJvdHRvbSwgcmdiYSgyMCwyMCwzMSwwKSwgIzE0MTQxZik7aGVpZ2h0OjEwMHB4fS5hcnRpY2xlLS1jb250ZW50IC50cnVuY2F0ZS5jbG9zZWQgYS50cnVuY2F0ZS10b2dnbGV7bWFyZ2luLXRvcDo3NXB4fS5hcnRpY2xlLS1jb250ZW50IC50cnVuY2F0ZS5jbG9zZWQgYS50cnVuY2F0ZS10b2dnbGU6YmVmb3Jle2NvbnRlbnQ6XCJTaG93IE1vcmVcIn0uYXJ0aWNsZS0tY29udGVudCAudmlkZW9zLXdyYXBwZXJ7ZGlzcGxheTpmbGV4O2ZsZXgtd3JhcDp3cmFwO21hcmdpbi10b3A6MS41cmVtfS5hcnRpY2xlLS1jb250ZW50IC52aWRlby1jYXJke21heC13aWR0aDoyNDBweDttYXJnaW46MCAxLjc1cmVtIC43NXJlbSAwfS5hcnRpY2xlLS1jb250ZW50IC52aWRlby1jYXJkIGF7ZGlzcGxheTpibG9jaztwb3NpdGlvbjpyZWxhdGl2ZX0uYXJ0aWNsZS0tY29udGVudCAudmlkZW8tY2FyZCBhOmFmdGVye2NvbnRlbnQ6XCJcXGU5MTRcIjtwb3NpdGlvbjphYnNvbHV0ZTtkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2p1c3RpZnktY29udGVudDpjZW50ZXI7Zm9udC1mYW1pbHk6XCJpY29tb29uXCI7dG9wOi42NXJlbTtyaWdodDouNjVyZW07aGVpZ2h0OjEuNXJlbTt3aWR0aDoxLjVyZW07Y29sb3I6I2ZmZjtwYWRkaW5nOi4zNXJlbTtib3JkZXItcmFkaXVzOjUwJTtiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMjU1LDI1NSwyNTUsMC4yNSk7b3BhY2l0eTowO3RyYW5zaXRpb246b3BhY2l0eSAuM3N9LmFydGljbGUtLWNvbnRlbnQgLnZpZGVvLWNhcmQgYTpob3ZlcjphZnRlcntvcGFjaXR5OjF9LmFydGljbGUtLWNvbnRlbnQgLnZpZGVvLWNhcmQgaW1ne21hcmdpbi1ib3R0b206MH0uYXJ0aWNsZS0tY29udGVudCAudmlkZW8tY2FyZCAudmlkZW8tdGl0bGV7bWFyZ2luOi4yNXJlbSAwIDA7Zm9udC13ZWlnaHQ6NTAwO2ZvbnQtc2l6ZTouOXJlbTtjb2xvcjojRkFGQUZDO2xpbmUtaGVpZ2h0OjEuMjVyZW19LmFydGljbGUtLWNvbnRlbnQgLnZpZGVvLWNhcmQgLnZpZGVvLWRhdGV7Zm9udC1zaXplOi44cmVtO2NvbG9yOnJnYmEoMjEyLDIxNSwyMjEsMC42KTtsaW5lLWhlaWdodDoxcmVtfS5hcnRpY2xlLS1jb250ZW50IC52aWRlby1jb250ZW50IC52aWRlby1kYXRle2NvbG9yOnJnYmEoMjEyLDIxNSwyMjEsMC42KTttYXJnaW4tdG9wOi0xLjc1cmVtO2ZvbnQtd2VpZ2h0OjUwMDtmb250LXNpemU6LjlyZW19LmFydGljbGUtLWNvbnRlbnQgLnZpZGVvLWNvbnRlbnQgLnZpZGVve21heC13aWR0aDpub25lO21hcmdpbjowIDAgMnJlbX0uYXJ0aWNsZS0tY29udGVudCAudmlkZW97d2lkdGg6MTAwJTttYXgtd2lkdGg6NjIwcHg7bWFyZ2luOjJyZW0gMH1AbWVkaWEgKG1heC13aWR0aDogNjAwcHgpey5hcnRpY2xlLS1jb250ZW50IC52aWRlby1jYXJke21heC13aWR0aDoxMDAlO21hcmdpbi1yaWdodDowfX0uYXJ0aWNsZS0tY29udGVudCAucmVxdWlyZWQsLmFydGljbGUtLWNvbnRlbnQgLnJlcXtjb2xvcjojRkY4NTY0O2ZvbnQtd2VpZ2h0OjUwMDtmb250LXN0eWxlOml0YWxpYzttYXJnaW46MCAuMTVyZW0gMCAuMXJlbX0uYXJ0aWNsZS0tY29udGVudCAucmVxdWlyZWQuYXN0ZXJpc2ssLmFydGljbGUtLWNvbnRlbnQgLnJlcS5hc3Rlcmlza3ttYXJnaW46MCAtLjFyZW0gMCAtLjVyZW19LmFydGljbGUtLWNvbnRlbnQgLnJlcXVpcmVkLmtleSwuYXJ0aWNsZS0tY29udGVudCAucmVxLmtleXtmb250LXNpemU6LjlyZW07Zm9udC13ZWlnaHQ6NTAwfS5hcnRpY2xlLS1jb250ZW50IC5yZXF1aXJlZC5ub3JtYWwsLmFydGljbGUtLWNvbnRlbnQgLnJlcS5ub3JtYWx7Zm9udC1zdHlsZTpub3JtYWx9LmFydGljbGUtLWNvbnRlbnQgLnJlcXVpcmVkLmJsdWUsLmFydGljbGUtLWNvbnRlbnQgLnJlcS5ibHVle2NvbG9yOiMyQUEzRkZ9LmFydGljbGUtLWNvbnRlbnQgLnJlcXVpcmVkLmdyZWVuLC5hcnRpY2xlLS1jb250ZW50IC5yZXEuZ3JlZW57Y29sb3I6IzAwOUY1Rn0uYXJ0aWNsZS0tY29udGVudCAucmVxdWlyZWQubWFnZW50YSwuYXJ0aWNsZS0tY29udGVudCAucmVxLm1hZ2VudGF7Y29sb3I6I0NFNThFQn0uYXJ0aWNsZS0tY29udGVudCAucmVxdWlyZWQucGluaywuYXJ0aWNsZS0tY29udGVudCAucmVxLnBpbmt7Y29sb3I6I2QzMDk3MX0uYXJ0aWNsZS0tY29udGVudCBoMisua2VlcC11cmwsLmFydGljbGUtLWNvbnRlbnQgaDMrLmtlZXAtdXJsLC5hcnRpY2xlLS1jb250ZW50IGg0Ky5rZWVwLXVybCwuYXJ0aWNsZS0tY29udGVudCBoNSsua2VlcC11cmwsLmFydGljbGUtLWNvbnRlbnQgaDYrLmtlZXAtdXJse21hcmdpbi10b3A6LTEuNXJlbTt6LWluZGV4Oi0xMDB9LmFydGljbGUtLWNvbnRlbnQgYS5xLWxpbmt7Zm9udC1zaXplOi44cmVtO3ZlcnRpY2FsLWFsaWduOnN1cGVyO2xpbmUtaGVpZ2h0OjA7Y29sb3I6I2ZmZjtvcGFjaXR5Oi41O3RyYW5zaXRpb246b3BhY2l0eSAuMnN9LmFydGljbGUtLWNvbnRlbnQgYS5xLWxpbms6aG92ZXJ7b3BhY2l0eToxfS5hcnRpY2xlLS1jb250ZW50IHAucmVhZC1tb3Jle3RleHQtYWxpZ246cmlnaHQ7Zm9udC1zdHlsZTppdGFsaWN9LmFydGljbGUtLWNvbnRlbnQgLmhpZ2hsaWdodCtwLnJlYWQtbW9yZSwuYXJ0aWNsZS0tY29udGVudCBwcmUrcC5yZWFkLW1vcmUsLmFydGljbGUtLWNvbnRlbnQgY29kZStwLnJlYWQtbW9yZSwuYXJ0aWNsZS0tY29udGVudCAuZmxleC13cmFwcGVyK3AucmVhZC1tb3Jle21hcmdpbjotLjc1cmVtIDAgLjVyZW19LmFydGljbGUtLWNvbnRlbnQgLm5vd3JhcHt3aGl0ZS1zcGFjZTpub3dyYXB9LmFydGljbGUtLWNvbnRlbnQgLmFsbC1jYXBze3RleHQtdHJhbnNmb3JtOnVwcGVyY2FzZTtmb250LXNpemU6MS4wNXJlbTtsZXR0ZXItc3BhY2luZzouMWVtO2ZvbnQtd2VpZ2h0OjUwMCAhaW1wb3J0YW50fS5hcnRpY2xlLS1jb250ZW50IHNwYW4ub3JhbmdlLC5hcnRpY2xlLS1jb250ZW50IHN0cm9uZy5vcmFuZ2UsLmFydGljbGUtLWNvbnRlbnQgZW0ub3Jhbmdle2NvbG9yOiNGRjg1NjR9LmFydGljbGUtLWNvbnRlbnQgc3Bhbi5ibHVlLC5hcnRpY2xlLS1jb250ZW50IHN0cm9uZy5ibHVlLC5hcnRpY2xlLS1jb250ZW50IGVtLmJsdWV7Y29sb3I6IzJBQTNGRn0uYXJ0aWNsZS0tY29udGVudCBzcGFuLmdyZWVuLC5hcnRpY2xlLS1jb250ZW50IHN0cm9uZy5ncmVlbiwuYXJ0aWNsZS0tY29udGVudCBlbS5ncmVlbntjb2xvcjojMDA5RjVGfS5hcnRpY2xlLS1jb250ZW50IHNwYW4ubWFnZW50YSwuYXJ0aWNsZS0tY29udGVudCBzdHJvbmcubWFnZW50YSwuYXJ0aWNsZS0tY29udGVudCBlbS5tYWdlbnRhe2NvbG9yOiNDRTU4RUJ9LmFydGljbGUtLWNvbnRlbnQgc3Bhbi5waW5rLC5hcnRpY2xlLS1jb250ZW50IHN0cm9uZy5waW5rLC5hcnRpY2xlLS1jb250ZW50IGVtLnBpbmt7Y29sb3I6I2QzMDk3MX0uYXJ0aWNsZS0tY29udGVudCAuZ2V0LXN0YXJ0ZWQtYnRuc3tkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246Y29sdW1uO2p1c3RpZnktY29udGVudDpzcGFjZS1hcm91bmQ7YWxpZ24taXRlbXM6ZmxleC1zdGFydDttYXJnaW4tYm90dG9tOjJyZW19LmFydGljbGUtLWNvbnRlbnQgLmdldC1zdGFydGVkLWJ0bnMgYS5idG57bWF4LXdpZHRoOjMwMHB4O3dpZHRoOjEwMCU7dGV4dC1hbGlnbjpjZW50ZXI7cGFkZGluZzoxcmVtfUBtZWRpYSAobWF4LXdpZHRoOiA2MDBweCl7LmFydGljbGV7cGFkZGluZzoxLjVyZW0gMS41cmVtIDNyZW19LmFydGljbGUgaDJ7Zm9udC1zaXplOjEuOXJlbX0uYXJ0aWNsZSBoM3tmb250LXNpemU6MS41NXJlbX0uYXJ0aWNsZSBoNHtmb250LXNpemU6MS4zcmVtfX0uYXJ0aWNsZS0tY29udGVudCAuaW5saW5le21hcmdpbjowIC4xNXJlbX0uYXJ0aWNsZS0tY29udGVudCAuaW5saW5lLm1pZGRsZTpiZWZvcmV7dmVydGljYWwtYWxpZ246bWlkZGxlfS5hcnRpY2xlLS1jb250ZW50IC5pbmxpbmUudG9wOmJlZm9yZXt2ZXJ0aWNhbC1hbGlnbjp0ZXh0LXRvcH0uYXJ0aWNsZS0tY29udGVudCAuaW5saW5lLmJvdHRvbTpiZWZvcmV7dmVydGljYWwtYWxpZ246Ym90dG9tfS5hcnRpY2xlLS1jb250ZW50IC5pbmxpbmUueHNtYWxsOmJlZm9yZXtmb250LXNpemU6LjhyZW19LmFydGljbGUtLWNvbnRlbnQgLmlubGluZS5zbWFsbDpiZWZvcmV7Zm9udC1zaXplOi45cmVtfS5hcnRpY2xlLS1jb250ZW50IC5pbmxpbmUubGFyZ2U6YmVmb3Jle2ZvbnQtc2l6ZToxLjFyZW19LmFydGljbGUtLWNvbnRlbnQgLmlubGluZS5hZGQtYnRuLXJvdW5ke2ZvbnQtZmFtaWx5OlwiaWNvbW9vbi12MlwiO2NvbG9yOiNmZmY7YmFja2dyb3VuZDpsaW5lYXItZ3JhZGllbnQoNDVkZWcsICM1YzEwYTAsICM4ZTFmYzMpO2JvcmRlci1yYWRpdXM6NTAlO21hcmdpbjowIC4yNXJlbTtkaXNwbGF5OmlubGluZS1ibG9jazt2ZXJ0aWNhbC1hbGlnbjp0ZXh0LXRvcDtmb250LXNpemU6LjdyZW07d2lkdGg6MjBweDtoZWlnaHQ6MjBweDtwYWRkaW5nLWxlZnQ6LjI5cmVtO2xpbmUtaGVpZ2h0OjEuMjVyZW19LmFydGljbGUtLWNvbnRlbnQgLmlubGluZS5hZGQtYnRuLXJvdW5kLnYzLC5hcnRpY2xlLS1jb250ZW50IC5pbmxpbmUuYWRkLWJ0bi1yb3VuZC52NHtwb3NpdGlvbjpyZWxhdGl2ZTtiYWNrZ3JvdW5kOiMzODM4NDY7d2lkdGg6MThweDtoZWlnaHQ6MThweDtmb250LXNpemU6LjY1cmVtO2xpbmUtaGVpZ2h0OjByZW07cGFkZGluZzo5cHggMCAwIDRweH0uYXJ0aWNsZS0tY29udGVudCAuaW5saW5lLnVpLXRvZ2dsZXtkaXNwbGF5OmlubGluZS1ibG9jaztwb3NpdGlvbjpyZWxhdGl2ZTt3aWR0aDoyOHB4O2hlaWdodDoxNnB4O2JvcmRlci1yYWRpdXM6LjdyZW07dmVydGljYWwtYWxpZ246dGV4dC10b3A7bWFyZ2luLXRvcDoycHh9LmFydGljbGUtLWNvbnRlbnQgLmlubGluZS51aS10b2dnbGUgLmNpcmNsZXtkaXNwbGF5OmlubGluZS1ibG9jaztwb3NpdGlvbjphYnNvbHV0ZTtib3JkZXItcmFkaXVzOjUwJTtoZWlnaHQ6OHB4O3dpZHRoOjhweDtiYWNrZ3JvdW5kOiNmZmY7dG9wOjRweDtyaWdodDo0cHh9LmFydGljbGUtLWNvbnRlbnQgLmlubGluZS51aS10b2dnbGUuYmx1ZXtiYWNrZ3JvdW5kOiMwMEEzRkZ9LmFydGljbGUtLWNvbnRlbnQgLmlubGluZS51aS10b2dnbGUuZ3JlZW57YmFja2dyb3VuZDojMDA5RjVGfS5hcnRpY2xlLS1jb250ZW50IC5pbmxpbmUudWktdG9nZ2xlLm9mZntiYWNrZ3JvdW5kOiMzMzMzNDZ9LmFydGljbGUtLWNvbnRlbnQgLmlubGluZS51aS10b2dnbGUub2ZmIC5jaXJjbGV7bGVmdDo0cHh9LmFydGljbGUtLWNvbnRlbnQgLmlubGluZS51aS10b2dnbGUudjMsLmFydGljbGUtLWNvbnRlbnQgLmlubGluZS51aS10b2dnbGUudjR7d2lkdGg6MjZweH0uYXJ0aWNsZS0tY29udGVudCAuaW5saW5lLnVpLXRvZ2dsZS52MyAuY2lyY2xlLC5hcnRpY2xlLS1jb250ZW50IC5pbmxpbmUudWktdG9nZ2xlLnY0IC5jaXJjbGV7aGVpZ2h0OjEycHg7d2lkdGg6MTJweDt0b3A6MnB4O3JpZ2h0OjJweH0uYXJ0aWNsZS0tY29udGVudCAuaW5saW5lLnVpLXRvZ2dsZS52My5vZmYgLmNpcmNsZSwuYXJ0aWNsZS0tY29udGVudCAuaW5saW5lLnVpLXRvZ2dsZS52NC5vZmYgLmNpcmNsZXtsZWZ0OjJweH0uYXJ0aWNsZS0tY29udGVudCAuaW5saW5lLm5vdGVib29rLWFkZC1jZWxse2Rpc3BsYXk6aW5saW5lLWJsb2NrO3Bvc2l0aW9uOnJlbGF0aXZlO2JvcmRlci1yYWRpdXM6NTAlO2hlaWdodDoxLjNyZW07d2lkdGg6MS4zcmVtO2JhY2tncm91bmQ6bGluZWFyLWdyYWRpZW50KDQ1ZGVnLCAjNWMxMGEwIDAlLCAjOGUxZmMzIDEwMCUpO3ZlcnRpY2FsLWFsaWduOnRleHQtYm90dG9tO3RleHQtYWxpZ246Y2VudGVyO2NvbG9yOiNmZmY7Zm9udC1zaXplOi44cmVtfS5hcnRpY2xlLS1jb250ZW50IC5pbmxpbmUubm90ZWJvb2stYWRkLWNlbGw+c3BhbntkaXNwbGF5OmJsb2NrO21hcmdpbjowLjNyZW0gMH0uYXJ0aWNsZS0tY29udGVudCAubmF2LWl0ZW17ZGlzcGxheTppbmxpbmUtYmxvY2s7cG9zaXRpb246cmVsYXRpdmU7dmVydGljYWwtYWxpZ246dG9wO21hcmdpbi1ib3R0b206MS4yNXJlbX0uYXJ0aWNsZS0tY29udGVudCAubmF2LWl0ZW06YWZ0ZXJ7Y29udGVudDpcIlwiO3Bvc2l0aW9uOmFic29sdXRlO3RvcDowO2xlZnQ6MDt3aWR0aDoycHg7aGVpZ2h0OjEwMCU7YmFja2dyb3VuZDojYmUyZWU0O2JhY2tncm91bmQ6bGluZWFyLWdyYWRpZW50KDE4MGRlZywgI2JlMmVlNCAwLCAjMDBhM2ZmKX0uYXJ0aWNsZS0tY29udGVudCAubmF2LWl0ZW06Zmlyc3QtY2hpbGR7bWFyZ2luLXJpZ2h0OjEuMjVyZW19LmFydGljbGUtLWNvbnRlbnQgLm5hdi1pdGVtLmFjY291bnR7cGFkZGluZzouMjVyZW07cG9zaXRpb246cmVsYXRpdmU7d2lkdGg6MjEwcHg7aGVpZ2h0OjU2cHh9LmFydGljbGUtLWNvbnRlbnQgLm5hdi1pdGVtLmFjY291bnQ6YWZ0ZXJ7ZGlzcGxheTpub25lfS5hcnRpY2xlLS1jb250ZW50IC5uYXYtaXRlbS5hY2NvdW50IC5hY2N0LWlubmVye2Rpc3BsYXk6ZmxleDtwb3NpdGlvbjpyZWxhdGl2ZTthbGlnbi1pdGVtczpjZW50ZXI7d2lkdGg6MTAwJTtoZWlnaHQ6MTAwJTtiYWNrZ3JvdW5kOiMyOTI5MzM7Ym9yZGVyLXJhZGl1czo2cHg7Ym9yZGVyOjNweCBzb2xpZCAjNjc2OTc4fS5hcnRpY2xlLS1jb250ZW50IC5uYXYtaXRlbS5hY2NvdW50IC5hY2N0LWlubmVyOmFmdGVye2NvbnRlbnQ6XCJcIjtwb3NpdGlvbjphYnNvbHV0ZTtyaWdodDoxcmVtO3dpZHRoOjA7aGVpZ2h0OjA7Ym9yZGVyLXN0eWxlOnNvbGlkO2JvcmRlci13aWR0aDo1cHggNXB4IDAgNXB4O2JvcmRlci1jb2xvcjojRTdFOEVCIHRyYW5zcGFyZW50IHRyYW5zcGFyZW50IHRyYW5zcGFyZW50fS5hcnRpY2xlLS1jb250ZW50IC5uYXYtaXRlbS5hY2NvdW50IC5hY2N0LWljb257bWFyZ2luOjAgLjlyZW0gMCAuNXJlbTtib3JkZXItcmFkaXVzOjUwJTtoZWlnaHQ6MjhweDt3aWR0aDoyOHB4O2JhY2tncm91bmQ6bGluZWFyLWdyYWRpZW50KDQ1ZGVnLCAjMDBhM2ZmLCAjNjdkNzRlKTtjb2xvcjojZmZmO3RleHQtYWxpZ246Y2VudGVyO2xpbmUtaGVpZ2h0OjA7b3ZlcmZsb3c6aGlkZGVufS5hcnRpY2xlLS1jb250ZW50IC5uYXYtaXRlbS5hY2NvdW50IC5hY2N0LWljb24gLmljb257bWFyZ2luLWxlZnQ6LS4xcmVtO2ZvbnQtc2l6ZToycmVtfS5hcnRpY2xlLS1jb250ZW50IC5uYXYtaXRlbS5hY2NvdW50IC5hY2N0LWxhYmVsIC51c2VybmFtZXtjb2xvcjojRTdFOEVCO2ZvbnQtd2VpZ2h0OjUwMDtmb250LXNpemU6Ljg1cmVtO2xpbmUtaGVpZ2h0OjEuMnJlbX0uYXJ0aWNsZS0tY29udGVudCAubmF2LWl0ZW0uYWNjb3VudCAuYWNjdC1sYWJlbCAub3JnbmFtZXtjb2xvcjojOTk5REFCO2ZvbnQtc2l6ZTouNzVyZW07bGluZS1oZWlnaHQ6Ljc1cmVtfS5hcnRpY2xlLS1jb250ZW50IC5uYXYtaXRlbS5hY2NvdW50LnNtYWxse3dpZHRoOjU2cHh9LmFydGljbGUtLWNvbnRlbnQgLm5hdi1pdGVtLmFjY291bnQuc21hbGwgLmFjY3QtaW5uZXJ7anVzdGlmeS1jb250ZW50OmNlbnRlcjthbGlnbi1pdGVtczpjZW50ZXJ9LmFydGljbGUtLWNvbnRlbnQgLm5hdi1pdGVtLmFjY291bnQuc21hbGwgLmFjY3QtaW5uZXI6YWZ0ZXJ7ZGlzcGxheTpub25lfS5hcnRpY2xlLS1jb250ZW50IC5uYXYtaXRlbS5hY2NvdW50LnNtYWxsIC5hY2N0LWljb257bWFyZ2luOjB9LmFydGljbGUtLWNvbnRlbnQgLm5hdi1pY29ue2Rpc3BsYXk6ZmxleDtqdXN0aWZ5LWNvbnRlbnQ6bGVmdDthbGlnbi1pdGVtczpjZW50ZXI7Y29sb3I6I2ZmZjt3aWR0aDoyMTBweDtoZWlnaHQ6NTZweDtmb250LWZhbWlseTpcIlJ1YmlrXCIsc2Fucy1zZXJpZjtmb250LXdlaWdodDo1MDA7cGFkZGluZzouOXJlbSAxLjFyZW07Zm9udC1zaXplOjFyZW07cG9zaXRpb246cmVsYXRpdmU7YmFja2dyb3VuZDojMzgzODQ2fS5hcnRpY2xlLS1jb250ZW50IC5uYXYtaWNvbiAuaWNvbntkaXNwbGF5OmlubGluZS1ibG9jaztmb250LXNpemU6MS4zNXJlbTttYXJnaW4tcmlnaHQ6MXJlbX0uYXJ0aWNsZS0tY29udGVudCAubmF2LWljb24gLm5hdi1pY29uLWxhYmVse2Rpc3BsYXk6aW5saW5lLWJsb2NrO3BhZGRpbmc6MDtmb250LXNpemU6MXJlbX0uYXJ0aWNsZS0tY29udGVudCAubmF2LWljb246YmVmb3JlLC5hcnRpY2xlLS1jb250ZW50IC5uYXYtaWNvbjphZnRlcntjb250ZW50OlwiXCI7cG9zaXRpb246YWJzb2x1dGU7bGVmdDowO2hlaWdodDoycHg7ei1pbmRleDoyO3dpZHRoOjEycHh9LmFydGljbGUtLWNvbnRlbnQgLm5hdi1pY29uOmJlZm9yZXt0b3A6MDtiYWNrZ3JvdW5kOiNiZTJlZTQ7YmFja2dyb3VuZDpsaW5lYXItZ3JhZGllbnQoOTBkZWcsICNiZTJlZTQgMCwgcmdiYSgxOTAsNDYsMjI4LDApKX0uYXJ0aWNsZS0tY29udGVudCAubmF2LWljb246YWZ0ZXJ7Ym90dG9tOjA7YmFja2dyb3VuZDojMDBhM2ZmO2JhY2tncm91bmQ6bGluZWFyLWdyYWRpZW50KDkwZGVnLCAjMDBhM2ZmIDAsIHJnYmEoMTkwLDQ2LDIyOCwwKSl9LmFydGljbGUtLWNvbnRlbnQgLm5hdi1pY29uLnNtYWxse2Rpc3BsYXk6ZmxleDtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO2FsaWduLWl0ZW1zOmNlbnRlcjtwYWRkaW5nOjA7d2lkdGg6NTZweDtmbGV4LWRpcmVjdGlvbjpjb2x1bW59LmFydGljbGUtLWNvbnRlbnQgLm5hdi1pY29uLnNtYWxsIC5pY29ue3Bvc2l0aW9uOnJlbGF0aXZlO21hcmdpbjowfS5hcnRpY2xlLS1jb250ZW50IC5uYXYtaWNvbi5zbWFsbCAubmF2LWljb24tbGFiZWx7cGFkZGluZzowO21hcmdpbi10b3A6Ljc1cmVtO2ZvbnQtc2l6ZTouNjdyZW07bGluZS1oZWlnaHQ6MH0ubmF2LWl0ZW1zLXYzIC5uYXYtaXRlbS12MywubmF2LWl0ZW1zLXYzIC5uYXYtaXRlbS12NCwubmF2LWl0ZW1zLXY0IC5uYXYtaXRlbS12MywubmF2LWl0ZW1zLXY0IC5uYXYtaXRlbS12NHtkaXNwbGF5OmlubGluZS1mbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjttYXJnaW46MCAxcmVtIDEuMjVyZW0gMDttYXgtd2lkdGg6MjI1cHg7YmFja2dyb3VuZDpsaW5lYXItZ3JhZGllbnQocmdiYSg1LDQxLDY3LDAuOSksIHJnYmEoNiwzNCw1NiwwLjkpKTtjb2xvcjojZmZmO2hlaWdodDo2MHB4O2JvcmRlci1yYWRpdXM6MnB4fS5uYXYtaXRlbXMtdjMgLm5hdi1pdGVtLXYzLmFjY291bnQsLm5hdi1pdGVtcy12MyAubmF2LWl0ZW0tdjQuYWNjb3VudCwubmF2LWl0ZW1zLXY0IC5uYXYtaXRlbS12My5hY2NvdW50LC5uYXYtaXRlbXMtdjQgLm5hdi1pdGVtLXY0LmFjY291bnR7cGFkZGluZzo4cHh9Lm5hdi1pdGVtcy12MyAubmF2LWl0ZW0tdjMuYWNjb3VudCAuYWNjdC1pbm5lci12MywubmF2LWl0ZW1zLXYzIC5uYXYtaXRlbS12My5hY2NvdW50IC5hY2N0LWlubmVyLXY0LC5uYXYtaXRlbXMtdjMgLm5hdi1pdGVtLXY0LmFjY291bnQgLmFjY3QtaW5uZXItdjMsLm5hdi1pdGVtcy12MyAubmF2LWl0ZW0tdjQuYWNjb3VudCAuYWNjdC1pbm5lci12NCwubmF2LWl0ZW1zLXY0IC5uYXYtaXRlbS12My5hY2NvdW50IC5hY2N0LWlubmVyLXYzLC5uYXYtaXRlbXMtdjQgLm5hdi1pdGVtLXYzLmFjY291bnQgLmFjY3QtaW5uZXItdjQsLm5hdi1pdGVtcy12NCAubmF2LWl0ZW0tdjQuYWNjb3VudCAuYWNjdC1pbm5lci12MywubmF2LWl0ZW1zLXY0IC5uYXYtaXRlbS12NC5hY2NvdW50IC5hY2N0LWlubmVyLXY0e2Rpc3BsYXk6ZmxleDtiYWNrZ3JvdW5kLWNvbG9yOiNmMWYxZjMwZDtib3JkZXItcmFkaXVzOjJweH0ubmF2LWl0ZW1zLXYzIC5uYXYtaXRlbS12My5hY2NvdW50IC5hY2N0LWljb24tdjMsLm5hdi1pdGVtcy12MyAubmF2LWl0ZW0tdjMuYWNjb3VudCAuYWNjdC1pY29uLXY0LC5uYXYtaXRlbXMtdjMgLm5hdi1pdGVtLXY0LmFjY291bnQgLmFjY3QtaWNvbi12MywubmF2LWl0ZW1zLXYzIC5uYXYtaXRlbS12NC5hY2NvdW50IC5hY2N0LWljb24tdjQsLm5hdi1pdGVtcy12NCAubmF2LWl0ZW0tdjMuYWNjb3VudCAuYWNjdC1pY29uLXYzLC5uYXYtaXRlbXMtdjQgLm5hdi1pdGVtLXYzLmFjY291bnQgLmFjY3QtaWNvbi12NCwubmF2LWl0ZW1zLXY0IC5uYXYtaXRlbS12NC5hY2NvdW50IC5hY2N0LWljb24tdjMsLm5hdi1pdGVtcy12NCAubmF2LWl0ZW0tdjQuYWNjb3VudCAuYWNjdC1pY29uLXY0e2Rpc3BsYXk6ZmxleDthbGlnbi1jb250ZW50OmNlbnRlcjtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO2ZvbnQtd2VpZ2h0OmJvbGQ7d2lkdGg6NDRweDtoZWlnaHQ6NDRweDtiYWNrZ3JvdW5kOmxpbmVhci1ncmFkaWVudCg1NGRlZywgI0JFMkVFNCwjMDBBM0ZGKTtib3JkZXItcmFkaXVzOjJweH0ubmF2LWl0ZW1zLXYzIC5uYXYtaXRlbS12My5hY2NvdW50IC5hY2N0LWljb24tdjMgLmluaXRpYWwsLm5hdi1pdGVtcy12MyAubmF2LWl0ZW0tdjMuYWNjb3VudCAuYWNjdC1pY29uLXY0IC5pbml0aWFsLC5uYXYtaXRlbXMtdjMgLm5hdi1pdGVtLXY0LmFjY291bnQgLmFjY3QtaWNvbi12MyAuaW5pdGlhbCwubmF2LWl0ZW1zLXYzIC5uYXYtaXRlbS12NC5hY2NvdW50IC5hY2N0LWljb24tdjQgLmluaXRpYWwsLm5hdi1pdGVtcy12NCAubmF2LWl0ZW0tdjMuYWNjb3VudCAuYWNjdC1pY29uLXYzIC5pbml0aWFsLC5uYXYtaXRlbXMtdjQgLm5hdi1pdGVtLXYzLmFjY291bnQgLmFjY3QtaWNvbi12NCAuaW5pdGlhbCwubmF2LWl0ZW1zLXY0IC5uYXYtaXRlbS12NC5hY2NvdW50IC5hY2N0LWljb24tdjMgLmluaXRpYWwsLm5hdi1pdGVtcy12NCAubmF2LWl0ZW0tdjQuYWNjb3VudCAuYWNjdC1pY29uLXY0IC5pbml0aWFse2FsaWduLXNlbGY6Y2VudGVyfS5uYXYtaXRlbXMtdjMgLm5hdi1pdGVtLXYzLmFjY291bnQgLmFjY3QtbGFiZWwtdjMsLm5hdi1pdGVtcy12MyAubmF2LWl0ZW0tdjMuYWNjb3VudCAuYWNjdC1sYWJlbC12NCwubmF2LWl0ZW1zLXYzIC5uYXYtaXRlbS12NC5hY2NvdW50IC5hY2N0LWxhYmVsLXYzLC5uYXYtaXRlbXMtdjMgLm5hdi1pdGVtLXY0LmFjY291bnQgLmFjY3QtbGFiZWwtdjQsLm5hdi1pdGVtcy12NCAubmF2LWl0ZW0tdjMuYWNjb3VudCAuYWNjdC1sYWJlbC12MywubmF2LWl0ZW1zLXY0IC5uYXYtaXRlbS12My5hY2NvdW50IC5hY2N0LWxhYmVsLXY0LC5uYXYtaXRlbXMtdjQgLm5hdi1pdGVtLXY0LmFjY291bnQgLmFjY3QtbGFiZWwtdjMsLm5hdi1pdGVtcy12NCAubmF2LWl0ZW0tdjQuYWNjb3VudCAuYWNjdC1sYWJlbC12NHtkaXNwbGF5OmlubGluZS1ibG9jaztwYWRkaW5nOjhweCAwcHggMHB4IDhweDt3aWR0aDoxNjVweH0ubmF2LWl0ZW1zLXYzIC5uYXYtaXRlbS12My5hY2NvdW50IC5hY2N0LWxhYmVsLXYzIC51c2VybmFtZSwubmF2LWl0ZW1zLXYzIC5uYXYtaXRlbS12My5hY2NvdW50IC5hY2N0LWxhYmVsLXY0IC51c2VybmFtZSwubmF2LWl0ZW1zLXYzIC5uYXYtaXRlbS12NC5hY2NvdW50IC5hY2N0LWxhYmVsLXYzIC51c2VybmFtZSwubmF2LWl0ZW1zLXYzIC5uYXYtaXRlbS12NC5hY2NvdW50IC5hY2N0LWxhYmVsLXY0IC51c2VybmFtZSwubmF2LWl0ZW1zLXY0IC5uYXYtaXRlbS12My5hY2NvdW50IC5hY2N0LWxhYmVsLXYzIC51c2VybmFtZSwubmF2LWl0ZW1zLXY0IC5uYXYtaXRlbS12My5hY2NvdW50IC5hY2N0LWxhYmVsLXY0IC51c2VybmFtZSwubmF2LWl0ZW1zLXY0IC5uYXYtaXRlbS12NC5hY2NvdW50IC5hY2N0LWxhYmVsLXYzIC51c2VybmFtZSwubmF2LWl0ZW1zLXY0IC5uYXYtaXRlbS12NC5hY2NvdW50IC5hY2N0LWxhYmVsLXY0IC51c2VybmFtZXtmb250LXNpemU6Ljc1cmVtO2xpbmUtaGVpZ2h0Oi43NXJlbTtmb250LXdlaWdodDo1MDA7Y29sb3I6IzllOWVhZH0ubmF2LWl0ZW1zLXYzIC5uYXYtaXRlbS12My5hY2NvdW50IC5hY2N0LWxhYmVsLXYzIC5vcmduYW1lLC5uYXYtaXRlbXMtdjMgLm5hdi1pdGVtLXYzLmFjY291bnQgLmFjY3QtbGFiZWwtdjQgLm9yZ25hbWUsLm5hdi1pdGVtcy12MyAubmF2LWl0ZW0tdjQuYWNjb3VudCAuYWNjdC1sYWJlbC12MyAub3JnbmFtZSwubmF2LWl0ZW1zLXYzIC5uYXYtaXRlbS12NC5hY2NvdW50IC5hY2N0LWxhYmVsLXY0IC5vcmduYW1lLC5uYXYtaXRlbXMtdjQgLm5hdi1pdGVtLXYzLmFjY291bnQgLmFjY3QtbGFiZWwtdjMgLm9yZ25hbWUsLm5hdi1pdGVtcy12NCAubmF2LWl0ZW0tdjMuYWNjb3VudCAuYWNjdC1sYWJlbC12NCAub3JnbmFtZSwubmF2LWl0ZW1zLXY0IC5uYXYtaXRlbS12NC5hY2NvdW50IC5hY2N0LWxhYmVsLXYzIC5vcmduYW1lLC5uYXYtaXRlbXMtdjQgLm5hdi1pdGVtLXY0LmFjY291bnQgLmFjY3QtbGFiZWwtdjQgLm9yZ25hbWV7Zm9udC1zaXplOi44NXJlbTtsaW5lLWhlaWdodDoxcmVtfS5uYXYtaXRlbXMtdjMgLm5hdi1pY29uLXYzLC5uYXYtaXRlbXMtdjMgLm5hdi1pY29uLXY0LC5uYXYtaXRlbXMtdjQgLm5hdi1pY29uLXYzLC5uYXYtaXRlbXMtdjQgLm5hdi1pY29uLXY0e2Rpc3BsYXk6ZmxleDtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO2FsaWduLWl0ZW1zOmNlbnRlcjtoZWlnaHQ6MTAwJTt3aWR0aDo2MHB4O2ZsZXgtc2hyaW5rOjB9Lm5hdi1pdGVtcy12MyBwLm5hdi1sYWJlbC12MywubmF2LWl0ZW1zLXYzIHAubmF2LWxhYmVsLXY0LC5uYXYtaXRlbXMtdjQgcC5uYXYtbGFiZWwtdjMsLm5hdi1pdGVtcy12NCBwLm5hdi1sYWJlbC12NHtkaXNwbGF5OmlubGluZS1ibG9jazttYXJnaW46MDtwYWRkaW5nOjA7Zm9udC1mYW1pbHk6XCJSdWJpa1wiLHNhbnMtc2VyaWY7Zm9udC13ZWlnaHQ6NTAwO2ZvbnQtc2l6ZToxLjE1cmVtO21pbi13aWR0aDoyMjVweDtjb2xvcjojZmZmfS5uYXYtaXRlbXMtdjMgLmNmLWljb24sLm5hdi1pdGVtcy12NCAuY2YtaWNvbntkaXNwbGF5OmlubGluZS1ibG9jaztmb250LXNpemU6MS4zNXJlbX0ubmF2LWl0ZW1zLXYzIC5jZi1pY29uLnYzLC5uYXYtaXRlbXMtdjQgLmNmLWljb24udjN7Zm9udC1mYW1pbHk6J2ljb21vb24tdjMnfS5uYXYtaXRlbXMtdjMgLmNmLWljb24udjQsLm5hdi1pdGVtcy12NCAuY2YtaWNvbi52NHtmb250LWZhbWlseTonaWNvbW9vbi12NCd9QG1lZGlhIChtYXgtd2lkdGg6IDYwMHB4KXsuYXJ0aWNsZS0tY29udGVudC5uYXYtaXRlbTpudGgtY2hpbGQoMil7ZGlzcGxheTpub25lfS5hcnRpY2xlLS1jb250ZW50Lm5hdi1pdGVtLXYzOm50aC1jaGlsZCgyKXtkaXNwbGF5Om5vbmV9LmFydGljbGUtLWNvbnRlbnQubmF2LWl0ZW0tdjQ6bnRoLWNoaWxkKDIpe2Rpc3BsYXk6bm9uZX19cHJle2xpbmUtaGVpZ2h0OjEuMjVyZW19Y29kZVtjbGFzcyo9XCJsYW5ndWFnZS1cIl0scHJlW2NsYXNzKj1cImxhbmd1YWdlLVwiXXtkaXJlY3Rpb246bHRyO3RleHQtYWxpZ246bGVmdDt3b3JkLXNwYWNpbmc6bm9ybWFsO3dvcmQtYnJlYWs6bm9ybWFsO3dvcmQtd3JhcDpub3JtYWw7LW1vei10YWItc2l6ZTo0Oy1vLXRhYi1zaXplOjQ7dGFiLXNpemU6NDstd2Via2l0LWh5cGhlbnM6bm9uZTstbW96LWh5cGhlbnM6bm9uZTstbXMtaHlwaGVuczpub25lO2h5cGhlbnM6bm9uZX1wcmVbY2xhc3MqPVwibGFuZ3VhZ2UtXCJdOjotbW96LXNlbGVjdGlvbixwcmVbY2xhc3MqPVwibGFuZ3VhZ2UtXCJdIDo6LW1vei1zZWxlY3Rpb24sY29kZVtjbGFzcyo9XCJsYW5ndWFnZS1cIl06Oi1tb3otc2VsZWN0aW9uLGNvZGVbY2xhc3MqPVwibGFuZ3VhZ2UtXCJdIDo6LW1vei1zZWxlY3Rpb257YmFja2dyb3VuZDpyZ2JhKDAsMTYzLDI1NSwwLjI1KX1wcmVbY2xhc3MqPVwibGFuZ3VhZ2UtXCJdOjpzZWxlY3Rpb24scHJlW2NsYXNzKj1cImxhbmd1YWdlLVwiXSA6OnNlbGVjdGlvbixjb2RlW2NsYXNzKj1cImxhbmd1YWdlLVwiXTo6c2VsZWN0aW9uLGNvZGVbY2xhc3MqPVwibGFuZ3VhZ2UtXCJdIDo6c2VsZWN0aW9ue2JhY2tncm91bmQ6cmdiYSgwLDE2MywyNTUsMC4yNSl9QG1lZGlhIHByaW50e2NvZGVbY2xhc3MqPVwibGFuZ3VhZ2UtXCJdLHByZVtjbGFzcyo9XCJsYW5ndWFnZS1cIl17dGV4dC1zaGFkb3c6bm9uZX19cHJlW2NsYXNzKj1cImxhbmd1YWdlLVwiXXtvdmVyZmxvdzphdXRvfTpub3QocHJlKT5jb2RlW2NsYXNzKj1cImxhbmd1YWdlLVwiXXt3aGl0ZS1zcGFjZTpub3JtYWx9LmhpZ2hsaWdodHtjb2xvcjojQjdCOEZGfS5oaWdobGlnaHQgLmdoLC5oaWdobGlnaHQgLmdvLC5oaWdobGlnaHQgLm5hLC5oaWdobGlnaHQgLm50LC5oaWdobGlnaHQgLm52LC5oaWdobGlnaHQgLm93e2NvbG9yOiNCN0I4RkZ9LmhpZ2hsaWdodCAuYywuaGlnaGxpZ2h0IC5jaCwuaGlnaGxpZ2h0IC5jbSwuaGlnaGxpZ2h0IC5jcGYsLmhpZ2hsaWdodCAuYzEsLmhpZ2hsaWdodCAuY3MsLmhpZ2hsaWdodCAud3tjb2xvcjojNTQ1NjY3fS5oaWdobGlnaHQgLmdpe2JhY2tncm91bmQtY29sb3I6IzU0NTY2N30uaGlnaGxpZ2h0IC5rLC5oaWdobGlnaHQgLmtjLC5oaWdobGlnaHQgLmtkLC5oaWdobGlnaHQgLmtuLC5oaWdobGlnaHQgLmtwLC5oaWdobGlnaHQgLmtyLC5oaWdobGlnaHQgLm5ue2NvbG9yOiMwMEEzRkZ9LmhpZ2hsaWdodCAuYnAsLmhpZ2hsaWdodCAuY3AsLmhpZ2hsaWdodCAuZGwsLmhpZ2hsaWdodCAuZ3QsLmhpZ2hsaWdodCAuZ3UsLmhpZ2hsaWdodCAua3QsLmhpZ2hsaWdodCAubmIsLmhpZ2hsaWdodCAubmMsLmhpZ2hsaWdodCAubm8sLmhpZ2hsaWdodCAuc2EsLmhpZ2hsaWdodCAuc2IsLmhpZ2hsaWdodCAuc2MsLmhpZ2hsaWdodCAuc2QsLmhpZ2hsaWdodCAuc2UsLmhpZ2hsaWdodCAuc2gsLmhpZ2hsaWdodCAuc3gsLmhpZ2hsaWdodCAuc3IsLmhpZ2hsaWdodCAuczEsLmhpZ2hsaWdodCAuczJ7Y29sb3I6IzAwOUY1Rn0uaGlnaGxpZ2h0IC5lcnIsLmhpZ2hsaWdodCAuZm0sLmhpZ2hsaWdodCAuZ3IsLmhpZ2hsaWdodCAuZ2QsLmhpZ2hsaWdodCAubmQsLmhpZ2hsaWdodCAubmUsLmhpZ2hsaWdodCAubmYsLmhpZ2hsaWdodCAubmwsLmhpZ2hsaWdodCAuc2l7Y29sb3I6I0JGM0Q1RX0uaGlnaGxpZ2h0IC5nZHt0ZXh0LWRlY29yYXRpb246bGluZS10aHJvdWdofS5oaWdobGlnaHQgLm0sLmhpZ2hsaWdodCAubmksLmhpZ2hsaWdodCAubWIsLmhpZ2hsaWdodCAubWYsLmhpZ2hsaWdodCAubWgsLmhpZ2hsaWdodCAubWksLmhpZ2hsaWdodCAubW8sLmhpZ2hsaWdodCAudmMsLmhpZ2hsaWdodCAudmcsLmhpZ2hsaWdodCAudmksLmhpZ2hsaWdodCAudm0sLmhpZ2hsaWdodCAuaWx7Y29sb3I6I2ZmNmRiMH0uaGlnaGxpZ2h0IC5ncCwuaGlnaGxpZ2h0IC5ve2NvbG9yOiMwMEEzRkZ9LmhpZ2hsaWdodCAuc3N7Y29sb3I6I2U5MH0uaGlnaGxpZ2h0IC5jcyAuZ2gsLmhpZ2hsaWdodCAuZ3UsLmhpZ2hsaWdodCAuZ3AsLmhpZ2hsaWdodCAuZ3MsLmhpZ2hsaWdodCAuaywuaGlnaGxpZ2h0IC5rYywuaGlnaGxpZ2h0IC5rZCwuaGlnaGxpZ2h0IC5rbiwuaGlnaGxpZ2h0IC5rcCwuaGlnaGxpZ2h0IC5rciwuaGlnaGxpZ2h0IC5rdCwuaGlnaGxpZ2h0IC5uYywuaGlnaGxpZ2h0IC5uZSwuaGlnaGxpZ2h0IC5uaSwuaGlnaGxpZ2h0IC5ubiAubnQsLmhpZ2hsaWdodCAub3csLmhpZ2hsaWdodCAuc2V7Zm9udC13ZWlnaHQ6Ym9sZH0uaGlnaGxpZ2h0IC5jLC5oaWdobGlnaHQgLmNoLC5oaWdobGlnaHQgLmNtLC5oaWdobGlnaHQgLmNwZiwuaGlnaGxpZ2h0IC5jMSwuaGlnaGxpZ2h0IC5jcywuaGlnaGxpZ2h0IC5nZSwuaGlnaGxpZ2h0IC5zZCwuaGlnaGxpZ2h0IC53e2ZvbnQtc3R5bGU6aXRhbGljfS5oaWdobGlnaHQgLmxhbmd1YWdlLWpzIC5taSsubngsLmhpZ2hsaWdodCAubGFuZ3VhZ2UtanMgLm1mKy5ueHtjb2xvcjojZmY2ZGIwfS5oaWdobGlnaHQgLmxhbmd1YWdlLXNxbCAubWkrLm57Y29sb3I6I2ZmNmRiMH0uYWxnb2xpYS1hdXRvY29tcGxldGV7d2lkdGg6MTAwJX0uYWxnb2xpYS1hdXRvY29tcGxldGUgI2FsZ29saWEtc2VhcmNoLWlucHV0e2JhY2tncm91bmQ6IzFBMUEyQSAhaW1wb3J0YW50fS5hbGdvbGlhLWF1dG9jb21wbGV0ZSAuZHMtZHJvcGRvd24tbWVudXt3aWR0aDo3NHZ3O21heC13aWR0aDo4MDBweDtiYWNrZ3JvdW5kOiMxQTFBMkE7YmFja2dyb3VuZC1jb2xvcjojMUExQTJBO2JvcmRlcjpub25lO2JveC1zaGFkb3c6MnB4IDJweCAxMHB4IHJnYmEoMTUsMTQsMjEsMC41KTt0cmFuc2l0aW9uOmJhY2tncm91bmQtY29sb3IgMC4yc30uYWxnb2xpYS1hdXRvY29tcGxldGUgLmRzLWRyb3Bkb3duLW1lbnUgW2NsYXNzXj1kcy1kYXRhc2V0LV17Ym9yZGVyOm5vbmU7YmFja2dyb3VuZDojMUExQTJBO2JhY2tncm91bmQtY29sb3I6IzFBMUEyQX0uYWxnb2xpYS1hdXRvY29tcGxldGUgLmRzLWRyb3Bkb3duLW1lbnU6YmVmb3Jle2Rpc3BsYXk6bm9uZX0uYWxnb2xpYS1hdXRvY29tcGxldGUgLmRzLWRyb3Bkb3duLW1lbnUgLmRzLXN1Z2dlc3Rpb25ze3BhZGRpbmc6LjVyZW0gMnJlbSAycmVtfS5hbGdvbGlhLWF1dG9jb21wbGV0ZSAuYWxnb2xpYS1kb2NzZWFyY2gtc3VnZ2VzdGlvbntiYWNrZ3JvdW5kOiMxQTFBMkF9LmFsZ29saWEtYXV0b2NvbXBsZXRlIC5hbGdvbGlhLWRvY3NlYXJjaC1zdWdnZXN0aW9uLS1jYXRlZ29yeS1oZWFkZXJ7Y29sb3I6I2ZmZjtib3JkZXItY29sb3I6IzM4Mzg0Njt0ZXh0LWRlY29yYXRpb246bm9uZX0uYWxnb2xpYS1hdXRvY29tcGxldGUgLmFsZ29saWEtZG9jc2VhcmNoLXN1Z2dlc3Rpb24tLWNhdGVnb3J5LWhlYWRlci1sdmwwe2ZvbnQtc2l6ZToxLjVyZW07Zm9udC13ZWlnaHQ6Ym9sZCAhaW1wb3J0YW50O3BhZGRpbmctYm90dG9tOjFyZW19LmFsZ29saWEtYXV0b2NvbXBsZXRlIC5hbGdvbGlhLWRvY3NlYXJjaC1zdWdnZXN0aW9uLS1zdWJjYXRlZ29yeS1jb2x1bW57Y29sb3I6cmdiYSgyMTIsMjE1LDIyMSwwLjUpICFpbXBvcnRhbnR9LmFsZ29saWEtYXV0b2NvbXBsZXRlIC5hbGdvbGlhLWRvY3NlYXJjaC1zdWdnZXN0aW9uLS1zdWJjYXRlZ29yeS1jb2x1bW46YmVmb3Jle2JhY2tncm91bmQ6IzM4Mzg0Nn0uYWxnb2xpYS1hdXRvY29tcGxldGUgLmFsZ29saWEtZG9jc2VhcmNoLXN1Z2dlc3Rpb24tLXRpdGxle2ZvbnQtd2VpZ2h0OmJvbGQ7Y29sb3I6I2ZmZn0uYWxnb2xpYS1hdXRvY29tcGxldGUgLmFsZ29saWEtZG9jc2VhcmNoLXN1Z2dlc3Rpb24tLXRleHR7Zm9udC1zaXplOjAuOHJlbTtjb2xvcjojRDREN0REfS5hbGdvbGlhLWF1dG9jb21wbGV0ZSAuYWxnb2xpYS1kb2NzZWFyY2gtc3VnZ2VzdGlvbi0taGlnaGxpZ2h0e2NvbG9yOiMwMEEzRkZ9LmFsZ29saWEtYXV0b2NvbXBsZXRlIC5hbGdvbGlhLWRvY3NlYXJjaC1zdWdnZXN0aW9uLS1jb250ZW50OmJlZm9yZXtiYWNrZ3JvdW5kOiMzODM4NDZ9LmFsZ29saWEtYXV0b2NvbXBsZXRlIC5hbGdvbGlhLWRvY3NlYXJjaC1zdWdnZXN0aW9uLmFsZ29saWEtZG9jc2VhcmNoLXN1Z2dlc3Rpb25fX21haW4gLmFsZ29saWEtZG9jc2VhcmNoLXN1Z2dlc3Rpb24tLWNhdGVnb3J5LWhlYWRlciwuYWxnb2xpYS1hdXRvY29tcGxldGUgLmFsZ29saWEtZG9jc2VhcmNoLXN1Z2dlc3Rpb24uYWxnb2xpYS1kb2NzZWFyY2gtc3VnZ2VzdGlvbl9fc2Vjb25kYXJ5e3RleHQtZGVjb3JhdGlvbjpub25lfS5hbGdvbGlhLWF1dG9jb21wbGV0ZSAuYWxnb2xpYS1kb2NzZWFyY2gtc3VnZ2VzdGlvbi5hbGdvbGlhLWRvY3NlYXJjaC1zdWdnZXN0aW9uX19tYWluIC5hbGdvbGlhLWRvY3NlYXJjaC1zdWdnZXN0aW9uLS1jYXRlZ29yeS1oZWFkZXJ7cGFkZGluZy1ib3R0b206Ljc1cmVtO21hcmdpbi1ib3R0b206LjVyZW19LmFsZ29saWEtYXV0b2NvbXBsZXRlLmFsZ29saWEtYXV0b2NvbXBsZXRlLWxlZnQgLmRzLWRyb3Bkb3duLW1lbnV7bGVmdDoyNHZ3ICFpbXBvcnRhbnQ7dG9wOi0uNDVyZW0gIWltcG9ydGFudH0uZHMtc3VnZ2VzdGlvbjpub3QoOmZpcnN0LWNoaWxkKSAuYWxnb2xpYS1kb2NzZWFyY2gtc3VnZ2VzdGlvbi0tY2F0ZWdvcnktaGVhZGVye21hcmdpbi10b3A6MS41cmVtfS5hbGdvbGlhLWF1dG9jb21wbGV0ZSAuYWxnb2xpYS1kb2NzZWFyY2gtc3VnZ2VzdGlvbiAuYWxnb2xpYS1kb2NzZWFyY2gtc3VnZ2VzdGlvbi0td3JhcHBlcntwYWRkaW5nOjB9LmFsZ29saWEtYXV0b2NvbXBsZXRlIC5hbGdvbGlhLWRvY3NlYXJjaC1zdWdnZXN0aW9uIC5hbGdvbGlhLWRvY3NlYXJjaC1zdWdnZXN0aW9uLS1zdWJjYXRlZ29yeS1jb2x1bW57ZGlzcGxheTpub25lfS5hbGdvbGlhLWF1dG9jb21wbGV0ZSAuYWxnb2xpYS1kb2NzZWFyY2gtc3VnZ2VzdGlvbiAuYWxnb2xpYS1kb2NzZWFyY2gtc3VnZ2VzdGlvbi0tY29udGVudHttYXJnaW46MnB4IDA7cGFkZGluZzouNzVyZW07d2lkdGg6MTAwJTtmbG9hdDpub25lfS5hbGdvbGlhLWF1dG9jb21wbGV0ZSAuYWxnb2xpYS1kb2NzZWFyY2gtc3VnZ2VzdGlvbiAuYWxnb2xpYS1kb2NzZWFyY2gtc3VnZ2VzdGlvbi0tY29udGVudDpiZWZvcmV7ZGlzcGxheTpub25lfS5hbGdvbGlhLWRvY3NlYXJjaC1zdWdnZXN0aW9uLS1jb250ZW50LmFsZ29saWEtZG9jc2VhcmNoLXN1Z2dlc3Rpb24tLW5vLXJlc3VsdHN7dGV4dC1hbGlnbjpjZW50ZXJ9LmFsZ29saWEtYXV0b2NvbXBsZXRlIC5hbGdvbGlhLWRvY3NlYXJjaC1zdWdnZXN0aW9uIC5zZWFyY2gtcHJvZHVjdC12ZXJzaW9ue2ZvbnQtc2l6ZTouOGVtO2ZvbnQtd2VpZ2h0OjUwMDtvcGFjaXR5Oi41O21hcmdpbi1sZWZ0Oi4zNXJlbX0uYWxnb2xpYS1hdXRvY29tcGxldGUgLmFsZ29saWEtZG9jc2VhcmNoLXN1Z2dlc3Rpb24tLXRpdGxlIC5zZWFyY2gtcHJvZHVjdC12ZXJzaW9ue2Rpc3BsYXk6bm9uZX0uc2VhcmNoLWFsbC1jb250ZW50e3BhZGRpbmc6MC41cmVtIDAuNzVyZW07Zm9udC1zaXplOjAuOHJlbTt0ZXh0LWFsaWduOnJpZ2h0fS5zZWFyY2gtYWxsLWNvbnRlbnQgYXtjb2xvcjojRDREN0REO29wYWNpdHk6LjY7dGV4dC1kZWNvcmF0aW9uOm5vbmU7dHJhbnNpdGlvbjpvcGFjaXR5IC4yc30uc2VhcmNoLWFsbC1jb250ZW50IGE6aG92ZXJ7b3BhY2l0eToxfS5zZWFyY2gtbm8tcmVzdWx0c3twYWRkaW5nOjJyZW07dGV4dC1hbGlnbjpjZW50ZXI7Zm9udC1zaXplOjEuMXJlbTtjb2xvcjpyZ2JhKDIxMiwyMTUsMjIxLDAuNzUpO2ZvbnQtc3R5bGU6aXRhbGljfS5zZWFyY2gtbm8tcmVzdWx0cyBhe3Bvc2l0aW9uOnJlbGF0aXZlO2Rpc3BsYXk6aW5saW5lLWJsb2NrO21hcmdpbjouNXJlbSAuMjVyZW0gLjVyZW0gMDtwYWRkaW5nOjAuODVyZW0gMS41cmVtO2NvbG9yOiNmZmYgIWltcG9ydGFudDtib3JkZXItcmFkaXVzOjJweDtmb250LXNpemU6MS4xcmVtO2ZvbnQtd2VpZ2h0OjUwMDtmb250LXN0eWxlOm5vcm1hbDt0ZXh0LWRlY29yYXRpb246bm9uZTt6LWluZGV4OjE7YmFja2dyb3VuZDpsaW5lYXItZ3JhZGllbnQoNDVkZWcsICMwNjZGQzUsIzAwQTNGRil9LnNlYXJjaC1uby1yZXN1bHRzIGE6YWZ0ZXJ7Y29udGVudDpcIlwiO3Bvc2l0aW9uOmFic29sdXRlO2Rpc3BsYXk6YmxvY2s7dG9wOjA7cmlnaHQ6MDt3aWR0aDoxMDAlO2hlaWdodDoxMDAlO2JvcmRlci1yYWRpdXM6MnB4O2JhY2tncm91bmQ6bGluZWFyLWdyYWRpZW50KDQ1ZGVnLCAjMDBBM0ZGLCM2QkRGRkYpO29wYWNpdHk6MDt0cmFuc2l0aW9uOm9wYWNpdHkgLjJzO3otaW5kZXg6LTF9LnNlYXJjaC1uby1yZXN1bHRzIGE6aG92ZXJ7Y3Vyc29yOnBvaW50ZXJ9LnNlYXJjaC1uby1yZXN1bHRzIGE6aG92ZXI6YWZ0ZXJ7b3BhY2l0eToxfUBtZWRpYSAobWluLXdpZHRoOiA4MDFweCkgYW5kIChtYXgtd2lkdGg6IDEyMDBweCl7LmFsZ29saWEtYXV0b2NvbXBsZXRlIC5kcy1kcm9wZG93bi1tZW51e21heC13aWR0aDo3MHZ3fS5hbGdvbGlhLWF1dG9jb21wbGV0ZS5hbGdvbGlhLWF1dG9jb21wbGV0ZS1sZWZ0IC5kcy1kcm9wZG93bi1tZW51e2xlZnQ6MjguNXZ3ICFpbXBvcnRhbnQ7dG9wOi0uNDVyZW0gIWltcG9ydGFudH19QG1lZGlhIChtYXgtd2lkdGg6IDgwMHB4KXsuYWxnb2xpYS1hdXRvY29tcGxldGUgLmRzLWRyb3Bkb3duLW1lbnV7bWF4LXdpZHRoOjEwMHZ3O3dpZHRoOjEwMHZ3O21pbi13aWR0aDowfS5hbGdvbGlhLWF1dG9jb21wbGV0ZS5hbGdvbGlhLWF1dG9jb21wbGV0ZS1sZWZ0IC5kcy1kcm9wZG93bi1tZW51e2xlZnQ6LTFyZW0gIWltcG9ydGFudDt0b3A6MTEyJSAhaW1wb3J0YW50fX1AbWVkaWEgKG1heC13aWR0aDogNjAwcHgpey5hbGdvbGlhLWF1dG9jb21wbGV0ZSAuZHMtZHJvcGRvd24tbWVudXt3aWR0aDoxMDB2d30uYWxnb2xpYS1hdXRvY29tcGxldGUgLmRzLWRyb3Bkb3duLW1lbnUgLmRzLXN1Z2dlc3Rpb25ze3BhZGRpbmc6LjVyZW19fS5jYXJkc3tkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246cm93O3Bvc2l0aW9uOnJlbGF0aXZlO292ZXJmbG93OnZpc2libGU7Ym9yZGVyLXJhZGl1czoycHggMCAwIDJweDttaW4taGVpZ2h0OjcwMHB4O2JhY2tncm91bmQ6bGluZWFyLWdyYWRpZW50KDQ1ZGVnLCAjMTMwMDJELCM4RTFGQzMpfS5jYXJkcyBhe3RleHQtZGVjb3JhdGlvbjpub25lO2NvbG9yOmluaGVyaXR9LmNhcmRzICNsYW5kaW5nLWhpdmV7cG9zaXRpb246YWJzb2x1dGU7dG9wOjA7bGVmdDowO3otaW5kZXg6MH0uY2FyZHMgI2xhbmRpbmctaGl2ZSBwYXRoLC5jYXJkcyAjbGFuZGluZy1oaXZlIGVsbGlwc2V7ZmlsbDpyZ2JhKDE0NywxNDgsMjU1LDAuMjUpfS5jYXJkcyAubWFpbnt3aWR0aDo2NiU7cGFkZGluZzo1cmVtIDJ2dyA1cmVtIDQuNXZ3O2Rpc3BsYXk6ZmxleDtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO2FsaWduLWl0ZW1zOmNlbnRlcjtmbGV4LWRpcmVjdGlvbjpjb2x1bW47dGV4dC1hbGlnbjpjZW50ZXI7ei1pbmRleDoxfS5jYXJkcyAuZ3JvdXB7ZGlzcGxheTpmbGV4O2ZsZXgtd3JhcDp3cmFwO3dpZHRoOjM0JTtqdXN0aWZ5LWNvbnRlbnQ6ZmxleC1lbmR9LmNhcmRzIC5jYXJkLnNte2Rpc3BsYXk6ZmxleDtmbGV4LWRpcmVjdGlvbjpjb2x1bW47anVzdGlmeS1jb250ZW50OmNlbnRlcjt0ZXh0LWFsaWduOmxlZnQ7d2lkdGg6OTAlO3Bvc2l0aW9uOnJlbGF0aXZlO21hcmdpbi1ib3R0b206MXB4O3BhZGRpbmc6MCAzLjV2dyAwIDN2dzttaW4taGVpZ2h0OjE0MHB4O2JhY2tncm91bmQ6cmdiYSgyNCwyNCwzMiwwLjQpO3RyYW5zaXRpb246YmFja2dyb3VuZC1jb2xvciAuNHMsIHdpZHRoIC4yc30uY2FyZHMgLmNhcmQuc206bGFzdC1jaGlsZHttYXJnaW4tYm90dG9tOjB9LmNhcmRzIC5jYXJkLnNtOmhvdmVye2JhY2tncm91bmQ6IzAwQTNGRjt3aWR0aDoxMDAlfS5jYXJkcyAuY2FyZC5zbTpob3ZlciBoM3tmb250LXdlaWdodDo1MDA7Zm9udC1zaXplOjEuMnJlbX0uY2FyZHMgLmNhcmQuc206aG92ZXIgcHtvcGFjaXR5OjE7bWF4LWhlaWdodDozLjc1cmVtfS5jYXJkcyAuY2FyZC5zbSBoM3tmb250LXNpemU6MS4xcmVtO3RyYW5zaXRpb246YWxsIC4yczttYXJnaW46MH0uY2FyZHMgLmNhcmQuc20gcHttYXJnaW46LjVyZW0gMCAwO21heC1oZWlnaHQ6MDt3aWR0aDo4MCU7Y29sb3I6I2ZmZjtmb250LXNpemU6Ljk1cmVtO2xpbmUtaGVpZ2h0OjEuMjVyZW07b3BhY2l0eTowO3RyYW5zaXRpb246b3BhY2l0eSAuMnMgLjFzLCBtYXgtaGVpZ2h0IC4yc30uY2FyZHMgLmNhcmQgaDEsLmNhcmRzIC5jYXJkIGgyLC5jYXJkcyAuY2FyZCBoMywuY2FyZHMgLmNhcmQgaDR7Zm9udC13ZWlnaHQ6MzAwO2NvbG9yOiNmZmZ9LmNhcmRzIC5jYXJkIGgxe21hcmdpbjowIDAgMS4yNXJlbTtmb250LXNpemU6Mi41cmVtO3otaW5kZXg6MX0uY2FyZHMgLmNhcmQjZ2V0LXN0YXJ0ZWQgLmF2b2lkLXdyYXB7ZGlzcGxheTppbmxpbmUtYmxvY2t9LmNhcmRzIC5jYXJkI2dldC1zdGFydGVkIC5idG57cG9zaXRpb246cmVsYXRpdmU7ZGlzcGxheTpibG9jaztwYWRkaW5nOjEuMjVyZW0gNHJlbTtjb2xvcjojZmZmO2ZvbnQtc2l6ZToxLjJyZW07Zm9udC13ZWlnaHQ6NTAwO2JhY2tncm91bmQ6bGluZWFyLWdyYWRpZW50KDQ1ZGVnLCAjMDY2RkM1LCMwMEEzRkYpO3RyYW5zaXRpb246YmFja2dyb3VuZC1jb2xvciAuMnMsIGNvbG9yIC4ycztib3JkZXItcmFkaXVzOjJweDt6LWluZGV4OjF9LmNhcmRzIC5jYXJkI2dldC1zdGFydGVkIC5idG46YmVmb3Jle2NvbnRlbnQ6XCJcIjtwb3NpdGlvbjphYnNvbHV0ZTtkaXNwbGF5OmJsb2NrO3RvcDowO3JpZ2h0OjA7d2lkdGg6MTAwJTtoZWlnaHQ6MTAwJTtib3JkZXItcmFkaXVzOjJweDtiYWNrZ3JvdW5kOmxpbmVhci1ncmFkaWVudCg0NWRlZywgIzAwQTNGRiwjNkJERkZGKTtvcGFjaXR5OjA7dHJhbnNpdGlvbjpvcGFjaXR5IC4yczt6LWluZGV4Oi0xfS5jYXJkcyAuY2FyZCNnZXQtc3RhcnRlZCAuYnRuOmhvdmVyOmJlZm9yZXtvcGFjaXR5OjF9LmNhcmRzIC5jYXJkI2dldC1zdGFydGVkIC5iZXRhOmFmdGVye2NvbnRlbnQ6J2JldGEnO2Rpc3BsYXk6aW5saW5lLWJsb2NrO3ZlcnRpY2FsLWFsaWduOm1pZGRsZTtmb250LXN0eWxlOml0YWxpYztmb250LXNpemU6LjQ1ZW07bWFyZ2luOi04cHggMCAwIC41ZW07cGFkZGluZzouMXJlbSAuNnJlbSAuMTJyZW07Ym9yZGVyLXJhZGl1czoxcmVtO2JvcmRlcjowLjE1cmVtIHNvbGlkIHJnYmEoMjU1LDI1NSwyNTUsMC41KTt0cmFuc2l0aW9uOmJvcmRlci1jb2xvciAuMnN9QG1lZGlhIChtYXgtd2lkdGg6IDEyODBweCl7LmNhcmRzIC5jYXJkLmZ1bGx7cGFkZGluZzozLjVyZW19LmNhcmRzIC5jYXJkLnF1YXJ0ZXJ7d2lkdGg6NDglfX1AbWVkaWEgKG1heC13aWR0aDogMTE1MHB4KXsuY2FyZHN7ZmxleC1kaXJlY3Rpb246Y29sdW1ufS5jYXJkcyAubWFpbnt3aWR0aDoxMDAlfS5jYXJkcyAuZ3JvdXB7d2lkdGg6MTAwJX0uY2FyZHMgLmdyb3VwIC5jYXJkLnNte21hcmdpbi1yaWdodDoxcHg7cGFkZGluZzoycmVtO2ZsZXgtZ3JvdzoyO3dpZHRoOjQ5JTt0ZXh0LWFsaWduOmNlbnRlcn0uY2FyZHMgLmdyb3VwIC5jYXJkLnNtIGgze21hcmdpbjowIDAgLjVyZW07Zm9udC1zaXplOjEuMXJlbTtmb250LXdlaWdodDo1MDB9LmNhcmRzIC5ncm91cCAuY2FyZC5zbSBwe29wYWNpdHk6LjY7cG9zaXRpb246cmVsYXRpdmU7bWF4LWhlaWdodDpmaXQtY29udGVudDt3aWR0aDphdXRvO21hcmdpbjowfS5jYXJkcyAuZ3JvdXAgLmNhcmQuc206aG92ZXJ7YmFja2dyb3VuZDojMDBBM0ZGfS5jYXJkcyAuZ3JvdXAgLmNhcmQuc206aG92ZXIgaDN7dHJhbnNmb3JtOm5vbmV9LmNhcmRzIC5ncm91cCAuY2FyZC5zbTpob3ZlciBwe29wYWNpdHk6MTttYXgtaGVpZ2h0OmZpdC1jb250ZW50fX1AbWVkaWEgKG1heC13aWR0aDogNjAwcHgpey5jYXJkcyAuZ3JvdXB7ZmxleC1kaXJlY3Rpb246Y29sdW1ufS5jYXJkcyAuZ3JvdXAgLmNhcmQuc217d2lkdGg6MTAwJTttYXgtd2lkdGg6MTAwJTtwYWRkaW5nOjEuMjVyZW19LmNhcmRzIC5jYXJkIGgxe2ZvbnQtc2l6ZToycmVtfS5jYXJkcyAuY2FyZC5tYWlue3BhZGRpbmc6Mi41cmVtfS5jYXJkcyAuY2FyZC5tYWluI2dldC1zdGFydGVkIC5idG57Zm9udC1zaXplOjFyZW07bWFyZ2luOjAgMCAuMzVyZW19fS5jdXJyZW50LXRpbWVzdGFtcCwuY3VycmVudC1kYXRlLC5jdXJyZW50LXRpbWUsLmVudGVycHJpc2UtZW9sLWRhdGV7Y29sb3I6I0Q0RDdERDtkaXNwbGF5OmlubGluZS1ibG9jaztmb250LWZhbWlseTpcIlByb3hpbWEgTm92YVwiLHNhbnMtc2VyaWY7d2hpdGUtc3BhY2U6bm93cmFwfS5ub3dyYXB7d2hpdGUtc3BhY2U6bm93cmFwfS5lcnJvci1wYWdle3BhZGRpbmc6MXJlbTtkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO3ZlcnRpY2FsLWFsaWduOm1pZGRsZTtqdXN0aWZ5LWNvbnRlbnQ6c3BhY2UtYXJvdW5kfS5lcnJvci1wYWdlIC5lcnJvci1jb250ZW50e21hcmdpbi10b3A6MTB2aDttYXgtd2lkdGg6MzgwcHh9LmVycm9yLXBhZ2UgLmVycm9yLWNvZGV7ZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtqdXN0aWZ5LWNvbnRlbnQ6c3BhY2UtYXJvdW5kO21hcmdpbjowIGF1dG87d2lkdGg6MTVyZW07aGVpZ2h0OjE1cmVtO21heC13aWR0aDo4MHZ3O21heC1oZWlnaHQ6ODB2dztib3JkZXItcmFkaXVzOjUwJTtib3gtc2hhZG93OjVweCA1cHggMzBweCByZ2JhKDE1LDE0LDIxLDAuNSl9LmVycm9yLXBhZ2UgLmVycm9yLWNvZGUgLmVycm9yLWNvZGUtYm9yZGVye2Rpc3BsYXk6ZmxleDthbGlnbi1pdGVtczpjZW50ZXI7anVzdGlmeS1jb250ZW50OnNwYWNlLWFyb3VuZDtib3JkZXI6MnB4IHNvbGlkIHJnYmEoMCwxNjMsMjU1LDAuNSk7d2lkdGg6OTAlO2hlaWdodDo5MCU7Ym9yZGVyLXJhZGl1czo1MCV9LmVycm9yLXBhZ2UgLmVycm9yLWNvZGUgaDF7Y29sb3I6IzAwQTNGRjtmb250LXNpemU6NXJlbTtmb250LXdlaWdodDozMDA7dGV4dC1hbGlnbjpjZW50ZXJ9LmVycm9yLXBhZ2UgYXtjb2xvcjojMDBBM0ZGO3RleHQtZGVjb3JhdGlvbjpub25lO2ZvbnQtd2VpZ2h0OmJvbGR9LmVycm9yLXBhZ2UgYTpob3Zlcntjb2xvcjojZmZmfS5lcnJvci1wYWdlIC53YXlmaW5kaW5ne2Rpc3BsYXk6ZmxleDtqdXN0aWZ5LWNvbnRlbnQ6c3BhY2UtYXJvdW5kO2FsaWduLWNvbnRlbnQ6Y2VudGVyO21hcmdpbjoycmVtIDAgMS41cmVtfS5lcnJvci1wYWdlIC53YXlmaW5kaW5nIC5idG57ZGlzcGxheTpmbGV4O3Bvc2l0aW9uOnJlbGF0aXZlO2ZsZXgtZ3JvdzoxO21hcmdpbi1yaWdodDo0cHg7cGFkZGluZzouNzVyZW0gMXJlbTtib3JkZXItcmFkaXVzOjJweDt0ZXh0LWFsaWduOmNlbnRlcjtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO2FsaWduLWl0ZW1zOmNlbnRlcjtjb2xvcjojZmZmO3RyYW5zaXRpb246YmFja2dyb3VuZC1jb2xvciAuMnM7ei1pbmRleDoxO2JhY2tncm91bmQ6bGluZWFyLWdyYWRpZW50KDQ1ZGVnLCAjMDY2RkM1LCMwMEEzRkYpfS5lcnJvci1wYWdlIC53YXlmaW5kaW5nIC5idG4uYmFjazpiZWZvcmV7Y29udGVudDpcIlxcZTkwYVwiO2ZvbnQtZmFtaWx5OlwiaWNvbW9vbi12MlwiO21hcmdpbi1yaWdodDouMzVyZW07dmVydGljYWwtYWxpZ246dGV4dC10b3B9LmVycm9yLXBhZ2UgLndheWZpbmRpbmcgLmJ0bjphZnRlcntjb250ZW50OlwiXCI7cG9zaXRpb246YWJzb2x1dGU7ZGlzcGxheTpibG9jazt0b3A6MDtyaWdodDowO3dpZHRoOjEwMCU7aGVpZ2h0OjEwMCU7Ym9yZGVyLXJhZGl1czoycHg7YmFja2dyb3VuZDpsaW5lYXItZ3JhZGllbnQoNDVkZWcsICMwMEEzRkYsIzZCREZGRik7b3BhY2l0eTowO3RyYW5zaXRpb246b3BhY2l0eSAuMnM7ei1pbmRleDotMX0uZXJyb3ItcGFnZSAud2F5ZmluZGluZyAuYnRuOmhvdmVye2N1cnNvcjpwb2ludGVyfS5lcnJvci1wYWdlIC53YXlmaW5kaW5nIC5idG46aG92ZXI6YWZ0ZXJ7b3BhY2l0eToxfS5lcnJvci1wYWdlIHB7Y29sb3I6I0Q0RDdERDtsaW5lLWhlaWdodDoxLjVyZW19LmZvb3Rlci13aWRnZXRze3Bvc2l0aW9uOmZpeGVkO2JvdHRvbToxcmVtO3JpZ2h0OjFyZW07d2lkdGg6YXV0bztoZWlnaHQ6YXV0bztkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246Y29sdW1uO2p1c3RpZnktY29udGVudDpmbGV4LWVuZDthbGlnbi1pdGVtczpmbGV4LWVuZDt6LWluZGV4OjEwMH0uZm9vdGVyLXdpZGdldHMgLndpZGdldHtoZWlnaHQ6NTBweDt3aWR0aDo1MHB4O2JvcmRlci1yYWRpdXM6NnB4O3Bvc2l0aW9uOnJlbGF0aXZlO2JveC1zaGFkb3c6MnB4IDJweCA2cHggcmdiYSgxNSwxNCwyMSwwLjUpO2NvbG9yOiNmZmZ9LmZvb3Rlci13aWRnZXRzIC53aWRnZXQ6bm90KDpsYXN0LWNoaWxkKXttYXJnaW4tYm90dG9tOjVweH0uZm9vdGVyLXdpZGdldHMgLndpZGdldDpiZWZvcmV7Y29udGVudDphdHRyKGRhdGEtdG9vbHRpcCk7cGFkZGluZzouMjVyZW0gLjVyZW07ZGlzcGxheTpmbGV4O3Bvc2l0aW9uOmFic29sdXRlO3RvcDoxMXB4O3JpZ2h0OjYwcHg7d2lkdGg6YXV0bzt3aGl0ZS1zcGFjZTpub3dyYXA7Zm9udC1zaXplOi45cmVtO2ZvbnQtd2VpZ2h0OmJvbGQ7Ym9yZGVyLXJhZGl1czo2cHg7YmFja2dyb3VuZDpsaW5lYXItZ3JhZGllbnQoMjcwZGVnLCAjZDMwOTcxLCM5YjJhZmYpO3BvaW50ZXItZXZlbnRzOm5vbmU7ei1pbmRleDotMTtvcGFjaXR5OjA7dHJhbnNmb3JtOnRyYW5zbGF0ZVgoMTVweCk7dHJhbnNpdGlvbjpvcGFjaXR5IC4ycywgdHJhbnNmb3JtIC4yc30uZm9vdGVyLXdpZGdldHMgLndpZGdldDphZnRlcntjb250ZW50OlwiXCI7cG9zaXRpb246YWJzb2x1dGU7dG9wOjE0cHg7cmlnaHQ6NTZweDt3aWR0aDowcHg7aGVpZ2h0OjBweDtvcGFjaXR5OjA7dHJhbnNmb3JtOnRyYW5zbGF0ZVgoMTVweCk7dHJhbnNpdGlvbjpvcGFjaXR5IC4ycywgdHJhbnNmb3JtIC4yc30uZm9vdGVyLXdpZGdldHMgLndpZGdldDpob3ZlcntjdXJzb3I6cG9pbnRlcn0uZm9vdGVyLXdpZGdldHMgLndpZGdldDpob3ZlcjpiZWZvcmUsLmZvb3Rlci13aWRnZXRzIC53aWRnZXQ6aG92ZXI6YWZ0ZXJ7b3BhY2l0eToxO3RyYW5zZm9ybTp0cmFuc2xhdGVYKDApfS5mb290ZXItd2lkZ2V0cyAud2lkZ2V0Lm1hZ2VudGF7YmFja2dyb3VuZDpsaW5lYXItZ3JhZGllbnQoOTBkZWcsICNkMzA5NzEsIzliMmFmZil9LmZvb3Rlci13aWRnZXRzIC53aWRnZXQubWFnZW50YTpiZWZvcmV7YmFja2dyb3VuZDpsaW5lYXItZ3JhZGllbnQoMjcwZGVnLCAjZDMwOTcxLCM5YjJhZmYpfS5mb290ZXItd2lkZ2V0cyAud2lkZ2V0Lm1hZ2VudGE6YWZ0ZXJ7Ym9yZGVyLXN0eWxlOnNvbGlkO2JvcmRlci13aWR0aDoxMHB4IDAgMTBweCA1cHg7Ym9yZGVyLWNvbG9yOnRyYW5zcGFyZW50IHRyYW5zcGFyZW50IHRyYW5zcGFyZW50ICNkMzA5NzF9LmZvb3Rlci13aWRnZXRzIC53aWRnZXQuYmx1ZXtjb2xvcjpyZ2JhKDIsMTAsNzEsMC43KTtiYWNrZ3JvdW5kOmxpbmVhci1ncmFkaWVudCgyNzBkZWcsICMwMEEzRkYsIzVlZTRlNCl9LmZvb3Rlci13aWRnZXRzIC53aWRnZXQuYmx1ZTpiZWZvcmV7YmFja2dyb3VuZDpsaW5lYXItZ3JhZGllbnQoOTBkZWcsICMwMEEzRkYsIzVlZTRlNCl9LmZvb3Rlci13aWRnZXRzIC53aWRnZXQuYmx1ZTphZnRlcntib3JkZXItc3R5bGU6c29saWQ7Ym9yZGVyLXdpZHRoOjEwcHggMCAxMHB4IDVweDtib3JkZXItY29sb3I6dHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQgIzVlZTRlNH0uY3VzdG9tLXRpbWUtdHJpZ2dlciBhe2Rpc3BsYXk6ZmxleDtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO2FsaWduLWl0ZW1zOmNlbnRlcjt3aWR0aDoxMDAlO2hlaWdodDoxMDAlO2ZvbnQtc2l6ZToxLjJyZW07Y29sb3I6cmdiYSgyLDEwLDcxLDAuOCk7dGV4dC1kZWNvcmF0aW9uOm5vbmV9LmFzay1haS10cmlnZ2VyIC5hc2stYWktb3Blbnt3aWR0aDoxMDAlO2hlaWdodDoxMDAlO2Rpc3BsYXk6ZmxleDtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO3RleHQtYWxpZ246Y2VudGVyO2FsaWduLWl0ZW1zOmNlbnRlcjtmbGV4LWRpcmVjdGlvbjpjb2x1bW47Zm9udC1zaXplOi44cmVtO2ZvbnQtd2VpZ2h0OmJvbGR9LmFzay1haS10cmlnZ2VyIC5hc2stYWktb3BlbiAuaWNvbi1pbmZsdXgtbG9nb3ttYXJnaW4tYm90dG9tOi4xNXJlbTtmb250LXNpemU6MXJlbX0uYXNrLWFpLXRyaWdnZXIgLmFzay1haS1vcGVuOmhvdmVye2N1cnNvcjpwb2ludGVyfUBrZXlmcmFtZXMgZmFkZUluQW5pbWF0aW9uezAle29wYWNpdHk6MH0xMDAle29wYWNpdHk6MX19QG1lZGlhIChtYXgtd2lkdGg6IDYwMHB4KXsuZm9vdGVyLXdpZGdldHN7Ym90dG9tOi43NXJlbTtyaWdodDouNzVyZW19fS5tb2RhbHtkaXNwbGF5Om5vbmU7cGFkZGluZzoxcmVtO3Bvc2l0aW9uOmZpeGVkO3RvcDowO3dpZHRoOjEwMCU7aGVpZ2h0OjEwMCU7ei1pbmRleDoxMDF9Lm1vZGFsIC5tb2RhbC1vdmVybGF5e3Bvc2l0aW9uOmFic29sdXRlO3RvcDowO2xlZnQ6MDt3aWR0aDoxMDAlO2hlaWdodDoxMDAlO2JhY2tncm91bmQ6bGluZWFyLWdyYWRpZW50KDQ1ZGVnLCAjQkUyRUU0LCMwMEEzRkYpO29wYWNpdHk6Ljg1fS5tb2RhbCAubW9kYWwtd3JhcHBlcntkaXNwbGF5OmZsZXg7anVzdGlmeS1jb250ZW50OmNlbnRlcjthbGlnbi1pdGVtczpmbGV4LXN0YXJ0fS5tb2RhbCAubW9kYWwtYm9keXtwb3NpdGlvbjpyZWxhdGl2ZTtkaXNwbGF5OmZsZXg7b3ZlcmZsb3cteTphdXRvO292ZXJmbG93LXg6aGlkZGVuO21heC13aWR0aDo2NTBweDttYXgtaGVpZ2h0Ojk3LjV2aDttYXJnaW4tdG9wOjEwdmg7cGFkZGluZzouNzVyZW0gMnJlbSAxLjVyZW07Ym9yZGVyLXJhZGl1czozcHg7YmFja2dyb3VuZDojMTQxNDFGO2NvbG9yOiNENEQ3REQ7Zm9udC1zaXplOjFyZW07dHJhbnNpdGlvbjptYXJnaW4gLjRzO3Njcm9sbC1iZWhhdmlvcjpzbW9vdGg7LXdlYmtpdC1vdmVyZmxvdy1zY3JvbGxpbmc6dG91Y2h9Lm1vZGFsIC5tb2RhbC1ib2R5Ojotd2Via2l0LXNjcm9sbGJhcnt3aWR0aDo4cHh9Lm1vZGFsIC5tb2RhbC1ib2R5Ojotd2Via2l0LXNjcm9sbGJhci10cmFja3tiYWNrZ3JvdW5kOnJnYmEoNTYsNTYsNzAsMC4yKTtib3JkZXItcmFkaXVzOjRweH0ubW9kYWwgLm1vZGFsLWJvZHk6Oi13ZWJraXQtc2Nyb2xsYmFyLXRodW1ie2JhY2tncm91bmQ6cmdiYSgyMTIsMjE1LDIyMSwwLjMpO2JvcmRlci1yYWRpdXM6NHB4fS5tb2RhbCAubW9kYWwtYm9keTo6LXdlYmtpdC1zY3JvbGxiYXItdGh1bWI6aG92ZXJ7YmFja2dyb3VuZDpyZ2JhKDIxMiwyMTUsMjIxLDAuNSl9Lm1vZGFsLm9wZW4gLm1vZGFsLWJvZHl7bWFyZ2luLXRvcDowfS5tb2RhbCAjbW9kYWwtY2xvc2V7cG9zaXRpb246YWJzb2x1dGU7cGFkZGluZzouMjVyZW07dG9wOjFyZW07cmlnaHQ6MXJlbTtjb2xvcjpyZ2JhKDIxMiwyMTUsMjIxLDAuNSk7dHJhbnNpdGlvbjpjb2xvciAuMnM7dGV4dC1kZWNvcmF0aW9uOm5vbmV9Lm1vZGFsICNtb2RhbC1jbG9zZTpob3Zlcntjb2xvcjojRDREN0REfS5tb2RhbCAubW9kYWwtY29udGVudHtkaXNwbGF5Om5vbmU7b3ZlcmZsb3c6dmlzaWJsZTt3aWR0aDo1ODZweDttYXgtd2lkdGg6MTAwJTtmbGV4LXNocmluazowfS5tb2RhbCAubW9kYWwtY29udGVudCBoM3tjb2xvcjojZmZmO2ZvbnQtd2VpZ2h0OjUwMDtmb250LXNpemU6MS40cmVtO21hcmdpbi1ib3R0b206MXJlbX0ubW9kYWwgLm1vZGFsLWNvbnRlbnQgaDR7Y29sb3I6I2ZmZjtmb250LXdlaWdodDo1MDA7bWFyZ2luOjFyZW0gMCAwLjVyZW0gMnB4fS5tb2RhbCAubW9kYWwtY29udGVudCBoNXttYXJnaW46LjVyZW0gMCAwO2NvbG9yOiNGQUZBRkN9Lm1vZGFsIC5tb2RhbC1jb250ZW50IHAsLm1vZGFsIC5tb2RhbC1jb250ZW50IGxpe21hcmdpbjouMjVyZW0gMDtsaW5lLWhlaWdodDoxLjVyZW19Lm1vZGFsIC5tb2RhbC1jb250ZW50IHAgc3Ryb25nLC5tb2RhbCAubW9kYWwtY29udGVudCBsaSBzdHJvbmd7Zm9udC13ZWlnaHQ6NTAwO2NvbG9yOiNGQUZBRkN9Lm1vZGFsIC5tb2RhbC1jb250ZW50IHAubm90ZSwubW9kYWwgLm1vZGFsLWNvbnRlbnQgbGkubm90ZXtwYWRkaW5nLXRvcDoxLjI1cmVtO21hcmdpbi10b3A6MS41cmVtO2NvbG9yOnJnYmEoMjEyLDIxNSwyMjEsMC41KTtib3JkZXItdG9wOjFweCBzb2xpZCByZ2JhKDIxMiwyMTUsMjIxLDAuMjUpO2ZvbnQtc2l6ZTouOXJlbTtmb250LXN0eWxlOml0YWxpY30ubW9kYWwgLm1vZGFsLWNvbnRlbnQgYXtjb2xvcjojMDBBM0ZGO2ZvbnQtd2VpZ2h0OjUwMDt0ZXh0LWRlY29yYXRpb246bm9uZTt0cmFuc2l0aW9uOmNvbG9yIC4yc30ubW9kYWwgLm1vZGFsLWNvbnRlbnQgYTpob3Zlcntjb2xvcjojZmZmfS5tb2RhbCAucHJvZHVjdHN7ZGlzcGxheTpmbGV4O2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjtmbGV4LXdyYXA6d3JhcDtmbGV4LWdyb3c6MTtqdXN0aWZ5LWNvbnRlbnQ6ZmxleC1zdGFydH0ubW9kYWwgLnByb2R1Y3QgLnByb3ZpZGVyc3tkaXNwbGF5OmZsZXg7ZmxleC13cmFwOndyYXA7cGFkZGluZzouNXJlbSAxcmVtO2JhY2tncm91bmQ6cmdiYSgyMTIsMjE1LDIyMSwwLjA1KTtib3JkZXItcmFkaXVzOjJweH0ubW9kYWwgLnByb2R1Y3QgLnByb3ZpZGVycyAucHJvdmlkZXJ7ZmxleC1ncm93OjF9Lm1vZGFsIC5wcm9kdWN0IC5wcm92aWRlcnMgLnByb3ZpZGVyOm5vdCg6bGFzdC1jaGlsZCl7bWFyZ2luLXJpZ2h0OjFyZW19Lm1vZGFsIC5wcm9kdWN0IC5wcm92aWRlcnMgdWx7bWFyZ2luOi41cmVtIC41cmVtIC41cmVtIDA7cGFkZGluZzowO2xpc3Qtc3R5bGU6bm9uZX0ubW9kYWwgLnByb2R1Y3QgLnByb3ZpZGVycyB1bC5jbHVzdGVyc3twYWRkaW5nLWxlZnQ6MS43NXJlbX0ubW9kYWwgLnByb2R1Y3QgLnByb3ZpZGVycyBwLnJlZ2lvbiAuZmFrZS1yYWRpb3twb3NpdGlvbjpyZWxhdGl2ZTtkaXNwbGF5OmlubGluZS1ibG9jaztoZWlnaHQ6MS4xNWVtO3dpZHRoOjEuMTVlbTttYXJnaW46MCAwLjNyZW0gMCAwLjFyZW07Ym9yZGVyLXJhZGl1czoycHg7Ym9yZGVyOjEuNXB4IHNvbGlkIHRyYW5zcGFyZW50O2JhY2tncm91bmQ6cmdiYSgyMTIsMjE1LDIyMSwwLjA1KTtib3JkZXI6MS41cHggc29saWQgcmdiYSgyMTIsMjE1LDIyMSwwLjIpO3ZlcnRpY2FsLWFsaWduOnRleHQtdG9wO2N1cnNvcjpwb2ludGVyfS5tb2RhbCAucHJvZHVjdCAucHJvdmlkZXJzIHAucmVnaW9uIC5mYWtlLXJhZGlvOmFmdGVye2NvbnRlbnQ6XCJcIjtwb3NpdGlvbjphYnNvbHV0ZTtkaXNwbGF5OmJsb2NrO2hlaWdodDouNXJlbTt3aWR0aDouNXJlbTt0b3A6LjIzcmVtO2xlZnQ6LjIzcmVtO2JvcmRlci1yYWRpdXM6NTAlO2JhY2tncm91bmQ6cmdiYSgyMTIsMjE1LDIyMSwwLjMpO29wYWNpdHk6MDt0cmFuc2l0aW9uOm9wYWNpdHkgLjJzfS5tb2RhbCAucHJvZHVjdCAucHJvdmlkZXJzIHAucmVnaW9uIC5mYWtlLXJhZGlvLmNoZWNrZWQ6YWZ0ZXJ7b3BhY2l0eToxfS5tb2RhbCBsaS5jdXN0b217ZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOmNlbnRlcn0ubW9kYWwgI2N1c3RvbS11cmx7ZGlzcGxheTppbmxpbmUtYmxvY2s7d2lkdGg6MTAwJTtwYWRkaW5nLWxlZnQ6LjVyZW07cG9zaXRpb246cmVsYXRpdmV9Lm1vZGFsICNjdXN0b20tdXJsOmFmdGVye2Rpc3BsYXk6bm9uZTtjb250ZW50OmF0dHIoZGF0YS1tZXNzYWdlKTtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6LTEuOHJlbTtyaWdodDowO2ZvbnQtc2l6ZTouODVyZW07Zm9udC13ZWlnaHQ6NTAwO2NvbG9yOiNEQzRFNTh9Lm1vZGFsICNjdXN0b20tdXJsLmVycm9yOmFmdGVye2Rpc3BsYXk6YmxvY2t9Lm1vZGFsICNjdXN0b20tdXJsLmVycm9yIGlucHV0I2N1c3RvbS11cmwtZmllbGQsLm1vZGFsICNjdXN0b20tdXJsLmVycm9yIGlucHV0I2RlZGljYXRlZC11cmwtZmllbGQsLm1vZGFsICNjdXN0b20tdXJsLmVycm9yIGlucHV0I2NsdXN0ZXJlZC11cmwtZmllbGR7Ym9yZGVyLWNvbG9yOiNEQzRFNTh9Lm1vZGFsICNjdXN0b20tdXJsLmVycm9yIGlucHV0I2N1c3RvbS11cmwtZmllbGQ6Zm9jdXMsLm1vZGFsICNjdXN0b20tdXJsLmVycm9yIGlucHV0I2RlZGljYXRlZC11cmwtZmllbGQ6Zm9jdXMsLm1vZGFsICNjdXN0b20tdXJsLmVycm9yIGlucHV0I2NsdXN0ZXJlZC11cmwtZmllbGQ6Zm9jdXN7Ym9yZGVyLWNvbG9yOiNEQzRFNTg7Ym94LXNoYWRvdzoxcHggMXB4IDEwcHggcmdiYSgyMjAsNzgsODgsMC41KX0ubW9kYWwgI2N1c3RvbS11cmwgaW5wdXQjY3VzdG9tLXVybC1maWVsZCwubW9kYWwgI2N1c3RvbS11cmwgaW5wdXQjZGVkaWNhdGVkLXVybC1maWVsZCwubW9kYWwgI2N1c3RvbS11cmwgaW5wdXQjY2x1c3RlcmVkLXVybC1maWVsZHtmb250LWZhbWlseTpcIlByb3hpbWEgTm92YVwiLHNhbnMtc2VyaWY7Zm9udC13ZWlnaHQ6NTAwO2JhY2tncm91bmQ6IzE4MTgyMDtib3JkZXItcmFkaXVzOjJweDtib3JkZXI6MXB4IHNvbGlkICMxQTFBMkE7cGFkZGluZzouNWVtO3dpZHRoOjEwMCU7Y29sb3I6I2ZmZjt0cmFuc2l0aW9uLXByb3BlcnR5OmJvcmRlciwgYm94LXNoYWRvdzt0cmFuc2l0aW9uLWR1cmF0aW9uOi4ycztib3gtc2hhZG93OjJweCAycHggNnB4IHJnYmEoMTUsMTQsMjEsMC41KX0ubW9kYWwgI2N1c3RvbS11cmwgaW5wdXQjY3VzdG9tLXVybC1maWVsZDpmb2N1cywubW9kYWwgI2N1c3RvbS11cmwgaW5wdXQjZGVkaWNhdGVkLXVybC1maWVsZDpmb2N1cywubW9kYWwgI2N1c3RvbS11cmwgaW5wdXQjY2x1c3RlcmVkLXVybC1maWVsZDpmb2N1c3tvdXRsaW5lOm5vbmU7Ym9yZGVyLWNvbG9yOiMwMEEzRkY7Ym94LXNoYWRvdzoxcHggMXB4IDEwcHggcmdiYSgwLDE2MywyNTUsMC41KTtib3JkZXItcmFkaXVzOjJweH0ubW9kYWwgI2N1c3RvbS11cmwgaW5wdXQjY3VzdG9tLXVybC1maWVsZDo6cGxhY2Vob2xkZXIsLm1vZGFsICNjdXN0b20tdXJsIGlucHV0I2RlZGljYXRlZC11cmwtZmllbGQ6OnBsYWNlaG9sZGVyLC5tb2RhbCAjY3VzdG9tLXVybCBpbnB1dCNjbHVzdGVyZWQtdXJsLWZpZWxkOjpwbGFjZWhvbGRlcntjb2xvcjpyZ2JhKDI1NSwyNTUsMjU1LDAuNDUpO2ZvbnQtd2VpZ2h0Om5vcm1hbDtmb250LXN0eWxlOml0YWxpY30ubW9kYWwgI2RlZGljYXRlZC11cmxzIC5wcm92aWRlcnMsLm1vZGFsICNjbHVzdGVyZWQtdXJscyAucHJvdmlkZXJze3BhZGRpbmctYm90dG9tOjFyZW19Lm1vZGFsICNkZWRpY2F0ZWQtdXJscyAjY3VzdG9tLXVybCwubW9kYWwgI2NsdXN0ZXJlZC11cmxzICNjdXN0b20tdXJse21hcmdpbi10b3A6LjVyZW07cGFkZGluZzowfS5tb2RhbCAucmFkaW97cG9zaXRpb246cmVsYXRpdmU7ZGlzcGxheTppbmxpbmUtYmxvY2s7aGVpZ2h0OjEuMTVlbTt3aWR0aDoxLjE1ZW07YmFja2dyb3VuZDpyZ2JhKDIxMiwyMTUsMjIxLDAuMDUpO21hcmdpbjowIC4zcmVtIDAgLjFyZW07dmVydGljYWwtYWxpZ246dGV4dC10b3A7Ym9yZGVyLXJhZGl1czoycHg7Y3Vyc29yOnBvaW50ZXI7Ym9yZGVyOjEuNXB4IHNvbGlkIHJnYmEoMjEyLDIxNSwyMjEsMC4yKTt1c2VyLXNlbGVjdDpub25lfS5tb2RhbCBpbnB1dFt0eXBlPSdyYWRpbydde21hcmdpbi1yaWdodDotMS4xcmVtO3BhZGRpbmc6MDt2ZXJ0aWNhbC1hbGlnbjp0b3A7b3BhY2l0eTowO2N1cnNvcjpwb2ludGVyfS5tb2RhbCBpbnB1dFt0eXBlPSdyYWRpbyddKy5yYWRpbzphZnRlcntjb250ZW50OlwiXCI7ZGlzcGxheTpibG9jaztwb3NpdGlvbjphYnNvbHV0ZTtoZWlnaHQ6LjVyZW07d2lkdGg6LjVyZW07Ym9yZGVyLXJhZGl1czo1MCU7YmFja2dyb3VuZDojMDBBM0ZGO3RvcDo1MCU7bGVmdDo1MCU7b3BhY2l0eTowO3RyYW5zZm9ybTpzY2FsZSgyKSB0cmFuc2xhdGUoLTIwJSwgLTIwJSk7dHJhbnNpdGlvbjphbGwgLjJzfS5tb2RhbCBpbnB1dFt0eXBlPSdyYWRpbyddOmNoZWNrZWQrLnJhZGlvOmFmdGVye29wYWNpdHk6MTt0cmFuc2Zvcm06c2NhbGUoMSkgdHJhbnNsYXRlKC01MCUsIC01MCUpfS5tb2RhbCB0ZDphZnRlciwubW9kYWwgbGFiZWw6YWZ0ZXIsLm1vZGFsIGxpOmFmdGVye2Rpc3BsYXk6aW5saW5lO3ZlcnRpY2FsLWFsaWduOm1pZGRsZTtmb250LXN0eWxlOml0YWxpYztmb250LXdlaWdodDo1MDA7Zm9udC1zaXplOi43NWVtO21hcmdpbi1sZWZ0Oi4zNXJlbTtwYWRkaW5nOi4xcmVtIC4zcmVtIC4xMnJlbSAuMzJyZW07bGluZS1oZWlnaHQ6Ljc1cmVtO2JvcmRlci1yYWRpdXM6MXJlbX0ubW9kYWwgdGQuYmV0YTphZnRlciwubW9kYWwgbGFiZWwuYmV0YTphZnRlciwubW9kYWwgbGkuYmV0YTphZnRlcntjb250ZW50OlwiYmV0YVwiO2NvbG9yOiNmZmY7YmFja2dyb3VuZDpsaW5lYXItZ3JhZGllbnQoNDVkZWcsICMwNjZGQzUsIzAwQTNGRil9Lm1vZGFsIGxhYmVsOmFmdGVye21hcmdpbi1sZWZ0Oi4xNXJlbX0ubW9kYWwgI3ByZWYtdGFic3twYWRkaW5nOjA7bWFyZ2luOjAgMCAtNXB4O2xpc3Qtc3R5bGU6bm9uZTtkaXNwbGF5OmZsZXg7anVzdGlmeS1jb250ZW50OnNwYWNlLWJldHdlZW47YWxpZ24taXRlbXM6Y2VudGVyfS5tb2RhbCAucHJlZi10YWJ7cGFkZGluZzouNzVyZW0gMS4yNXJlbTttYXJnaW4tcmlnaHQ6NXB4O3RleHQtYWxpZ246Y2VudGVyO2ZvbnQtd2VpZ2h0OmJvbGQ7d2lkdGg6NDklO2NvbG9yOnJnYmEoMjEyLDIxNSwyMjEsMC43KTtiYWNrZ3JvdW5kOnJnYmEoMjEyLDIxNSwyMjEsMC4wNSk7Ym9yZGVyLXJhZGl1czoycHg7Y3Vyc29yOnBvaW50ZXI7dHJhbnNpdGlvbjpjb2xvciAuMnN9Lm1vZGFsIC5wcmVmLXRhYjpsYXN0LWNoaWxke21hcmdpbi1yaWdodDowfS5tb2RhbCAucHJlZi10YWI6aG92ZXJ7Y29sb3I6IzAwQTNGRn0ubW9kYWwgLnByZWYtdGFiLmFjdGl2ZXtjb2xvcjojZmZmO2JhY2tncm91bmQ6bGluZWFyLWdyYWRpZW50KDQ1ZGVnLCAjMDY2RkM1LCMwMEEzRkYpfS5tb2RhbCAucHJlZi10YWIgc3Bhbi5lcGhlbWVyYWx7ZGlzcGxheTppbmxpbmV9Lm1vZGFsIC5wcmVmLXRhYiBzcGFuLmFiYnI6YWZ0ZXJ7ZGlzcGxheTpub25lO2NvbnRlbnQ6XCIuXCJ9Lm1vZGFsIC5wcm9kdWN0LmFjdGl2ZXtkaXNwbGF5OmJsb2NrfS5tb2RhbCAucHJvZHVjdC5pbmFjdGl2ZXtkaXNwbGF5Om5vbmV9QG1lZGlhIChtYXgtd2lkdGg6IDYwMHB4KXsubW9kYWwgLnByZWYtdGFiIHNwYW4uZXBoZW1lcmFse2Rpc3BsYXk6bm9uZX0ubW9kYWwgLnByZWYtdGFiIHNwYW4uYWJicjphZnRlcntkaXNwbGF5OmlubGluZX19Lm1vZGFsIC5mb3JtLWJ1dHRvbnN7ZGlzcGxheTpmbGV4O2p1c3RpZnktY29udGVudDplbmQ7bWFyZ2luLXRvcDoxcmVtfS5tb2RhbCB0ZXh0YXJlYXtyZXNpemU6dmVydGljYWw7Zm9udC1mYW1pbHk6XCJQcm94aW1hIE5vdmFcIixzYW5zLXNlcmlmO2ZvbnQtd2VpZ2h0OjUwMDtiYWNrZ3JvdW5kOiMxQTFBMkE7Ym9yZGVyLXJhZGl1czoycHg7Ym9yZGVyOjFweCBzb2xpZCAjMUExQTJBO21hcmdpbi10b3A6MXJlbTtwYWRkaW5nOi41ZW07d2lkdGg6MTAwJTtoZWlnaHQ6OHJlbTtjb2xvcjojZmZmO3RyYW5zaXRpb24tcHJvcGVydHk6Ym9yZGVyLCBib3gtc2hhZG93O3RyYW5zaXRpb24tZHVyYXRpb246LjJzO2JveC1zaGFkb3c6MnB4IDJweCA2cHggcmdiYSgxNSwxNCwyMSwwLjUpfS5tb2RhbCB0ZXh0YXJlYTpmb2N1c3tvdXRsaW5lOm5vbmU7Ym9yZGVyLWNvbG9yOiMwMEEzRkY7Ym94LXNoYWRvdzoxcHggMXB4IDEwcHggcmdiYSgwLDE2MywyNTUsMC41KTtib3JkZXItcmFkaXVzOjJweH0ubW9kYWwgdGV4dGFyZWE6OnBsYWNlaG9sZGVye2NvbG9yOnJnYmEoMjU1LDI1NSwyNTUsMC40NSk7Zm9udC13ZWlnaHQ6bm9ybWFsO2ZvbnQtc3R5bGU6aXRhbGljfS5tb2RhbCBpbnB1dFt0eXBlPSdzdWJtaXQnXXtwYWRkaW5nOjAuNjVyZW0gMS4xcmVtO2JhY2tncm91bmQ6bGluZWFyLWdyYWRpZW50KDQ1ZGVnLCAjMDY2RkM1LCMwMEEzRkYpO2JvcmRlcjpub25lO2JvcmRlci1yYWRpdXM6MnB4O2NvbG9yOiNmZmY7Zm9udC13ZWlnaHQ6NTAwO29wYWNpdHk6MTt0cmFuc2l0aW9uOm9wYWNpdHkgLjJzO3otaW5kZXg6MX0ubW9kYWwgaW5wdXRbdHlwZT0nc3VibWl0J106aG92ZXJ7b3BhY2l0eTowfS5tb2RhbCAuc3VibWl0LXdyYXBwZXJ7cG9zaXRpb246cmVsYXRpdmU7YmFja2dyb3VuZDpsaW5lYXItZ3JhZGllbnQoNDVkZWcsICMwMEEzRkYsIzZCREZGRik7Ym9yZGVyLXJhZGl1czoycHg7Y29sb3I6I2ZmZjtmb250LXdlaWdodDo1MDB9Lm1vZGFsIC5zdWJtaXQtd3JhcHBlcjpiZWZvcmV7Y29udGVudDpcIlN1Ym1pdFwiO3Bvc2l0aW9uOmFic29sdXRlO3BvaW50ZXItZXZlbnRzOm5vbmU7dG9wOjA7bGVmdDowO3BhZGRpbmc6MC42NXJlbSAxLjFyZW07ei1pbmRleDowfS5tb2RhbCAjbm8tdGhhbmtze21hcmdpbi1yaWdodDouNXJlbTtwYWRkaW5nOjAuNjVyZW0gMS4xcmVtO2JhY2tncm91bmQ6cmdiYSgyMTIsMjE1LDIyMSwwLjEpO2NvbG9yOnJnYmEoMjUwLDI1MCwyNTIsMC42NSk7Ym9yZGVyLXJhZGl1czoycHg7Y3Vyc29yOnBvaW50ZXI7dHJhbnNpdGlvbjpjb2xvciAuMnN9Lm1vZGFsICNuby10aGFua3M6aG92ZXJ7Y29sb3I6I0ZBRkFGQ30ubW9kYWwgLmxpZmVjeWNsZS13cmFwcGVye3Bvc2l0aW9uOnJlbGF0aXZlfS5tb2RhbCAubG9hZGVyLXdyYXBwZXIsLm1vZGFsICN0aGFuay15b3V7cG9zaXRpb246YWJzb2x1dGU7ZGlzcGxheTpub25lO2p1c3RpZnktY29udGVudDpjZW50ZXI7YWxpZ24taXRlbXM6Y2VudGVyO3RvcDowO2xlZnQ6MDt3aWR0aDoxMDAlO2hlaWdodDoxMDAlO2JhY2tncm91bmQtY29sb3I6IzE0MTQxRn0ubW9kYWwgLmxvYWRlci13cmFwcGVye3otaW5kZXg6NX0ubW9kYWwgLmxvYWRlci13cmFwcGVyIC5sb2FkZXJ7bWFyZ2luOjAgYXV0b30ubW9kYWwgI3RoYW5rLXlvdXt6LWluZGV4OjEwO2ZvbnQtc2l6ZToxLjJyZW07Zm9udC1zdHlsZTppdGFsaWM7Zm9udC13ZWlnaHQ6NTAwO2NvbG9yOnJnYmEoMjEyLDIxNSwyMjEsMC42NSl9Lm1vZGFsICN0aGFuay15b3UgcHt0ZXh0LWFsaWduOmNlbnRlcn0ubW9kYWwgI2ZsdXgtaW5mbHV4ZGItdmVyc2lvbnN7bWF4LXdpZHRoOjM3NXB4fS5tb2RhbCAjZmx1eC1pbmZsdXhkYi12ZXJzaW9ucyAuZmxleC13cmFwcGVye2Rpc3BsYXk6ZmxleDtmbGV4LWRpcmVjdGlvbjpjb2x1bW47aGVpZ2h0OjEwMCV9Lm1vZGFsICNmbHV4LWluZmx1eGRiLXZlcnNpb25zIC5pbmZsdXhkYi12ZXJzaW9uc3ttYXJnaW4tdG9wOjEuNXJlbTtvdmVyZmxvdzpzY3JvbGx9Lm1vZGFsICNmbHV4LWluZmx1eGRiLXZlcnNpb25zIC52ZXJzaW9uLWxpc3R7ZGlzcGxheTpmbGV4O2ZsZXgtZGlyZWN0aW9uOmNvbHVtbi1yZXZlcnNlfS5tb2RhbCAjZmx1eC1pbmZsdXhkYi12ZXJzaW9ucyAudmVyc2lvbi1yb3d7ZGlzcGxheTpmbGV4O2ZsZXgtZGlyZWN0aW9uOnJvdztqdXN0aWZ5LWNvbnRlbnQ6c3BhY2UtYmV0d2VlbjthbGlnbi1pdGVtczpjZW50ZXI7cGFkZGluZzouMTVyZW0gMDtib3JkZXItYm90dG9tOjFweCBzb2xpZCAjMzgzODQ2fS5tb2RhbCAjZmx1eC1pbmZsdXhkYi12ZXJzaW9ucyAudmVyc2lvbi1yb3c6bGFzdC1jaGlsZHtib3JkZXItdG9wOjFweCBzb2xpZCAjMzgzODQ2fS5tb2RhbCAjZmx1eC1pbmZsdXhkYi12ZXJzaW9ucyAudmVyc2lvbi1yb3cgLnZlcnNpb24tY29sOmxhc3QtY2hpbGR7cGFkZGluZy1yaWdodDoxcmVtO3RleHQtYWxpZ246cmlnaHR9Lm1vZGFsICNmbHV4LWluZmx1eGRiLXZlcnNpb25zIGg0e21hcmdpbi10b3A6MS41cmVtfS5tb2RhbCAjZmx1eC1pbmZsdXhkYi12ZXJzaW9ucyBoNCwubW9kYWwgI2ZsdXgtaW5mbHV4ZGItdmVyc2lvbnMgc3Bhbi5tZWRpdW17Zm9udC1zaXplOjEuMTVyZW19Lm1vZGFsICNmbHV4LWluZmx1eGRiLXZlcnNpb25zIGgzIGNvZGV7YmFja2dyb3VuZDojMDcwNzBFO2ZvbnQtZmFtaWx5OlwiSUJNIFBsZXggTW9ub1wiLG1vbm9zcGFjZTtjb2xvcjojQjdCOEZGO3BhZGRpbmc6LjFyZW0gLjRyZW0gLjJyZW07Ym9yZGVyLXJhZGl1czoycHg7d2hpdGUtc3BhY2U6bm93cmFwO2ZvbnQtc2l6ZTouODVlbTtmb250LXN0eWxlOm5vcm1hbH0ubW9kYWwgI2ZsdXgtaW5mbHV4ZGItdmVyc2lvbnMgc3Bhbi5tZWRpdW17Zm9udC13ZWlnaHQ6NTAwO2NvbG9yOiNmZmZ9Lm1vZGFsICNmbHV4LWluZmx1eGRiLXZlcnNpb25zIHNwYW4uZmx1eC12ZXJzaW9ue29wYWNpdHk6LjU7Zm9udC1zaXplOi45cmVtfS5tb2RhbCAjZmx1eC1pbmZsdXhkYi12ZXJzaW9ucyBzcGFuLmRlcHJlY2F0ZWQ6YmVmb3Jle2NvbnRlbnQ6J+KAoic7Y29sb3I6cmdiYSgyMTIsMjE1LDIyMSwwLjUpO21hcmdpbi1yaWdodDouNHJlbX0ubW9kYWwgI2ZsdXgtaW5mbHV4ZGItdmVyc2lvbnMgc3Bhbi5jaGVja21hcmstbmV3e2ZvbnQtc2l6ZToxLjFyZW07Zm9udC13ZWlnaHQ6Ym9sZDtjb2xvcjojMzRCQjU1fS5tb2RhbCAjZmx1eC1pbmZsdXhkYi12ZXJzaW9ucyBzcGFuLmNoZWNrbWFyay1uZXcucGVuZGluZ3tjb2xvcjojMkFBM0ZGfS5tb2RhbCAjZmx1eC1pbmZsdXhkYi12ZXJzaW9ucyAuY29sb3Ita2V5e21hcmdpbi10b3A6MS41cmVtO3BhZGRpbmc6MDtsaXN0LXN0eWxlOm5vbmV9Lm1vZGFsICNmbHV4LWluZmx1eGRiLXZlcnNpb25zIC5jb2xvci1rZXkgbGl7Zm9udC1zdHlsZTppdGFsaWM7Y29sb3I6cmdiYSgyMTIsMjE1LDIyMSwwLjY1KX0ubW9kYWwgI2ZsdXgtaW5mbHV4ZGItdmVyc2lvbnMgLmNvbG9yLWtleSBsaSNkZXByZWNhdGVkLWtleSBzcGFue21hcmdpbi1sZWZ0Oi4yNXJlbX0ubW9kYWwgI2ZsdXgtaW5mbHV4ZGItdmVyc2lvbnMgLm1vcmUtaW5mb3ttYXJnaW4tdG9wOjEuNXJlbX0ubW9kYWwgI2ZsdXgtaW5mbHV4ZGItdmVyc2lvbnMgLm5vLXN1cHBvcnR7bWFyZ2luOjFyZW0gMXJlbSAzcmVtO3RleHQtYWxpZ246Y2VudGVyO2ZvbnQtc2l6ZToxLjE1cmVtO2ZvbnQtc3R5bGU6aXRhbGljO2NvbG9yOnJnYmEoMjEyLDIxNSwyMjEsMC42NSl9Lm1vZGFsICNpbmZsdXhkYi1ncy1kYXRlLXNlbGVjdHt3aWR0aDphdXRvO21heC13aWR0aDoyNjBweH0ubW9kYWwgI2luZmx1eGRiLWdzLWRhdGUtc2VsZWN0IHB7bWFyZ2luLWJvdHRvbToxLjVyZW19Lm1vZGFsICNpbmZsdXhkYi1ncy1kYXRlLXNlbGVjdCBhLmJ0bntwb3NpdGlvbjpyZWxhdGl2ZTtkaXNwbGF5OmlubGluZS1ibG9jazttYXJnaW46MS4yNXJlbSAwIC41cmVtO3BhZGRpbmc6MC44NXJlbSAxLjVyZW07Y29sb3I6I2ZmZiAhaW1wb3J0YW50O2JvcmRlci1yYWRpdXM6MnB4O3RleHQtdHJhbnNmb3JtOnVwcGVyY2FzZTtsZXR0ZXItc3BhY2luZzouMDZyZW07Zm9udC1zaXplOjFyZW07ZmxvYXQ6cmlnaHQ7ei1pbmRleDoxO2JhY2tncm91bmQ6bGluZWFyLWdyYWRpZW50KDQ1ZGVnLCAjMDY2RkM1LCMwMEEzRkYpfS5tb2RhbCAjaW5mbHV4ZGItZ3MtZGF0ZS1zZWxlY3QgYS5idG46YWZ0ZXJ7Y29udGVudDpcIlwiO3Bvc2l0aW9uOmFic29sdXRlO2Rpc3BsYXk6YmxvY2s7dG9wOjA7cmlnaHQ6MDt3aWR0aDoxMDAlO2hlaWdodDoxMDAlO2JvcmRlci1yYWRpdXM6MnB4O2JhY2tncm91bmQ6bGluZWFyLWdyYWRpZW50KDQ1ZGVnLCAjMDBBM0ZGLCM2QkRGRkYpO29wYWNpdHk6MDt0cmFuc2l0aW9uOm9wYWNpdHkgLjJzO3otaW5kZXg6LTF9Lm1vZGFsICNpbmZsdXhkYi1ncy1kYXRlLXNlbGVjdCBhLmJ0bjpob3ZlcntjdXJzb3I6cG9pbnRlcn0ubW9kYWwgI2luZmx1eGRiLWdzLWRhdGUtc2VsZWN0IGEuYnRuOmhvdmVyOmFmdGVye29wYWNpdHk6MX1AbWVkaWEgKG1heC13aWR0aDogNjAwcHgpey5tb2RhbHtwYWRkaW5nOi41cmVtO292ZXJmbG93OnNjcm9sbH0ubW9kYWwgLm1vZGFsLWJvZHl7cGFkZGluZzouNXJlbSAxLjVyZW0gMS41cmVtfX0ubG9hZGVyLC5sb2FkZXI6YWZ0ZXJ7Ym9yZGVyLXJhZGl1czo1MCU7d2lkdGg6MTBlbTtoZWlnaHQ6MTBlbX0ubG9hZGVye2ZvbnQtc2l6ZTozcHg7cG9zaXRpb246cmVsYXRpdmU7Ym9yZGVyLXRvcDoxLjFlbSBzb2xpZCByZ2JhKDIxMiwyMTUsMjIxLDAuMSk7Ym9yZGVyLXJpZ2h0OjEuMWVtIHNvbGlkIHJnYmEoMjEyLDIxNSwyMjEsMC4xKTtib3JkZXItYm90dG9tOjEuMWVtIHNvbGlkIHJnYmEoMjEyLDIxNSwyMjEsMC4xKTtib3JkZXItbGVmdDoxLjFlbSBzb2xpZCAjMkFBM0ZGO3RyYW5zZm9ybTp0cmFuc2xhdGVaKDApO2FuaW1hdGlvbjpsb2FkOCAuNnMgaW5maW5pdGUgbGluZWFyfUBrZXlmcmFtZXMgbG9hZDh7MCV7LXdlYmtpdC10cmFuc2Zvcm06cm90YXRlKDBkZWcpO3RyYW5zZm9ybTpyb3RhdGUoMGRlZyl9MTAwJXstd2Via2l0LXRyYW5zZm9ybTpyb3RhdGUoMzYwZGVnKTt0cmFuc2Zvcm06cm90YXRlKDM2MGRlZyl9fS5mZWF0dXJlLWNhbGxvdXR7cGFkZGluZzouNXJlbSAuNXJlbSAuNXJlbSAuNzVyZW07YmFja2dyb3VuZDpsaW5lYXItZ3JhZGllbnQoNDVkZWcsICNGOTVGNTMsI0JFMkVFNCk7Ym9yZGVyLXJhZGl1czoycHg7Zm9udC1zaXplOi45NXJlbTtmb250LXN0eWxlOml0YWxpYztmb250LXdlaWdodDo1MDA7Y29sb3I6I2ZmZjtib3gtc2hhZG93OjJweCAycHggNnB4IHJnYmEoMzIsMzIsNDAsMC4zNSk7ei1pbmRleDoxMDA7dHJhbnNpdGlvbjptYXJnaW4gLjNzIGVhc2Utb3V0O2Rpc3BsYXk6bm9uZX0uZmVhdHVyZS1jYWxsb3V0IHB7cG9zaXRpb246cmVsYXRpdmU7bWFyZ2luOjB9LmZlYXR1cmUtY2FsbG91dCBwOmFmdGVye2NvbnRlbnQ6XCJcIjtwb3NpdGlvbjphYnNvbHV0ZTt3aWR0aDowO2hlaWdodDowO2JvcmRlci1zdHlsZTpzb2xpZH0uZmVhdHVyZS1jYWxsb3V0IHA6aG92ZXJ7Y3Vyc29yOmRlZmF1bHR9LmZlYXR1cmUtY2FsbG91dCAubmV3e2Rpc3BsYXk6aW5saW5lLWJsb2NrO3Bvc2l0aW9uOnJlbGF0aXZlO21hcmdpbi1yaWdodDouMjVyZW07Zm9udC1zaXplOi44cmVtO3BhZGRpbmc6LjFyZW0gLjM1cmVtO2JhY2tncm91bmQ6cmdiYSgyNTUsMjU1LDI1NSwwLjI1KTtib3JkZXItcmFkaXVzOjFyZW19LmZlYXR1cmUtY2FsbG91dCAuY2xvc2V7bWFyZ2luLWxlZnQ6LjVyZW07Y29sb3I6cmdiYSgyNTUsMjU1LDI1NSwwLjUpO3RleHQtZGVjb3JhdGlvbjpub25lfS5mZWF0dXJlLWNhbGxvdXQgLmNsb3NlOmhvdmVye2NvbG9yOnJnYmEoMjU1LDI1NSwyNTUsMC45KX0uZmVhdHVyZS1jYWxsb3V0ICNpbmZsdXhkYi11cmwtc2VsZWN0b3J7cG9zaXRpb246YWJzb2x1dGU7dG9wOjNyZW07cmlnaHQ6Ljc1cmVtfS5mZWF0dXJlLWNhbGxvdXQgI2luZmx1eGRiLXVybC1zZWxlY3RvciBwOmFmdGVye3RvcDotMXJlbTtyaWdodDoxLjg1cmVtO2JvcmRlci13aWR0aDowIDdweCA4cHggN3B4O2JvcmRlci1jb2xvcjp0cmFuc3BhcmVudCB0cmFuc3BhcmVudCAjQ0IzOUM0IHRyYW5zcGFyZW50fS5mZWF0dXJlLWNhbGxvdXQgI2luZmx1eGRiLXVybC1zZWxlY3Rvci5zdGFydC1wb3NpdGlvbnttYXJnaW4tdG9wOjIuNXJlbX1AbWVkaWEgKG1heC13aWR0aDogNjAwcHgpey5mZWF0dXJlLWNhbGxvdXQjaW5mbHV4ZGItdXJsLXNlbGVjdG9ye3RvcDouNTVyZW07cmlnaHQ6NS4xNXJlbX0uZmVhdHVyZS1jYWxsb3V0I2luZmx1eGRiLXVybC1zZWxlY3RvciBwOmFmdGVye3RvcDouMTVyZW07cmlnaHQ6LTE2cHg7Ym9yZGVyLXdpZHRoOjdweCAwIDdweCA4cHg7Ym9yZGVyLWNvbG9yOnRyYW5zcGFyZW50IHRyYW5zcGFyZW50IHRyYW5zcGFyZW50ICNDMjMxRDl9LmZlYXR1cmUtY2FsbG91dCNpbmZsdXhkYi11cmwtc2VsZWN0b3Iuc3RhcnQtcG9zaXRpb257bWFyZ2luLXRvcDoyLjVyZW19fWJvZHkudjEgLmFydGljbGUgLmFydGljbGUtLWNvbnRlbnQgYmxvY2txdW90ZSxib2R5LnBsYXRmb3JtIC5hcnRpY2xlIC5hcnRpY2xlLS1jb250ZW50IGJsb2NrcXVvdGV7cGFkZGluZzoxLjY1cmVtIDJyZW07bWFyZ2luOjFyZW0gMCAycmVtO2JvcmRlci13aWR0aDowIDAgMCA0cHg7Ym9yZGVyLXN0eWxlOnNvbGlkO2JvcmRlci1yYWRpdXM6MCAycHggMnB4IDA7Ym9yZGVyLWNvbG9yOiMwMEEzRkY7YmFja2dyb3VuZDpyZ2JhKDAsMTYzLDI1NSwwLjEpfWJvZHkudjEgLmFydGljbGUgLmFydGljbGUtLWNvbnRlbnQgYmxvY2txdW90ZSBwLGJvZHkudjEgLmFydGljbGUgLmFydGljbGUtLWNvbnRlbnQgYmxvY2txdW90ZSBsaSxib2R5LnBsYXRmb3JtIC5hcnRpY2xlIC5hcnRpY2xlLS1jb250ZW50IGJsb2NrcXVvdGUgcCxib2R5LnBsYXRmb3JtIC5hcnRpY2xlIC5hcnRpY2xlLS1jb250ZW50IGJsb2NrcXVvdGUgbGl7Zm9udC1zaXplOi45NXJlbTtmb250LXN0eWxlOmluaGVyaXR9Ym9keS52MSAuYXJ0aWNsZSAuYXJ0aWNsZS0tY29udGVudCBibG9ja3F1b3RlIHVsOmxhc3QtY2hpbGQsYm9keS52MSAuYXJ0aWNsZSAuYXJ0aWNsZS0tY29udGVudCBibG9ja3F1b3RlIG9sOmxhc3QtY2hpbGQsYm9keS5wbGF0Zm9ybSAuYXJ0aWNsZSAuYXJ0aWNsZS0tY29udGVudCBibG9ja3F1b3RlIHVsOmxhc3QtY2hpbGQsYm9keS5wbGF0Zm9ybSAuYXJ0aWNsZSAuYXJ0aWNsZS0tY29udGVudCBibG9ja3F1b3RlIG9sOmxhc3QtY2hpbGR7bWFyZ2luLWJvdHRvbToxLjg1cmVtfWJvZHkudjEgLmFydGljbGUgLmFydGljbGUtLWNvbnRlbnQgYmxvY2txdW90ZSBoMSxib2R5LnYxIC5hcnRpY2xlIC5hcnRpY2xlLS1jb250ZW50IGJsb2NrcXVvdGUgaDIsYm9keS52MSAuYXJ0aWNsZSAuYXJ0aWNsZS0tY29udGVudCBibG9ja3F1b3RlIGgzLGJvZHkudjEgLmFydGljbGUgLmFydGljbGUtLWNvbnRlbnQgYmxvY2txdW90ZSBoNCxib2R5LnYxIC5hcnRpY2xlIC5hcnRpY2xlLS1jb250ZW50IGJsb2NrcXVvdGUgaDUsYm9keS52MSAuYXJ0aWNsZSAuYXJ0aWNsZS0tY29udGVudCBibG9ja3F1b3RlIGg2LGJvZHkucGxhdGZvcm0gLmFydGljbGUgLmFydGljbGUtLWNvbnRlbnQgYmxvY2txdW90ZSBoMSxib2R5LnBsYXRmb3JtIC5hcnRpY2xlIC5hcnRpY2xlLS1jb250ZW50IGJsb2NrcXVvdGUgaDIsYm9keS5wbGF0Zm9ybSAuYXJ0aWNsZSAuYXJ0aWNsZS0tY29udGVudCBibG9ja3F1b3RlIGgzLGJvZHkucGxhdGZvcm0gLmFydGljbGUgLmFydGljbGUtLWNvbnRlbnQgYmxvY2txdW90ZSBoNCxib2R5LnBsYXRmb3JtIC5hcnRpY2xlIC5hcnRpY2xlLS1jb250ZW50IGJsb2NrcXVvdGUgaDUsYm9keS5wbGF0Zm9ybSAuYXJ0aWNsZSAuYXJ0aWNsZS0tY29udGVudCBibG9ja3F1b3RlIGg2e2NvbG9yOiNmZmZ9Ym9keS52MSAuYXJ0aWNsZSAuYXJ0aWNsZS0tY29udGVudCBibG9ja3F1b3RlIHAsYm9keS52MSAuYXJ0aWNsZSAuYXJ0aWNsZS0tY29udGVudCBibG9ja3F1b3RlIGxpLGJvZHkucGxhdGZvcm0gLmFydGljbGUgLmFydGljbGUtLWNvbnRlbnQgYmxvY2txdW90ZSBwLGJvZHkucGxhdGZvcm0gLmFydGljbGUgLmFydGljbGUtLWNvbnRlbnQgYmxvY2txdW90ZSBsaXtjb2xvcjojQkVGMEZGfWJvZHkudjEgLmFydGljbGUgLmFydGljbGUtLWNvbnRlbnQgYmxvY2txdW90ZSBzdHJvbmcsYm9keS5wbGF0Zm9ybSAuYXJ0aWNsZSAuYXJ0aWNsZS0tY29udGVudCBibG9ja3F1b3RlIHN0cm9uZ3tjb2xvcjppbmhlcml0fWJvZHkudjEgLmFydGljbGUgLmFydGljbGUtLWNvbnRlbnQgYmxvY2txdW90ZSBhLGJvZHkucGxhdGZvcm0gLmFydGljbGUgLmFydGljbGUtLWNvbnRlbnQgYmxvY2txdW90ZSBhe2NvbG9yOiNmZmZ9Ym9keS52MSAuYXJ0aWNsZSAuYXJ0aWNsZS0tY29udGVudCBibG9ja3F1b3RlIGEgY29kZTphZnRlcixib2R5LnBsYXRmb3JtIC5hcnRpY2xlIC5hcnRpY2xlLS1jb250ZW50IGJsb2NrcXVvdGUgYSBjb2RlOmFmdGVye2JvcmRlci1jb2xvcjp0cmFuc3BhcmVudCByZ2JhKDAsMjAxLDI1NSwwLjM1KSB0cmFuc3BhcmVudCB0cmFuc3BhcmVudH1ib2R5LnYxIC5hcnRpY2xlIC5hcnRpY2xlLS1jb250ZW50IGJsb2NrcXVvdGUgYTpob3Zlcixib2R5LnBsYXRmb3JtIC5hcnRpY2xlIC5hcnRpY2xlLS1jb250ZW50IGJsb2NrcXVvdGUgYTpob3Zlcntjb2xvcjojNkJERkZGfWJvZHkudjEgLmFydGljbGUgLmFydGljbGUtLWNvbnRlbnQgYmxvY2txdW90ZSBhOmhvdmVyIGNvZGU6YWZ0ZXIsYm9keS5wbGF0Zm9ybSAuYXJ0aWNsZSAuYXJ0aWNsZS0tY29udGVudCBibG9ja3F1b3RlIGE6aG92ZXIgY29kZTphZnRlcntib3JkZXItY29sb3I6dHJhbnNwYXJlbnQgIzZCREZGRiB0cmFuc3BhcmVudCB0cmFuc3BhcmVudH1ib2R5LnYxIC5hcnRpY2xlIC5hcnRpY2xlLS1jb250ZW50IGJsb2NrcXVvdGUgb2wgbGk6YmVmb3JlLGJvZHkucGxhdGZvcm0gLmFydGljbGUgLmFydGljbGUtLWNvbnRlbnQgYmxvY2txdW90ZSBvbCBsaTpiZWZvcmV7Y29sb3I6I0JFRjBGRn1ib2R5LnYxIC5hcnRpY2xlIC5hcnRpY2xlLS1jb250ZW50IGJsb2NrcXVvdGUgY29kZSxib2R5LnYxIC5hcnRpY2xlIC5hcnRpY2xlLS1jb250ZW50IGJsb2NrcXVvdGUgcHJlLGJvZHkucGxhdGZvcm0gLmFydGljbGUgLmFydGljbGUtLWNvbnRlbnQgYmxvY2txdW90ZSBjb2RlLGJvZHkucGxhdGZvcm0gLmFydGljbGUgLmFydGljbGUtLWNvbnRlbnQgYmxvY2txdW90ZSBwcmV7Y29sb3I6IzAwQzlGRjtiYWNrZ3JvdW5kOiMwYTA3MWN9Ym9keS52MSAuYXJ0aWNsZSAuYXJ0aWNsZS0tY29udGVudCBibG9ja3F1b3RlIGltZyxib2R5LnBsYXRmb3JtIC5hcnRpY2xlIC5hcnRpY2xlLS1jb250ZW50IGJsb2NrcXVvdGUgaW1ne2JveC1zaGFkb3c6MXB4IDNweCAxMHB4ICMwRjBFMTV9Ym9keS52MSAuYXJ0aWNsZSAuYXJ0aWNsZS0tY29udGVudCBibG9ja3F1b3RlIHRhYmxlLGJvZHkucGxhdGZvcm0gLmFydGljbGUgLmFydGljbGUtLWNvbnRlbnQgYmxvY2txdW90ZSB0YWJsZXtjb2xvcjojQkVGMEZGO2JveC1zaGFkb3c6MXB4IDNweCAxMHB4ICMwRjBFMTV9Ym9keS52MSAuYXJ0aWNsZSAuYXJ0aWNsZS0tY29udGVudCBibG9ja3F1b3RlIHRhYmxlIHRoZWFkLGJvZHkucGxhdGZvcm0gLmFydGljbGUgLmFydGljbGUtLWNvbnRlbnQgYmxvY2txdW90ZSB0YWJsZSB0aGVhZHtiYWNrZ3JvdW5kOmxpbmVhci1ncmFkaWVudCg0NWRlZywgIzBCM0E4RCwjMDY2RkM1KX1ib2R5LnYxIC5hcnRpY2xlIC5hcnRpY2xlLS1jb250ZW50IGJsb2NrcXVvdGUgdGFibGUgdHI6bnRoLWNoaWxkKGV2ZW4pIHRkLGJvZHkucGxhdGZvcm0gLmFydGljbGUgLmFydGljbGUtLWNvbnRlbnQgYmxvY2txdW90ZSB0YWJsZSB0cjpudGgtY2hpbGQoZXZlbikgdGR7YmFja2dyb3VuZDojMWIzYTU4fWJvZHkudjEgLmFydGljbGUgLmFydGljbGUtLWNvbnRlbnQgYmxvY2txdW90ZSBibG9ja3F1b3RlLGJvZHkucGxhdGZvcm0gLmFydGljbGUgLmFydGljbGUtLWNvbnRlbnQgYmxvY2txdW90ZSBibG9ja3F1b3Rle2JvcmRlci1jb2xvcjpyZ2JhKDE5MCwyNDAsMjU1LDAuMjUpfWJvZHkudjEgLmFydGljbGUgLmFydGljbGUtLWNvbnRlbnQgYmxvY2txdW90ZSBibG9ja3F1b3RlIHAsYm9keS5wbGF0Zm9ybSAuYXJ0aWNsZSAuYXJ0aWNsZS0tY29udGVudCBibG9ja3F1b3RlIGJsb2NrcXVvdGUgcHtjb2xvcjpyZ2JhKDE5MCwyNDAsMjU1LDAuNil9Ym9keS52MSAuYXJ0aWNsZSAuYXJ0aWNsZS0tY29udGVudCBibG9ja3F1b3RlIC5jb2RlLXRhYnMtd3JhcHBlciAuY29kZS10YWJzIGEsYm9keS5wbGF0Zm9ybSAuYXJ0aWNsZSAuYXJ0aWNsZS0tY29udGVudCBibG9ja3F1b3RlIC5jb2RlLXRhYnMtd3JhcHBlciAuY29kZS10YWJzIGF7YmFja2dyb3VuZDp0cmFuc3BhcmVudDtjb2xvcjpyZ2JhKDE5MCwyNDAsMjU1LDAuNSl9Ym9keS52MSAuYXJ0aWNsZSAuYXJ0aWNsZS0tY29udGVudCBibG9ja3F1b3RlIC5jb2RlLXRhYnMtd3JhcHBlciAuY29kZS10YWJzIGE6aG92ZXIsYm9keS5wbGF0Zm9ybSAuYXJ0aWNsZSAuYXJ0aWNsZS0tY29udGVudCBibG9ja3F1b3RlIC5jb2RlLXRhYnMtd3JhcHBlciAuY29kZS10YWJzIGE6aG92ZXJ7Y29sb3I6I2JlZjBmZn1ib2R5LnYxIC5hcnRpY2xlIC5hcnRpY2xlLS1jb250ZW50IGJsb2NrcXVvdGUgLmNvZGUtdGFicy13cmFwcGVyIC5jb2RlLXRhYnMgYS5pcy1hY3RpdmUsYm9keS5wbGF0Zm9ybSAuYXJ0aWNsZSAuYXJ0aWNsZS0tY29udGVudCBibG9ja3F1b3RlIC5jb2RlLXRhYnMtd3JhcHBlciAuY29kZS10YWJzIGEuaXMtYWN0aXZle2NvbG9yOiNiZWYwZmY7YmFja2dyb3VuZDojMGEwNzFjfSNkb2NzLW5vdGlmaWNhdGlvbnN7cG9zaXRpb246Zml4ZWQ7dG9wOjY1cHg7cmlnaHQ6MTBweDt6LWluZGV4OjEwMDt3aWR0aDpjYWxjKDEwMHZ3IC0gMjBweCk7bWF4LXdpZHRoOjQ1MHB4O3RyYW5zaXRpb246YWxsIC40cyBlYXNlLCB0b3AgMHN9I2RvY3Mtbm90aWZpY2F0aW9ucyAubm90aWZpY2F0aW9ue2Rpc3BsYXk6bm9uZTtyaWdodDotNTBweDtvcGFjaXR5OjA7cG9zaXRpb246cmVsYXRpdmU7cGFkZGluZzoxLjI1cmVtIDIuNXJlbSAxLjI1cmVtIDEuMjVyZW07Ym9yZGVyLXJhZGl1czoycHg7Ym94LXNoYWRvdzoycHggMnB4IDZweCByZ2JhKDMyLDMyLDQwLDAuMzUpO21hcmdpbi1ib3R0b206MTBweDtjb2xvcjojZmZmfSNkb2NzLW5vdGlmaWNhdGlvbnMgLm5vdGlmaWNhdGlvbiAubm90aWZpY2F0aW9uLXRpdGxlIGgze21hcmdpbi1ib3R0b206MXJlbTt0cmFuc2l0aW9uOmZvbnQtc2l6ZSAuMnN9I2RvY3Mtbm90aWZpY2F0aW9ucyAubm90aWZpY2F0aW9uIC5ub3RpZmljYXRpb24tY29udGVudC13cmFwcGVye3Bvc2l0aW9uOnJlbGF0aXZlfSNkb2NzLW5vdGlmaWNhdGlvbnMgLm5vdGlmaWNhdGlvbiBjb2Rle2ZvbnQtc2l6ZTouODVyZW19I2RvY3Mtbm90aWZpY2F0aW9ucyAubm90aWZpY2F0aW9uIC5ub3RpZmljYXRpb24tc2x1Z3tmb250LXNpemU6Ljk3cmVtO21hcmdpbjotLjVyZW0gMCAxLjVyZW0gMH0jZG9jcy1ub3RpZmljYXRpb25zIC5ub3RpZmljYXRpb24gLm5vdGlmaWNhdGlvbi1zbHVnKy5ub3RpZmljYXRpb24tY29udGVudHtib3JkZXItdG9wOjFweCBkb3R0ZWQgcmdiYSgyNTUsMjU1LDI1NSwwLjUpO3BhZGRpbmctdG9wOjEuMjVyZW19I2RvY3Mtbm90aWZpY2F0aW9ucyAubm90aWZpY2F0aW9uIC5ub3RpZmljYXRpb24tc2x1ZzpsYXN0LWNoaWxke21hcmdpbi1ib3R0b206MH0jZG9jcy1ub3RpZmljYXRpb25zIC5ub3RpZmljYXRpb24gLm5vdGlmaWNhdGlvbi1zbHVnIHA6bGFzdC1jaGlsZHttYXJnaW4tYm90dG9tOjB9I2RvY3Mtbm90aWZpY2F0aW9ucyAubm90aWZpY2F0aW9uIC5ub3RpZmljYXRpb24tY29udGVudHtmb250LXNpemU6MS4wNXJlbTtvcGFjaXR5OjE7bWF4LWhlaWdodDo1MDBweDttYXJnaW4tYm90dG9tOjEuNXJlbTt0cmFuc2l0aW9uOm9wYWNpdHkgLjRzLCBtYXgtaGVpZ2h0IC4ycyBlYXNlLW91dCwgbWFyZ2luIC4ycyBlYXNlLW91dCwgcGFkZGluZyAuMnN9I2RvY3Mtbm90aWZpY2F0aW9ucyAubm90aWZpY2F0aW9uIC5ub3RpZmljYXRpb24tY29udGVudCBoMSwjZG9jcy1ub3RpZmljYXRpb25zIC5ub3RpZmljYXRpb24gLm5vdGlmaWNhdGlvbi1jb250ZW50IGgyLCNkb2NzLW5vdGlmaWNhdGlvbnMgLm5vdGlmaWNhdGlvbiAubm90aWZpY2F0aW9uLWNvbnRlbnQgaDMsI2RvY3Mtbm90aWZpY2F0aW9ucyAubm90aWZpY2F0aW9uIC5ub3RpZmljYXRpb24tY29udGVudCBoNCwjZG9jcy1ub3RpZmljYXRpb25zIC5ub3RpZmljYXRpb24gLm5vdGlmaWNhdGlvbi1jb250ZW50IGg1LCNkb2NzLW5vdGlmaWNhdGlvbnMgLm5vdGlmaWNhdGlvbiAubm90aWZpY2F0aW9uLWNvbnRlbnQgaDZ7bWFyZ2luOjFyZW0gMCAuNzVyZW19I2RvY3Mtbm90aWZpY2F0aW9ucyAubm90aWZpY2F0aW9uIC5ub3RpZmljYXRpb24tY29udGVudCBoMTpmaXJzdC1jaGlsZCwjZG9jcy1ub3RpZmljYXRpb25zIC5ub3RpZmljYXRpb24gLm5vdGlmaWNhdGlvbi1jb250ZW50IGgyOmZpcnN0LWNoaWxkLCNkb2NzLW5vdGlmaWNhdGlvbnMgLm5vdGlmaWNhdGlvbiAubm90aWZpY2F0aW9uLWNvbnRlbnQgaDM6Zmlyc3QtY2hpbGQsI2RvY3Mtbm90aWZpY2F0aW9ucyAubm90aWZpY2F0aW9uIC5ub3RpZmljYXRpb24tY29udGVudCBoNDpmaXJzdC1jaGlsZCwjZG9jcy1ub3RpZmljYXRpb25zIC5ub3RpZmljYXRpb24gLm5vdGlmaWNhdGlvbi1jb250ZW50IGg1OmZpcnN0LWNoaWxkLCNkb2NzLW5vdGlmaWNhdGlvbnMgLm5vdGlmaWNhdGlvbiAubm90aWZpY2F0aW9uLWNvbnRlbnQgaDY6Zmlyc3QtY2hpbGR7bWFyZ2luLXRvcDowfSNkb2NzLW5vdGlmaWNhdGlvbnMgLm5vdGlmaWNhdGlvbiAuY2xvc2Utbm90aWZpY2F0aW9ue3Bvc2l0aW9uOmFic29sdXRlO3RvcDo4cHg7cmlnaHQ6OHB4O2ZvbnQtc2l6ZToxLjdyZW07Y3Vyc29yOnBvaW50ZXI7dHJhbnNpdGlvbjpjb2xvciAuMnM7Zm9udC13ZWlnaHQ6Ym9sZDtjb2xvcjpyZ2JhKDI1NSwyNTUsMjU1LDAuNSl9I2RvY3Mtbm90aWZpY2F0aW9ucyAubm90aWZpY2F0aW9uIC5jbG9zZS1ub3RpZmljYXRpb246aG92ZXJ7Y29sb3I6I2ZmZn0jZG9jcy1ub3RpZmljYXRpb25zIC5ub3RpZmljYXRpb24gLnNob3d7cG9zaXRpb246YWJzb2x1dGU7Ym90dG9tOjFyZW07bGVmdDoxLjI1cmVtO3RleHQtdHJhbnNmb3JtOnVwcGVyY2FzZTtmb250LXNpemU6LjhyZW07Zm9udC13ZWlnaHQ6Ym9sZDtvcGFjaXR5Oi43NTt0cmFuc2l0aW9uOm9wYWNpdHkgLjJzfSNkb2NzLW5vdGlmaWNhdGlvbnMgLm5vdGlmaWNhdGlvbiAuc2hvdzpob3ZlcntjdXJzb3I6cG9pbnRlcjtvcGFjaXR5OjF9I2RvY3Mtbm90aWZpY2F0aW9ucyAubm90aWZpY2F0aW9uIC5zaG93OmJlZm9yZXtjb250ZW50OlwiU2hvdyBsZXNzXCJ9I2RvY3Mtbm90aWZpY2F0aW9ucyAubm90aWZpY2F0aW9uLm5vdGV7YmFja2dyb3VuZDpsaW5lYXItZ3JhZGllbnQoNDVkZWcsICMwMEEzRkYsIzM0QkI1NSl9I2RvY3Mtbm90aWZpY2F0aW9ucyAubm90aWZpY2F0aW9uLm5vdGUgYTpob3Zlcntjb2xvcjojMDAzRTM0fSNkb2NzLW5vdGlmaWNhdGlvbnMgLm5vdGlmaWNhdGlvbi5ub3RlIGNvZGV7Y29sb3I6IzAwM0UzNDtiYWNrZ3JvdW5kOnJnYmEoMCw2Miw1MiwwLjI1KX0jZG9jcy1ub3RpZmljYXRpb25zIC5ub3RpZmljYXRpb24ubm90ZSBwcmV7YmFja2dyb3VuZDpyZ2JhKDAsNjIsNTIsMC4yNSl9I2RvY3Mtbm90aWZpY2F0aW9ucyAubm90aWZpY2F0aW9uLndhcm57YmFja2dyb3VuZDpsaW5lYXItZ3JhZGllbnQoMjI1ZGVnLCAjRjQ4RDM4LCNEQzRFNTgpfSNkb2NzLW5vdGlmaWNhdGlvbnMgLm5vdGlmaWNhdGlvbi53YXJuIGE6aG92ZXJ7Y29sb3I6IzJGMUYyOX0jZG9jcy1ub3RpZmljYXRpb25zIC5ub3RpZmljYXRpb24ud2FybiBjb2Rle2NvbG9yOiNmZmJiZGQ7YmFja2dyb3VuZDpyZ2JhKDQ3LDMxLDQxLDAuMzUpfSNkb2NzLW5vdGlmaWNhdGlvbnMgLm5vdGlmaWNhdGlvbi53YXJuIHByZXtiYWNrZ3JvdW5kOnJnYmEoNDcsMzEsNDEsMC4zNSl9I2RvY3Mtbm90aWZpY2F0aW9ucyAubm90aWZpY2F0aW9uLmdhLWFubm91bmNlbWVudHtiYWNrZ3JvdW5kLWltYWdlOnVybChcIi9zdmdzL2luZmx1eGRiMy1nYS1iYWNrZ3JvdW5kLnN2Z1wiKTtiYWNrZ3JvdW5kLXNpemU6Y292ZXJ9I2RvY3Mtbm90aWZpY2F0aW9ucyAubm90aWZpY2F0aW9uLmdhLWFubm91bmNlbWVudCBhOmhvdmVye2NvbG9yOiMwMjBhNDd9I2RvY3Mtbm90aWZpY2F0aW9ucyAubm90aWZpY2F0aW9uLmdhLWFubm91bmNlbWVudCBjb2Rle2NvbG9yOiMwMDNFMzQ7YmFja2dyb3VuZDpyZ2JhKDAsNjIsNTIsMC4yNSl9I2RvY3Mtbm90aWZpY2F0aW9ucyAubm90aWZpY2F0aW9uLmdhLWFubm91bmNlbWVudCBwcmV7YmFja2dyb3VuZDpyZ2JhKDAsNjIsNTIsMC4yNSl9I2RvY3Mtbm90aWZpY2F0aW9ucyAubm90aWZpY2F0aW9uLmdhLWFubm91bmNlbWVudCBoM3tmb250LXNpemU6MS40cmVtICFpbXBvcnRhbnR9I2RvY3Mtbm90aWZpY2F0aW9ucyAubm90aWZpY2F0aW9uLmdhLWFubm91bmNlbWVudCAubm90aWZpY2F0aW9uLXNsdWd7Zm9udC1zaXplOjEuMTVyZW19I2RvY3Mtbm90aWZpY2F0aW9ucyAubm90aWZpY2F0aW9uLmdhLWFubm91bmNlbWVudCAubm90aWZpY2F0aW9uLXNsdWcgLmJ0bntkaXNwbGF5OmlubGluZS1ibG9jaztiYWNrZ3JvdW5kOiNmZmY7Y29sb3I6IzAyMGE0NztwYWRkaW5nOi41cmVtIDFyZW07Ym9yZGVyLXJhZGl1czo0cHg7Zm9udC1zaXplOjFyZW19I2RvY3Mtbm90aWZpY2F0aW9ucyAubm90aWZpY2F0aW9uIGgxLCNkb2NzLW5vdGlmaWNhdGlvbnMgLm5vdGlmaWNhdGlvbiBoMiwjZG9jcy1ub3RpZmljYXRpb25zIC5ub3RpZmljYXRpb24gaDMsI2RvY3Mtbm90aWZpY2F0aW9ucyAubm90aWZpY2F0aW9uIGg0LCNkb2NzLW5vdGlmaWNhdGlvbnMgLm5vdGlmaWNhdGlvbiBoNSwjZG9jcy1ub3RpZmljYXRpb25zIC5ub3RpZmljYXRpb24gaDZ7Zm9udC13ZWlnaHQ6NTAwO21hcmdpbjoxcmVtIDAgLjc1cmVtfSNkb2NzLW5vdGlmaWNhdGlvbnMgLm5vdGlmaWNhdGlvbiBoMTpmaXJzdC1jaGlsZCwjZG9jcy1ub3RpZmljYXRpb25zIC5ub3RpZmljYXRpb24gaDI6Zmlyc3QtY2hpbGQsI2RvY3Mtbm90aWZpY2F0aW9ucyAubm90aWZpY2F0aW9uIGgzOmZpcnN0LWNoaWxkLCNkb2NzLW5vdGlmaWNhdGlvbnMgLm5vdGlmaWNhdGlvbiBoNDpmaXJzdC1jaGlsZCwjZG9jcy1ub3RpZmljYXRpb25zIC5ub3RpZmljYXRpb24gaDU6Zmlyc3QtY2hpbGQsI2RvY3Mtbm90aWZpY2F0aW9ucyAubm90aWZpY2F0aW9uIGg2OmZpcnN0LWNoaWxke21hcmdpbi10b3A6MH0jZG9jcy1ub3RpZmljYXRpb25zIC5ub3RpZmljYXRpb24gaDEsI2RvY3Mtbm90aWZpY2F0aW9ucyAubm90aWZpY2F0aW9uIGgye2ZvbnQtc2l6ZToxLjZyZW19I2RvY3Mtbm90aWZpY2F0aW9ucyAubm90aWZpY2F0aW9uIGgze2ZvbnQtc2l6ZToxLjM1cmVtfSNkb2NzLW5vdGlmaWNhdGlvbnMgLm5vdGlmaWNhdGlvbiBoNHtmb250LXNpemU6MS4ycmVtfSNkb2NzLW5vdGlmaWNhdGlvbnMgLm5vdGlmaWNhdGlvbiBoNXtmb250LXNpemU6MS4xcmVtfSNkb2NzLW5vdGlmaWNhdGlvbnMgLm5vdGlmaWNhdGlvbiBoNntmb250LXNpemU6MS4wNXJlbTtmb250LXN0eWxlOml0YWxpY30jZG9jcy1ub3RpZmljYXRpb25zIC5ub3RpZmljYXRpb24gcCwjZG9jcy1ub3RpZmljYXRpb25zIC5ub3RpZmljYXRpb24gbGl7bGluZS1oZWlnaHQ6MS41cmVtfSNkb2NzLW5vdGlmaWNhdGlvbnMgLm5vdGlmaWNhdGlvbiBwe21hcmdpbjowIDAgLjc1cmVtfSNkb2NzLW5vdGlmaWNhdGlvbnMgLm5vdGlmaWNhdGlvbiBhe2ZvbnQtd2VpZ2h0OmJvbGQ7dGV4dC1kZWNvcmF0aW9uOm5vbmU7Y29sb3I6I2ZmZjt0cmFuc2l0aW9uOmNvbG9yIC4yc30jZG9jcy1ub3RpZmljYXRpb25zIC5ub3RpZmljYXRpb24gdWwsI2RvY3Mtbm90aWZpY2F0aW9ucyAubm90aWZpY2F0aW9uIG9se3BhZGRpbmctbGVmdDoxLjVyZW19I2RvY3Mtbm90aWZpY2F0aW9ucyAubm90aWZpY2F0aW9uIGNvZGV7cGFkZGluZzouMTVyZW0gLjRyZW07Ym9yZGVyLXJhZGl1czoycHg7Zm9udC13ZWlnaHQ6Ym9sZH0jZG9jcy1ub3RpZmljYXRpb25zIC5ub3RpZmljYXRpb24gcHJle3BhZGRpbmc6MXJlbTtib3JkZXItcmFkaXVzOjJweDtvdmVyZmxvdzpzY3JvbGx9I2RvY3Mtbm90aWZpY2F0aW9ucyAubm90aWZpY2F0aW9uIHByZSBjb2Rle2JhY2tncm91bmQ6dHJhbnNwYXJlbnQgIWltcG9ydGFudH0jZG9jcy1ub3RpZmljYXRpb25zIC5ub3RpZmljYXRpb24gaHJ7Ym9yZGVyLXdpZHRoOjFweCAwIDAgMDtib3JkZXItc3R5bGU6ZG90dGVkO2JvcmRlci1jb2xvcjpyZ2JhKDI1NSwyNTUsMjU1LDAuNSl9I2RvY3Mtbm90aWZpY2F0aW9ucyAubm90aWZpY2F0aW9uLm1pbiAubm90aWZpY2F0aW9uLXRpdGxlIGgze2ZvbnQtc2l6ZToxLjE1cmVtfSNkb2NzLW5vdGlmaWNhdGlvbnMgLm5vdGlmaWNhdGlvbi5taW4gLm5vdGlmaWNhdGlvbi1jb250ZW50e21heC1oZWlnaHQ6MDttYXJnaW46MDtwYWRkaW5nOjA7b3BhY2l0eTowO3BvaW50ZXItZXZlbnRzOm5vbmV9I2RvY3Mtbm90aWZpY2F0aW9ucyAubm90aWZpY2F0aW9uLm1pbiAuc2hvdzo6YmVmb3Jle2NvbnRlbnQ6XCJTaG93IG1vcmVcIn0jZG9jcy1ub3RpZmljYXRpb25zIC5ub3RpZmljYXRpb24gLnRpdGxlLXRhZ3twYWRkaW5nOi4xNXJlbSAuNDVyZW07dGV4dC10cmFuc2Zvcm06dXBwZXJjYXNlO2ZvbnQtc2l6ZTouODVyZW07Ym9yZGVyLXJhZGl1czo0cHg7Zm9udC1mYW1pbHk6XCJJQk0gUGxleCBNb25vXCIsbW9ub3NwYWNlO2JhY2tncm91bmQ6IzAyMGE0N30jZG9jcy1ub3RpZmljYXRpb25zIC5ub3RpZmljYXRpb24gLnRpdGxlLXRhZytoM3ttYXJnaW4tdG9wOi43NXJlbX1AbWVkaWEgKG1heC13aWR0aDogNjAwcHgpeyNkb2NzLW5vdGlmaWNhdGlvbnN7dG9wOjUwcHh9fS5jb2RlYmxvY2t7cG9zaXRpb246cmVsYXRpdmV9LmNvZGUtY29udHJvbHN7cG9zaXRpb246YWJzb2x1dGU7ZGlzcGxheTpmbGV4O2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjthbGlnbi1pdGVtczpmbGV4LWVuZDt0b3A6LjVyZW07cmlnaHQ6LjVyZW19LmNvZGUtY29udHJvbHMgLmNvZGUtY29udHJvbHMtdG9nZ2xle3BhZGRpbmc6LjA1cmVtIC4xNXJlbTtkaXNwbGF5OmlubGluZS1ibG9jaztmb250LXNpemU6MS4xNXJlbTtjb2xvcjojQjdCOEZGO29wYWNpdHk6LjU7dHJhbnNpdGlvbjpvcGFjaXR5IC4ycztib3JkZXItcmFkaXVzOjJweDtsaW5lLWhlaWdodDowO2N1cnNvcjpwb2ludGVyfS5jb2RlLWNvbnRyb2xzIC5jb2RlLWNvbnRyb2xzLXRvZ2dsZTpob3ZlcntvcGFjaXR5OjE7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDIxMiwyMTUsMjIxLDAuMSk7YmFja2Ryb3AtZmlsdGVyOmJsdXIoMTVweCl9LmNvZGUtY29udHJvbHMgdWwuY29kZS1jb250cm9sLW9wdGlvbnN7bGlzdC1zdHlsZTpub25lO3BhZGRpbmc6LjVyZW07bWFyZ2luOjA7Ym9yZGVyLXJhZGl1czoycHg7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDIxMiwyMTUsMjIxLDAuMDUpO2JhY2tkcm9wLWZpbHRlcjpibHVyKDE1cHgpO2Rpc3BsYXk6bm9uZX0uY29kZS1jb250cm9scyB1bC5jb2RlLWNvbnRyb2wtb3B0aW9ucyBsaXttYXJnaW46MDtwYWRkaW5nOi40cmVtIC41cmVtIC42cmVtO2JvcmRlci1yYWRpdXM6MnB4O2NvbG9yOiNGQUZBRkM7Zm9udC1zaXplOi44N3JlbTtsaW5lLWhlaWdodDowO2N1cnNvcjpwb2ludGVyfS5jb2RlLWNvbnRyb2xzIHVsLmNvZGUtY29udHJvbC1vcHRpb25zIGxpOmhvdmVye2JhY2tncm91bmQtY29sb3I6cmdiYSgyMTIsMjE1LDIyMSwwLjA3KX0uY29kZS1jb250cm9scyB1bC5jb2RlLWNvbnRyb2wtb3B0aW9ucyBsaS5jb3B5LWNvZGUgLmNmLWljb24sLmNvZGUtY29udHJvbHMgdWwuY29kZS1jb250cm9sLW9wdGlvbnMgbGkuZnVsbHNjcmVlbi10b2dnbGUgLmNmLWljb257bWFyZ2luLXJpZ2h0Oi4zNXJlbX0uY29kZS1jb250cm9scyB1bC5jb2RlLWNvbnRyb2wtb3B0aW9ucyBsaS5jb3B5LWNvZGUgLm1lc3NhZ2V7dGV4dC1zaGFkb3c6MHB4IDBweCA4cHggcmdiYSgyMTIsMjE1LDIyMSwwKTtmb250LXdlaWdodDpub3JtYWw7dHJhbnNpdGlvbjpjb2xvciAuMnMsIHRleHQtc2hhZG93IC4yc30uY29kZS1jb250cm9scyB1bC5jb2RlLWNvbnRyb2wtb3B0aW9ucyBsaS5jb3B5LWNvZGUuc3VjY2Vzcz4ubWVzc2FnZXt0ZXh0LXNoYWRvdzowcHggMHB4IDhweCByZ2JhKDIxMiwyMTUsMjIxLDAuNSk7Zm9udC13ZWlnaHQ6Ym9sZH0uY29kZS1jb250cm9scyB1bC5jb2RlLWNvbnRyb2wtb3B0aW9ucyBsaS5jb3B5LWNvZGUuZmFpbGVkPi5tZXNzYWdle2NvbG9yOiNEQzRFNTg7dGV4dC1zaGFkb3c6MHB4IDBweCA4cHggcmdiYSgyMjAsNzgsODgsMC41KTtmb250LXdlaWdodDpib2xkfS5jb2RlLWNvbnRyb2xzLm9wZW4gLmNvZGUtY29udHJvbHMtdG9nZ2xle2Rpc3BsYXk6bm9uZX0uY29kZS1jb250cm9scy5vcGVuIC5jb2RlLWNvbnRyb2wtb3B0aW9uc3tkaXNwbGF5OmJsb2NrfS5mdWxsc2NyZWVuLWNvZGV7ZGlzcGxheTpub25lO3otaW5kZXg6MTAwMDtwb3NpdGlvbjpmaXhlZDt0b3A6MDtsZWZ0OjA7aGVpZ2h0OjEwMHZoO3dpZHRoOjEwMHZ3O3BhZGRpbmc6MnJlbTtiYWNrZ3JvdW5kOiMwNzA3MEU7b3ZlcmZsb3c6c2Nyb2xsICFpbXBvcnRhbnR9LmZ1bGxzY3JlZW4tY29kZSAuZnVsbHNjcmVlbi1jbG9zZXtwb3NpdGlvbjpmaXhlZDtwYWRkaW5nOi4xcmVtO3JpZ2h0Oi43NXJlbTt0b3A6LjVyZW07ZGlzcGxheTpibG9jaztjb2xvcjojQjdCOEZGO2ZvbnQtc2l6ZToycmVtO3RleHQtZGVjb3JhdGlvbjpub25lO2JhY2tncm91bmQ6IzA3MDcwRTtib3JkZXItcmFkaXVzOjJweH0uZnVsbHNjcmVlbi1jb2RlIC5mdWxsc2NyZWVuLWNsb3NlIHNwYW57b3BhY2l0eTowLjU7dHJhbnNpdGlvbjpvcGFjaXR5IDAuMnN9LmZ1bGxzY3JlZW4tY29kZSAuZnVsbHNjcmVlbi1jbG9zZTpob3ZlciBzcGFue29wYWNpdHk6MX0uZnVsbHNjcmVlbi1jb2RlIHByZXtkaXNwbGF5OmJsb2NrO2xpbmUtaGVpZ2h0OjEuNzVyZW07Zm9udC1mYW1pbHk6XCJJQk0gUGxleCBNb25vXCIsbW9ub3NwYWNlfS5mdWxsc2NyZWVuLWNvZGUgcHJlIGNvZGUsLmZ1bGxzY3JlZW4tY29kZSBwcmUgcHJle2JhY2tncm91bmQ6IzA3MDcwRTtmb250LWZhbWlseTpcIklCTSBQbGV4IE1vbm9cIixtb25vc3BhY2U7Y29sb3I6I0I3QjhGRn0uZnVsbHNjcmVlbi1jb2RlIHByZSBwIGNvZGUsLmZ1bGxzY3JlZW4tY29kZSBwcmUgbGkgY29kZSwuZnVsbHNjcmVlbi1jb2RlIHByZSB0YWJsZSBjb2Rle3BhZGRpbmc6LjFyZW0gLjRyZW0gLjJyZW07Ym9yZGVyLXJhZGl1czoycHg7Y29sb3I6I0I3QjhGRjt3aGl0ZS1zcGFjZTpub3dyYXA7Zm9udC1zaXplOjFyZW07Zm9udC1zdHlsZTpub3JtYWx9LmZ1bGxzY3JlZW4tY29kZSBwcmUgaDEgY29kZSwuZnVsbHNjcmVlbi1jb2RlIHByZSBoMiBjb2RlLC5mdWxsc2NyZWVuLWNvZGUgcHJlIGgzIGNvZGUsLmZ1bGxzY3JlZW4tY29kZSBwcmUgaDQgY29kZSwuZnVsbHNjcmVlbi1jb2RlIHByZSBoNSBjb2RlLC5mdWxsc2NyZWVuLWNvZGUgcHJlIGg2IGNvZGV7cGFkZGluZzppbmhlcml0ICFpbXBvcnRhbnQ7YmFja2dyb3VuZDppbmhlcml0ICFpbXBvcnRhbnQ7Zm9udC1zaXplOmluaGVyaXQgIWltcG9ydGFudDtmb250LXdlaWdodDppbmhlcml0ICFpbXBvcnRhbnQ7Zm9udC1mYW1pbHk6XCJQcm94aW1hIE5vdmFcIixzYW5zLXNlcmlmO2NvbG9yOmluaGVyaXQgIWltcG9ydGFudH0uZnVsbHNjcmVlbi1jb2RlIHByZSBhIGNvZGV7Zm9udC13ZWlnaHQ6bm9ybWFsO3RyYW5zaXRpb246Y29sb3IgLjJzO3Bvc2l0aW9uOnJlbGF0aXZlO2NvbG9yOiMwMEEzRkZ9LmZ1bGxzY3JlZW4tY29kZSBwcmUgYSBjb2RlOmFmdGVye2NvbnRlbnQ6XCJcIjtwb3NpdGlvbjphYnNvbHV0ZTtkaXNwbGF5OmJsb2NrO3RvcDowO3JpZ2h0OjA7Ym9yZGVyLXN0eWxlOnNvbGlkO2JvcmRlci13aWR0aDowIC40cmVtIC40cmVtIDA7Ym9yZGVyLWNvbG9yOnRyYW5zcGFyZW50IHJnYmEoMCwxNjMsMjU1LDAuMzUpIHRyYW5zcGFyZW50IHRyYW5zcGFyZW50O3RyYW5zaXRpb246Ym9yZGVyIC4yc30uZnVsbHNjcmVlbi1jb2RlIHByZSBhOmhvdmVyIGNvZGV7Y29sb3I6I2ZmZn0uZnVsbHNjcmVlbi1jb2RlIHByZSBhOmhvdmVyIGNvZGU6YWZ0ZXJ7Ym9yZGVyLWNvbG9yOnRyYW5zcGFyZW50ICNmZmYgdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnR9LmZ1bGxzY3JlZW4tY29kZSBwcmUgcHJle21hcmdpbjoycmVtIDAgMi4yNXJlbTtwYWRkaW5nOjEuNzVyZW0gMS43NXJlbSAxLjI1cmVtO2JvcmRlci1yYWRpdXM6MnB4O292ZXJmbG93LXg6c2Nyb2xsO292ZXJmbG93LXk6aGlkZGVuO2ZvbnQtc2l6ZToxcmVtfS5mdWxsc2NyZWVuLWNvZGUgcHJlIHByZSBjb2Rle3BhZGRpbmc6MDtsaW5lLWhlaWdodDoxLjdyZW07d2hpdGUtc3BhY2U6cHJlfS5mdWxsc2NyZWVuLWNvZGUgcHJlIHByZSAuYXBpe21hcmdpbi1yaWdodDouMzVyZW07cGFkZGluZzouMTVyZW0gLjVyZW0gLjI1cmVtO2JvcmRlci1yYWRpdXM6MnB4O2NvbG9yOiNmZmY7Zm9udC1mYW1pbHk6XCJJQk0gUGxleCBNb25vXCIsbW9ub3NwYWNlO2ZvbnQtd2VpZ2h0OmJvbGQ7Zm9udC1zaXplOjFyZW19LmZ1bGxzY3JlZW4tY29kZSBwcmUgcHJlIC5hcGkuZ2V0e2JhY2tncm91bmQ6IzAwOUY1Rn0uZnVsbHNjcmVlbi1jb2RlIHByZSBwcmUgLmFwaS5wb3N0e2JhY2tncm91bmQ6IzA2NkZDNX0uZnVsbHNjcmVlbi1jb2RlIHByZSBwcmUgLmFwaS5wYXRjaHtiYWNrZ3JvdW5kOiNFODVCMUN9LmZ1bGxzY3JlZW4tY29kZSBwcmUgcHJlIC5hcGkuZGVsZXRle2JhY2tncm91bmQ6I0JGM0Q1RX0uZnVsbHNjcmVlbi1jb2RlIHByZSBwcmUgLmFwaS5wdXR7YmFja2dyb3VuZDojNTEzQ0M2fS5mdWxsc2NyZWVuLWNvZGUgcHJlIHByZS5hcGktZW5kcG9pbnQgYXtwb3NpdGlvbjpyZWxhdGl2ZTtjb2xvcjojMDBBM0ZGO3RleHQtZGVjb3JhdGlvbjpub25lfS5mdWxsc2NyZWVuLWNvZGUgcHJlIHByZS5hcGktZW5kcG9pbnQgYTphZnRlcntjb250ZW50OlwiXFxlOTBkXCI7cG9zaXRpb246YWJzb2x1dGU7cmlnaHQ6LTEuNDVyZW07dG9wOjAuNjVyZW07Zm9udC1mYW1pbHk6XCJpY29tb29uLXY0XCI7Y29sb3I6I2ZmZjtkaXNwbGF5OmlubGluZS1ibG9jaztmb250LXNpemU6MS4xcmVtO2xpbmUtaGVpZ2h0OjA7b3BhY2l0eTowO3RyYW5zaXRpb246b3BhY2l0eSAuMnN9LmZ1bGxzY3JlZW4tY29kZSBwcmUgcHJlLmFwaS1lbmRwb2ludCBhOmhvdmVye2NvbG9yOiNmZmZ9LmZ1bGxzY3JlZW4tY29kZSBwcmUgcHJlLmFwaS1lbmRwb2ludCBhOmhvdmVyOmFmdGVye29wYWNpdHk6LjZ9LmZ1bGxzY3JlZW4tY29kZSBwcmUgc3Bhbi5jb2RlLWNhbGxvdXQsLmZ1bGxzY3JlZW4tY29kZSBwcmUgLmNvZGUtcGxhY2Vob2xkZXJ7Zm9udC13ZWlnaHQ6Ym9sZDttYXJnaW46MCAuMTVyZW19LmZ1bGxzY3JlZW4tY29kZSBwcmUgc3Bhbi5jb2RlLWNhbGxvdXQuZ3JlZW4sLmZ1bGxzY3JlZW4tY29kZSBwcmUgLmNvZGUtcGxhY2Vob2xkZXIuZ3JlZW57Y29sb3I6IzAwOUY1Rn0uZnVsbHNjcmVlbi1jb2RlIHByZSBzcGFuLmNvZGUtY2FsbG91dC5tYWdlbnRhLC5mdWxsc2NyZWVuLWNvZGUgcHJlIC5jb2RlLXBsYWNlaG9sZGVyLm1hZ2VudGF7Y29sb3I6I2QzMDk3MX0uZnVsbHNjcmVlbi1jb2RlIHByZSBzcGFuLmNvZGUtY2FsbG91dC5vcmFuZ2UsLmZ1bGxzY3JlZW4tY29kZSBwcmUgLmNvZGUtcGxhY2Vob2xkZXIub3Jhbmdle2NvbG9yOiNGOTVGNTN9LmZ1bGxzY3JlZW4tY29kZSBwcmUgc3Bhbi5jb2RlLWNhbGxvdXQuZGVsZXRlLC5mdWxsc2NyZWVuLWNvZGUgcHJlIHNwYW4uY29kZS1jYWxsb3V0LnN0cmlrZSwuZnVsbHNjcmVlbi1jb2RlIHByZSAuY29kZS1wbGFjZWhvbGRlci5kZWxldGUsLmZ1bGxzY3JlZW4tY29kZSBwcmUgLmNvZGUtcGxhY2Vob2xkZXIuc3RyaWtle3RleHQtZGVjb3JhdGlvbjpsaW5lLXRocm91Z2h9LmZ1bGxzY3JlZW4tY29kZSBwcmUgLmNvZGUtcGxhY2Vob2xkZXItd3JhcHBlcntkaXNwbGF5OmlubGluZTtwb3NpdGlvbjpyZWxhdGl2ZX0uZnVsbHNjcmVlbi1jb2RlIHByZSAuY29kZS1wbGFjZWhvbGRlci13cmFwcGVyIC5jb2RlLXBsYWNlaG9sZGVye2Rpc3BsYXk6aW5saW5lLWJsb2NrO21hcmdpbjowIC4xNXJlbTtwYWRkaW5nOjA7bGluZS1oZWlnaHQ6MS40ZW07Y29sb3I6I2U2NTlhMjtmb250LXdlaWdodDpub3JtYWw7Zm9udC1zdHlsZTpub3JtYWw7Ym9yZGVyLWJvdHRvbToxcHggZG90dGVkO3RyYW5zaXRpb246Y29sb3IgLjJzO2N1cnNvcjpwb2ludGVyfS5mdWxsc2NyZWVuLWNvZGUgcHJlIC5jb2RlLXBsYWNlaG9sZGVyLXdyYXBwZXIgLmNvZGUtcGxhY2Vob2xkZXIgLmNvZGUtcGxhY2Vob2xkZXItZWRpdC1pY29ue2ZvbnQtc3R5bGU6bm9ybWFsfS5mdWxsc2NyZWVuLWNvZGUgcHJlIC5jb2RlLXBsYWNlaG9sZGVyLXdyYXBwZXIgLmNvZGUtcGxhY2Vob2xkZXIgLmNvZGUtcGxhY2Vob2xkZXItZWRpdC1pY29uOjpiZWZvcmV7bWFyZ2luLWxlZnQ6LjJyZW07Zm9udC1zaXplOi44ZW07dHJhbnNpdGlvbjpvcGFjaXR5IC4ycztvcGFjaXR5Oi42NTt6LWluZGV4Oi0xfS5mdWxsc2NyZWVuLWNvZGUgcHJlIC5jb2RlLXBsYWNlaG9sZGVyLXdyYXBwZXIgLmNvZGUtcGxhY2Vob2xkZXI6aG92ZXJ7Y29sb3I6IzVlZTRlNH0uZnVsbHNjcmVlbi1jb2RlIHByZSAuY29kZS1wbGFjZWhvbGRlci13cmFwcGVyIC5jb2RlLXBsYWNlaG9sZGVyOmhvdmVyIC5jb2RlLXBsYWNlaG9sZGVyLWVkaXQtaWNvbjo6YmVmb3Jle29wYWNpdHk6MX0uZnVsbHNjcmVlbi1jb2RlIHByZSAuY29kZS1wbGFjZWhvbGRlci13cmFwcGVyIC5jb2RlLWlucHV0LXdyYXBwZXJ7cG9zaXRpb246YWJzb2x1dGU7dG9wOi0zcHg7bGVmdDotNC41cHg7ei1pbmRleDoxO2NvbG9yOmluaGVyaXR9LmZ1bGxzY3JlZW4tY29kZSBwcmUgLmNvZGUtcGxhY2Vob2xkZXItd3JhcHBlciAuY29kZS1pbnB1dC13cmFwcGVyIGlucHV0LnBsYWNlaG9sZGVyLWVkaXR7d2lkdGg6MTAwJTttYXgtd2lkdGg6MTAwJTtib3JkZXI6MXB4IHNvbGlkICMxQTFBMkE7Ym9yZGVyLXJhZGl1czo0cHg7YmFja2dyb3VuZC1jb2xvcjojMUExQTJBO3BhZGRpbmc6MnB4IDIwcHggMnB4IDZweDtjb2xvcjojNWVlNGU0O2ZvbnQtd2VpZ2h0Om5vcm1hbH0uZnVsbHNjcmVlbi1jb2RlIHByZSAuY29kZS1wbGFjZWhvbGRlci13cmFwcGVyIC5jb2RlLWlucHV0LXdyYXBwZXIgaW5wdXQucGxhY2Vob2xkZXItZWRpdDpmb2N1c3tvdXRsaW5lOm5vbmU7Ym9yZGVyLWNvbG9yOnJnYmEoOTQsMjI4LDIyOCwwLjc1KTtib3gtc2hhZG93OjFweCAxcHggOHB4IHJnYmEoOTQsMjI4LDIyOCwwLjUpO2JvcmRlci1yYWRpdXM6MnB4fS5mdWxsc2NyZWVuLWNvZGUgcHJlIC5jb2RlLXBsYWNlaG9sZGVyLXdyYXBwZXIgLmNvZGUtaW5wdXQtd3JhcHBlcjpob3ZlcntjdXJzb3I6cG9pbnRlcn0uZnVsbHNjcmVlbi1jb2RlIHByZSAuY29kZS1wbGFjZWhvbGRlci13cmFwcGVyIC5jb2RlLWlucHV0LXdyYXBwZXI6YWZ0ZXJ7Y29udGVudDpcIlxcZTkzN1wiO2NvbG9yOiM1ZWU0ZTQ7Zm9udC1mYW1pbHk6J2ljb21vb24tdjQnO2Rpc3BsYXk6YmxvY2s7cG9zaXRpb246YWJzb2x1dGU7dG9wOjA7cmlnaHQ6M3B4fS5mdWxsc2NyZWVuLWNvZGUgcHJlIC5jb2RlLXBsYWNlaG9sZGVyLWtleSBjb2Rle2NvbG9yOiNlNjU5YTIgIWltcG9ydGFudH0uZnVsbHNjcmVlbi1jb2RlIHByZSBwcmUgc3Bhbi50Yy1keW5hbWljLXZhbHVle2JvcmRlcjoxcHggc29saWQ7Ym9yZGVyLXJhZGl1czo2cHg7cGFkZGluZzowIC4yNXJlbTstLXBhcmFtLWNvbG9yOiAjZmY3OWM2Oy0tcGFyYW0tYmc6ICNmZjc5YzYzMzstLWVudi1jb2xvcjogIzAwOTJiODstLWVudi1iZzogIzAwOTJiODMzOy0tc2VjcmV0LWNvbG9yOiAjOWEwOWZmOy0tc2VjcmV0LWJnOiAjOTgwOWZmMzN9LmZ1bGxzY3JlZW4tY29kZSBwcmUgcHJlIHNwYW4udGMtZHluYW1pYy12YWx1ZS5wYXJhbXtjb2xvcjp2YXIoLS1wYXJhbS1jb2xvcik7YmFja2dyb3VuZDp2YXIoLS1wYXJhbS1iZyk7Ym9yZGVyLWNvbG9yOnZhcigtLXBhcmFtLWNvbG9yKX0uZnVsbHNjcmVlbi1jb2RlIHByZSBwcmUgc3Bhbi50Yy1keW5hbWljLXZhbHVlLmVudntjb2xvcjp2YXIoLS1lbnYtY29sb3IpO2JhY2tncm91bmQ6dmFyKC0tZW52LWJnKTtib3JkZXItY29sb3I6dmFyKC0tZW52LWNvbG9yKX0uZnVsbHNjcmVlbi1jb2RlIHByZSBwcmUgc3Bhbi50Yy1keW5hbWljLXZhbHVlLnNlY3JldHtjb2xvcjp2YXIoLS1zZWNyZXQtY29sb3IpO2JhY2tncm91bmQ6dmFyKC0tc2VjcmV0LWJnKTtib3JkZXItY29sb3I6dmFyKC0tc2VjcmV0LWNvbG9yKX1AbWVkaWEgKG1heC13aWR0aDogNjAwcHgpey5mdWxsc2NyZWVuLWNvZGUgcHJlIHByZXtwYWRkaW5nOjEuMmVtIDEuMmVtIC43NXJlbX19I3YzLXdheWZpbmRpbmctbW9kYWx7ZGlzcGxheTpmbGV4O3dpZHRoOjEwMCU7anVzdGlmeS1jb250ZW50OmNlbnRlcjthbGlnbi1pdGVtczpjZW50ZXI7cG9zaXRpb246Zml4ZWQ7dG9wOi0xMDB2aDtwYWRkaW5nOjJyZW07ei1pbmRleDoyMDA7YmFja2Ryb3AtZmlsdGVyOmJsdXIoMTVweCk7dHJhbnNpdGlvbjp0b3AgLjc1cyBlYXNlLWluLW91dH0jdjMtd2F5ZmluZGluZy1tb2RhbC5vcGVue3RvcDowfSN2My13YXlmaW5kaW5nLW1vZGFsIC53YXlmaW5kaW5nLXdyYXBwZXJ7YmFja2dyb3VuZDpsaW5lYXItZ3JhZGllbnQoNDVkZWcsICNkMzA5NzEsIzliMmFmZik7cG9zaXRpb246cmVsYXRpdmU7bWF4LXdpZHRoOjgwMHB4O3BvaW50ZXItZXZlbnRzOmFsbDtib3JkZXItcmFkaXVzOjRweH0jdjMtd2F5ZmluZGluZy1tb2RhbCAud2F5ZmluZGluZy1jb250ZW50e3BhZGRpbmc6MS41cmVtO2NvbG9yOiNmZmZ9I3YzLXdheWZpbmRpbmctbW9kYWwgLndheWZpbmRpbmctY29udGVudCBoNHtmb250LXNpemU6MS4yNXJlbTttYXJnaW46MH0jdjMtd2F5ZmluZGluZy1tb2RhbCAud2F5ZmluZGluZy1jb250ZW50LWluZm97ZGlzcGxheTpmbGV4O2ZsZXgtZGlyZWN0aW9uOnJvd30jdjMtd2F5ZmluZGluZy1tb2RhbCAud2F5ZmluZGluZy1jb250ZW50LWluZm8gcHtjb2xvcjpyZ2JhKDI1NSwyNTUsMjU1LDAuODUpO2xpbmUtaGVpZ2h0OjEuNjVyZW19I3YzLXdheWZpbmRpbmctbW9kYWwgLndheWZpbmRpbmctY29udGVudC1pbmZvIHAgc3Ryb25ne2NvbG9yOiNmZmZ9I3YzLXdheWZpbmRpbmctbW9kYWwgLndheWZpbmRpbmctY29udGVudC1pbmZvIGEjZmluZC1vdXQtdG9nZ2xle3Bvc2l0aW9uOnJlbGF0aXZlO2NvbG9yOmluaGVyaXQ7Zm9udC1zaXplOi45NXJlbTt0ZXh0LWRlY29yYXRpb246bm9uZTt3aGl0ZS1zcGFjZTpub3dyYXB9I3YzLXdheWZpbmRpbmctbW9kYWwgLndheWZpbmRpbmctY29udGVudC1pbmZvIGEjZmluZC1vdXQtdG9nZ2xlOmFmdGVye3Bvc2l0aW9uOmFic29sdXRlO2Rpc3BsYXk6YmxvY2s7Y29udGVudDpcIlwiO2JvcmRlci10b3A6MXB4IHNvbGlkICNmZmY7Ym90dG9tOi0uMXJlbTtsZWZ0OjA7aGVpZ2h0OjFweDt3aWR0aDowJTt0cmFuc2l0aW9uOndpZHRoIC4yc30jdjMtd2F5ZmluZGluZy1tb2RhbCAud2F5ZmluZGluZy1jb250ZW50LWluZm8gYSNmaW5kLW91dC10b2dnbGU6aG92ZXJ7Y29sb3I6I2ZmZn0jdjMtd2F5ZmluZGluZy1tb2RhbCAud2F5ZmluZGluZy1jb250ZW50LWluZm8gYSNmaW5kLW91dC10b2dnbGU6aG92ZXI6YWZ0ZXJ7d2lkdGg6MTAwJX0jdjMtd2F5ZmluZGluZy1tb2RhbCAud2F5ZmluZGluZy1jb250ZW50LWluZm8gI2ZpbmQtb3V0LWluc3RydWN0aW9uc3t0ZXh0LWFsaWduOmNlbnRlcjtsaW5lLWhlaWdodDoxcmVtO3RyYW5zaXRpb246aGVpZ2h0IC4ycyBlYXNlLW91dCwgb3BhY2l0eSAuMnM7b3BhY2l0eTowO2hlaWdodDowO292ZXJmbG93OmhpZGRlbn0jdjMtd2F5ZmluZGluZy1tb2RhbCAud2F5ZmluZGluZy1jb250ZW50LWluZm8gI2ZpbmQtb3V0LWluc3RydWN0aW9ucyBwe21hcmdpbi10b3A6MDtmb250LXNpemU6Ljk1cmVtO2ZvbnQtc3R5bGU6aXRhbGljO2xpbmUtaGVpZ2h0OjEuM3JlbX0jdjMtd2F5ZmluZGluZy1tb2RhbCAud2F5ZmluZGluZy1jb250ZW50LWluZm8gI2ZpbmQtb3V0LWluc3RydWN0aW9ucyBhe3Bvc2l0aW9uOnJlbGF0aXZlO2NvbG9yOiNmZmY7dGV4dC1kZWNvcmF0aW9uOm5vbmU7Zm9udC13ZWlnaHQ6Ym9sZH0jdjMtd2F5ZmluZGluZy1tb2RhbCAud2F5ZmluZGluZy1jb250ZW50LWluZm8gI2ZpbmQtb3V0LWluc3RydWN0aW9ucyBhOmFmdGVye3Bvc2l0aW9uOmFic29sdXRlO2Rpc3BsYXk6YmxvY2s7Y29udGVudDpcIlwiO2JvcmRlci10b3A6MXB4IHNvbGlkICNmZmY7Ym90dG9tOi0uMnJlbTtsZWZ0OjA7aGVpZ2h0OjFweDt3aWR0aDowJTt0cmFuc2l0aW9uOndpZHRoIC4yc30jdjMtd2F5ZmluZGluZy1tb2RhbCAud2F5ZmluZGluZy1jb250ZW50LWluZm8gI2ZpbmQtb3V0LWluc3RydWN0aW9ucyBhOmhvdmVyOmFmdGVye3dpZHRoOjEwMCV9I3YzLXdheWZpbmRpbmctbW9kYWwgLndheWZpbmRpbmctY29udGVudC1pbmZvIC5wb3dlcmVkLWJ5LWV4YW1wbGV7cGFkZGluZzoxcmVtIDEuMjVyZW07ZGlzcGxheTppbmxpbmUtYmxvY2s7Ym9yZGVyLXJhZGl1czoycHg7YmFja2dyb3VuZDojMEYwRTE1O2NvbG9yOiMyQUEzRkY7Zm9udC1zaXplOi45NXJlbTtmb250LXdlaWdodDpib2xkO3RleHQtYWxpZ246Y2VudGVyfSN2My13YXlmaW5kaW5nLW1vZGFsIC53YXlmaW5kaW5nLWNvbnRlbnQtaW5mbyAucG93ZXJlZC1ieS1leGFtcGxlIHNwYW4uc3RvcmFnZS1kZXNjcmlwdGlvbntkaXNwbGF5OmJsb2NrO2NvbG9yOiM4MjgyOTQ7Zm9udC13ZWlnaHQ6bm9ybWFsO2xpbmUtaGVpZ2h0OjEuMXJlbX0jdjMtd2F5ZmluZGluZy1tb2RhbCAud2F5ZmluZGluZy1jb250ZW50LWluZm8gLnBvd2VyZWQtYnktZXhhbXBsZSBzcGFuLnN0b3JhZ2UtZGVzY3JpcHRpb24uZ2l0LWhlYWQ6OmFmdGVye2NvbnRlbnQ6XCIoeHh4eHh4KVwiO2ZvbnQtZmFtaWx5OlwiSUJNIFBsZXggTW9ub1wiLG1vbm9zcGFjZTttYXJnaW4tbGVmdDouMnJlbX0jdjMtd2F5ZmluZGluZy1tb2RhbCAud2F5ZmluZGluZy1hY3Rpb25ze21pbi13aWR0aDozMyU7bWFyZ2luLWxlZnQ6MnJlbTtkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246Y29sdW1uO2p1c3RpZnktY29udGVudDpjZW50ZXI7YWxpZ24tY29udGVudDpjZW50ZXJ9I3YzLXdheWZpbmRpbmctbW9kYWwgLnYzLXdheWZpbmRpbmctYnRue2Rpc3BsYXk6YmxvY2s7cGFkZGluZzoxcmVtO21hcmdpbi1ib3R0b206LjVyZW07Ym9yZGVyLXJhZGl1czoycHg7YmFja2dyb3VuZC1jb2xvcjojZmZmO3RleHQtYWxpZ246Y2VudGVyO3RleHQtZGVjb3JhdGlvbjpub25lO2NvbG9yOiM5YjJhZmY7Ym94LXNoYWRvdzowcHggMHB4IDEwcHggcmdiYSgyNTUsMjU1LDI1NSwwKTt0cmFuc2l0aW9uOmNvbG9yIC4ycywgYm94LXNoYWRvdyAuMnN9I3YzLXdheWZpbmRpbmctbW9kYWwgLnYzLXdheWZpbmRpbmctYnRuOmhvdmVye2NvbG9yOiM1QzEwQTA7Ym94LXNoYWRvdzowIDAgMTBweCByZ2JhKDI1NSwyNTUsMjU1LDAuOSl9I3YzLXdheWZpbmRpbmctbW9kYWwgLnYzLXdheWZpbmRpbmctYnRuIC5zbWFsbHtmb250LXNpemU6MXJlbX0jdjMtd2F5ZmluZGluZy1tb2RhbCAjdjMtd2F5ZmluZGluZy1jbG9zZXtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6Ljc1cmVtO3JpZ2h0Oi43NXJlbTtjb2xvcjojZmZmO2ZvbnQtc2l6ZToycmVtO29wYWNpdHk6LjY1O3RyYW5zaXRpb246b3BhY2l0eSAuMnN9I3YzLXdheWZpbmRpbmctbW9kYWwgI3YzLXdheWZpbmRpbmctY2xvc2U6aG92ZXJ7b3BhY2l0eToxO2N1cnNvcjpwb2ludGVyfSN2My13YXlmaW5kaW5nLW1vZGFsIGxhYmVse21hcmdpbi10b3A6LjVyZW07ZGlzcGxheTpibG9jazt0ZXh0LWFsaWduOmNlbnRlcjtmb250LXNpemU6Ljk1cmVtO2ZvbnQtc3R5bGU6aXRhbGljO3Bvc2l0aW9uOnJlbGF0aXZlO2N1cnNvcjpwb2ludGVyO3VzZXItc2VsZWN0Om5vbmU7LXdlYmtpdC11c2VyLXNlbGVjdDpub25lfSN2My13YXlmaW5kaW5nLW1vZGFsIGxhYmVsIC5jaGVja2JveHtkaXNwbGF5OmlubGluZS1ibG9jazt3aWR0aDoxNXB4O2hlaWdodDoxNXB4O2JvcmRlcjoxLjVweCBzb2xpZCByZ2JhKDI1NSwyNTUsMjU1LDAuODUpO3ZlcnRpY2FsLWFsaWduOm1pZGRsZTtib3JkZXItcmFkaXVzOjJweDtwb3NpdGlvbjpyZWxhdGl2ZX0jdjMtd2F5ZmluZGluZy1tb2RhbCBsYWJlbCAuY2hlY2tib3g6YmVmb3Jle2NvbnRlbnQ6Jyc7ZGlzcGxheTppbmxpbmUtYmxvY2s7d2lkdGg6M3B4O2hlaWdodDo3cHg7Ym9yZGVyLXJpZ2h0OjJweCBzb2xpZCByZ2JhKDI1NSwyNTUsMjU1LDAuODUpO2JvcmRlci1ib3R0b206MnB4IHNvbGlkIHJnYmEoMjU1LDI1NSwyNTUsMC44NSk7cG9zaXRpb246YWJzb2x1dGU7bGVmdDo1MCU7dG9wOjUwJTt0cmFuc2Zvcm06dHJhbnNsYXRlKC01MCUsIC01MCUpIHJvdGF0ZSg0NWRlZykgc2NhbGUoMCk7dHJhbnNpdGlvbjphbGwgMC4yc30jdjMtd2F5ZmluZGluZy1tb2RhbCBsYWJlbCBpbnB1dHtwb3NpdGlvbjphYnNvbHV0ZTtvcGFjaXR5OjA7dmlzaWJpbGl0eTpoaWRkZW59I3YzLXdheWZpbmRpbmctbW9kYWwgbGFiZWwgaW5wdXQ6Y2hlY2tlZCsuY2hlY2tib3h7Ym9yZGVyLWNvbG9yOnJnYmEoMjU1LDI1NSwyNTUsMC44NSl9I3YzLXdheWZpbmRpbmctbW9kYWwgbGFiZWwgaW5wdXQ6Y2hlY2tlZCsuY2hlY2tib3g6YmVmb3Jle3RyYW5zZm9ybTp0cmFuc2xhdGUoLTUwJSwgLTYwJSkgcm90YXRlKDQ1ZGVnKSBzY2FsZSgxKX0jdjMtd2F5ZmluZGluZy1tb2RhbCBsYWJlbCAuY2hlY2tib3gtdGV4dHttYXJnaW4tbGVmdDo0cHg7ZGlzcGxheTppbmxpbmUtYmxvY2s7dmVydGljYWwtYWxpZ246bWlkZGxlfUBtZWRpYSAobWF4LXdpZHRoOiA2MDBweCl7I3YzLXdheWZpbmRpbmctbW9kYWwgLndheWZpbmRpbmctY29udGVudC1pbmZve2ZsZXgtZGlyZWN0aW9uOmNvbHVtbn0jdjMtd2F5ZmluZGluZy1tb2RhbCAjZmluZC1vdXQtaW5zdHJ1Y3Rpb25ze3BhZGRpbmctYm90dG9tOjEuNXJlbX0jdjMtd2F5ZmluZGluZy1tb2RhbCAud2F5ZmluZGluZy1hY3Rpb25ze21hcmdpbi1sZWZ0OjB9fS5pbmZsdXhkYi12ZXJzaW9uLWRldGVjdG9yey0tdHJhbnNpdGlvbi1mYXN0OiAwLjJzIGVhc2U7LS10cmFuc2l0aW9uLW5vcm1hbDogMC4zcyBlYXNlOy0tc3BhY2luZy1zbTogMC42MjVyZW07LS1zcGFjaW5nLW1kOiAxLjI1cmVtO21hcmdpbjoycmVtIGF1dG99LmluZmx1eGRiLXZlcnNpb24tZGV0ZWN0b3IgLmRldGVjdG9yLXRpdGxle2NvbG9yOiNmZmY7bWFyZ2luLWJvdHRvbTowLjYyNXJlbTtmb250LXNpemU6MS44ZW07Zm9udC13ZWlnaHQ6NjAwfS5pbmZsdXhkYi12ZXJzaW9uLWRldGVjdG9yIC5kZXRlY3Rvci1zdWJ0aXRsZXtjb2xvcjojRDREN0REO21hcmdpbi1ib3R0b206MS44NzVyZW07Zm9udC1zaXplOjAuOTVlbTtvcGFjaXR5OjAuOH0uaW5mbHV4ZGItdmVyc2lvbi1kZXRlY3RvciAucHJvZ3Jlc3N7bWFyZ2luLWJvdHRvbToxLjU2MjVyZW07aGVpZ2h0OjZweDtiYWNrZ3JvdW5kOiMzODM4NDY7Ym9yZGVyLXJhZGl1czozcHg7b3ZlcmZsb3c6aGlkZGVufS5pbmZsdXhkYi12ZXJzaW9uLWRldGVjdG9yIC5wcm9ncmVzcyAucHJvZ3Jlc3MtYmFye2hlaWdodDoxMDAlO2JhY2tncm91bmQ6IzAwQTNGRjt0cmFuc2l0aW9uOndpZHRoIHZhcigtLXRyYW5zaXRpb24tbm9ybWFsKX0uaW5mbHV4ZGItdmVyc2lvbi1kZXRlY3RvciAucXVlc3Rpb24tY29udGFpbmVye21pbi1oZWlnaHQ6MTUwcHh9LmluZmx1eGRiLXZlcnNpb24tZGV0ZWN0b3IgLnF1ZXN0aW9uLWNvbnRhaW5lciAucXVlc3Rpb257ZGlzcGxheTpub25lO2FuaW1hdGlvbjpmYWRlSW4gdmFyKC0tdHJhbnNpdGlvbi1ub3JtYWwpfS5pbmZsdXhkYi12ZXJzaW9uLWRldGVjdG9yIC5xdWVzdGlvbi1jb250YWluZXIgLnF1ZXN0aW9uLmFjdGl2ZXtkaXNwbGF5OmJsb2NrfS5pbmZsdXhkYi12ZXJzaW9uLWRldGVjdG9yIC5xdWVzdGlvbi1jb250YWluZXIgLnF1ZXN0aW9uIC5xdWVzdGlvbi10ZXh0e2ZvbnQtc2l6ZToxLjFlbTtjb2xvcjojZmZmO21hcmdpbi1ib3R0b206MS4yNXJlbTtmb250LXdlaWdodDo1MDB9LmluZmx1eGRiLXZlcnNpb24tZGV0ZWN0b3IgLnVybC1zdWdnZXN0aW9ucyAuc3VnZ2VzdGlvbi1idXR0b24sLmluZmx1eGRiLXZlcnNpb24tZGV0ZWN0b3IgLmJhY2stYnV0dG9uLC5pbmZsdXhkYi12ZXJzaW9uLWRldGVjdG9yIC5yZXN0YXJ0LWJ1dHRvbiwuaW5mbHV4ZGItdmVyc2lvbi1kZXRlY3RvciAuc3VibWl0LWJ1dHRvbiwuaW5mbHV4ZGItdmVyc2lvbi1kZXRlY3RvciAub3B0aW9uLWJ1dHRvbntib3JkZXI6bm9uZTtib3JkZXItcmFkaXVzOnZhcigtLWJvcmRlci1yYWRpdXMpO2N1cnNvcjpwb2ludGVyO3RyYW5zaXRpb246YWxsIHZhcigtLXRyYW5zaXRpb24tZmFzdCk7Zm9udC1mYW1pbHk6aW5oZXJpdH0uaW5mbHV4ZGItdmVyc2lvbi1kZXRlY3RvciAudXJsLXN1Z2dlc3Rpb25zIC5zdWdnZXN0aW9uLWJ1dHRvbjpmb2N1cywuaW5mbHV4ZGItdmVyc2lvbi1kZXRlY3RvciAuYmFjay1idXR0b246Zm9jdXMsLmluZmx1eGRiLXZlcnNpb24tZGV0ZWN0b3IgLnJlc3RhcnQtYnV0dG9uOmZvY3VzLC5pbmZsdXhkYi12ZXJzaW9uLWRldGVjdG9yIC5zdWJtaXQtYnV0dG9uOmZvY3VzLC5pbmZsdXhkYi12ZXJzaW9uLWRldGVjdG9yIC5vcHRpb24tYnV0dG9uOmZvY3Vze291dGxpbmU6MnB4IHNvbGlkICMwMEEzRkY7b3V0bGluZS1vZmZzZXQ6MnB4fS5pbmZsdXhkYi12ZXJzaW9uLWRldGVjdG9yIC5vcHRpb24tYnV0dG9ue2Rpc3BsYXk6YmxvY2s7d2lkdGg6MTAwJTt0ZXh0LWFsaWduOmxlZnQ7bWFyZ2luLWJvdHRvbTowLjc1cmVtO3BhZGRpbmc6MC44NzVyZW0gMS4xMjVyZW07YmFja2dyb3VuZDojMTQxNDFGO2NvbG9yOiNENEQ3REQ7Ym9yZGVyOjJweCBzb2xpZCAjMzgzODQ2O2ZvbnQtc2l6ZToxNXB4fS5pbmZsdXhkYi12ZXJzaW9uLWRldGVjdG9yIC5vcHRpb24tYnV0dG9uOmhvdmVye2JvcmRlci1jb2xvcjojMDBBM0ZGO2JhY2tncm91bmQ6IzE0MTQxRjt0cmFuc2Zvcm06dHJhbnNsYXRlWCgzcHgpfS5pbmZsdXhkYi12ZXJzaW9uLWRldGVjdG9yIC5vcHRpb24tYnV0dG9uOmFjdGl2ZXt0cmFuc2Zvcm06dHJhbnNsYXRlWCgxcHgpfS5pbmZsdXhkYi12ZXJzaW9uLWRldGVjdG9yIC5zdWJtaXQtYnV0dG9ue2JhY2tncm91bmQ6IzAwQTNGRjtjb2xvcjojZmZmO3BhZGRpbmc6MC43NXJlbSAxLjVyZW07Zm9udC1zaXplOjE1cHg7Zm9udC13ZWlnaHQ6NTAwfS5pbmZsdXhkYi12ZXJzaW9uLWRldGVjdG9yIC5zdWJtaXQtYnV0dG9uOmhvdmVye2JhY2tncm91bmQ6IzA2NkZDNTtjb2xvcjojZmZmfS5pbmZsdXhkYi12ZXJzaW9uLWRldGVjdG9yIC5zdWJtaXQtYnV0dG9uOmRpc2FibGVke2JhY2tncm91bmQ6IzY3Njk3ODtjdXJzb3I6bm90LWFsbG93ZWR9LmluZmx1eGRiLXZlcnNpb24tZGV0ZWN0b3IgLmJhY2stYnV0dG9uLC5pbmZsdXhkYi12ZXJzaW9uLWRldGVjdG9yIC5yZXN0YXJ0LWJ1dHRvbntiYWNrZ3JvdW5kOiM2NzY5Nzg7Y29sb3I6I2ZmZjtwYWRkaW5nOnZhcigtLXNwYWNpbmctc20pIHZhcigtLXNwYWNpbmctbWQpO2ZvbnQtc2l6ZToxNHB4O21hcmdpbi1yaWdodDp2YXIoLS1zcGFjaW5nLXNtKX0uaW5mbHV4ZGItdmVyc2lvbi1kZXRlY3RvciAuYmFjay1idXR0b246aG92ZXIsLmluZmx1eGRiLXZlcnNpb24tZGV0ZWN0b3IgLnJlc3RhcnQtYnV0dG9uOmhvdmVye2JhY2tncm91bmQ6Izc1Nzg4OH0uaW5mbHV4ZGItdmVyc2lvbi1kZXRlY3RvciAucmVzdGFydC1idXR0b257bWFyZ2luLXRvcDp2YXIoLS1zcGFjaW5nLW1kKTttYXJnaW4tcmlnaHQ6MH0uaW5mbHV4ZGItdmVyc2lvbi1kZXRlY3RvciB0ZXh0YXJlYSwuaW5mbHV4ZGItdmVyc2lvbi1kZXRlY3RvciAuaW5wdXQtZ3JvdXAgaW5wdXR7d2lkdGg6MTAwJTtib3JkZXI6MnB4IHNvbGlkICMzODM4NDY7Ym9yZGVyLXJhZGl1czp2YXIoLS1ib3JkZXItcmFkaXVzKTt0cmFuc2l0aW9uOmJvcmRlci1jb2xvciB2YXIoLS10cmFuc2l0aW9uLWZhc3QpO2JhY2tncm91bmQ6IzE0MTQxRjtjb2xvcjojRDREN0REfS5pbmZsdXhkYi12ZXJzaW9uLWRldGVjdG9yIHRleHRhcmVhOmZvY3VzLC5pbmZsdXhkYi12ZXJzaW9uLWRldGVjdG9yIC5pbnB1dC1ncm91cCBpbnB1dDpmb2N1c3tvdXRsaW5lOm5vbmU7Ym9yZGVyLWNvbG9yOiMwMEEzRkZ9LmluZmx1eGRiLXZlcnNpb24tZGV0ZWN0b3IgLmlucHV0LWdyb3Vwe21hcmdpbi1ib3R0b206dmFyKC0tc3BhY2luZy1tZCl9LmluZmx1eGRiLXZlcnNpb24tZGV0ZWN0b3IgLmlucHV0LWdyb3VwIGxhYmVse2Rpc3BsYXk6YmxvY2s7bWFyZ2luLWJvdHRvbTowLjVyZW07Y29sb3I6I0Q0RDdERDtmb250LXdlaWdodDo1MDB9LmluZmx1eGRiLXZlcnNpb24tZGV0ZWN0b3IgLmlucHV0LWdyb3VwIGlucHV0e3BhZGRpbmc6MC43NXJlbTtmb250LXNpemU6MTRweH0uaW5mbHV4ZGItdmVyc2lvbi1kZXRlY3RvciB0ZXh0YXJlYXtwYWRkaW5nOnZhcigtLXNwYWNpbmctc20pO2ZvbnQtZmFtaWx5OnZhcigtLWZvbnQtbW9ubywgXCJDb3VyaWVyIE5ld1wiLCBtb25vc3BhY2UpO2ZvbnQtc2l6ZToxMnB4O3Jlc2l6ZTp2ZXJ0aWNhbDttaW4taGVpZ2h0OjEyMHB4fS5pbmZsdXhkYi12ZXJzaW9uLWRldGVjdG9yIHRleHRhcmVhOjpwbGFjZWhvbGRlcntjb2xvcjpyZ2JhKDIxMiwyMTUsMjIxLDAuNik7b3BhY2l0eToxfS5pbmZsdXhkYi12ZXJzaW9uLWRldGVjdG9yIHRleHRhcmVhOjotd2Via2l0LWlucHV0LXBsYWNlaG9sZGVye2NvbG9yOnJnYmEoMjEyLDIxNSwyMjEsMC42KX0uaW5mbHV4ZGItdmVyc2lvbi1kZXRlY3RvciB0ZXh0YXJlYTo6LW1vei1wbGFjZWhvbGRlcntjb2xvcjpyZ2JhKDIxMiwyMTUsMjIxLDAuNik7b3BhY2l0eToxfS5pbmZsdXhkYi12ZXJzaW9uLWRldGVjdG9yIHRleHRhcmVhOi1tcy1pbnB1dC1wbGFjZWhvbGRlcntjb2xvcjpyZ2JhKDIxMiwyMTUsMjIxLDAuNil9LmluZmx1eGRiLXZlcnNpb24tZGV0ZWN0b3IgLmNvZGUtYmxvY2t7YmFja2dyb3VuZDojMDcwNzBFO2NvbG9yOiNCN0I4RkY7cGFkZGluZzoxLjc1cmVtIDEuNzVyZW0gMS4yNXJlbTtib3JkZXItcmFkaXVzOjJweDtmb250LWZhbWlseTpcIklCTSBQbGV4IE1vbm9cIixtb25vc3BhY2U7Zm9udC1zaXplOjFyZW07bWFyZ2luOjJyZW0gMCAyLjI1cmVtO292ZXJmbG93LXg6c2Nyb2xsO292ZXJmbG93LXk6aGlkZGVuO2xpbmUtaGVpZ2h0OjEuN3JlbTt3aGl0ZS1zcGFjZTpwcmV9LmluZmx1eGRiLXZlcnNpb24tZGV0ZWN0b3IgLnVybC1wYXR0ZXJuLWhpbnR7bWFyZ2luLWJvdHRvbTp2YXIoLS1zcGFjaW5nLXNtKTtwYWRkaW5nOnZhcigtLXNwYWNpbmctc20pO2JhY2tncm91bmQ6IzAwQTNGRjtib3JkZXI6MXB4IHNvbGlkICMwMEEzRkY7Ym9yZGVyLXJhZGl1czp2YXIoLS1ib3JkZXItcmFkaXVzKTtjb2xvcjojQkVGMEZGO2ZvbnQtc2l6ZToxM3B4fS5pbmZsdXhkYi12ZXJzaW9uLWRldGVjdG9yIC51cmwtc3VnZ2VzdGlvbnN7bWFyZ2luLWJvdHRvbTp2YXIoLS1zcGFjaW5nLW1kKX0uaW5mbHV4ZGItdmVyc2lvbi1kZXRlY3RvciAudXJsLXN1Z2dlc3Rpb25zIC5zdWdnZXN0aW9ucy1oZWFkZXJ7Y29sb3I6I2ZmZjttYXJnaW4tYm90dG9tOnZhcigtLXNwYWNpbmctc20pO2ZvbnQtc2l6ZToxNHB4fS5pbmZsdXhkYi12ZXJzaW9uLWRldGVjdG9yIC51cmwtc3VnZ2VzdGlvbnMgLnN1Z2dlc3Rpb24tYnV0dG9ue2Rpc3BsYXk6YmxvY2s7d2lkdGg6MTAwJTt0ZXh0LWFsaWduOmxlZnQ7bWFyZ2luLWJvdHRvbTp2YXIoLS1zcGFjaW5nLXNtKTtwYWRkaW5nOnZhcigtLXNwYWNpbmctc20pO2JhY2tncm91bmQ6IzE0MTQxRjtib3JkZXI6MXB4IHNvbGlkICMzODM4NDZ9LmluZmx1eGRiLXZlcnNpb24tZGV0ZWN0b3IgLnVybC1zdWdnZXN0aW9ucyAuc3VnZ2VzdGlvbi1idXR0b246aG92ZXJ7Ym9yZGVyLWNvbG9yOiMwMEEzRkY7YmFja2dyb3VuZDojMTQxNDFGfS5pbmZsdXhkYi12ZXJzaW9uLWRldGVjdG9yIC51cmwtc3VnZ2VzdGlvbnMgLnN1Z2dlc3Rpb24tYnV0dG9uIC5zdWdnZXN0aW9uLXVybHtmb250LWZhbWlseTp2YXIoLS1mb250LW1vbm8sIFwiQ291cmllciBOZXdcIiwgbW9ub3NwYWNlKTtmb250LXNpemU6MTNweDtjb2xvcjojMDBBM0ZGO21hcmdpbi1ib3R0b206MnB4fS5pbmZsdXhkYi12ZXJzaW9uLWRldGVjdG9yIC51cmwtc3VnZ2VzdGlvbnMgLnN1Z2dlc3Rpb24tYnV0dG9uIC5zdWdnZXN0aW9uLXByb2R1Y3R7Zm9udC1zaXplOjEycHg7Y29sb3I6I0Q0RDdERDtvcGFjaXR5OjAuOH0uaW5mbHV4ZGItdmVyc2lvbi1kZXRlY3RvciAudXJsLXN1Z2dlc3Rpb25zIC5zdWdnZXN0aW9uLWJ1dHRvbiAuc3VnZ2VzdGlvbi1wYXR0ZXJue2ZvbnQtc2l6ZToxMXB4O2NvbG9yOiMwMEEzRkY7Zm9udC1zdHlsZTppdGFsaWM7bWFyZ2luLXRvcDoycHh9LmluZmx1eGRiLXZlcnNpb24tZGV0ZWN0b3IgLnJlc3VsdHtkaXNwbGF5Om5vbmU7bWFyZ2luLXRvcDp2YXIoLS1zcGFjaW5nLXNtKTtwYWRkaW5nOnZhcigtLXNwYWNpbmctbWQpO2JvcmRlci1yYWRpdXM6dmFyKC0tYm9yZGVyLXJhZGl1cyk7YW5pbWF0aW9uOmZhZGVJbiB2YXIoLS10cmFuc2l0aW9uLW5vcm1hbCl9LmluZmx1eGRiLXZlcnNpb24tZGV0ZWN0b3IgLnJlc3VsdC5zaG93e2Rpc3BsYXk6YmxvY2t9LmluZmx1eGRiLXZlcnNpb24tZGV0ZWN0b3IgLnJlc3VsdC5zdWNjZXNze2JhY2tncm91bmQ6IzE0MTQxRjtib3JkZXItbGVmdDozcHggc29saWQgIzAwQTNGRjtjb2xvcjojRDREN0REfS5pbmZsdXhkYi12ZXJzaW9uLWRldGVjdG9yIC5yZXN1bHQuZXJyb3J7YmFja2dyb3VuZDojRkZGN0Y0O2JvcmRlci1sZWZ0OjNweCBzb2xpZCAjZDMwOTcxO2NvbG9yOiMyRjFGMjl9LmluZmx1eGRiLXZlcnNpb24tZGV0ZWN0b3IgLnJlc3VsdC5pbmZve2JhY2tncm91bmQ6IzAwQTNGRjtib3JkZXItbGVmdDozcHggc29saWQgIzAwQTNGRjtjb2xvcjojQkVGMEZGfS5pbmZsdXhkYi12ZXJzaW9uLWRldGVjdG9yIC5yZXN1bHQud2FybmluZ3tiYWNrZ3JvdW5kOnJnYmEoMjU1LDk3LDEzMywwLjEwMTk2MSk7Ym9yZGVyLWxlZnQ6M3B4IHNvbGlkICNGRjg1NjQ7Y29sb3I6I0ZGQjZBMH0uaW5mbHV4ZGItdmVyc2lvbi1kZXRlY3RvciAuZGV0ZWN0ZWQtdmVyc2lvbntmb250LXNpemU6MS4zZW07Zm9udC13ZWlnaHQ6Ym9sZDtjb2xvcjojMDBBM0ZGO21hcmdpbi1ib3R0b206dmFyKC0tc3BhY2luZy1zbSk7cGFkZGluZzp2YXIoLS1zcGFjaW5nLXNtKTtiYWNrZ3JvdW5kOnJnYmEoMCwxNjMsMjU1LDAuMSk7Ym9yZGVyLXJhZGl1czo0cHg7Ym9yZGVyLWxlZnQ6NHB4IHNvbGlkICMwMEEzRkZ9LmluZmx1eGRiLXZlcnNpb24tZGV0ZWN0b3IgLnVybC1wcmVmaWxsZWQtaW5kaWNhdG9ye2ZvbnQtc2l6ZTowLjg1ZW07Y29sb3I6I0JFRjBGRjttYXJnaW4tYm90dG9tOjhweDtwYWRkaW5nOjRweCA4cHg7YmFja2dyb3VuZDpyZ2JhKDAsMTYzLDI1NSwwLjEpO2JvcmRlci1sZWZ0OjNweCBzb2xpZCAjMDBBM0ZGfS5pbmZsdXhkYi12ZXJzaW9uLWRldGVjdG9yIC5sb2FkaW5ne2Rpc3BsYXk6aW5saW5lLWJsb2NrO21hcmdpbi1sZWZ0OnZhcigtLXNwYWNpbmctc20pfS5pbmZsdXhkYi12ZXJzaW9uLWRldGVjdG9yIC5sb2FkaW5nOmFmdGVye2NvbnRlbnQ6Jy4uLic7YW5pbWF0aW9uOmRvdHMgMS41cyBzdGVwcyg0LCBlbmQpIGluZmluaXRlfUBrZXlmcmFtZXMgZG90c3swJSwyMCV7Y29udGVudDonLid9NDAle2NvbnRlbnQ6Jy4uJ302MCUsMTAwJXtjb250ZW50OicuLi4nfX1Aa2V5ZnJhbWVzIGZhZGVJbntmcm9te29wYWNpdHk6MDt0cmFuc2Zvcm06dHJhbnNsYXRlWSgxMHB4KX10b3tvcGFjaXR5OjE7dHJhbnNmb3JtOnRyYW5zbGF0ZVkoMCl9fUBtZWRpYSAobWF4LXdpZHRoOiA3NjhweCl7LmluZmx1eGRiLXZlcnNpb24tZGV0ZWN0b3J7cGFkZGluZzoxLjVyZW19LmluZmx1eGRiLXZlcnNpb24tZGV0ZWN0b3IgLmRldGVjdG9yLXRpdGxle2ZvbnQtc2l6ZToxLjVlbX0uaW5mbHV4ZGItdmVyc2lvbi1kZXRlY3RvciAub3B0aW9uLWJ1dHRvbntwYWRkaW5nOjAuNzVyZW0gMXJlbTtmb250LXNpemU6MTRweH0uaW5mbHV4ZGItdmVyc2lvbi1kZXRlY3RvciAuc3VibWl0LWJ1dHRvbiwuaW5mbHV4ZGItdmVyc2lvbi1kZXRlY3RvciAuYmFjay1idXR0b24sLmluZmx1eGRiLXZlcnNpb24tZGV0ZWN0b3IgLnJlc3RhcnQtYnV0dG9ue3BhZGRpbmc6dmFyKC0tc3BhY2luZy1zbSkgdmFyKC0tc3BhY2luZy1tZCk7Zm9udC1zaXplOjE0cHh9fUBtZWRpYSAobWF4LXdpZHRoOiA0ODBweCl7LmluZmx1eGRiLXZlcnNpb24tZGV0ZWN0b3J7cGFkZGluZzoxcmVtfS5pbmZsdXhkYi12ZXJzaW9uLWRldGVjdG9yIC5kZXRlY3Rvci10aXRsZXtmb250LXNpemU6MS4zZW19LmluZmx1eGRiLXZlcnNpb24tZGV0ZWN0b3IgLmRldGVjdG9yLXN1YnRpdGxle2ZvbnQtc2l6ZTowLjllbX0uaW5mbHV4ZGItdmVyc2lvbi1kZXRlY3RvciAucXVlc3Rpb24tdGV4dHtmb250LXNpemU6MWVtfX0uaW5mbHV4ZGItdmVyc2lvbi1kZXRlY3RvciAucHJvZHVjdC1yYW5raW5ne21hcmdpbi1ib3R0b206dmFyKC0tc3BhY2luZy1zbSk7cGFkZGluZzowLjc1cmVtO2JvcmRlci1yYWRpdXM6dmFyKC0tYm9yZGVyLXJhZGl1cyk7Ym9yZGVyLWxlZnQ6NHB4IHNvbGlkICMzODM4NDY7YmFja2dyb3VuZDojMTQxNDFGfS5pbmZsdXhkYi12ZXJzaW9uLWRldGVjdG9yIC5wcm9kdWN0LXJhbmtpbmcudG9wLXJlc3VsdHtiYWNrZ3JvdW5kOnJnYmEoMCwxNjMsMjU1LDAuMSk7Ym9yZGVyLWNvbG9yOiMwMEEzRkZ9LmluZmx1eGRiLXZlcnNpb24tZGV0ZWN0b3IgLnByb2R1Y3QtcmFua2luZyAucHJvZHVjdC10aXRsZXtmb250LXdlaWdodDo2MDA7bWFyZ2luLWJvdHRvbTowLjI1cmVtfS5pbmZsdXhkYi12ZXJzaW9uLWRldGVjdG9yIC5wcm9kdWN0LXJhbmtpbmcgLm1vc3QtbGlrZWx5LWxhYmVse2NvbG9yOiMwMEEzRkY7Zm9udC1zaXplOjAuOWVtO21hcmdpbi1sZWZ0OnZhcigtLXNwYWNpbmctc20pfS5pbmZsdXhkYi12ZXJzaW9uLWRldGVjdG9yIC5wcm9kdWN0LXJhbmtpbmcgLnByb2R1Y3QtZGV0YWlsc3tjb2xvcjojRDREN0REO2ZvbnQtc2l6ZTowLjllbTttYXJnaW4tdG9wOjAuMjVyZW07b3BhY2l0eTowLjh9LmluZmx1eGRiLXZlcnNpb24tZGV0ZWN0b3IgLmdyYWZhbmEtdGlwc3ttYXJnaW4tdG9wOnZhcigtLXNwYWNpbmctbWQpO3BhZGRpbmc6MXJlbTtiYWNrZ3JvdW5kOnJnYmEoMCwxNjMsMjU1LDAuMSk7Ym9yZGVyLWxlZnQ6NHB4IHNvbGlkICMwMEEzRkY7Ym9yZGVyLXJhZGl1czp2YXIoLS1ib3JkZXItcmFkaXVzKX0uaW5mbHV4ZGItdmVyc2lvbi1kZXRlY3RvciAuZ3JhZmFuYS10aXBzIC50aXBzLXRpdGxle21hcmdpbjowIDAgdmFyKC0tc3BhY2luZy1zbSkgMDtjb2xvcjojMDBBM0ZGO2ZvbnQtc2l6ZToxLjFlbX0uaW5mbHV4ZGItdmVyc2lvbi1kZXRlY3RvciAuZ3JhZmFuYS10aXBzIC50aXBzLWRlc2NyaXB0aW9ue21hcmdpbjowIDAgdmFyKC0tc3BhY2luZy1zbSkgMDtmb250LXNpemU6MC45ZW19LmluZmx1eGRiLXZlcnNpb24tZGV0ZWN0b3IgLmdyYWZhbmEtdGlwcyAudGlwcy1saXN0e21hcmdpbjowO3BhZGRpbmctbGVmdDoxLjI1cmVtO2ZvbnQtc2l6ZTowLjg1ZW19LmluZmx1eGRiLXZlcnNpb24tZGV0ZWN0b3IgLmdyYWZhbmEtdGlwcyAudGlwcy1saXN0IGxpe21hcmdpbi1ib3R0b206MC4yNXJlbX0uaW5mbHV4ZGItdmVyc2lvbi1kZXRlY3RvciAuZ3JhZmFuYS10aXBzIC50aXBzLWxpc3QgY29kZXtiYWNrZ3JvdW5kOnJnYmEoMCwxNjMsMjU1LDAuMTUpO3BhZGRpbmc6MC4xMjVyZW0gMC4yNXJlbTtib3JkZXItcmFkaXVzOjNweDtmb250LXNpemU6MC45ZW19LmluZmx1eGRiLXZlcnNpb24tZGV0ZWN0b3IgLmdyYWZhbmEtdGlwcyAudGlwcy1saW5re21hcmdpbjp2YXIoLS1zcGFjaW5nLXNtKSAwIDAgMDtmb250LXNpemU6MC44NWVtfS5pbmZsdXhkYi12ZXJzaW9uLWRldGVjdG9yIC5leHBlY3RlZC1yZXN1bHRze21hcmdpbjoxcmVtIDB9LmluZmx1eGRiLXZlcnNpb24tZGV0ZWN0b3IgLmV4cGVjdGVkLXJlc3VsdHMgLnJlc3VsdHMtdGl0bGV7Zm9udC13ZWlnaHQ6NjAwO21hcmdpbi1ib3R0b206MC41cmVtfS5pbmZsdXhkYi12ZXJzaW9uLWRldGVjdG9yIC5leHBlY3RlZC1yZXN1bHRzIC5yZXN1bHRzLWxpc3R7bWFyZ2luOjA7cGFkZGluZy1sZWZ0OjFyZW07Zm9udC1zaXplOjAuOWVtfS5pbmZsdXhkYi12ZXJzaW9uLWRldGVjdG9yIC5leHBlY3RlZC1yZXN1bHRzIC5yZXN1bHRzLWxpc3QgbGl7bWFyZ2luLWJvdHRvbTowLjI1cmVtfS5pbmZsdXhkYi12ZXJzaW9uLWRldGVjdG9yIC5xdWVzdGlvbi10ZXh0LXNwYWNlZHttYXJnaW4tdG9wOjFyZW07Zm9udC13ZWlnaHQ6bm9ybWFsO2ZvbnQtc2l6ZTowLjk1ZW19LmluZmx1eGRiLXZlcnNpb24tZGV0ZWN0b3IgLnF1ZXN0aW9uLW9wdGlvbnN7bWFyZ2luLXRvcDoxcmVtfS5pbmZsdXhkYi12ZXJzaW9uLWRldGVjdG9yIC5jb21tYW5kLWhlbHB7bWFyZ2luLXRvcDp2YXIoLS1zcGFjaW5nLW1kKX0uaW5mbHV4ZGItdmVyc2lvbi1kZXRlY3RvciAuZG9jLWxpbmssLmluZmx1eGRiLXZlcnNpb24tZGV0ZWN0b3IgLmFzay1haS1vcGVue2NvbG9yOiMwMEEzRkY7dGV4dC1kZWNvcmF0aW9uOnVuZGVybGluZTtkaXNwbGF5OmlubGluZS1ibG9ja30uaW5mbHV4ZGItdmVyc2lvbi1kZXRlY3RvciAuZG9jLWxpbms6aG92ZXIsLmluZmx1eGRiLXZlcnNpb24tZGV0ZWN0b3IgLmFzay1haS1vcGVuOmhvdmVye2NvbG9yOiNmZmZ9LmluZmx1eGRiLXZlcnNpb24tZGV0ZWN0b3IgLmFzay1haS1vcGVue21hcmdpbi1sZWZ0OjAuNXJlbX0uaW5mbHV4ZGItdmVyc2lvbi1kZXRlY3RvciAubWFudWFsLW91dHB1dHttYXJnaW46MXJlbSAwO3BhZGRpbmc6dmFyKC0tc3BhY2luZy1zbSk7YmFja2dyb3VuZDojMTQxNDFGO2JvcmRlci1sZWZ0OjRweCBzb2xpZCAjMDBBM0ZGO2JvcmRlci1yYWRpdXM6dmFyKC0tYm9yZGVyLXJhZGl1cyl9LmluZmx1eGRiLXZlcnNpb24tZGV0ZWN0b3IgLmFjdGlvbi1zZWN0aW9ue21hcmdpbi10b3A6dmFyKC0tc3BhY2luZy1tZCl9LmluZmx1eGRiLXZlcnNpb24tZGV0ZWN0b3IgLnF1aWNrLXJlZmVyZW5jZXttYXJnaW4tdG9wOjJyZW19LmluZmx1eGRiLXZlcnNpb24tZGV0ZWN0b3IgLnF1aWNrLXJlZmVyZW5jZSBkZXRhaWxze2JvcmRlcjoxcHggc29saWQgIzM4Mzg0Njtib3JkZXItcmFkaXVzOnZhcigtLWJvcmRlci1yYWRpdXMpO3BhZGRpbmc6MC41cmVtfS5pbmZsdXhkYi12ZXJzaW9uLWRldGVjdG9yIC5xdWljay1yZWZlcmVuY2UgLnJlZmVyZW5jZS1zdW1tYXJ5e2N1cnNvcjpwb2ludGVyO2ZvbnQtd2VpZ2h0OjYwMDtwYWRkaW5nOjAuNXJlbSAwO3VzZXItc2VsZWN0Om5vbmU7Y29sb3I6IzAwQTNGRn0uaW5mbHV4ZGItdmVyc2lvbi1kZXRlY3RvciAucXVpY2stcmVmZXJlbmNlIC5yZWZlcmVuY2Utc3VtbWFyeTpob3Zlcntjb2xvcjojZmZmfS5pbmZsdXhkYi12ZXJzaW9uLWRldGVjdG9yIC5leHBhbmRhYmxlLXN1bW1hcnl7Y3Vyc29yOnBvaW50ZXI7Zm9udC13ZWlnaHQ6NjAwO3BhZGRpbmc6MC41cmVtIDA7dXNlci1zZWxlY3Q6bm9uZTtjb2xvcjojMDBBM0ZGO3Bvc2l0aW9uOnJlbGF0aXZlO3BhZGRpbmctbGVmdDoxLjVyZW19LmluZmx1eGRiLXZlcnNpb24tZGV0ZWN0b3IgLmV4cGFuZGFibGUtc3VtbWFyeTpob3Zlcntjb2xvcjojZmZmfS5pbmZsdXhkYi12ZXJzaW9uLWRldGVjdG9yIC5leHBhbmRhYmxlLXN1bW1hcnk6Om1hcmtlciwuaW5mbHV4ZGItdmVyc2lvbi1kZXRlY3RvciAuZXhwYW5kYWJsZS1zdW1tYXJ5Ojotd2Via2l0LWRldGFpbHMtbWFya2Vye2Rpc3BsYXk6bm9uZX0uaW5mbHV4ZGItdmVyc2lvbi1kZXRlY3RvciAuZXhwYW5kYWJsZS1zdW1tYXJ5OjpiZWZvcmV7Y29udGVudDonKyc7cG9zaXRpb246YWJzb2x1dGU7bGVmdDowO3RvcDo1MCU7dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTUwJSk7d2lkdGg6MXJlbTtoZWlnaHQ6MXJlbTtkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2p1c3RpZnktY29udGVudDpjZW50ZXI7Zm9udC1zaXplOjE0cHg7Zm9udC13ZWlnaHQ6Ym9sZDtjb2xvcjojMDBBM0ZGO2JvcmRlcjoxcHggc29saWQgIzAwQTNGRjtib3JkZXItcmFkaXVzOjNweDtiYWNrZ3JvdW5kOnRyYW5zcGFyZW50fWRldGFpbHNbb3Blbl0gLmluZmx1eGRiLXZlcnNpb24tZGV0ZWN0b3IgLmV4cGFuZGFibGUtc3VtbWFyeTo6YmVmb3Jle2NvbnRlbnQ6J+KIkid9LmluZmx1eGRiLXZlcnNpb24tZGV0ZWN0b3IgLmV4cGFuZGFibGUtc3VtbWFyeTpob3Zlcjo6YmVmb3Jle2NvbG9yOiNmZmY7Ym9yZGVyLWNvbG9yOiNmZmZ9LmluZmx1eGRiLXZlcnNpb24tZGV0ZWN0b3IgLnF1aWNrLXJlZmVyZW5jZXttYXJnaW4tdG9wOjJyZW19LmluZmx1eGRiLXZlcnNpb24tZGV0ZWN0b3IgLnF1aWNrLXJlZmVyZW5jZSBkZXRhaWxze2JvcmRlcjoxcHggc29saWQgIzM4Mzg0Njtib3JkZXItcmFkaXVzOnZhcigtLWJvcmRlci1yYWRpdXMpO3BhZGRpbmc6MC41cmVtfS5pbmZsdXhkYi12ZXJzaW9uLWRldGVjdG9yIC5xdWljay1yZWZlcmVuY2UgLnJlZmVyZW5jZS10YWJsZXttYXJnaW4tdG9wOjFyZW07d2lkdGg6MTAwJTtib3JkZXItY29sbGFwc2U6Y29sbGFwc2U7Zm9udC1zaXplOjAuOWVtfS5pbmZsdXhkYi12ZXJzaW9uLWRldGVjdG9yIC5xdWljay1yZWZlcmVuY2UgLnJlZmVyZW5jZS10YWJsZSB0aCwuaW5mbHV4ZGItdmVyc2lvbi1kZXRlY3RvciAucXVpY2stcmVmZXJlbmNlIC5yZWZlcmVuY2UtdGFibGUgdGR7cGFkZGluZzowLjVyZW07dGV4dC1hbGlnbjpsZWZ0O2JvcmRlcjoxcHggc29saWQgIzM4Mzg0Nn0uaW5mbHV4ZGItdmVyc2lvbi1kZXRlY3RvciAucXVpY2stcmVmZXJlbmNlIC5yZWZlcmVuY2UtdGFibGUgdGh7cGFkZGluZzowLjc1cmVtIDAuNXJlbTtiYWNrZ3JvdW5kOnJnYmEoMCwxNjMsMjU1LDAuMSk7Zm9udC13ZWlnaHQ6NjAwfS5pbmZsdXhkYi12ZXJzaW9uLWRldGVjdG9yIC5xdWljay1yZWZlcmVuY2UgLnJlZmVyZW5jZS10YWJsZSB0Ym9keSB0cjpudGgtY2hpbGQoZXZlbil7YmFja2dyb3VuZDpyZ2JhKDIxMiwyMTUsMjIxLDAuMDIpfS5pbmZsdXhkYi12ZXJzaW9uLWRldGVjdG9yIC5xdWljay1yZWZlcmVuY2UgLnJlZmVyZW5jZS10YWJsZSAucHJvZHVjdC1uYW1le2ZvbnQtd2VpZ2h0OjYwMH0uZm9ybWF0LXNlbGVjdG9ye3Bvc2l0aW9uOnJlbGF0aXZlO2Rpc3BsYXk6aW5saW5lLWZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO21hcmdpbi1sZWZ0OmF1dG87bWFyZ2luLXRvcDowLjVyZW19LnRpdGxlIC5mb3JtYXQtc2VsZWN0b3J7bWFyZ2luLWxlZnQ6YXV0b30uZm9ybWF0LXNlbGVjdG9yX19idXR0b257ZGlzcGxheTppbmxpbmUtZmxleDthbGlnbi1pdGVtczpjZW50ZXI7Z2FwOjAuNXJlbTtwYWRkaW5nOjAuNXJlbSAwLjc1cmVtO2JhY2tncm91bmQ6IzFBMUEyQTtjb2xvcjojRDREN0REO2JvcmRlcjoxcHggc29saWQgIzMzMzM0Njtib3JkZXItcmFkaXVzOjJweDtmb250LXNpemU6MTRweDtmb250LXdlaWdodDo1MDA7bGluZS1oZWlnaHQ6MTtjdXJzb3I6cG9pbnRlcjt0cmFuc2l0aW9uOmFsbCAwLjJzIGVhc2U7d2hpdGUtc3BhY2U6bm93cmFwO2JveC1zaGFkb3c6MnB4IDJweCA2cHggcmdiYSgxNSwxNCwyMSwwLjUpfS5mb3JtYXQtc2VsZWN0b3JfX2J1dHRvbjpob3Zlcntib3JkZXItY29sb3I6IzAwQTNGRjtib3gtc2hhZG93OjFweCAxcHggMTBweCByZ2JhKDAsMTYzLDI1NSwwLjUpfS5mb3JtYXQtc2VsZWN0b3JfX2J1dHRvbjpmb2N1c3tvdXRsaW5lOjJweCBzb2xpZCAjMDBBM0ZGO291dGxpbmUtb2Zmc2V0OjJweH0uZm9ybWF0LXNlbGVjdG9yX19idXR0b25bYXJpYS1leHBhbmRlZD0ndHJ1ZSdde2JvcmRlci1jb2xvcjojMDBBM0ZGfS5mb3JtYXQtc2VsZWN0b3JfX2J1dHRvblthcmlhLWV4cGFuZGVkPSd0cnVlJ10gLmZvcm1hdC1zZWxlY3Rvcl9fYnV0dG9uLWFycm93IHN2Z3t0cmFuc2Zvcm06cm90YXRlKDE4MGRlZyl9LmZvcm1hdC1zZWxlY3Rvcl9fYnV0dG9uLWljb257ZGlzcGxheTppbmxpbmUtZmxleDthbGlnbi1pdGVtczpjZW50ZXI7anVzdGlmeS1jb250ZW50OmNlbnRlcjt3aWR0aDoxNnB4O2hlaWdodDoxNnB4fS5mb3JtYXQtc2VsZWN0b3JfX2J1dHRvbi1pY29uIHN2Z3t3aWR0aDoxMDAlO2hlaWdodDoxMDAlO2NvbG9yOiNENEQ3RER9LmZvcm1hdC1zZWxlY3Rvcl9fYnV0dG9uLXRleHR7Zm9udC1zaXplOjE0cHg7Zm9udC13ZWlnaHQ6NTAwfS5mb3JtYXQtc2VsZWN0b3JfX2J1dHRvbi1hcnJvd3tkaXNwbGF5OmlubGluZS1mbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO3dpZHRoOjEycHg7aGVpZ2h0OjEycHg7bWFyZ2luLWxlZnQ6MC4yNXJlbX0uZm9ybWF0LXNlbGVjdG9yX19idXR0b24tYXJyb3cgc3Zne3dpZHRoOjEwMCU7aGVpZ2h0OjEwMCU7dHJhbnNpdGlvbjp0cmFuc2Zvcm0gMC4ycyBlYXNlfS5mb3JtYXQtc2VsZWN0b3JfX2Ryb3Bkb3due3Bvc2l0aW9uOmZpeGVkO21pbi13aWR0aDoyODBweDttYXgtd2lkdGg6MzIwcHg7YmFja2dyb3VuZDojMTQxNDFGO2JvcmRlcjoxcHggc29saWQgIzMzMzM0Njtib3JkZXItcmFkaXVzOjhweDtib3gtc2hhZG93OjJweCAycHggNnB4ICMwNzA3MEU7cGFkZGluZzowLjVyZW07ei1pbmRleDoxMDAwMDtvcGFjaXR5OjA7dmlzaWJpbGl0eTpoaWRkZW47dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLThweCk7dHJhbnNpdGlvbjphbGwgMC4ycyBlYXNlO3BvaW50ZXItZXZlbnRzOm5vbmV9LmZvcm1hdC1zZWxlY3Rvcl9fZHJvcGRvd24uaXMtb3BlbntvcGFjaXR5OjE7dmlzaWJpbGl0eTp2aXNpYmxlO3RyYW5zZm9ybTp0cmFuc2xhdGVZKDApO3BvaW50ZXItZXZlbnRzOmF1dG99LmZvcm1hdC1zZWxlY3Rvcl9fb3B0aW9ue2Rpc3BsYXk6ZmxleDthbGlnbi1pdGVtczpmbGV4LXN0YXJ0O2dhcDowLjc1cmVtO3dpZHRoOjEwMCU7cGFkZGluZzowLjc1cmVtO2JhY2tncm91bmQ6dHJhbnNwYXJlbnQ7Y29sb3I6I0Q0RDdERDtib3JkZXI6bm9uZTtib3JkZXItcmFkaXVzOjJweDt0ZXh0LWFsaWduOmxlZnQ7dGV4dC1kZWNvcmF0aW9uOm5vbmU7Y3Vyc29yOnBvaW50ZXI7dHJhbnNpdGlvbjpiYWNrZ3JvdW5kIDAuMTVzIGVhc2V9LmZvcm1hdC1zZWxlY3Rvcl9fb3B0aW9uOmhvdmVye2JhY2tncm91bmQ6IzFBMUEyQTtjb2xvcjojMDBBM0ZGfS5mb3JtYXQtc2VsZWN0b3JfX29wdGlvbjpmb2N1c3tvdXRsaW5lOjJweCBzb2xpZCAjMDBBM0ZGO291dGxpbmUtb2Zmc2V0Oi0ycHh9LmZvcm1hdC1zZWxlY3Rvcl9fb3B0aW9uOm5vdCg6bGFzdC1jaGlsZCl7bWFyZ2luLWJvdHRvbTowLjI1cmVtfS5mb3JtYXQtc2VsZWN0b3JfX2ljb257ZGlzcGxheTppbmxpbmUtZmxleDthbGlnbi1pdGVtczpjZW50ZXI7anVzdGlmeS1jb250ZW50OmNlbnRlcjt3aWR0aDoyMHB4O2hlaWdodDoyMHB4O2ZsZXgtc2hyaW5rOjA7bWFyZ2luLXRvcDoycHh9LmZvcm1hdC1zZWxlY3Rvcl9faWNvbiBzdmd7d2lkdGg6MTAwJTtoZWlnaHQ6MTAwJTtzdHJva2U6I0Q0RDdERH0uZm9ybWF0LXNlbGVjdG9yX19pY29uIHN2ZyBbZmlsbF06bm90KFtmaWxsPVwibm9uZVwiXSk6bm90KFtmaWxsPVwid2hpdGVcIl0pe2ZpbGw6I0Q0RDdERH0uZm9ybWF0LXNlbGVjdG9yX19sYWJlbC1ncm91cHtkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246Y29sdW1uO2dhcDowLjI1cmVtO2ZsZXg6MTttaW4td2lkdGg6MH0uZm9ybWF0LXNlbGVjdG9yX19sYWJlbHtkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2dhcDowLjVyZW07Zm9udC1zaXplOjE0cHg7Zm9udC13ZWlnaHQ6NTAwO2xpbmUtaGVpZ2h0OjEuMztjb2xvcjojRDREN0REfS5mb3JtYXQtc2VsZWN0b3JfX2V4dGVybmFse2Rpc3BsYXk6aW5saW5lLWZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2ZvbnQtc2l6ZToxMnB4O2NvbG9yOiNENEQ3REQ7bWFyZ2luLWxlZnQ6MC4yNXJlbTtvcGFjaXR5OjAuN30uZm9ybWF0LXNlbGVjdG9yX19zdWJsYWJlbHtmb250LXNpemU6MTJweDtsaW5lLWhlaWdodDoxLjQ7Y29sb3I6I0Q0RDdERH1AbWVkaWEgKG1heC13aWR0aDogNzY4cHgpey5mb3JtYXQtc2VsZWN0b3J7bWFyZ2luLWxlZnQ6MDttYXJnaW4tdG9wOjFyZW19LmZvcm1hdC1zZWxlY3Rvcl9fZHJvcGRvd257cmlnaHQ6YXV0bztsZWZ0OjA7bWluLXdpZHRoOjEwMCU7bWF4LXdpZHRoOjEwMCV9fS5mb3JtYXQtc2VsZWN0b3JfX2Ryb3Bkb3due2lzb2xhdGlvbjppc29sYXRlfUBrZXlmcmFtZXMgc2xpZGVJblVwe2Zyb217dHJhbnNmb3JtOnRyYW5zbGF0ZVkoMTAwJSk7b3BhY2l0eTowfXRve3RyYW5zZm9ybTp0cmFuc2xhdGVZKDApO29wYWNpdHk6MX19Kntib3gtc2l6aW5nOmJvcmRlci1ib3h9XG5cbi8qIyBzb3VyY2VNYXBwaW5nVVJMPWRhcmstdGhlbWUuY3NzLm1hcCAqLyJdfQ== */ \ No newline at end of file diff --git a/pr-preview/pr-6954/fonts/alert-icons.eot b/pr-preview/pr-6954/fonts/alert-icons.eot deleted file mode 100644 index 13e657b52..000000000 Binary files a/pr-preview/pr-6954/fonts/alert-icons.eot and /dev/null differ diff --git a/pr-preview/pr-6954/fonts/alert-icons.svg b/pr-preview/pr-6954/fonts/alert-icons.svg deleted file mode 100644 index e205465e5..000000000 --- a/pr-preview/pr-6954/fonts/alert-icons.svg +++ /dev/null @@ -1,15 +0,0 @@ - - - -Generated by IcoMoon - - - - - - - - - - - \ No newline at end of file diff --git a/pr-preview/pr-6954/fonts/alert-icons.ttf b/pr-preview/pr-6954/fonts/alert-icons.ttf deleted file mode 100644 index ec4b22201..000000000 Binary files a/pr-preview/pr-6954/fonts/alert-icons.ttf and /dev/null differ diff --git a/pr-preview/pr-6954/fonts/alert-icons.woff b/pr-preview/pr-6954/fonts/alert-icons.woff deleted file mode 100644 index 293b00a1d..000000000 Binary files a/pr-preview/pr-6954/fonts/alert-icons.woff and /dev/null differ diff --git a/pr-preview/pr-6954/fonts/icomoon-v2.eot b/pr-preview/pr-6954/fonts/icomoon-v2.eot deleted file mode 100644 index 6be8b6309..000000000 Binary files a/pr-preview/pr-6954/fonts/icomoon-v2.eot and /dev/null differ diff --git a/pr-preview/pr-6954/fonts/icomoon-v2.svg b/pr-preview/pr-6954/fonts/icomoon-v2.svg deleted file mode 100644 index 2d78cafed..000000000 --- a/pr-preview/pr-6954/fonts/icomoon-v2.svg +++ /dev/null @@ -1,86 +0,0 @@ - - - -Generated by IcoMoon - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/pr-preview/pr-6954/fonts/icomoon-v2.ttf b/pr-preview/pr-6954/fonts/icomoon-v2.ttf deleted file mode 100644 index 6965427e0..000000000 Binary files a/pr-preview/pr-6954/fonts/icomoon-v2.ttf and /dev/null differ diff --git a/pr-preview/pr-6954/fonts/icomoon-v2.woff b/pr-preview/pr-6954/fonts/icomoon-v2.woff deleted file mode 100644 index 02db64219..000000000 Binary files a/pr-preview/pr-6954/fonts/icomoon-v2.woff and /dev/null differ diff --git a/pr-preview/pr-6954/fonts/icomoon-v3.eot b/pr-preview/pr-6954/fonts/icomoon-v3.eot deleted file mode 100644 index 267831470..000000000 Binary files a/pr-preview/pr-6954/fonts/icomoon-v3.eot and /dev/null differ diff --git a/pr-preview/pr-6954/fonts/icomoon-v3.svg b/pr-preview/pr-6954/fonts/icomoon-v3.svg deleted file mode 100644 index e9c2e887e..000000000 --- a/pr-preview/pr-6954/fonts/icomoon-v3.svg +++ /dev/null @@ -1,174 +0,0 @@ - - - -Generated by IcoMoon - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/pr-preview/pr-6954/fonts/icomoon-v3.ttf b/pr-preview/pr-6954/fonts/icomoon-v3.ttf deleted file mode 100644 index 7bc737a47..000000000 Binary files a/pr-preview/pr-6954/fonts/icomoon-v3.ttf and /dev/null differ diff --git a/pr-preview/pr-6954/fonts/icomoon-v3.woff b/pr-preview/pr-6954/fonts/icomoon-v3.woff deleted file mode 100644 index 8c37c3917..000000000 Binary files a/pr-preview/pr-6954/fonts/icomoon-v3.woff and /dev/null differ diff --git a/pr-preview/pr-6954/fonts/icomoon-v3.woff2 b/pr-preview/pr-6954/fonts/icomoon-v3.woff2 deleted file mode 100644 index e7e1891bd..000000000 Binary files a/pr-preview/pr-6954/fonts/icomoon-v3.woff2 and /dev/null differ diff --git a/pr-preview/pr-6954/fonts/icomoon-v4.eot b/pr-preview/pr-6954/fonts/icomoon-v4.eot deleted file mode 100644 index c9a1588b7..000000000 Binary files a/pr-preview/pr-6954/fonts/icomoon-v4.eot and /dev/null differ diff --git a/pr-preview/pr-6954/fonts/icomoon-v4.ttf b/pr-preview/pr-6954/fonts/icomoon-v4.ttf deleted file mode 100644 index 64416d44f..000000000 Binary files a/pr-preview/pr-6954/fonts/icomoon-v4.ttf and /dev/null differ diff --git a/pr-preview/pr-6954/fonts/icomoon-v4.woff b/pr-preview/pr-6954/fonts/icomoon-v4.woff deleted file mode 100644 index 65f3034fc..000000000 Binary files a/pr-preview/pr-6954/fonts/icomoon-v4.woff and /dev/null differ diff --git a/pr-preview/pr-6954/fonts/icomoon-v4.woff2 b/pr-preview/pr-6954/fonts/icomoon-v4.woff2 deleted file mode 100644 index a3ee077ab..000000000 Binary files a/pr-preview/pr-6954/fonts/icomoon-v4.woff2 and /dev/null differ diff --git a/pr-preview/pr-6954/fonts/iconmoon-v4.svg b/pr-preview/pr-6954/fonts/iconmoon-v4.svg deleted file mode 100644 index 1b8ba5422..000000000 --- a/pr-preview/pr-6954/fonts/iconmoon-v4.svg +++ /dev/null @@ -1,98 +0,0 @@ - - - -Generated by IcoMoon - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/pr-preview/pr-6954/fonts/proxima-nova-bold.otf b/pr-preview/pr-6954/fonts/proxima-nova-bold.otf deleted file mode 100644 index b477a4656..000000000 Binary files a/pr-preview/pr-6954/fonts/proxima-nova-bold.otf and /dev/null differ diff --git a/pr-preview/pr-6954/fonts/proxima-nova-medium.otf b/pr-preview/pr-6954/fonts/proxima-nova-medium.otf deleted file mode 100644 index ca1363c86..000000000 Binary files a/pr-preview/pr-6954/fonts/proxima-nova-medium.otf and /dev/null differ diff --git a/pr-preview/pr-6954/fonts/proxima-nova-semibold.otf b/pr-preview/pr-6954/fonts/proxima-nova-semibold.otf deleted file mode 100644 index 6cc9bf2ae..000000000 Binary files a/pr-preview/pr-6954/fonts/proxima-nova-semibold.otf and /dev/null differ diff --git a/pr-preview/pr-6954/fonts/proxima-nova.otf b/pr-preview/pr-6954/fonts/proxima-nova.otf deleted file mode 100644 index 43132265f..000000000 Binary files a/pr-preview/pr-6954/fonts/proxima-nova.otf and /dev/null differ diff --git a/pr-preview/pr-6954/img/bg-texture-new.png b/pr-preview/pr-6954/img/bg-texture-new.png deleted file mode 100644 index 4261860e6..000000000 Binary files a/pr-preview/pr-6954/img/bg-texture-new.png and /dev/null differ diff --git a/pr-preview/pr-6954/img/chronograf/1-6-admin-usermanagement-oss.png b/pr-preview/pr-6954/img/chronograf/1-6-admin-usermanagement-oss.png deleted file mode 100644 index 59d5df866..000000000 Binary files a/pr-preview/pr-6954/img/chronograf/1-6-admin-usermanagement-oss.png and /dev/null differ diff --git a/pr-preview/pr-6954/img/chronograf/1-6-alerts-conditions.png b/pr-preview/pr-6954/img/chronograf/1-6-alerts-conditions.png deleted file mode 100644 index b778ff7ee..000000000 Binary files a/pr-preview/pr-6954/img/chronograf/1-6-alerts-conditions.png and /dev/null differ diff --git a/pr-preview/pr-6954/img/chronograf/1-6-annotations-example.png b/pr-preview/pr-6954/img/chronograf/1-6-annotations-example.png deleted file mode 100644 index 950f40dce..000000000 Binary files a/pr-preview/pr-6954/img/chronograf/1-6-annotations-example.png and /dev/null differ diff --git a/pr-preview/pr-6954/img/chronograf/1-6-clone-cell-cell-copy.png b/pr-preview/pr-6954/img/chronograf/1-6-clone-cell-cell-copy.png deleted file mode 100644 index 2de1d4250..000000000 Binary files a/pr-preview/pr-6954/img/chronograf/1-6-clone-cell-cell-copy.png and /dev/null differ diff --git a/pr-preview/pr-6954/img/chronograf/1-6-clone-cell-click-button.png b/pr-preview/pr-6954/img/chronograf/1-6-clone-cell-click-button.png deleted file mode 100644 index 8549b67e7..000000000 Binary files a/pr-preview/pr-6954/img/chronograf/1-6-clone-cell-click-button.png and /dev/null differ diff --git a/pr-preview/pr-6954/img/chronograf/1-6-clone-dashboard-clone.png b/pr-preview/pr-6954/img/chronograf/1-6-clone-dashboard-clone.png deleted file mode 100644 index d065c3e07..000000000 Binary files a/pr-preview/pr-6954/img/chronograf/1-6-clone-dashboard-clone.png and /dev/null differ diff --git a/pr-preview/pr-6954/img/chronograf/1-6-clone-dashboard.png b/pr-preview/pr-6954/img/chronograf/1-6-clone-dashboard.png deleted file mode 100644 index b27f752ed..000000000 Binary files a/pr-preview/pr-6954/img/chronograf/1-6-clone-dashboard.png and /dev/null differ diff --git a/pr-preview/pr-6954/img/chronograf/1-6-cluster-de.png b/pr-preview/pr-6954/img/chronograf/1-6-cluster-de.png deleted file mode 100644 index 53c68ffaf..000000000 Binary files a/pr-preview/pr-6954/img/chronograf/1-6-cluster-de.png and /dev/null differ diff --git a/pr-preview/pr-6954/img/chronograf/1-6-cluster-diagram.png b/pr-preview/pr-6954/img/chronograf/1-6-cluster-diagram.png deleted file mode 100644 index ba6bb5c77..000000000 Binary files a/pr-preview/pr-6954/img/chronograf/1-6-cluster-diagram.png and /dev/null differ diff --git a/pr-preview/pr-6954/img/chronograf/1-6-cluster-hostlist.png b/pr-preview/pr-6954/img/chronograf/1-6-cluster-hostlist.png deleted file mode 100644 index 9c211c008..000000000 Binary files a/pr-preview/pr-6954/img/chronograf/1-6-cluster-hostlist.png and /dev/null differ diff --git a/pr-preview/pr-6954/img/chronograf/1-6-cluster-predash.gif b/pr-preview/pr-6954/img/chronograf/1-6-cluster-predash.gif deleted file mode 100644 index 257ac3e36..000000000 Binary files a/pr-preview/pr-6954/img/chronograf/1-6-cluster-predash.gif and /dev/null differ diff --git a/pr-preview/pr-6954/img/chronograf/1-6-cluster-welcome.png b/pr-preview/pr-6954/img/chronograf/1-6-cluster-welcome.png deleted file mode 100644 index bcc0cb1d4..000000000 Binary files a/pr-preview/pr-6954/img/chronograf/1-6-cluster-welcome.png and /dev/null differ diff --git a/pr-preview/pr-6954/img/chronograf/1-6-connection-kapacitor.png b/pr-preview/pr-6954/img/chronograf/1-6-connection-kapacitor.png deleted file mode 100644 index 385b69b8d..000000000 Binary files a/pr-preview/pr-6954/img/chronograf/1-6-connection-kapacitor.png and /dev/null differ diff --git a/pr-preview/pr-6954/img/chronograf/1-6-connection-landing-page.png b/pr-preview/pr-6954/img/chronograf/1-6-connection-landing-page.png deleted file mode 100644 index b1cfe76fd..000000000 Binary files a/pr-preview/pr-6954/img/chronograf/1-6-connection-landing-page.png and /dev/null differ diff --git a/pr-preview/pr-6954/img/chronograf/1-6-custom-meta-query-filtering.gif b/pr-preview/pr-6954/img/chronograf/1-6-custom-meta-query-filtering.gif deleted file mode 100644 index 758fffea7..000000000 Binary files a/pr-preview/pr-6954/img/chronograf/1-6-custom-meta-query-filtering.gif and /dev/null differ diff --git a/pr-preview/pr-6954/img/chronograf/1-6-dashboard-export.png b/pr-preview/pr-6954/img/chronograf/1-6-dashboard-export.png deleted file mode 100644 index 5f0468e6a..000000000 Binary files a/pr-preview/pr-6954/img/chronograf/1-6-dashboard-export.png and /dev/null differ diff --git a/pr-preview/pr-6954/img/chronograf/1-6-dashboard-import-reconcile.png b/pr-preview/pr-6954/img/chronograf/1-6-dashboard-import-reconcile.png deleted file mode 100644 index d24193951..000000000 Binary files a/pr-preview/pr-6954/img/chronograf/1-6-dashboard-import-reconcile.png and /dev/null differ diff --git a/pr-preview/pr-6954/img/chronograf/1-6-dashboard-import.gif b/pr-preview/pr-6954/img/chronograf/1-6-dashboard-import.gif deleted file mode 100644 index 99eae6427..000000000 Binary files a/pr-preview/pr-6954/img/chronograf/1-6-dashboard-import.gif and /dev/null differ diff --git a/pr-preview/pr-6954/img/chronograf/1-6-faq-cluster-connection.png b/pr-preview/pr-6954/img/chronograf/1-6-faq-cluster-connection.png deleted file mode 100644 index 30ebc80ac..000000000 Binary files a/pr-preview/pr-6954/img/chronograf/1-6-faq-cluster-connection.png and /dev/null differ diff --git a/pr-preview/pr-6954/img/chronograf/1-6-g-dashboard-builder.png b/pr-preview/pr-6954/img/chronograf/1-6-g-dashboard-builder.png deleted file mode 100644 index 302de6f51..000000000 Binary files a/pr-preview/pr-6954/img/chronograf/1-6-g-dashboard-builder.png and /dev/null differ diff --git a/pr-preview/pr-6954/img/chronograf/1-6-g-dashboard-possibilities.png b/pr-preview/pr-6954/img/chronograf/1-6-g-dashboard-possibilities.png deleted file mode 100644 index 9308bad2c..000000000 Binary files a/pr-preview/pr-6954/img/chronograf/1-6-g-dashboard-possibilities.png and /dev/null differ diff --git a/pr-preview/pr-6954/img/chronograf/1-6-g-dashboard-visualization.png b/pr-preview/pr-6954/img/chronograf/1-6-g-dashboard-visualization.png deleted file mode 100644 index c0b2a5507..000000000 Binary files a/pr-preview/pr-6954/img/chronograf/1-6-g-dashboard-visualization.png and /dev/null differ diff --git a/pr-preview/pr-6954/img/chronograf/1-6-intro-gs-diagram.png b/pr-preview/pr-6954/img/chronograf/1-6-intro-gs-diagram.png deleted file mode 100644 index 76feac07c..000000000 Binary files a/pr-preview/pr-6954/img/chronograf/1-6-intro-gs-diagram.png and /dev/null differ diff --git a/pr-preview/pr-6954/img/chronograf/1-6-logs-log-viewer-config-options.png b/pr-preview/pr-6954/img/chronograf/1-6-logs-log-viewer-config-options.png deleted file mode 100644 index 6fca1c8c6..000000000 Binary files a/pr-preview/pr-6954/img/chronograf/1-6-logs-log-viewer-config-options.png and /dev/null differ diff --git a/pr-preview/pr-6954/img/chronograf/1-6-logs-nav-log-viewer.png b/pr-preview/pr-6954/img/chronograf/1-6-logs-nav-log-viewer.png deleted file mode 100644 index abb0ea031..000000000 Binary files a/pr-preview/pr-6954/img/chronograf/1-6-logs-nav-log-viewer.png and /dev/null differ diff --git a/pr-preview/pr-6954/img/chronograf/1-6-logs-severity-fmt-dot-text.png b/pr-preview/pr-6954/img/chronograf/1-6-logs-severity-fmt-dot-text.png deleted file mode 100644 index 1fb23e474..000000000 Binary files a/pr-preview/pr-6954/img/chronograf/1-6-logs-severity-fmt-dot-text.png and /dev/null differ diff --git a/pr-preview/pr-6954/img/chronograf/1-6-logs-severity-fmt-dot.png b/pr-preview/pr-6954/img/chronograf/1-6-logs-severity-fmt-dot.png deleted file mode 100644 index eb17438e7..000000000 Binary files a/pr-preview/pr-6954/img/chronograf/1-6-logs-severity-fmt-dot.png and /dev/null differ diff --git a/pr-preview/pr-6954/img/chronograf/1-6-logs-severity-fmt-text.png b/pr-preview/pr-6954/img/chronograf/1-6-logs-severity-fmt-text.png deleted file mode 100644 index 52286417e..000000000 Binary files a/pr-preview/pr-6954/img/chronograf/1-6-logs-severity-fmt-text.png and /dev/null differ diff --git a/pr-preview/pr-6954/img/chronograf/1-6-presentation-mode.png b/pr-preview/pr-6954/img/chronograf/1-6-presentation-mode.png deleted file mode 100644 index b53e66bcf..000000000 Binary files a/pr-preview/pr-6954/img/chronograf/1-6-presentation-mode.png and /dev/null differ diff --git a/pr-preview/pr-6954/img/chronograf/1-6-template-vars-custom-meta-query.png b/pr-preview/pr-6954/img/chronograf/1-6-template-vars-custom-meta-query.png deleted file mode 100644 index 1ad3892bd..000000000 Binary files a/pr-preview/pr-6954/img/chronograf/1-6-template-vars-custom-meta-query.png and /dev/null differ diff --git a/pr-preview/pr-6954/img/chronograf/1-6-template-vars-date-picker.png b/pr-preview/pr-6954/img/chronograf/1-6-template-vars-date-picker.png deleted file mode 100644 index 78786af48..000000000 Binary files a/pr-preview/pr-6954/img/chronograf/1-6-template-vars-date-picker.png and /dev/null differ diff --git a/pr-preview/pr-6954/img/chronograf/1-6-template-vars-fieldkey.png b/pr-preview/pr-6954/img/chronograf/1-6-template-vars-fieldkey.png deleted file mode 100644 index de8566672..000000000 Binary files a/pr-preview/pr-6954/img/chronograf/1-6-template-vars-fieldkey.png and /dev/null differ diff --git a/pr-preview/pr-6954/img/chronograf/1-6-template-vars-interval-dropdown.png b/pr-preview/pr-6954/img/chronograf/1-6-template-vars-interval-dropdown.png deleted file mode 100644 index 2167f1435..000000000 Binary files a/pr-preview/pr-6954/img/chronograf/1-6-template-vars-interval-dropdown.png and /dev/null differ diff --git a/pr-preview/pr-6954/img/chronograf/1-6-template-vars-map-dropdown.png b/pr-preview/pr-6954/img/chronograf/1-6-template-vars-map-dropdown.png deleted file mode 100644 index cf8d8dabc..000000000 Binary files a/pr-preview/pr-6954/img/chronograf/1-6-template-vars-map-dropdown.png and /dev/null differ diff --git a/pr-preview/pr-6954/img/chronograf/1-6-template-vars-measurement-var.png b/pr-preview/pr-6954/img/chronograf/1-6-template-vars-measurement-var.png deleted file mode 100644 index 4489c4369..000000000 Binary files a/pr-preview/pr-6954/img/chronograf/1-6-template-vars-measurement-var.png and /dev/null differ diff --git a/pr-preview/pr-6954/img/chronograf/1-6-template-vars-time-dropdown.png b/pr-preview/pr-6954/img/chronograf/1-6-template-vars-time-dropdown.png deleted file mode 100644 index fe2c3976a..000000000 Binary files a/pr-preview/pr-6954/img/chronograf/1-6-template-vars-time-dropdown.png and /dev/null differ diff --git a/pr-preview/pr-6954/img/chronograf/1-6-template-vars-use.gif b/pr-preview/pr-6954/img/chronograf/1-6-template-vars-use.gif deleted file mode 100644 index b1232223f..000000000 Binary files a/pr-preview/pr-6954/img/chronograf/1-6-template-vars-use.gif and /dev/null differ diff --git a/pr-preview/pr-6954/img/chronograf/1-6-viz-bar-graph-controls.png b/pr-preview/pr-6954/img/chronograf/1-6-viz-bar-graph-controls.png deleted file mode 100644 index 171c24c8b..000000000 Binary files a/pr-preview/pr-6954/img/chronograf/1-6-viz-bar-graph-controls.png and /dev/null differ diff --git a/pr-preview/pr-6954/img/chronograf/1-6-viz-bar-graph-example.png b/pr-preview/pr-6954/img/chronograf/1-6-viz-bar-graph-example.png deleted file mode 100644 index 8c2c5b959..000000000 Binary files a/pr-preview/pr-6954/img/chronograf/1-6-viz-bar-graph-example.png and /dev/null differ diff --git a/pr-preview/pr-6954/img/chronograf/1-6-viz-bar-graph-selector.png b/pr-preview/pr-6954/img/chronograf/1-6-viz-bar-graph-selector.png deleted file mode 100644 index b80383230..000000000 Binary files a/pr-preview/pr-6954/img/chronograf/1-6-viz-bar-graph-selector.png and /dev/null differ diff --git a/pr-preview/pr-6954/img/chronograf/1-6-viz-gauge-controls.png b/pr-preview/pr-6954/img/chronograf/1-6-viz-gauge-controls.png deleted file mode 100644 index e4e776a08..000000000 Binary files a/pr-preview/pr-6954/img/chronograf/1-6-viz-gauge-controls.png and /dev/null differ diff --git a/pr-preview/pr-6954/img/chronograf/1-6-viz-gauge-example.png b/pr-preview/pr-6954/img/chronograf/1-6-viz-gauge-example.png deleted file mode 100644 index 8bfabe64f..000000000 Binary files a/pr-preview/pr-6954/img/chronograf/1-6-viz-gauge-example.png and /dev/null differ diff --git a/pr-preview/pr-6954/img/chronograf/1-6-viz-gauge-selector.png b/pr-preview/pr-6954/img/chronograf/1-6-viz-gauge-selector.png deleted file mode 100644 index aa72deaca..000000000 Binary files a/pr-preview/pr-6954/img/chronograf/1-6-viz-gauge-selector.png and /dev/null differ diff --git a/pr-preview/pr-6954/img/chronograf/1-6-viz-line-graph-controls.png b/pr-preview/pr-6954/img/chronograf/1-6-viz-line-graph-controls.png deleted file mode 100644 index 8ffa81ecd..000000000 Binary files a/pr-preview/pr-6954/img/chronograf/1-6-viz-line-graph-controls.png and /dev/null differ diff --git a/pr-preview/pr-6954/img/chronograf/1-6-viz-line-graph-example.png b/pr-preview/pr-6954/img/chronograf/1-6-viz-line-graph-example.png deleted file mode 100644 index 3aef2ba0c..000000000 Binary files a/pr-preview/pr-6954/img/chronograf/1-6-viz-line-graph-example.png and /dev/null differ diff --git a/pr-preview/pr-6954/img/chronograf/1-6-viz-line-graph-selector.png b/pr-preview/pr-6954/img/chronograf/1-6-viz-line-graph-selector.png deleted file mode 100644 index 3c08b8e5b..000000000 Binary files a/pr-preview/pr-6954/img/chronograf/1-6-viz-line-graph-selector.png and /dev/null differ diff --git a/pr-preview/pr-6954/img/chronograf/1-6-viz-line-graph-single-stat-controls.png b/pr-preview/pr-6954/img/chronograf/1-6-viz-line-graph-single-stat-controls.png deleted file mode 100644 index 226ecfefe..000000000 Binary files a/pr-preview/pr-6954/img/chronograf/1-6-viz-line-graph-single-stat-controls.png and /dev/null differ diff --git a/pr-preview/pr-6954/img/chronograf/1-6-viz-line-graph-single-stat-example.png b/pr-preview/pr-6954/img/chronograf/1-6-viz-line-graph-single-stat-example.png deleted file mode 100644 index d10ffe67f..000000000 Binary files a/pr-preview/pr-6954/img/chronograf/1-6-viz-line-graph-single-stat-example.png and /dev/null differ diff --git a/pr-preview/pr-6954/img/chronograf/1-6-viz-line-graph-single-stat-selector.png b/pr-preview/pr-6954/img/chronograf/1-6-viz-line-graph-single-stat-selector.png deleted file mode 100644 index dd6484c88..000000000 Binary files a/pr-preview/pr-6954/img/chronograf/1-6-viz-line-graph-single-stat-selector.png and /dev/null differ diff --git a/pr-preview/pr-6954/img/chronograf/1-6-viz-single-stat-selector.png b/pr-preview/pr-6954/img/chronograf/1-6-viz-single-stat-selector.png deleted file mode 100644 index 3e43eeb82..000000000 Binary files a/pr-preview/pr-6954/img/chronograf/1-6-viz-single-stat-selector.png and /dev/null differ diff --git a/pr-preview/pr-6954/img/chronograf/1-6-viz-stacked-graph-controls.png b/pr-preview/pr-6954/img/chronograf/1-6-viz-stacked-graph-controls.png deleted file mode 100644 index 467405957..000000000 Binary files a/pr-preview/pr-6954/img/chronograf/1-6-viz-stacked-graph-controls.png and /dev/null differ diff --git a/pr-preview/pr-6954/img/chronograf/1-6-viz-stacked-graph-example.png b/pr-preview/pr-6954/img/chronograf/1-6-viz-stacked-graph-example.png deleted file mode 100644 index aeb2598e2..000000000 Binary files a/pr-preview/pr-6954/img/chronograf/1-6-viz-stacked-graph-example.png and /dev/null differ diff --git a/pr-preview/pr-6954/img/chronograf/1-6-viz-stacked-graph-selector.png b/pr-preview/pr-6954/img/chronograf/1-6-viz-stacked-graph-selector.png deleted file mode 100644 index bafe4eeb7..000000000 Binary files a/pr-preview/pr-6954/img/chronograf/1-6-viz-stacked-graph-selector.png and /dev/null differ diff --git a/pr-preview/pr-6954/img/chronograf/1-6-viz-step-plot-graph-controls.png b/pr-preview/pr-6954/img/chronograf/1-6-viz-step-plot-graph-controls.png deleted file mode 100644 index 9f5d4eace..000000000 Binary files a/pr-preview/pr-6954/img/chronograf/1-6-viz-step-plot-graph-controls.png and /dev/null differ diff --git a/pr-preview/pr-6954/img/chronograf/1-6-viz-step-plot-graph-example.png b/pr-preview/pr-6954/img/chronograf/1-6-viz-step-plot-graph-example.png deleted file mode 100644 index 1172a1fb4..000000000 Binary files a/pr-preview/pr-6954/img/chronograf/1-6-viz-step-plot-graph-example.png and /dev/null differ diff --git a/pr-preview/pr-6954/img/chronograf/1-6-viz-step-plot-graph-selector.png b/pr-preview/pr-6954/img/chronograf/1-6-viz-step-plot-graph-selector.png deleted file mode 100644 index 51bfdaa81..000000000 Binary files a/pr-preview/pr-6954/img/chronograf/1-6-viz-step-plot-graph-selector.png and /dev/null differ diff --git a/pr-preview/pr-6954/img/chronograf/1-6-viz-table-controls.png b/pr-preview/pr-6954/img/chronograf/1-6-viz-table-controls.png deleted file mode 100644 index 9f8ad217b..000000000 Binary files a/pr-preview/pr-6954/img/chronograf/1-6-viz-table-controls.png and /dev/null differ diff --git a/pr-preview/pr-6954/img/chronograf/1-6-viz-table-example.png b/pr-preview/pr-6954/img/chronograf/1-6-viz-table-example.png deleted file mode 100644 index 687e1d8a2..000000000 Binary files a/pr-preview/pr-6954/img/chronograf/1-6-viz-table-example.png and /dev/null differ diff --git a/pr-preview/pr-6954/img/chronograf/1-6-viz-table-selector.png b/pr-preview/pr-6954/img/chronograf/1-6-viz-table-selector.png deleted file mode 100644 index 90eeaaeb2..000000000 Binary files a/pr-preview/pr-6954/img/chronograf/1-6-viz-table-selector.png and /dev/null differ diff --git a/pr-preview/pr-6954/img/chronograf/1-6-viz-types-selector.png b/pr-preview/pr-6954/img/chronograf/1-6-viz-types-selector.png deleted file mode 100644 index 72f463d96..000000000 Binary files a/pr-preview/pr-6954/img/chronograf/1-6-viz-types-selector.png and /dev/null differ diff --git a/pr-preview/pr-6954/img/chronograf/1-7-data-explorer-icon.png b/pr-preview/pr-6954/img/chronograf/1-7-data-explorer-icon.png deleted file mode 100644 index b6583e04c..000000000 Binary files a/pr-preview/pr-6954/img/chronograf/1-7-data-explorer-icon.png and /dev/null differ diff --git a/pr-preview/pr-6954/img/chronograf/1-7-kapacitor-connection-config.png b/pr-preview/pr-6954/img/chronograf/1-7-kapacitor-connection-config.png deleted file mode 100644 index 719fc9b9c..000000000 Binary files a/pr-preview/pr-6954/img/chronograf/1-7-kapacitor-connection-config.png and /dev/null differ diff --git a/pr-preview/pr-6954/img/chronograf/1-7-log-viewer-dashboard.gif b/pr-preview/pr-6954/img/chronograf/1-7-log-viewer-dashboard.gif deleted file mode 100644 index 3eb0dad9d..000000000 Binary files a/pr-preview/pr-6954/img/chronograf/1-7-log-viewer-dashboard.gif and /dev/null differ diff --git a/pr-preview/pr-6954/img/chronograf/1-7-log-viewer-overview.png b/pr-preview/pr-6954/img/chronograf/1-7-log-viewer-overview.png deleted file mode 100644 index 3a38ee0eb..000000000 Binary files a/pr-preview/pr-6954/img/chronograf/1-7-log-viewer-overview.png and /dev/null differ diff --git a/pr-preview/pr-6954/img/chronograf/1-7-log-viewer-search-filter.gif b/pr-preview/pr-6954/img/chronograf/1-7-log-viewer-search-filter.gif deleted file mode 100644 index 0f9ca05f2..000000000 Binary files a/pr-preview/pr-6954/img/chronograf/1-7-log-viewer-search-filter.gif and /dev/null differ diff --git a/pr-preview/pr-6954/img/chronograf/1-7-log-viewer-specific-time.gif b/pr-preview/pr-6954/img/chronograf/1-7-log-viewer-specific-time.gif deleted file mode 100644 index 2250b68b6..000000000 Binary files a/pr-preview/pr-6954/img/chronograf/1-7-log-viewer-specific-time.gif and /dev/null differ diff --git a/pr-preview/pr-6954/img/chronograf/1-7-protoboard-kubernetes.png b/pr-preview/pr-6954/img/chronograf/1-7-protoboard-kubernetes.png deleted file mode 100644 index 6bd6fe5c9..000000000 Binary files a/pr-preview/pr-6954/img/chronograf/1-7-protoboard-kubernetes.png and /dev/null differ diff --git a/pr-preview/pr-6954/img/chronograf/1-7-protoboard-mysql.png b/pr-preview/pr-6954/img/chronograf/1-7-protoboard-mysql.png deleted file mode 100644 index 43d465cb2..000000000 Binary files a/pr-preview/pr-6954/img/chronograf/1-7-protoboard-mysql.png and /dev/null differ diff --git a/pr-preview/pr-6954/img/chronograf/1-7-protoboard-select.png b/pr-preview/pr-6954/img/chronograf/1-7-protoboard-select.png deleted file mode 100644 index d5b16ad28..000000000 Binary files a/pr-preview/pr-6954/img/chronograf/1-7-protoboard-select.png and /dev/null differ diff --git a/pr-preview/pr-6954/img/chronograf/1-7-protoboard-system.png b/pr-preview/pr-6954/img/chronograf/1-7-protoboard-system.png deleted file mode 100644 index 111501e82..000000000 Binary files a/pr-preview/pr-6954/img/chronograf/1-7-protoboard-system.png and /dev/null differ diff --git a/pr-preview/pr-6954/img/chronograf/1-7-protoboard-vsphere.png b/pr-preview/pr-6954/img/chronograf/1-7-protoboard-vsphere.png deleted file mode 100644 index 75ed7eeab..000000000 Binary files a/pr-preview/pr-6954/img/chronograf/1-7-protoboard-vsphere.png and /dev/null differ diff --git a/pr-preview/pr-6954/img/chronograf/1-7-viz-note-controls.png b/pr-preview/pr-6954/img/chronograf/1-7-viz-note-controls.png deleted file mode 100644 index 1d9ab8145..000000000 Binary files a/pr-preview/pr-6954/img/chronograf/1-7-viz-note-controls.png and /dev/null differ diff --git a/pr-preview/pr-6954/img/chronograf/1-7-viz-note-example.png b/pr-preview/pr-6954/img/chronograf/1-7-viz-note-example.png deleted file mode 100644 index f6645b0dd..000000000 Binary files a/pr-preview/pr-6954/img/chronograf/1-7-viz-note-example.png and /dev/null differ diff --git a/pr-preview/pr-6954/img/chronograf/1-7-viz-note-selector.png b/pr-preview/pr-6954/img/chronograf/1-7-viz-note-selector.png deleted file mode 100644 index 6e16317c9..000000000 Binary files a/pr-preview/pr-6954/img/chronograf/1-7-viz-note-selector.png and /dev/null differ diff --git a/pr-preview/pr-6954/img/chronograf/1-8-ha-architecture.svg b/pr-preview/pr-6954/img/chronograf/1-8-ha-architecture.svg deleted file mode 100644 index 01d334d09..000000000 --- a/pr-preview/pr-6954/img/chronograf/1-8-ha-architecture.svg +++ /dev/null @@ -1,153 +0,0 @@ - - - - - - - - User - - - - - User - - - - - User - - - - - User - - - -Load Balancer - - - Chronograf - - Chronograf - - Chronograf - - - - - - - - -etcd Cluster - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/pr-preview/pr-6954/img/chronograf/1-8-influxdb-v1-connection-config.png b/pr-preview/pr-6954/img/chronograf/1-8-influxdb-v1-connection-config.png deleted file mode 100644 index e55ee57e1..000000000 Binary files a/pr-preview/pr-6954/img/chronograf/1-8-influxdb-v1-connection-config.png and /dev/null differ diff --git a/pr-preview/pr-6954/img/chronograf/1-8-influxdb-v2-connection-config.png b/pr-preview/pr-6954/img/chronograf/1-8-influxdb-v2-connection-config.png deleted file mode 100644 index 322452901..000000000 Binary files a/pr-preview/pr-6954/img/chronograf/1-8-influxdb-v2-connection-config.png and /dev/null differ diff --git a/pr-preview/pr-6954/img/chronograf/1-9-dashboard-cell-add-data.png b/pr-preview/pr-6954/img/chronograf/1-9-dashboard-cell-add-data.png deleted file mode 100644 index 58b4b53b8..000000000 Binary files a/pr-preview/pr-6954/img/chronograf/1-9-dashboard-cell-add-data.png and /dev/null differ diff --git a/pr-preview/pr-6954/img/chronograf/1-9-template-var-title.png b/pr-preview/pr-6954/img/chronograf/1-9-template-var-title.png deleted file mode 100644 index 2bf4f7e04..000000000 Binary files a/pr-preview/pr-6954/img/chronograf/1-9-template-var-title.png and /dev/null differ diff --git a/pr-preview/pr-6954/img/chronograf/1-9-write-data.png b/pr-preview/pr-6954/img/chronograf/1-9-write-data.png deleted file mode 100644 index 7d328a3f8..000000000 Binary files a/pr-preview/pr-6954/img/chronograf/1-9-write-data.png and /dev/null differ diff --git a/pr-preview/pr-6954/img/chronograf/1-9-write-db-rp.png b/pr-preview/pr-6954/img/chronograf/1-9-write-db-rp.png deleted file mode 100644 index e064a2522..000000000 Binary files a/pr-preview/pr-6954/img/chronograf/1-9-write-db-rp.png and /dev/null differ diff --git a/pr-preview/pr-6954/img/chronograf/1-9-write-precision.png b/pr-preview/pr-6954/img/chronograf/1-9-write-precision.png deleted file mode 100644 index 39ead9de8..000000000 Binary files a/pr-preview/pr-6954/img/chronograf/1-9-write-precision.png and /dev/null differ diff --git a/pr-preview/pr-6954/img/chronograf/v1-influxdb3/cloud-dedicated-no-mgmt.png b/pr-preview/pr-6954/img/chronograf/v1-influxdb3/cloud-dedicated-no-mgmt.png deleted file mode 100644 index cc5b86294..000000000 Binary files a/pr-preview/pr-6954/img/chronograf/v1-influxdb3/cloud-dedicated-no-mgmt.png and /dev/null differ diff --git a/pr-preview/pr-6954/img/chronograf/v1-influxdb3/cloud-dedicated-with-mgmt.png b/pr-preview/pr-6954/img/chronograf/v1-influxdb3/cloud-dedicated-with-mgmt.png deleted file mode 100644 index 86c72735a..000000000 Binary files a/pr-preview/pr-6954/img/chronograf/v1-influxdb3/cloud-dedicated-with-mgmt.png and /dev/null differ diff --git a/pr-preview/pr-6954/img/chronograf/v1-influxdb3/cloud-serverless-connection.png b/pr-preview/pr-6954/img/chronograf/v1-influxdb3/cloud-serverless-connection.png deleted file mode 100644 index 124353952..000000000 Binary files a/pr-preview/pr-6954/img/chronograf/v1-influxdb3/cloud-serverless-connection.png and /dev/null differ diff --git a/pr-preview/pr-6954/img/chronograf/v1-influxdb3/clustered-connection.png b/pr-preview/pr-6954/img/chronograf/v1-influxdb3/clustered-connection.png deleted file mode 100644 index cb19ce9df..000000000 Binary files a/pr-preview/pr-6954/img/chronograf/v1-influxdb3/clustered-connection.png and /dev/null differ diff --git a/pr-preview/pr-6954/img/chronograf/v1-influxdb3/core-connection.png b/pr-preview/pr-6954/img/chronograf/v1-influxdb3/core-connection.png deleted file mode 100644 index 285006e20..000000000 Binary files a/pr-preview/pr-6954/img/chronograf/v1-influxdb3/core-connection.png and /dev/null differ diff --git a/pr-preview/pr-6954/img/chronograf/v1-influxdb3/enterprise-connection.png b/pr-preview/pr-6954/img/chronograf/v1-influxdb3/enterprise-connection.png deleted file mode 100644 index 8c033a5b5..000000000 Binary files a/pr-preview/pr-6954/img/chronograf/v1-influxdb3/enterprise-connection.png and /dev/null differ diff --git a/pr-preview/pr-6954/img/chronograf/v1-influxdb3/server-type-dropdown.png b/pr-preview/pr-6954/img/chronograf/v1-influxdb3/server-type-dropdown.png deleted file mode 100644 index 8efeb837a..000000000 Binary files a/pr-preview/pr-6954/img/chronograf/v1-influxdb3/server-type-dropdown.png and /dev/null differ diff --git a/pr-preview/pr-6954/img/cloudformation1.png b/pr-preview/pr-6954/img/cloudformation1.png deleted file mode 100644 index 96c002c2e..000000000 Binary files a/pr-preview/pr-6954/img/cloudformation1.png and /dev/null differ diff --git a/pr-preview/pr-6954/img/cloudformation2.png b/pr-preview/pr-6954/img/cloudformation2.png deleted file mode 100644 index fd0725987..000000000 Binary files a/pr-preview/pr-6954/img/cloudformation2.png and /dev/null differ diff --git a/pr-preview/pr-6954/img/enterprise/1-6-flapping-dashboard.gif b/pr-preview/pr-6954/img/enterprise/1-6-flapping-dashboard.gif deleted file mode 100644 index 745f94f2b..000000000 Binary files a/pr-preview/pr-6954/img/enterprise/1-6-flapping-dashboard.gif and /dev/null differ diff --git a/pr-preview/pr-6954/img/enterprise/1-6-gcp-intro-1.png b/pr-preview/pr-6954/img/enterprise/1-6-gcp-intro-1.png deleted file mode 100644 index 494abbeaf..000000000 Binary files a/pr-preview/pr-6954/img/enterprise/1-6-gcp-intro-1.png and /dev/null differ diff --git a/pr-preview/pr-6954/img/enterprise/1-6-gcp-intro-2.png b/pr-preview/pr-6954/img/enterprise/1-6-gcp-intro-2.png deleted file mode 100644 index 377c6cfa2..000000000 Binary files a/pr-preview/pr-6954/img/enterprise/1-6-gcp-intro-2.png and /dev/null differ diff --git a/pr-preview/pr-6954/img/enterprise/1-6-gcp-intro-3.png b/pr-preview/pr-6954/img/enterprise/1-6-gcp-intro-3.png deleted file mode 100644 index f40c70fce..000000000 Binary files a/pr-preview/pr-6954/img/enterprise/1-6-gcp-intro-3.png and /dev/null differ diff --git a/pr-preview/pr-6954/img/enterprise/1-6-gcp-intro-4.png b/pr-preview/pr-6954/img/enterprise/1-6-gcp-intro-4.png deleted file mode 100644 index 22c291ea7..000000000 Binary files a/pr-preview/pr-6954/img/enterprise/1-6-gcp-intro-4.png and /dev/null differ diff --git a/pr-preview/pr-6954/img/enterprise/1-8-network-diagram.png b/pr-preview/pr-6954/img/enterprise/1-8-network-diagram.png deleted file mode 100644 index 86ba784d8..000000000 Binary files a/pr-preview/pr-6954/img/enterprise/1-8-network-diagram.png and /dev/null differ diff --git a/pr-preview/pr-6954/img/favicon.png b/pr-preview/pr-6954/img/favicon.png deleted file mode 100644 index 07b99465e..000000000 Binary files a/pr-preview/pr-6954/img/favicon.png and /dev/null differ diff --git a/pr-preview/pr-6954/img/flux/0-x-prometheus-counter-aggregate-rate-output.png b/pr-preview/pr-6954/img/flux/0-x-prometheus-counter-aggregate-rate-output.png deleted file mode 100644 index 4996b7543..000000000 Binary files a/pr-preview/pr-6954/img/flux/0-x-prometheus-counter-aggregate-rate-output.png and /dev/null differ diff --git a/pr-preview/pr-6954/img/flux/0-x-prometheus-counter-derivative-output.png b/pr-preview/pr-6954/img/flux/0-x-prometheus-counter-derivative-output.png deleted file mode 100644 index e3d50d0aa..000000000 Binary files a/pr-preview/pr-6954/img/flux/0-x-prometheus-counter-derivative-output.png and /dev/null differ diff --git a/pr-preview/pr-6954/img/flux/0-x-prometheus-counter-difference-output.png b/pr-preview/pr-6954/img/flux/0-x-prometheus-counter-difference-output.png deleted file mode 100644 index 8fd6b146e..000000000 Binary files a/pr-preview/pr-6954/img/flux/0-x-prometheus-counter-difference-output.png and /dev/null differ diff --git a/pr-preview/pr-6954/img/flux/0-x-prometheus-counter-increase-input.png b/pr-preview/pr-6954/img/flux/0-x-prometheus-counter-increase-input.png deleted file mode 100644 index a6626685b..000000000 Binary files a/pr-preview/pr-6954/img/flux/0-x-prometheus-counter-increase-input.png and /dev/null differ diff --git a/pr-preview/pr-6954/img/flux/0-x-prometheus-counter-increase-output.png b/pr-preview/pr-6954/img/flux/0-x-prometheus-counter-increase-output.png deleted file mode 100644 index 3b3b5b5b1..000000000 Binary files a/pr-preview/pr-6954/img/flux/0-x-prometheus-counter-increase-output.png and /dev/null differ diff --git a/pr-preview/pr-6954/img/flux/0-x-prometheus-counter-normalized-input.png b/pr-preview/pr-6954/img/flux/0-x-prometheus-counter-normalized-input.png deleted file mode 100644 index 2c1f278dd..000000000 Binary files a/pr-preview/pr-6954/img/flux/0-x-prometheus-counter-normalized-input.png and /dev/null differ diff --git a/pr-preview/pr-6954/img/flux/0-x-prometheus-gauge-aggregate-rate-output.png b/pr-preview/pr-6954/img/flux/0-x-prometheus-gauge-aggregate-rate-output.png deleted file mode 100644 index b4f2028d6..000000000 Binary files a/pr-preview/pr-6954/img/flux/0-x-prometheus-gauge-aggregate-rate-output.png and /dev/null differ diff --git a/pr-preview/pr-6954/img/flux/0-x-prometheus-gauge-derivative-output.png b/pr-preview/pr-6954/img/flux/0-x-prometheus-gauge-derivative-output.png deleted file mode 100644 index 56147d947..000000000 Binary files a/pr-preview/pr-6954/img/flux/0-x-prometheus-gauge-derivative-output.png and /dev/null differ diff --git a/pr-preview/pr-6954/img/flux/0-x-prometheus-gauge-input.png b/pr-preview/pr-6954/img/flux/0-x-prometheus-gauge-input.png deleted file mode 100644 index 81681267f..000000000 Binary files a/pr-preview/pr-6954/img/flux/0-x-prometheus-gauge-input.png and /dev/null differ diff --git a/pr-preview/pr-6954/img/flux/0-x-prometheus-histogram-multiple-quantiles.png b/pr-preview/pr-6954/img/flux/0-x-prometheus-histogram-multiple-quantiles.png deleted file mode 100644 index 116aa4423..000000000 Binary files a/pr-preview/pr-6954/img/flux/0-x-prometheus-histogram-multiple-quantiles.png and /dev/null differ diff --git a/pr-preview/pr-6954/img/flux/0-x-prometheus-histogram-quantile.png b/pr-preview/pr-6954/img/flux/0-x-prometheus-histogram-quantile.png deleted file mode 100644 index 6fe45e824..000000000 Binary files a/pr-preview/pr-6954/img/flux/0-x-prometheus-histogram-quantile.png and /dev/null differ diff --git a/pr-preview/pr-6954/img/flux/0-x-prometheus-summary-quantiles.png b/pr-preview/pr-6954/img/flux/0-x-prometheus-summary-quantiles.png deleted file mode 100644 index 833c73bc4..000000000 Binary files a/pr-preview/pr-6954/img/flux/0-x-prometheus-summary-quantiles.png and /dev/null differ diff --git a/pr-preview/pr-6954/img/flux/0-x-water-process-dark.svg b/pr-preview/pr-6954/img/flux/0-x-water-process-dark.svg deleted file mode 100644 index 86945c1e0..000000000 --- a/pr-preview/pr-6954/img/flux/0-x-water-process-dark.svg +++ /dev/null @@ -1,2898 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/pr-preview/pr-6954/img/flux/0-x-water-process-light.svg b/pr-preview/pr-6954/img/flux/0-x-water-process-light.svg deleted file mode 100644 index ecd10405d..000000000 --- a/pr-preview/pr-6954/img/flux/0-x-water-process-light.svg +++ /dev/null @@ -1,2548 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/pr-preview/pr-6954/img/flux/grouping-by-cpu-time.png b/pr-preview/pr-6954/img/flux/grouping-by-cpu-time.png deleted file mode 100644 index 6c4390a9f..000000000 Binary files a/pr-preview/pr-6954/img/flux/grouping-by-cpu-time.png and /dev/null differ diff --git a/pr-preview/pr-6954/img/flux/grouping-by-time.png b/pr-preview/pr-6954/img/flux/grouping-by-time.png deleted file mode 100644 index dd0f5812e..000000000 Binary files a/pr-preview/pr-6954/img/flux/grouping-by-time.png and /dev/null differ diff --git a/pr-preview/pr-6954/img/flux/grouping-data-set.png b/pr-preview/pr-6954/img/flux/grouping-data-set.png deleted file mode 100644 index 9af7c6914..000000000 Binary files a/pr-preview/pr-6954/img/flux/grouping-data-set.png and /dev/null differ diff --git a/pr-preview/pr-6954/img/flux/simple-unwindowed-data.png b/pr-preview/pr-6954/img/flux/simple-unwindowed-data.png deleted file mode 100644 index 6b84ef467..000000000 Binary files a/pr-preview/pr-6954/img/flux/simple-unwindowed-data.png and /dev/null differ diff --git a/pr-preview/pr-6954/img/flux/simple-windowed-aggregate-data.png b/pr-preview/pr-6954/img/flux/simple-windowed-aggregate-data.png deleted file mode 100644 index 4a16bfd04..000000000 Binary files a/pr-preview/pr-6954/img/flux/simple-windowed-aggregate-data.png and /dev/null differ diff --git a/pr-preview/pr-6954/img/flux/simple-windowed-data.png b/pr-preview/pr-6954/img/flux/simple-windowed-data.png deleted file mode 100644 index 0c3df7288..000000000 Binary files a/pr-preview/pr-6954/img/flux/simple-windowed-data.png and /dev/null differ diff --git a/pr-preview/pr-6954/img/flux/windowed-aggregates-ungrouped.png b/pr-preview/pr-6954/img/flux/windowed-aggregates-ungrouped.png deleted file mode 100644 index 510ec5006..000000000 Binary files a/pr-preview/pr-6954/img/flux/windowed-aggregates-ungrouped.png and /dev/null differ diff --git a/pr-preview/pr-6954/img/flux/windowed-aggregates.png b/pr-preview/pr-6954/img/flux/windowed-aggregates.png deleted file mode 100644 index 9c51ee719..000000000 Binary files a/pr-preview/pr-6954/img/flux/windowed-aggregates.png and /dev/null differ diff --git a/pr-preview/pr-6954/img/flux/windowed-data.png b/pr-preview/pr-6954/img/flux/windowed-data.png deleted file mode 100644 index 8589db679..000000000 Binary files a/pr-preview/pr-6954/img/flux/windowed-data.png and /dev/null differ diff --git a/pr-preview/pr-6954/img/grafana/enterprise-influxdb-v1-grafana-flux.png b/pr-preview/pr-6954/img/grafana/enterprise-influxdb-v1-grafana-flux.png deleted file mode 100644 index a0a4d1a7d..000000000 Binary files a/pr-preview/pr-6954/img/grafana/enterprise-influxdb-v1-grafana-flux.png and /dev/null differ diff --git a/pr-preview/pr-6954/img/grafana/enterprise-influxdb-v1-grafana-influxql.png b/pr-preview/pr-6954/img/grafana/enterprise-influxdb-v1-grafana-influxql.png deleted file mode 100644 index 53c86108b..000000000 Binary files a/pr-preview/pr-6954/img/grafana/enterprise-influxdb-v1-grafana-influxql.png and /dev/null differ diff --git a/pr-preview/pr-6954/img/grafana/grafana-sql-insecure-connection.png b/pr-preview/pr-6954/img/grafana/grafana-sql-insecure-connection.png deleted file mode 100644 index ec39fc576..000000000 Binary files a/pr-preview/pr-6954/img/grafana/grafana-sql-insecure-connection.png and /dev/null differ diff --git a/pr-preview/pr-6954/img/grafana/influxdb-cloud-grafana-flux.png b/pr-preview/pr-6954/img/grafana/influxdb-cloud-grafana-flux.png deleted file mode 100644 index f3ed30ef9..000000000 Binary files a/pr-preview/pr-6954/img/grafana/influxdb-cloud-grafana-flux.png and /dev/null differ diff --git a/pr-preview/pr-6954/img/grafana/influxdb-cloud-grafana-influxql.png b/pr-preview/pr-6954/img/grafana/influxdb-cloud-grafana-influxql.png deleted file mode 100644 index 228c8d8ae..000000000 Binary files a/pr-preview/pr-6954/img/grafana/influxdb-cloud-grafana-influxql.png and /dev/null differ diff --git a/pr-preview/pr-6954/img/grafana/influxdb-v1-grafana-flux.png b/pr-preview/pr-6954/img/grafana/influxdb-v1-grafana-flux.png deleted file mode 100644 index 71da27b5d..000000000 Binary files a/pr-preview/pr-6954/img/grafana/influxdb-v1-grafana-flux.png and /dev/null differ diff --git a/pr-preview/pr-6954/img/grafana/influxdb-v1-grafana-influxql.png b/pr-preview/pr-6954/img/grafana/influxdb-v1-grafana-influxql.png deleted file mode 100644 index 97743afcd..000000000 Binary files a/pr-preview/pr-6954/img/grafana/influxdb-v1-grafana-influxql.png and /dev/null differ diff --git a/pr-preview/pr-6954/img/grafana/influxdb-v2-grafana-influxql-flux.png b/pr-preview/pr-6954/img/grafana/influxdb-v2-grafana-influxql-flux.png deleted file mode 100644 index 00af8fc4c..000000000 Binary files a/pr-preview/pr-6954/img/grafana/influxdb-v2-grafana-influxql-flux.png and /dev/null differ diff --git a/pr-preview/pr-6954/img/grafana/influxdb-v2-grafana-influxql.png b/pr-preview/pr-6954/img/grafana/influxdb-v2-grafana-influxql.png deleted file mode 100644 index 9c66bde2d..000000000 Binary files a/pr-preview/pr-6954/img/grafana/influxdb-v2-grafana-influxql.png and /dev/null differ diff --git a/pr-preview/pr-6954/img/grafana/influxdb3-cloud-dedicated-grafana-influxql.png b/pr-preview/pr-6954/img/grafana/influxdb3-cloud-dedicated-grafana-influxql.png deleted file mode 100644 index 53465f23f..000000000 Binary files a/pr-preview/pr-6954/img/grafana/influxdb3-cloud-dedicated-grafana-influxql.png and /dev/null differ diff --git a/pr-preview/pr-6954/img/grafana/influxdb3-cloud-dedicated-grafana-sql.png b/pr-preview/pr-6954/img/grafana/influxdb3-cloud-dedicated-grafana-sql.png deleted file mode 100644 index 12add0308..000000000 Binary files a/pr-preview/pr-6954/img/grafana/influxdb3-cloud-dedicated-grafana-sql.png and /dev/null differ diff --git a/pr-preview/pr-6954/img/grafana/influxdb3-cloud-serverless-grafana-influxql.png b/pr-preview/pr-6954/img/grafana/influxdb3-cloud-serverless-grafana-influxql.png deleted file mode 100644 index 93623ea0e..000000000 Binary files a/pr-preview/pr-6954/img/grafana/influxdb3-cloud-serverless-grafana-influxql.png and /dev/null differ diff --git a/pr-preview/pr-6954/img/grafana/influxdb3-cloud-serverless-grafana-sql.png b/pr-preview/pr-6954/img/grafana/influxdb3-cloud-serverless-grafana-sql.png deleted file mode 100644 index fd6d01496..000000000 Binary files a/pr-preview/pr-6954/img/grafana/influxdb3-cloud-serverless-grafana-sql.png and /dev/null differ diff --git a/pr-preview/pr-6954/img/grafana/influxdb3-clustered-grafana-influxql.png b/pr-preview/pr-6954/img/grafana/influxdb3-clustered-grafana-influxql.png deleted file mode 100644 index c7ec0587c..000000000 Binary files a/pr-preview/pr-6954/img/grafana/influxdb3-clustered-grafana-influxql.png and /dev/null differ diff --git a/pr-preview/pr-6954/img/grafana/influxdb3-clustered-grafana-sql.png b/pr-preview/pr-6954/img/grafana/influxdb3-clustered-grafana-sql.png deleted file mode 100644 index 1742f749d..000000000 Binary files a/pr-preview/pr-6954/img/grafana/influxdb3-clustered-grafana-sql.png and /dev/null differ diff --git a/pr-preview/pr-6954/img/grafana/influxdb3-core-grafana-influxql.png b/pr-preview/pr-6954/img/grafana/influxdb3-core-grafana-influxql.png deleted file mode 100644 index f99f70158..000000000 Binary files a/pr-preview/pr-6954/img/grafana/influxdb3-core-grafana-influxql.png and /dev/null differ diff --git a/pr-preview/pr-6954/img/grafana/influxdb3-core-grafana-sql.png b/pr-preview/pr-6954/img/grafana/influxdb3-core-grafana-sql.png deleted file mode 100644 index 34f4db136..000000000 Binary files a/pr-preview/pr-6954/img/grafana/influxdb3-core-grafana-sql.png and /dev/null differ diff --git a/pr-preview/pr-6954/img/grafana/influxdb3-enterprise-grafana-influxql.png b/pr-preview/pr-6954/img/grafana/influxdb3-enterprise-grafana-influxql.png deleted file mode 100644 index c4bdd46ed..000000000 Binary files a/pr-preview/pr-6954/img/grafana/influxdb3-enterprise-grafana-influxql.png and /dev/null differ diff --git a/pr-preview/pr-6954/img/grafana/influxdb3-enterprise-grafana-sql.png b/pr-preview/pr-6954/img/grafana/influxdb3-enterprise-grafana-sql.png deleted file mode 100644 index 6c1b5b167..000000000 Binary files a/pr-preview/pr-6954/img/grafana/influxdb3-enterprise-grafana-sql.png and /dev/null differ diff --git a/pr-preview/pr-6954/img/influx-logo-cubo-dark.png b/pr-preview/pr-6954/img/influx-logo-cubo-dark.png deleted file mode 100644 index d87fc95a4..000000000 Binary files a/pr-preview/pr-6954/img/influx-logo-cubo-dark.png and /dev/null differ diff --git a/pr-preview/pr-6954/img/influx-logo-cubo-white.png b/pr-preview/pr-6954/img/influx-logo-cubo-white.png deleted file mode 100644 index e5e562624..000000000 Binary files a/pr-preview/pr-6954/img/influx-logo-cubo-white.png and /dev/null differ diff --git a/pr-preview/pr-6954/img/influxdb/1-3-hw-first-step-1-2.png b/pr-preview/pr-6954/img/influxdb/1-3-hw-first-step-1-2.png deleted file mode 100644 index 8e7ad7f3f..000000000 Binary files a/pr-preview/pr-6954/img/influxdb/1-3-hw-first-step-1-2.png and /dev/null differ diff --git a/pr-preview/pr-6954/img/influxdb/1-3-hw-raw-data-1-2.png b/pr-preview/pr-6954/img/influxdb/1-3-hw-raw-data-1-2.png deleted file mode 100644 index dad78a76c..000000000 Binary files a/pr-preview/pr-6954/img/influxdb/1-3-hw-raw-data-1-2.png and /dev/null differ diff --git a/pr-preview/pr-6954/img/influxdb/1-3-hw-second-step-1-2.png b/pr-preview/pr-6954/img/influxdb/1-3-hw-second-step-1-2.png deleted file mode 100644 index 8b4745b11..000000000 Binary files a/pr-preview/pr-6954/img/influxdb/1-3-hw-second-step-1-2.png and /dev/null differ diff --git a/pr-preview/pr-6954/img/influxdb/1-3-hw-third-step-1-2.png b/pr-preview/pr-6954/img/influxdb/1-3-hw-third-step-1-2.png deleted file mode 100644 index 23f68b913..000000000 Binary files a/pr-preview/pr-6954/img/influxdb/1-3-hw-third-step-1-2.png and /dev/null differ diff --git a/pr-preview/pr-6954/img/influxdb/1-5-calc-percentage-apple-variety.png b/pr-preview/pr-6954/img/influxdb/1-5-calc-percentage-apple-variety.png deleted file mode 100644 index dedb91bb3..000000000 Binary files a/pr-preview/pr-6954/img/influxdb/1-5-calc-percentage-apple-variety.png and /dev/null differ diff --git a/pr-preview/pr-6954/img/influxdb/1-5-calc-percentage-hourly-apple-variety.png b/pr-preview/pr-6954/img/influxdb/1-5-calc-percentage-hourly-apple-variety.png deleted file mode 100644 index 4c1e9070b..000000000 Binary files a/pr-preview/pr-6954/img/influxdb/1-5-calc-percentage-hourly-apple-variety.png and /dev/null differ diff --git a/pr-preview/pr-6954/img/influxdb/1-7-flux-dashboard-add-filter.png b/pr-preview/pr-6954/img/influxdb/1-7-flux-dashboard-add-filter.png deleted file mode 100644 index 349fb9951..000000000 Binary files a/pr-preview/pr-6954/img/influxdb/1-7-flux-dashboard-add-filter.png and /dev/null differ diff --git a/pr-preview/pr-6954/img/influxdb/1-7-flux-dashboard-cell.png b/pr-preview/pr-6954/img/influxdb/1-7-flux-dashboard-cell.png deleted file mode 100644 index 8ad80ef93..000000000 Binary files a/pr-preview/pr-6954/img/influxdb/1-7-flux-dashboard-cell.png and /dev/null differ diff --git a/pr-preview/pr-6954/img/influxdb/1-7-flux-dashboard-view-raw.png b/pr-preview/pr-6954/img/influxdb/1-7-flux-dashboard-view-raw.png deleted file mode 100644 index 05bd88dcc..000000000 Binary files a/pr-preview/pr-6954/img/influxdb/1-7-flux-dashboard-view-raw.png and /dev/null differ diff --git a/pr-preview/pr-6954/img/influxdb/1-8-tools-vsflux-explore-schema.png b/pr-preview/pr-6954/img/influxdb/1-8-tools-vsflux-explore-schema.png deleted file mode 100644 index ff64eb1e6..000000000 Binary files a/pr-preview/pr-6954/img/influxdb/1-8-tools-vsflux-explore-schema.png and /dev/null differ diff --git a/pr-preview/pr-6954/img/influxdb/2-0-controls-dark-light-mode.png b/pr-preview/pr-6954/img/influxdb/2-0-controls-dark-light-mode.png deleted file mode 100644 index 8e699ef57..000000000 Binary files a/pr-preview/pr-6954/img/influxdb/2-0-controls-dark-light-mode.png and /dev/null differ diff --git a/pr-preview/pr-6954/img/influxdb/2-0-controls-time-range.png b/pr-preview/pr-6954/img/influxdb/2-0-controls-time-range.png deleted file mode 100644 index 7813e6c8c..000000000 Binary files a/pr-preview/pr-6954/img/influxdb/2-0-controls-time-range.png and /dev/null differ diff --git a/pr-preview/pr-6954/img/influxdb/2-0-controls-timezone.png b/pr-preview/pr-6954/img/influxdb/2-0-controls-timezone.png deleted file mode 100644 index b8193f12c..000000000 Binary files a/pr-preview/pr-6954/img/influxdb/2-0-controls-timezone.png and /dev/null differ diff --git a/pr-preview/pr-6954/img/influxdb/2-0-data-explorer.png b/pr-preview/pr-6954/img/influxdb/2-0-data-explorer.png deleted file mode 100644 index cdb82eafe..000000000 Binary files a/pr-preview/pr-6954/img/influxdb/2-0-data-explorer.png and /dev/null differ diff --git a/pr-preview/pr-6954/img/influxdb/2-0-sql-dashboard-variable.png b/pr-preview/pr-6954/img/influxdb/2-0-sql-dashboard-variable.png deleted file mode 100644 index 8632d0913..000000000 Binary files a/pr-preview/pr-6954/img/influxdb/2-0-sql-dashboard-variable.png and /dev/null differ diff --git a/pr-preview/pr-6954/img/influxdb/2-0-tools-chronograf-v2-auth.png b/pr-preview/pr-6954/img/influxdb/2-0-tools-chronograf-v2-auth.png deleted file mode 100644 index b619dcdf4..000000000 Binary files a/pr-preview/pr-6954/img/influxdb/2-0-tools-chronograf-v2-auth.png and /dev/null differ diff --git a/pr-preview/pr-6954/img/influxdb/2-0-tools-vsflux-errors-warnings.png b/pr-preview/pr-6954/img/influxdb/2-0-tools-vsflux-errors-warnings.png deleted file mode 100644 index dc82301fe..000000000 Binary files a/pr-preview/pr-6954/img/influxdb/2-0-tools-vsflux-errors-warnings.png and /dev/null differ diff --git a/pr-preview/pr-6954/img/influxdb/2-0-tools-vsflux-explore-schema.png b/pr-preview/pr-6954/img/influxdb/2-0-tools-vsflux-explore-schema.png deleted file mode 100644 index a7f969fcf..000000000 Binary files a/pr-preview/pr-6954/img/influxdb/2-0-tools-vsflux-explore-schema.png and /dev/null differ diff --git a/pr-preview/pr-6954/img/influxdb/2-0-variables-data-explorer-view.png b/pr-preview/pr-6954/img/influxdb/2-0-variables-data-explorer-view.png deleted file mode 100644 index 6f27a03e6..000000000 Binary files a/pr-preview/pr-6954/img/influxdb/2-0-variables-data-explorer-view.png and /dev/null differ diff --git a/pr-preview/pr-6954/img/influxdb/2-0-visualizations-Band-example.png b/pr-preview/pr-6954/img/influxdb/2-0-visualizations-Band-example.png deleted file mode 100644 index 0977d1bcd..000000000 Binary files a/pr-preview/pr-6954/img/influxdb/2-0-visualizations-Band-example.png and /dev/null differ diff --git a/pr-preview/pr-6954/img/influxdb/2-0-visualizations-dropdown.png b/pr-preview/pr-6954/img/influxdb/2-0-visualizations-dropdown.png deleted file mode 100644 index 5dd1ae686..000000000 Binary files a/pr-preview/pr-6954/img/influxdb/2-0-visualizations-dropdown.png and /dev/null differ diff --git a/pr-preview/pr-6954/img/influxdb/2-0-visualizations-gauge-example-8.png b/pr-preview/pr-6954/img/influxdb/2-0-visualizations-gauge-example-8.png deleted file mode 100644 index d90b599c0..000000000 Binary files a/pr-preview/pr-6954/img/influxdb/2-0-visualizations-gauge-example-8.png and /dev/null differ diff --git a/pr-preview/pr-6954/img/influxdb/2-0-visualizations-gauge-example.png b/pr-preview/pr-6954/img/influxdb/2-0-visualizations-gauge-example.png deleted file mode 100644 index eb7421584..000000000 Binary files a/pr-preview/pr-6954/img/influxdb/2-0-visualizations-gauge-example.png and /dev/null differ diff --git a/pr-preview/pr-6954/img/influxdb/2-0-visualizations-gauge-pressure-8.png b/pr-preview/pr-6954/img/influxdb/2-0-visualizations-gauge-pressure-8.png deleted file mode 100644 index 5c48f4658..000000000 Binary files a/pr-preview/pr-6954/img/influxdb/2-0-visualizations-gauge-pressure-8.png and /dev/null differ diff --git a/pr-preview/pr-6954/img/influxdb/2-0-visualizations-graph-linear-static.png b/pr-preview/pr-6954/img/influxdb/2-0-visualizations-graph-linear-static.png deleted file mode 100644 index 5951bcb39..000000000 Binary files a/pr-preview/pr-6954/img/influxdb/2-0-visualizations-graph-linear-static.png and /dev/null differ diff --git a/pr-preview/pr-6954/img/influxdb/2-0-visualizations-graph-single-stat-mem-8.png b/pr-preview/pr-6954/img/influxdb/2-0-visualizations-graph-single-stat-mem-8.png deleted file mode 100644 index a02a9b76c..000000000 Binary files a/pr-preview/pr-6954/img/influxdb/2-0-visualizations-graph-single-stat-mem-8.png and /dev/null differ diff --git a/pr-preview/pr-6954/img/influxdb/2-0-visualizations-graph-smooth-hover.png b/pr-preview/pr-6954/img/influxdb/2-0-visualizations-graph-smooth-hover.png deleted file mode 100644 index 08fcece53..000000000 Binary files a/pr-preview/pr-6954/img/influxdb/2-0-visualizations-graph-smooth-hover.png and /dev/null differ diff --git a/pr-preview/pr-6954/img/influxdb/2-0-visualizations-heatmap-correlation.png b/pr-preview/pr-6954/img/influxdb/2-0-visualizations-heatmap-correlation.png deleted file mode 100644 index 945e678fa..000000000 Binary files a/pr-preview/pr-6954/img/influxdb/2-0-visualizations-heatmap-correlation.png and /dev/null differ diff --git a/pr-preview/pr-6954/img/influxdb/2-0-visualizations-heatmap-example.png b/pr-preview/pr-6954/img/influxdb/2-0-visualizations-heatmap-example.png deleted file mode 100644 index 11f897d4a..000000000 Binary files a/pr-preview/pr-6954/img/influxdb/2-0-visualizations-heatmap-example.png and /dev/null differ diff --git a/pr-preview/pr-6954/img/influxdb/2-0-visualizations-heatmap-vs-scatter.png b/pr-preview/pr-6954/img/influxdb/2-0-visualizations-heatmap-vs-scatter.png deleted file mode 100644 index fb2fc9525..000000000 Binary files a/pr-preview/pr-6954/img/influxdb/2-0-visualizations-heatmap-vs-scatter.png and /dev/null differ diff --git a/pr-preview/pr-6954/img/influxdb/2-0-visualizations-histogram-errors.png b/pr-preview/pr-6954/img/influxdb/2-0-visualizations-histogram-errors.png deleted file mode 100644 index 77055b353..000000000 Binary files a/pr-preview/pr-6954/img/influxdb/2-0-visualizations-histogram-errors.png and /dev/null differ diff --git a/pr-preview/pr-6954/img/influxdb/2-0-visualizations-histogram-example.png b/pr-preview/pr-6954/img/influxdb/2-0-visualizations-histogram-example.png deleted file mode 100644 index f399ebd19..000000000 Binary files a/pr-preview/pr-6954/img/influxdb/2-0-visualizations-histogram-example.png and /dev/null differ diff --git a/pr-preview/pr-6954/img/influxdb/2-0-visualizations-line-graph-example-8.png b/pr-preview/pr-6954/img/influxdb/2-0-visualizations-line-graph-example-8.png deleted file mode 100644 index 8a6a2b7dc..000000000 Binary files a/pr-preview/pr-6954/img/influxdb/2-0-visualizations-line-graph-example-8.png and /dev/null differ diff --git a/pr-preview/pr-6954/img/influxdb/2-0-visualizations-line-graph-example.png b/pr-preview/pr-6954/img/influxdb/2-0-visualizations-line-graph-example.png deleted file mode 100644 index 5060bee91..000000000 Binary files a/pr-preview/pr-6954/img/influxdb/2-0-visualizations-line-graph-example.png and /dev/null differ diff --git a/pr-preview/pr-6954/img/influxdb/2-0-visualizations-line-graph-single-stat-example-8.png b/pr-preview/pr-6954/img/influxdb/2-0-visualizations-line-graph-single-stat-example-8.png deleted file mode 100644 index 6a2f56892..000000000 Binary files a/pr-preview/pr-6954/img/influxdb/2-0-visualizations-line-graph-single-stat-example-8.png and /dev/null differ diff --git a/pr-preview/pr-6954/img/influxdb/2-0-visualizations-line-graph-single-stat-example.png b/pr-preview/pr-6954/img/influxdb/2-0-visualizations-line-graph-single-stat-example.png deleted file mode 100644 index 16e1d4670..000000000 Binary files a/pr-preview/pr-6954/img/influxdb/2-0-visualizations-line-graph-single-stat-example.png and /dev/null differ diff --git a/pr-preview/pr-6954/img/influxdb/2-0-visualizations-line-graph-step-example-8.png b/pr-preview/pr-6954/img/influxdb/2-0-visualizations-line-graph-step-example-8.png deleted file mode 100644 index b22d53453..000000000 Binary files a/pr-preview/pr-6954/img/influxdb/2-0-visualizations-line-graph-step-example-8.png and /dev/null differ diff --git a/pr-preview/pr-6954/img/influxdb/2-0-visualizations-map-circle-example.png b/pr-preview/pr-6954/img/influxdb/2-0-visualizations-map-circle-example.png deleted file mode 100644 index e9e0664b1..000000000 Binary files a/pr-preview/pr-6954/img/influxdb/2-0-visualizations-map-circle-example.png and /dev/null differ diff --git a/pr-preview/pr-6954/img/influxdb/2-0-visualizations-map-heat-example.png b/pr-preview/pr-6954/img/influxdb/2-0-visualizations-map-heat-example.png deleted file mode 100644 index 0c8affbbb..000000000 Binary files a/pr-preview/pr-6954/img/influxdb/2-0-visualizations-map-heat-example.png and /dev/null differ diff --git a/pr-preview/pr-6954/img/influxdb/2-0-visualizations-map-point-example.png b/pr-preview/pr-6954/img/influxdb/2-0-visualizations-map-point-example.png deleted file mode 100644 index 8676ef6e0..000000000 Binary files a/pr-preview/pr-6954/img/influxdb/2-0-visualizations-map-point-example.png and /dev/null differ diff --git a/pr-preview/pr-6954/img/influxdb/2-0-visualizations-mosaic-example.png b/pr-preview/pr-6954/img/influxdb/2-0-visualizations-mosaic-example.png deleted file mode 100644 index e08b70da1..000000000 Binary files a/pr-preview/pr-6954/img/influxdb/2-0-visualizations-mosaic-example.png and /dev/null differ diff --git a/pr-preview/pr-6954/img/influxdb/2-0-visualizations-scatter-correlation.png b/pr-preview/pr-6954/img/influxdb/2-0-visualizations-scatter-correlation.png deleted file mode 100644 index e1b3df197..000000000 Binary files a/pr-preview/pr-6954/img/influxdb/2-0-visualizations-scatter-correlation.png and /dev/null differ diff --git a/pr-preview/pr-6954/img/influxdb/2-0-visualizations-scatter-example.png b/pr-preview/pr-6954/img/influxdb/2-0-visualizations-scatter-example.png deleted file mode 100644 index 83e9c7b8e..000000000 Binary files a/pr-preview/pr-6954/img/influxdb/2-0-visualizations-scatter-example.png and /dev/null differ diff --git a/pr-preview/pr-6954/img/influxdb/2-0-visualizations-single-stat-example-8.png b/pr-preview/pr-6954/img/influxdb/2-0-visualizations-single-stat-example-8.png deleted file mode 100644 index ece3e1fd8..000000000 Binary files a/pr-preview/pr-6954/img/influxdb/2-0-visualizations-single-stat-example-8.png and /dev/null differ diff --git a/pr-preview/pr-6954/img/influxdb/2-0-visualizations-single-stat-example.png b/pr-preview/pr-6954/img/influxdb/2-0-visualizations-single-stat-example.png deleted file mode 100644 index a7bc1577d..000000000 Binary files a/pr-preview/pr-6954/img/influxdb/2-0-visualizations-single-stat-example.png and /dev/null differ diff --git a/pr-preview/pr-6954/img/influxdb/2-0-visualizations-table-example.png b/pr-preview/pr-6954/img/influxdb/2-0-visualizations-table-example.png deleted file mode 100644 index 666413266..000000000 Binary files a/pr-preview/pr-6954/img/influxdb/2-0-visualizations-table-example.png and /dev/null differ diff --git a/pr-preview/pr-6954/img/influxdb/2-0-visualizations-table-human-readable.png b/pr-preview/pr-6954/img/influxdb/2-0-visualizations-table-human-readable.png deleted file mode 100644 index a554b2351..000000000 Binary files a/pr-preview/pr-6954/img/influxdb/2-0-visualizations-table-human-readable.png and /dev/null differ diff --git a/pr-preview/pr-6954/img/influxdb/2-1-migration-dashboard.png b/pr-preview/pr-6954/img/influxdb/2-1-migration-dashboard.png deleted file mode 100644 index a1a6b7b67..000000000 Binary files a/pr-preview/pr-6954/img/influxdb/2-1-migration-dashboard.png and /dev/null differ diff --git a/pr-preview/pr-6954/img/influxdb/2-1-tools-vsflux-add-connection.png b/pr-preview/pr-6954/img/influxdb/2-1-tools-vsflux-add-connection.png deleted file mode 100644 index 62362f8cf..000000000 Binary files a/pr-preview/pr-6954/img/influxdb/2-1-tools-vsflux-add-connection.png and /dev/null differ diff --git a/pr-preview/pr-6954/img/influxdb/2-1-tools-vsflux-influxdb-pane.png b/pr-preview/pr-6954/img/influxdb/2-1-tools-vsflux-influxdb-pane.png deleted file mode 100644 index 6bf82b9c2..000000000 Binary files a/pr-preview/pr-6954/img/influxdb/2-1-tools-vsflux-influxdb-pane.png and /dev/null differ diff --git a/pr-preview/pr-6954/img/influxdb/2-4-get-started-visualize-query-builder.png b/pr-preview/pr-6954/img/influxdb/2-4-get-started-visualize-query-builder.png deleted file mode 100644 index 1ce6383e9..000000000 Binary files a/pr-preview/pr-6954/img/influxdb/2-4-get-started-visualize-query-builder.png and /dev/null differ diff --git a/pr-preview/pr-6954/img/influxdb/2-4-get-started-visualize-time-range.png b/pr-preview/pr-6954/img/influxdb/2-4-get-started-visualize-time-range.png deleted file mode 100644 index 46ccc7d33..000000000 Binary files a/pr-preview/pr-6954/img/influxdb/2-4-get-started-visualize-time-range.png and /dev/null differ diff --git a/pr-preview/pr-6954/img/influxdb/2-4-get-started-visualize-variable-select.png b/pr-preview/pr-6954/img/influxdb/2-4-get-started-visualize-variable-select.png deleted file mode 100644 index a5b25b073..000000000 Binary files a/pr-preview/pr-6954/img/influxdb/2-4-get-started-visualize-variable-select.png and /dev/null differ diff --git a/pr-preview/pr-6954/img/influxdb/2-4-influxql-holtwinters-1.png b/pr-preview/pr-6954/img/influxdb/2-4-influxql-holtwinters-1.png deleted file mode 100644 index f355c4c14..000000000 Binary files a/pr-preview/pr-6954/img/influxdb/2-4-influxql-holtwinters-1.png and /dev/null differ diff --git a/pr-preview/pr-6954/img/influxdb/2-4-influxql-holtwinters-2.png b/pr-preview/pr-6954/img/influxdb/2-4-influxql-holtwinters-2.png deleted file mode 100644 index 6071275f1..000000000 Binary files a/pr-preview/pr-6954/img/influxdb/2-4-influxql-holtwinters-2.png and /dev/null differ diff --git a/pr-preview/pr-6954/img/influxdb/2-4-influxql-holtwinters-3.png b/pr-preview/pr-6954/img/influxdb/2-4-influxql-holtwinters-3.png deleted file mode 100644 index 83281d657..000000000 Binary files a/pr-preview/pr-6954/img/influxdb/2-4-influxql-holtwinters-3.png and /dev/null differ diff --git a/pr-preview/pr-6954/img/influxdb/2-4-influxql-shell-table-format.png b/pr-preview/pr-6954/img/influxdb/2-4-influxql-shell-table-format.png deleted file mode 100644 index 5b07811c8..000000000 Binary files a/pr-preview/pr-6954/img/influxdb/2-4-influxql-shell-table-format.png and /dev/null differ diff --git a/pr-preview/pr-6954/img/influxdb/3-0-query-plan-tree.png b/pr-preview/pr-6954/img/influxdb/3-0-query-plan-tree.png deleted file mode 100644 index fad64092a..000000000 Binary files a/pr-preview/pr-6954/img/influxdb/3-0-query-plan-tree.png and /dev/null differ diff --git a/pr-preview/pr-6954/img/influxdb/OSS-v1-grafana-product-dropdown-flux.png b/pr-preview/pr-6954/img/influxdb/OSS-v1-grafana-product-dropdown-flux.png deleted file mode 100644 index 3b20ffbae..000000000 Binary files a/pr-preview/pr-6954/img/influxdb/OSS-v1-grafana-product-dropdown-flux.png and /dev/null differ diff --git a/pr-preview/pr-6954/img/influxdb/OSS-v1-grafana-product-dropdown-influxql.png b/pr-preview/pr-6954/img/influxdb/OSS-v1-grafana-product-dropdown-influxql.png deleted file mode 100644 index 87b3de6d4..000000000 Binary files a/pr-preview/pr-6954/img/influxdb/OSS-v1-grafana-product-dropdown-influxql.png and /dev/null differ diff --git a/pr-preview/pr-6954/img/influxdb/cloud-controls-view-raw-data.png b/pr-preview/pr-6954/img/influxdb/cloud-controls-view-raw-data.png deleted file mode 100644 index 70d7cffcb..000000000 Binary files a/pr-preview/pr-6954/img/influxdb/cloud-controls-view-raw-data.png and /dev/null differ diff --git a/pr-preview/pr-6954/img/influxdb/cloud-internals-auth.png b/pr-preview/pr-6954/img/influxdb/cloud-internals-auth.png deleted file mode 100644 index 1d3c4f6bf..000000000 Binary files a/pr-preview/pr-6954/img/influxdb/cloud-internals-auth.png and /dev/null differ diff --git a/pr-preview/pr-6954/img/influxdb/cloud-internals-cluster.png b/pr-preview/pr-6954/img/influxdb/cloud-internals-cluster.png deleted file mode 100644 index bc616c436..000000000 Binary files a/pr-preview/pr-6954/img/influxdb/cloud-internals-cluster.png and /dev/null differ diff --git a/pr-preview/pr-6954/img/influxdb/cloudformation1.png b/pr-preview/pr-6954/img/influxdb/cloudformation1.png deleted file mode 100644 index 96c002c2e..000000000 Binary files a/pr-preview/pr-6954/img/influxdb/cloudformation1.png and /dev/null differ diff --git a/pr-preview/pr-6954/img/influxdb/cloudformation2.png b/pr-preview/pr-6954/img/influxdb/cloudformation2.png deleted file mode 100644 index fd0725987..000000000 Binary files a/pr-preview/pr-6954/img/influxdb/cloudformation2.png and /dev/null differ diff --git a/pr-preview/pr-6954/img/influxdb/influxdb-3-enterprise-dedicated-compactor.png b/pr-preview/pr-6954/img/influxdb/influxdb-3-enterprise-dedicated-compactor.png deleted file mode 100644 index cb5d04957..000000000 Binary files a/pr-preview/pr-6954/img/influxdb/influxdb-3-enterprise-dedicated-compactor.png and /dev/null differ diff --git a/pr-preview/pr-6954/img/influxdb/influxdb-3-enterprise-high-availability.png b/pr-preview/pr-6954/img/influxdb/influxdb-3-enterprise-high-availability.png deleted file mode 100644 index f43eced79..000000000 Binary files a/pr-preview/pr-6954/img/influxdb/influxdb-3-enterprise-high-availability.png and /dev/null differ diff --git a/pr-preview/pr-6954/img/influxdb/influxdb-3-enterprise-workload-isolation.png b/pr-preview/pr-6954/img/influxdb/influxdb-3-enterprise-workload-isolation.png deleted file mode 100644 index 06769d342..000000000 Binary files a/pr-preview/pr-6954/img/influxdb/influxdb-3-enterprise-workload-isolation.png and /dev/null differ diff --git a/pr-preview/pr-6954/img/influxdb/user-icon.png b/pr-preview/pr-6954/img/influxdb/user-icon.png deleted file mode 100644 index 68be783d7..000000000 Binary files a/pr-preview/pr-6954/img/influxdb/user-icon.png and /dev/null differ diff --git a/pr-preview/pr-6954/img/influxdb3/cloud-dedicated-admin-observability-dashboard.png b/pr-preview/pr-6954/img/influxdb3/cloud-dedicated-admin-observability-dashboard.png deleted file mode 100644 index ab0d1284d..000000000 Binary files a/pr-preview/pr-6954/img/influxdb3/cloud-dedicated-admin-observability-dashboard.png and /dev/null differ diff --git a/pr-preview/pr-6954/img/influxdb3/cloud-dedicated-admin-ui-account-switcher.png b/pr-preview/pr-6954/img/influxdb3/cloud-dedicated-admin-ui-account-switcher.png deleted file mode 100644 index 9c0036cc6..000000000 Binary files a/pr-preview/pr-6954/img/influxdb3/cloud-dedicated-admin-ui-account-switcher.png and /dev/null differ diff --git a/pr-preview/pr-6954/img/influxdb3/cloud-dedicated-admin-ui-all-accounts.png b/pr-preview/pr-6954/img/influxdb3/cloud-dedicated-admin-ui-all-accounts.png deleted file mode 100644 index dd6c06987..000000000 Binary files a/pr-preview/pr-6954/img/influxdb3/cloud-dedicated-admin-ui-all-accounts.png and /dev/null differ diff --git a/pr-preview/pr-6954/img/influxdb3/cloud-dedicated-admin-ui-all-clusters.png b/pr-preview/pr-6954/img/influxdb3/cloud-dedicated-admin-ui-all-clusters.png deleted file mode 100644 index 0bd998dd0..000000000 Binary files a/pr-preview/pr-6954/img/influxdb3/cloud-dedicated-admin-ui-all-clusters.png and /dev/null differ diff --git a/pr-preview/pr-6954/img/influxdb3/cloud-dedicated-admin-ui-autoscaling.png b/pr-preview/pr-6954/img/influxdb3/cloud-dedicated-admin-ui-autoscaling.png deleted file mode 100644 index f68df6b3c..000000000 Binary files a/pr-preview/pr-6954/img/influxdb3/cloud-dedicated-admin-ui-autoscaling.png and /dev/null differ diff --git a/pr-preview/pr-6954/img/influxdb3/cloud-dedicated-admin-ui-create-custom-partitioned-table.png b/pr-preview/pr-6954/img/influxdb3/cloud-dedicated-admin-ui-create-custom-partitioned-table.png deleted file mode 100644 index d644a58ba..000000000 Binary files a/pr-preview/pr-6954/img/influxdb3/cloud-dedicated-admin-ui-create-custom-partitioned-table.png and /dev/null differ diff --git a/pr-preview/pr-6954/img/influxdb3/cloud-dedicated-admin-ui-create-database-token.png b/pr-preview/pr-6954/img/influxdb3/cloud-dedicated-admin-ui-create-database-token.png deleted file mode 100644 index 0196eccc0..000000000 Binary files a/pr-preview/pr-6954/img/influxdb3/cloud-dedicated-admin-ui-create-database-token.png and /dev/null differ diff --git a/pr-preview/pr-6954/img/influxdb3/cloud-dedicated-admin-ui-create-database.png b/pr-preview/pr-6954/img/influxdb3/cloud-dedicated-admin-ui-create-database.png deleted file mode 100644 index 8dcf698d1..000000000 Binary files a/pr-preview/pr-6954/img/influxdb3/cloud-dedicated-admin-ui-create-database.png and /dev/null differ diff --git a/pr-preview/pr-6954/img/influxdb3/cloud-dedicated-admin-ui-create-management-token.png b/pr-preview/pr-6954/img/influxdb3/cloud-dedicated-admin-ui-create-management-token.png deleted file mode 100644 index f36bd5365..000000000 Binary files a/pr-preview/pr-6954/img/influxdb3/cloud-dedicated-admin-ui-create-management-token.png and /dev/null differ diff --git a/pr-preview/pr-6954/img/influxdb3/cloud-dedicated-admin-ui-create-table-custom-partitioning.png b/pr-preview/pr-6954/img/influxdb3/cloud-dedicated-admin-ui-create-table-custom-partitioning.png deleted file mode 100644 index 2e1dbc264..000000000 Binary files a/pr-preview/pr-6954/img/influxdb3/cloud-dedicated-admin-ui-create-table-custom-partitioning.png and /dev/null differ diff --git a/pr-preview/pr-6954/img/influxdb3/cloud-dedicated-admin-ui-create-table-default.png b/pr-preview/pr-6954/img/influxdb3/cloud-dedicated-admin-ui-create-table-default.png deleted file mode 100644 index 873e1cc7b..000000000 Binary files a/pr-preview/pr-6954/img/influxdb3/cloud-dedicated-admin-ui-create-table-default.png and /dev/null differ diff --git a/pr-preview/pr-6954/img/influxdb3/cloud-dedicated-admin-ui-database-token-options-menu.png b/pr-preview/pr-6954/img/influxdb3/cloud-dedicated-admin-ui-database-token-options-menu.png deleted file mode 100644 index daeef3bc8..000000000 Binary files a/pr-preview/pr-6954/img/influxdb3/cloud-dedicated-admin-ui-database-token-options-menu.png and /dev/null differ diff --git a/pr-preview/pr-6954/img/influxdb3/cloud-dedicated-admin-ui-database-tokens.png b/pr-preview/pr-6954/img/influxdb3/cloud-dedicated-admin-ui-database-tokens.png deleted file mode 100644 index 463d3293b..000000000 Binary files a/pr-preview/pr-6954/img/influxdb3/cloud-dedicated-admin-ui-database-tokens.png and /dev/null differ diff --git a/pr-preview/pr-6954/img/influxdb3/cloud-dedicated-admin-ui-databases.png b/pr-preview/pr-6954/img/influxdb3/cloud-dedicated-admin-ui-databases.png deleted file mode 100644 index 73d71b77e..000000000 Binary files a/pr-preview/pr-6954/img/influxdb3/cloud-dedicated-admin-ui-databases.png and /dev/null differ diff --git a/pr-preview/pr-6954/img/influxdb3/cloud-dedicated-admin-ui-delete-database.png b/pr-preview/pr-6954/img/influxdb3/cloud-dedicated-admin-ui-delete-database.png deleted file mode 100644 index f16e0e4d1..000000000 Binary files a/pr-preview/pr-6954/img/influxdb3/cloud-dedicated-admin-ui-delete-database.png and /dev/null differ diff --git a/pr-preview/pr-6954/img/influxdb3/cloud-dedicated-admin-ui-edit-database-token.png b/pr-preview/pr-6954/img/influxdb3/cloud-dedicated-admin-ui-edit-database-token.png deleted file mode 100644 index 87bb83e2c..000000000 Binary files a/pr-preview/pr-6954/img/influxdb3/cloud-dedicated-admin-ui-edit-database-token.png and /dev/null differ diff --git a/pr-preview/pr-6954/img/influxdb3/cloud-dedicated-admin-ui-help.png b/pr-preview/pr-6954/img/influxdb3/cloud-dedicated-admin-ui-help.png deleted file mode 100644 index ec01c4a77..000000000 Binary files a/pr-preview/pr-6954/img/influxdb3/cloud-dedicated-admin-ui-help.png and /dev/null differ diff --git a/pr-preview/pr-6954/img/influxdb3/cloud-dedicated-admin-ui-list-databases.png b/pr-preview/pr-6954/img/influxdb3/cloud-dedicated-admin-ui-list-databases.png deleted file mode 100644 index 04a20cf04..000000000 Binary files a/pr-preview/pr-6954/img/influxdb3/cloud-dedicated-admin-ui-list-databases.png and /dev/null differ diff --git a/pr-preview/pr-6954/img/influxdb3/cloud-dedicated-admin-ui-login.png b/pr-preview/pr-6954/img/influxdb3/cloud-dedicated-admin-ui-login.png deleted file mode 100644 index f276e3654..000000000 Binary files a/pr-preview/pr-6954/img/influxdb3/cloud-dedicated-admin-ui-login.png and /dev/null differ diff --git a/pr-preview/pr-6954/img/influxdb3/cloud-dedicated-admin-ui-management-tokens.png b/pr-preview/pr-6954/img/influxdb3/cloud-dedicated-admin-ui-management-tokens.png deleted file mode 100644 index 1e6f3b6fb..000000000 Binary files a/pr-preview/pr-6954/img/influxdb3/cloud-dedicated-admin-ui-management-tokens.png and /dev/null differ diff --git a/pr-preview/pr-6954/img/influxdb3/cloud-dedicated-admin-ui-overview.png b/pr-preview/pr-6954/img/influxdb3/cloud-dedicated-admin-ui-overview.png deleted file mode 100644 index 25b3497f3..000000000 Binary files a/pr-preview/pr-6954/img/influxdb3/cloud-dedicated-admin-ui-overview.png and /dev/null differ diff --git a/pr-preview/pr-6954/img/influxdb3/cloud-dedicated-admin-ui-query-log-detail-view.png b/pr-preview/pr-6954/img/influxdb3/cloud-dedicated-admin-ui-query-log-detail-view.png deleted file mode 100644 index 22da99d63..000000000 Binary files a/pr-preview/pr-6954/img/influxdb3/cloud-dedicated-admin-ui-query-log-detail-view.png and /dev/null differ diff --git a/pr-preview/pr-6954/img/influxdb3/cloud-dedicated-admin-ui-query-log-list-view.png b/pr-preview/pr-6954/img/influxdb3/cloud-dedicated-admin-ui-query-log-list-view.png deleted file mode 100644 index 26ab18414..000000000 Binary files a/pr-preview/pr-6954/img/influxdb3/cloud-dedicated-admin-ui-query-log-list-view.png and /dev/null differ diff --git a/pr-preview/pr-6954/img/influxdb3/cloud-dedicated-admin-ui-revoke-database-token.png b/pr-preview/pr-6954/img/influxdb3/cloud-dedicated-admin-ui-revoke-database-token.png deleted file mode 100644 index 2472d5332..000000000 Binary files a/pr-preview/pr-6954/img/influxdb3/cloud-dedicated-admin-ui-revoke-database-token.png and /dev/null differ diff --git a/pr-preview/pr-6954/img/influxdb3/cloud-dedicated-admin-ui-tables.png b/pr-preview/pr-6954/img/influxdb3/cloud-dedicated-admin-ui-tables.png deleted file mode 100644 index 060204251..000000000 Binary files a/pr-preview/pr-6954/img/influxdb3/cloud-dedicated-admin-ui-tables.png and /dev/null differ diff --git a/pr-preview/pr-6954/img/influxdb3/cloud-dedicated-admin-ui-users.png b/pr-preview/pr-6954/img/influxdb3/cloud-dedicated-admin-ui-users.png deleted file mode 100644 index b74fe5cfe..000000000 Binary files a/pr-preview/pr-6954/img/influxdb3/cloud-dedicated-admin-ui-users.png and /dev/null differ diff --git a/pr-preview/pr-6954/img/influxdb3/cloud-serverless-migration-dashboard.png b/pr-preview/pr-6954/img/influxdb3/cloud-serverless-migration-dashboard.png deleted file mode 100644 index 55078a65d..000000000 Binary files a/pr-preview/pr-6954/img/influxdb3/cloud-serverless-migration-dashboard.png and /dev/null differ diff --git a/pr-preview/pr-6954/img/influxdb3/cloud-serverless-superset-connect.png b/pr-preview/pr-6954/img/influxdb3/cloud-serverless-superset-connect.png deleted file mode 100644 index 779332b3d..000000000 Binary files a/pr-preview/pr-6954/img/influxdb3/cloud-serverless-superset-connect.png and /dev/null differ diff --git a/pr-preview/pr-6954/img/influxdb3/cloud-serverless-superset-dashboard.png b/pr-preview/pr-6954/img/influxdb3/cloud-serverless-superset-dashboard.png deleted file mode 100644 index 45817f446..000000000 Binary files a/pr-preview/pr-6954/img/influxdb3/cloud-serverless-superset-dashboard.png and /dev/null differ diff --git a/pr-preview/pr-6954/img/influxdb3/cloud-serverless-superset-schema.png b/pr-preview/pr-6954/img/influxdb3/cloud-serverless-superset-schema.png deleted file mode 100644 index 32fcde30e..000000000 Binary files a/pr-preview/pr-6954/img/influxdb3/cloud-serverless-superset-schema.png and /dev/null differ diff --git a/pr-preview/pr-6954/img/influxdb3/core-mcp-influxdb3-plugin.png b/pr-preview/pr-6954/img/influxdb3/core-mcp-influxdb3-plugin.png deleted file mode 100644 index a966c96bf..000000000 Binary files a/pr-preview/pr-6954/img/influxdb3/core-mcp-influxdb3-plugin.png and /dev/null differ diff --git a/pr-preview/pr-6954/img/influxdb3/influxdb3-core-enterprise-ingest-path-flow.png b/pr-preview/pr-6954/img/influxdb3/influxdb3-core-enterprise-ingest-path-flow.png deleted file mode 100644 index 1e6daca92..000000000 Binary files a/pr-preview/pr-6954/img/influxdb3/influxdb3-core-enterprise-ingest-path-flow.png and /dev/null differ diff --git a/pr-preview/pr-6954/img/kapacitor/1-4-chrono-add-kapacitor-connection01.png b/pr-preview/pr-6954/img/kapacitor/1-4-chrono-add-kapacitor-connection01.png deleted file mode 100644 index 2b6b46781..000000000 Binary files a/pr-preview/pr-6954/img/kapacitor/1-4-chrono-add-kapacitor-connection01.png and /dev/null differ diff --git a/pr-preview/pr-6954/img/kapacitor/1-4-chrono-add-kapacitor-connection02.png b/pr-preview/pr-6954/img/kapacitor/1-4-chrono-add-kapacitor-connection02.png deleted file mode 100644 index d9c7adc47..000000000 Binary files a/pr-preview/pr-6954/img/kapacitor/1-4-chrono-add-kapacitor-connection02.png and /dev/null differ diff --git a/pr-preview/pr-6954/img/kapacitor/1-4-chrono-add-kapacitor-connection03.png b/pr-preview/pr-6954/img/kapacitor/1-4-chrono-add-kapacitor-connection03.png deleted file mode 100644 index a55c95f8f..000000000 Binary files a/pr-preview/pr-6954/img/kapacitor/1-4-chrono-add-kapacitor-connection03.png and /dev/null differ diff --git a/pr-preview/pr-6954/img/kapacitor/1-4-chrono-add-kapacitor-connection04.png b/pr-preview/pr-6954/img/kapacitor/1-4-chrono-add-kapacitor-connection04.png deleted file mode 100644 index 3271a3b17..000000000 Binary files a/pr-preview/pr-6954/img/kapacitor/1-4-chrono-add-kapacitor-connection04.png and /dev/null differ diff --git a/pr-preview/pr-6954/img/kapacitor/1-4-chrono-configuration01.png b/pr-preview/pr-6954/img/kapacitor/1-4-chrono-configuration01.png deleted file mode 100644 index 51144bdd0..000000000 Binary files a/pr-preview/pr-6954/img/kapacitor/1-4-chrono-configuration01.png and /dev/null differ diff --git a/pr-preview/pr-6954/img/kapacitor/1-4-chrono-configuration02.png b/pr-preview/pr-6954/img/kapacitor/1-4-chrono-configuration02.png deleted file mode 100644 index 947abdb88..000000000 Binary files a/pr-preview/pr-6954/img/kapacitor/1-4-chrono-configuration02.png and /dev/null differ diff --git a/pr-preview/pr-6954/img/kapacitor/1-4-chrono-configuration03.png b/pr-preview/pr-6954/img/kapacitor/1-4-chrono-configuration03.png deleted file mode 100644 index be8ad170a..000000000 Binary files a/pr-preview/pr-6954/img/kapacitor/1-4-chrono-configuration03.png and /dev/null differ diff --git a/pr-preview/pr-6954/img/kapacitor/1-4-chrono-configuration04.png b/pr-preview/pr-6954/img/kapacitor/1-4-chrono-configuration04.png deleted file mode 100644 index 8772a93d0..000000000 Binary files a/pr-preview/pr-6954/img/kapacitor/1-4-chrono-configuration04.png and /dev/null differ diff --git a/pr-preview/pr-6954/img/kapacitor/1-4-chrono-configuration05.png b/pr-preview/pr-6954/img/kapacitor/1-4-chrono-configuration05.png deleted file mode 100644 index 62f2eb390..000000000 Binary files a/pr-preview/pr-6954/img/kapacitor/1-4-chrono-configuration05.png and /dev/null differ diff --git a/pr-preview/pr-6954/img/kapacitor/1-4-chrono-create-alert01.png b/pr-preview/pr-6954/img/kapacitor/1-4-chrono-create-alert01.png deleted file mode 100644 index c16ee976e..000000000 Binary files a/pr-preview/pr-6954/img/kapacitor/1-4-chrono-create-alert01.png and /dev/null differ diff --git a/pr-preview/pr-6954/img/kapacitor/1-4-chrono-create-alert02.png b/pr-preview/pr-6954/img/kapacitor/1-4-chrono-create-alert02.png deleted file mode 100644 index bf7646f0a..000000000 Binary files a/pr-preview/pr-6954/img/kapacitor/1-4-chrono-create-alert02.png and /dev/null differ diff --git a/pr-preview/pr-6954/img/kapacitor/1-4-chrono-create-alert03.png b/pr-preview/pr-6954/img/kapacitor/1-4-chrono-create-alert03.png deleted file mode 100644 index fceab7689..000000000 Binary files a/pr-preview/pr-6954/img/kapacitor/1-4-chrono-create-alert03.png and /dev/null differ diff --git a/pr-preview/pr-6954/img/kapacitor/1-4-chrono-create-alert04.png b/pr-preview/pr-6954/img/kapacitor/1-4-chrono-create-alert04.png deleted file mode 100644 index f15da4b23..000000000 Binary files a/pr-preview/pr-6954/img/kapacitor/1-4-chrono-create-alert04.png and /dev/null differ diff --git a/pr-preview/pr-6954/img/kapacitor/1-4-chrono-create-alert05.png b/pr-preview/pr-6954/img/kapacitor/1-4-chrono-create-alert05.png deleted file mode 100644 index c39846c42..000000000 Binary files a/pr-preview/pr-6954/img/kapacitor/1-4-chrono-create-alert05.png and /dev/null differ diff --git a/pr-preview/pr-6954/img/kapacitor/1-4-chrono-create-alert06.png b/pr-preview/pr-6954/img/kapacitor/1-4-chrono-create-alert06.png deleted file mode 100644 index 391428019..000000000 Binary files a/pr-preview/pr-6954/img/kapacitor/1-4-chrono-create-alert06.png and /dev/null differ diff --git a/pr-preview/pr-6954/img/kapacitor/1-4-chrono-create-alert07.png b/pr-preview/pr-6954/img/kapacitor/1-4-chrono-create-alert07.png deleted file mode 100644 index f0a3d9a22..000000000 Binary files a/pr-preview/pr-6954/img/kapacitor/1-4-chrono-create-alert07.png and /dev/null differ diff --git a/pr-preview/pr-6954/img/kapacitor/1-4-chrono-create-alert08.png b/pr-preview/pr-6954/img/kapacitor/1-4-chrono-create-alert08.png deleted file mode 100644 index 3d39c7c12..000000000 Binary files a/pr-preview/pr-6954/img/kapacitor/1-4-chrono-create-alert08.png and /dev/null differ diff --git a/pr-preview/pr-6954/img/kapacitor/1-4-chrono-delete-rule.png b/pr-preview/pr-6954/img/kapacitor/1-4-chrono-delete-rule.png deleted file mode 100644 index f327960b7..000000000 Binary files a/pr-preview/pr-6954/img/kapacitor/1-4-chrono-delete-rule.png and /dev/null differ diff --git a/pr-preview/pr-6954/img/kapacitor/1-4-chrono-editable-task-in-chrono01.png b/pr-preview/pr-6954/img/kapacitor/1-4-chrono-editable-task-in-chrono01.png deleted file mode 100644 index 5b64d4080..000000000 Binary files a/pr-preview/pr-6954/img/kapacitor/1-4-chrono-editable-task-in-chrono01.png and /dev/null differ diff --git a/pr-preview/pr-6954/img/kapacitor/1-4-chrono-editable-task-in-chrono02.png b/pr-preview/pr-6954/img/kapacitor/1-4-chrono-editable-task-in-chrono02.png deleted file mode 100644 index 6c84ecb35..000000000 Binary files a/pr-preview/pr-6954/img/kapacitor/1-4-chrono-editable-task-in-chrono02.png and /dev/null differ diff --git a/pr-preview/pr-6954/img/kapacitor/1-4-chrono-enable-disable-alerts01.png b/pr-preview/pr-6954/img/kapacitor/1-4-chrono-enable-disable-alerts01.png deleted file mode 100644 index 36cd5040a..000000000 Binary files a/pr-preview/pr-6954/img/kapacitor/1-4-chrono-enable-disable-alerts01.png and /dev/null differ diff --git a/pr-preview/pr-6954/img/kapacitor/1-4-chrono-update-endpoints01.png b/pr-preview/pr-6954/img/kapacitor/1-4-chrono-update-endpoints01.png deleted file mode 100644 index 4b01398e3..000000000 Binary files a/pr-preview/pr-6954/img/kapacitor/1-4-chrono-update-endpoints01.png and /dev/null differ diff --git a/pr-preview/pr-6954/img/kapacitor/1-4-chrono-update-endpoints02.png b/pr-preview/pr-6954/img/kapacitor/1-4-chrono-update-endpoints02.png deleted file mode 100644 index e2a4098b0..000000000 Binary files a/pr-preview/pr-6954/img/kapacitor/1-4-chrono-update-endpoints02.png and /dev/null differ diff --git a/pr-preview/pr-6954/img/kapacitor/1-4-chrono-update-endpoints03.png b/pr-preview/pr-6954/img/kapacitor/1-4-chrono-update-endpoints03.png deleted file mode 100644 index 26146f7cc..000000000 Binary files a/pr-preview/pr-6954/img/kapacitor/1-4-chrono-update-endpoints03.png and /dev/null differ diff --git a/pr-preview/pr-6954/img/kapacitor/1-4-chrono-update-endpoints04.png b/pr-preview/pr-6954/img/kapacitor/1-4-chrono-update-endpoints04.png deleted file mode 100644 index 6d5c89220..000000000 Binary files a/pr-preview/pr-6954/img/kapacitor/1-4-chrono-update-endpoints04.png and /dev/null differ diff --git a/pr-preview/pr-6954/img/kapacitor/1-4-chrono-use-alerts-db01.png b/pr-preview/pr-6954/img/kapacitor/1-4-chrono-use-alerts-db01.png deleted file mode 100644 index aa7f7b9a4..000000000 Binary files a/pr-preview/pr-6954/img/kapacitor/1-4-chrono-use-alerts-db01.png and /dev/null differ diff --git a/pr-preview/pr-6954/img/kapacitor/1-4-chrono-use-alerts-db02.png b/pr-preview/pr-6954/img/kapacitor/1-4-chrono-use-alerts-db02.png deleted file mode 100644 index 3906225d9..000000000 Binary files a/pr-preview/pr-6954/img/kapacitor/1-4-chrono-use-alerts-db02.png and /dev/null differ diff --git a/pr-preview/pr-6954/img/kapacitor/1-4-chrono-view-alert-history01.png b/pr-preview/pr-6954/img/kapacitor/1-4-chrono-view-alert-history01.png deleted file mode 100644 index 8480aebcf..000000000 Binary files a/pr-preview/pr-6954/img/kapacitor/1-4-chrono-view-alert-history01.png and /dev/null differ diff --git a/pr-preview/pr-6954/img/kapacitor/1-4-chrono-view-alert-history02.png b/pr-preview/pr-6954/img/kapacitor/1-4-chrono-view-alert-history02.png deleted file mode 100644 index d0e7b214a..000000000 Binary files a/pr-preview/pr-6954/img/kapacitor/1-4-chrono-view-alert-history02.png and /dev/null differ diff --git a/pr-preview/pr-6954/img/kapacitor/1-4-hipchat-token.png b/pr-preview/pr-6954/img/kapacitor/1-4-hipchat-token.png deleted file mode 100644 index 159441a67..000000000 Binary files a/pr-preview/pr-6954/img/kapacitor/1-4-hipchat-token.png and /dev/null differ diff --git a/pr-preview/pr-6954/img/kapacitor/1-4-pull-metrics.png b/pr-preview/pr-6954/img/kapacitor/1-4-pull-metrics.png deleted file mode 100644 index 43fb8dd17..000000000 Binary files a/pr-preview/pr-6954/img/kapacitor/1-4-pull-metrics.png and /dev/null differ diff --git a/pr-preview/pr-6954/img/kapacitor/1-5-comparing-two-measurements.png b/pr-preview/pr-6954/img/kapacitor/1-5-comparing-two-measurements.png deleted file mode 100644 index 857e2fcea..000000000 Binary files a/pr-preview/pr-6954/img/kapacitor/1-5-comparing-two-measurements.png and /dev/null differ diff --git a/pr-preview/pr-6954/img/platform/troubleshooting-disk-usage.png b/pr-preview/pr-6954/img/platform/troubleshooting-disk-usage.png deleted file mode 100644 index 6dde0a528..000000000 Binary files a/pr-preview/pr-6954/img/platform/troubleshooting-disk-usage.png and /dev/null differ diff --git a/pr-preview/pr-6954/img/platform/troubleshooting-oom-loop.png b/pr-preview/pr-6954/img/platform/troubleshooting-oom-loop.png deleted file mode 100644 index 693bac546..000000000 Binary files a/pr-preview/pr-6954/img/platform/troubleshooting-oom-loop.png and /dev/null differ diff --git a/pr-preview/pr-6954/img/resources/late-arriving-data.png b/pr-preview/pr-6954/img/resources/late-arriving-data.png deleted file mode 100644 index 31ca167bb..000000000 Binary files a/pr-preview/pr-6954/img/resources/late-arriving-data.png and /dev/null differ diff --git a/pr-preview/pr-6954/img/telegraf/controller-agents-list.png b/pr-preview/pr-6954/img/telegraf/controller-agents-list.png deleted file mode 100644 index b46ab5bfa..000000000 Binary files a/pr-preview/pr-6954/img/telegraf/controller-agents-list.png and /dev/null differ diff --git a/pr-preview/pr-6954/img/telegraf/controller-code-editor.png b/pr-preview/pr-6954/img/telegraf/controller-code-editor.png deleted file mode 100644 index 2d8d0c840..000000000 Binary files a/pr-preview/pr-6954/img/telegraf/controller-code-editor.png and /dev/null differ diff --git a/pr-preview/pr-6954/img/telegraf/controller-command-builder.png b/pr-preview/pr-6954/img/telegraf/controller-command-builder.png deleted file mode 100644 index f4fd8ff78..000000000 Binary files a/pr-preview/pr-6954/img/telegraf/controller-command-builder.png and /dev/null differ diff --git a/pr-preview/pr-6954/img/telegraf/controller-telegraf-builder.png b/pr-preview/pr-6954/img/telegraf/controller-telegraf-builder.png deleted file mode 100644 index 9fb1aa72f..000000000 Binary files a/pr-preview/pr-6954/img/telegraf/controller-telegraf-builder.png and /dev/null differ diff --git a/pr-preview/pr-6954/img/telegraf/new-citibike-query.png b/pr-preview/pr-6954/img/telegraf/new-citibike-query.png deleted file mode 100644 index c8287eb3c..000000000 Binary files a/pr-preview/pr-6954/img/telegraf/new-citibike-query.png and /dev/null differ diff --git a/pr-preview/pr-6954/index.html b/pr-preview/pr-6954/index.html deleted file mode 100644 index dfb78fb7b..000000000 --- a/pr-preview/pr-6954/index.html +++ /dev/null @@ -1,73 +0,0 @@ - - - - - - PR Preview - - - -

PR Preview

-

This preview contains 50 page(s):

- -

Generated: 2026-03-16T22:18:57.487Z

- - \ No newline at end of file diff --git a/pr-preview/pr-6954/js/main.js b/pr-preview/pr-6954/js/main.js deleted file mode 100644 index 689d222d7..000000000 --- a/pr-preview/pr-6954/js/main.js +++ /dev/null @@ -1,186379 +0,0 @@ -"use strict"; -(() => { - var __create = Object.create; - var __defProp = Object.defineProperty; - var __getOwnPropDesc = Object.getOwnPropertyDescriptor; - var __getOwnPropNames = Object.getOwnPropertyNames; - var __getProtoOf = Object.getPrototypeOf; - var __hasOwnProp = Object.prototype.hasOwnProperty; - var __esm = (fn3, res) => function __init() { - return fn3 && (res = (0, fn3[__getOwnPropNames(fn3)[0]])(fn3 = 0)), res; - }; - var __commonJS = (cb, mod) => function __require() { - return mod || (0, cb[__getOwnPropNames(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports; - }; - var __export = (target, all) => { - for (var name in all) - __defProp(target, name, { get: all[name], enumerable: true }); - }; - var __copyProps = (to, from2, except, desc) => { - if (from2 && typeof from2 === "object" || typeof from2 === "function") { - for (let key of __getOwnPropNames(from2)) - if (!__hasOwnProp.call(to, key) && key !== except) - __defProp(to, key, { get: () => from2[key], enumerable: !(desc = __getOwnPropDesc(from2, key)) || desc.enumerable }); - } - return to; - }; - var __reExport = (target, mod, secondTarget) => (__copyProps(target, mod, "default"), secondTarget && __copyProps(secondTarget, mod, "default")); - var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps( - // If the importer is in node compatibility mode or this is not an ESM - // file that has been converted to a CommonJS file using a Babel- - // compatible transform (i.e. "__esModule" has not been set), then set - // "default" to the CommonJS "module.exports" for node compatibility. - isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target, - mod - )); - var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod); - - // node_modules/jquery/dist/jquery.js - var require_jquery = __commonJS({ - "node_modules/jquery/dist/jquery.js"(exports2, module2) { - "use strict"; - (function(global2, factory) { - "use strict"; - if (typeof module2 === "object" && typeof module2.exports === "object") { - module2.exports = global2.document ? factory(global2, true) : function(w4) { - if (!w4.document) { - throw new Error("jQuery requires a window with a document"); - } - return factory(w4); - }; - } else { - factory(global2); - } - })(typeof window !== "undefined" ? window : exports2, function(window3, noGlobal) { - "use strict"; - var arr = []; - var getProto = Object.getPrototypeOf; - var slice8 = arr.slice; - var flat = arr.flat ? function(array6) { - return arr.flat.call(array6); - } : function(array6) { - return arr.concat.apply([], array6); - }; - var push3 = arr.push; - var indexOf2 = arr.indexOf; - var class2type = {}; - var toString6 = class2type.toString; - var hasOwn = class2type.hasOwnProperty; - var fnToString = hasOwn.toString; - var ObjectFunctionString = fnToString.call(Object); - var support = {}; - var isFunction2 = function isFunction3(obj) { - return typeof obj === "function" && typeof obj.nodeType !== "number" && typeof obj.item !== "function"; - }; - var isWindow = function isWindow2(obj) { - return obj != null && obj === obj.window; - }; - var document2 = window3.document; - var preservedScriptAttributes = { - type: true, - src: true, - nonce: true, - noModule: true - }; - function DOMEval(code, node2, doc) { - doc = doc || document2; - var i3, val, script = doc.createElement("script"); - script.text = code; - if (node2) { - for (i3 in preservedScriptAttributes) { - val = node2[i3] || node2.getAttribute && node2.getAttribute(i3); - if (val) { - script.setAttribute(i3, val); - } - } - } - doc.head.appendChild(script).parentNode.removeChild(script); - } - function toType(obj) { - if (obj == null) { - return obj + ""; - } - return typeof obj === "object" || typeof obj === "function" ? class2type[toString6.call(obj)] || "object" : typeof obj; - } - var version4 = "3.7.1", rhtmlSuffix = /HTML$/i, jQuery = function(selector, context2) { - return new jQuery.fn.init(selector, context2); - }; - jQuery.fn = jQuery.prototype = { - // The current version of jQuery being used - jquery: version4, - constructor: jQuery, - // The default length of a jQuery object is 0 - length: 0, - toArray: function() { - return slice8.call(this); - }, - // Get the Nth element in the matched element set OR - // Get the whole matched element set as a clean array - get: function(num) { - if (num == null) { - return slice8.call(this); - } - return num < 0 ? this[num + this.length] : this[num]; - }, - // Take an array of elements and push it onto the stack - // (returning the new matched element set) - pushStack: function(elems) { - var ret = jQuery.merge(this.constructor(), elems); - ret.prevObject = this; - return ret; - }, - // Execute a callback for every element in the matched set. - each: function(callback) { - return jQuery.each(this, callback); - }, - map: function(callback) { - return this.pushStack(jQuery.map(this, function(elem, i3) { - return callback.call(elem, i3, elem); - })); - }, - slice: function() { - return this.pushStack(slice8.apply(this, arguments)); - }, - first: function() { - return this.eq(0); - }, - last: function() { - return this.eq(-1); - }, - even: function() { - return this.pushStack(jQuery.grep(this, function(_elem, i3) { - return (i3 + 1) % 2; - })); - }, - odd: function() { - return this.pushStack(jQuery.grep(this, function(_elem, i3) { - return i3 % 2; - })); - }, - eq: function(i3) { - var len = this.length, j3 = +i3 + (i3 < 0 ? len : 0); - return this.pushStack(j3 >= 0 && j3 < len ? [this[j3]] : []); - }, - end: function() { - return this.prevObject || this.constructor(); - }, - // For internal use only. - // Behaves like an Array's method, not like a jQuery method. - push: push3, - sort: arr.sort, - splice: arr.splice - }; - jQuery.extend = jQuery.fn.extend = function() { - var options2, name, src, copy7, copyIsArray, clone7, target = arguments[0] || {}, i3 = 1, length2 = arguments.length, deep = false; - if (typeof target === "boolean") { - deep = target; - target = arguments[i3] || {}; - i3++; - } - if (typeof target !== "object" && !isFunction2(target)) { - target = {}; - } - if (i3 === length2) { - target = this; - i3--; - } - for (; i3 < length2; i3++) { - if ((options2 = arguments[i3]) != null) { - for (name in options2) { - copy7 = options2[name]; - if (name === "__proto__" || target === copy7) { - continue; - } - if (deep && copy7 && (jQuery.isPlainObject(copy7) || (copyIsArray = Array.isArray(copy7)))) { - src = target[name]; - if (copyIsArray && !Array.isArray(src)) { - clone7 = []; - } else if (!copyIsArray && !jQuery.isPlainObject(src)) { - clone7 = {}; - } else { - clone7 = src; - } - copyIsArray = false; - target[name] = jQuery.extend(deep, clone7, copy7); - } else if (copy7 !== void 0) { - target[name] = copy7; - } - } - } - } - return target; - }; - jQuery.extend({ - // Unique for each copy of jQuery on the page - expando: "jQuery" + (version4 + Math.random()).replace(/\D/g, ""), - // Assume jQuery is ready without the ready module - isReady: true, - error: function(msg) { - throw new Error(msg); - }, - noop: function() { - }, - isPlainObject: function(obj) { - var proto, Ctor; - if (!obj || toString6.call(obj) !== "[object Object]") { - return false; - } - proto = getProto(obj); - if (!proto) { - return true; - } - Ctor = hasOwn.call(proto, "constructor") && proto.constructor; - return typeof Ctor === "function" && fnToString.call(Ctor) === ObjectFunctionString; - }, - isEmptyObject: function(obj) { - var name; - for (name in obj) { - return false; - } - return true; - }, - // Evaluates a script in a provided context; falls back to the global one - // if not specified. - globalEval: function(code, options2, doc) { - DOMEval(code, { nonce: options2 && options2.nonce }, doc); - }, - each: function(obj, callback) { - var length2, i3 = 0; - if (isArrayLike2(obj)) { - length2 = obj.length; - for (; i3 < length2; i3++) { - if (callback.call(obj[i3], i3, obj[i3]) === false) { - break; - } - } - } else { - for (i3 in obj) { - if (callback.call(obj[i3], i3, obj[i3]) === false) { - break; - } - } - } - return obj; - }, - // Retrieve the text value of an array of DOM nodes - text: function(elem) { - var node2, ret = "", i3 = 0, nodeType3 = elem.nodeType; - if (!nodeType3) { - while (node2 = elem[i3++]) { - ret += jQuery.text(node2); - } - } - if (nodeType3 === 1 || nodeType3 === 11) { - return elem.textContent; - } - if (nodeType3 === 9) { - return elem.documentElement.textContent; - } - if (nodeType3 === 3 || nodeType3 === 4) { - return elem.nodeValue; - } - return ret; - }, - // results is for internal usage only - makeArray: function(arr2, results) { - var ret = results || []; - if (arr2 != null) { - if (isArrayLike2(Object(arr2))) { - jQuery.merge( - ret, - typeof arr2 === "string" ? [arr2] : arr2 - ); - } else { - push3.call(ret, arr2); - } - } - return ret; - }, - inArray: function(elem, arr2, i3) { - return arr2 == null ? -1 : indexOf2.call(arr2, elem, i3); - }, - isXMLDoc: function(elem) { - var namespace = elem && elem.namespaceURI, docElem = elem && (elem.ownerDocument || elem).documentElement; - return !rhtmlSuffix.test(namespace || docElem && docElem.nodeName || "HTML"); - }, - // Support: Android <=4.0 only, PhantomJS 1 only - // push.apply(_, arraylike) throws on ancient WebKit - merge: function(first3, second2) { - var len = +second2.length, j3 = 0, i3 = first3.length; - for (; j3 < len; j3++) { - first3[i3++] = second2[j3]; - } - first3.length = i3; - return first3; - }, - grep: function(elems, callback, invert3) { - var callbackInverse, matches34 = [], i3 = 0, length2 = elems.length, callbackExpect = !invert3; - for (; i3 < length2; i3++) { - callbackInverse = !callback(elems[i3], i3); - if (callbackInverse !== callbackExpect) { - matches34.push(elems[i3]); - } - } - return matches34; - }, - // arg is for internal usage only - map: function(elems, callback, arg) { - var length2, value2, i3 = 0, ret = []; - if (isArrayLike2(elems)) { - length2 = elems.length; - for (; i3 < length2; i3++) { - value2 = callback(elems[i3], i3, arg); - if (value2 != null) { - ret.push(value2); - } - } - } else { - for (i3 in elems) { - value2 = callback(elems[i3], i3, arg); - if (value2 != null) { - ret.push(value2); - } - } - } - return flat(ret); - }, - // A global GUID counter for objects - guid: 1, - // jQuery.support is not used in Core but other projects attach their - // properties to it so it needs to exist. - support - }); - if (typeof Symbol === "function") { - jQuery.fn[Symbol.iterator] = arr[Symbol.iterator]; - } - jQuery.each( - "Boolean Number String Function Array Date RegExp Object Error Symbol".split(" "), - function(_i, name) { - class2type["[object " + name + "]"] = name.toLowerCase(); - } - ); - function isArrayLike2(obj) { - var length2 = !!obj && "length" in obj && obj.length, type3 = toType(obj); - if (isFunction2(obj) || isWindow(obj)) { - return false; - } - return type3 === "array" || length2 === 0 || typeof length2 === "number" && length2 > 0 && length2 - 1 in obj; - } - function nodeName(elem, name) { - return elem.nodeName && elem.nodeName.toLowerCase() === name.toLowerCase(); - } - var pop = arr.pop; - var sort4 = arr.sort; - var splice4 = arr.splice; - var whitespace2 = "[\\x20\\t\\r\\n\\f]"; - var rtrimCSS = new RegExp( - "^" + whitespace2 + "+|((?:^|[^\\\\])(?:\\\\.)*)" + whitespace2 + "+$", - "g" - ); - jQuery.contains = function(a3, b11) { - var bup = b11 && b11.parentNode; - return a3 === bup || !!(bup && bup.nodeType === 1 && // Support: IE 9 - 11+ - // IE doesn't have `contains` on SVG. - (a3.contains ? a3.contains(bup) : a3.compareDocumentPosition && a3.compareDocumentPosition(bup) & 16)); - }; - var rcssescape = /([\0-\x1f\x7f]|^-?\d)|^-$|[^\x80-\uFFFF\w-]/g; - function fcssescape(ch, asCodePoint) { - if (asCodePoint) { - if (ch === "\0") { - return "\uFFFD"; - } - return ch.slice(0, -1) + "\\" + ch.charCodeAt(ch.length - 1).toString(16) + " "; - } - return "\\" + ch; - } - jQuery.escapeSelector = function(sel) { - return (sel + "").replace(rcssescape, fcssescape); - }; - var preferredDoc = document2, pushNative = push3; - (function() { - var i3, Expr, outermostContext, sortInput, hasDuplicate, push4 = pushNative, document3, documentElement2, documentIsHTML, rbuggyQSA, matches34, expando = jQuery.expando, dirruns = 0, done = 0, classCache = createCache(), tokenCache = createCache(), compilerCache = createCache(), nonnativeSelectorCache = createCache(), sortOrder = function(a3, b11) { - if (a3 === b11) { - hasDuplicate = true; - } - return 0; - }, booleans = "checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped", identifier2 = "(?:\\\\[\\da-fA-F]{1,6}" + whitespace2 + "?|\\\\[^\\r\\n\\f]|[\\w-]|[^\0-\\x7f])+", attributes = "\\[" + whitespace2 + "*(" + identifier2 + ")(?:" + whitespace2 + // Operator (capture 2) - "*([*^$|!~]?=)" + whitespace2 + // "Attribute values must be CSS identifiers [capture 5] or strings [capture 3 or capture 4]" - `*(?:'((?:\\\\.|[^\\\\'])*)'|"((?:\\\\.|[^\\\\"])*)"|(` + identifier2 + "))|)" + whitespace2 + "*\\]", pseudos = ":(" + identifier2 + `)(?:\\((('((?:\\\\.|[^\\\\'])*)'|"((?:\\\\.|[^\\\\"])*)")|((?:\\\\.|[^\\\\()[\\]]|` + attributes + ")*)|.*)\\)|)", rwhitespace = new RegExp(whitespace2 + "+", "g"), rcomma = new RegExp("^" + whitespace2 + "*," + whitespace2 + "*"), rleadingCombinator = new RegExp("^" + whitespace2 + "*([>+~]|" + whitespace2 + ")" + whitespace2 + "*"), rdescend = new RegExp(whitespace2 + "|>"), rpseudo = new RegExp(pseudos), ridentifier = new RegExp("^" + identifier2 + "$"), matchExpr = { - ID: new RegExp("^#(" + identifier2 + ")"), - CLASS: new RegExp("^\\.(" + identifier2 + ")"), - TAG: new RegExp("^(" + identifier2 + "|[*])"), - ATTR: new RegExp("^" + attributes), - PSEUDO: new RegExp("^" + pseudos), - CHILD: new RegExp( - "^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\(" + whitespace2 + "*(even|odd|(([+-]|)(\\d*)n|)" + whitespace2 + "*(?:([+-]|)" + whitespace2 + "*(\\d+)|))" + whitespace2 + "*\\)|)", - "i" - ), - bool: new RegExp("^(?:" + booleans + ")$", "i"), - // For use in libraries implementing .is() - // We use this for POS matching in `select` - needsContext: new RegExp("^" + whitespace2 + "*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\(" + whitespace2 + "*((?:-\\d)?\\d*)" + whitespace2 + "*\\)|)(?=[^-]|$)", "i") - }, rinputs = /^(?:input|select|textarea|button)$/i, rheader = /^h\d$/i, rquickExpr2 = /^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/, rsibling = /[+~]/, runescape = new RegExp("\\\\[\\da-fA-F]{1,6}" + whitespace2 + "?|\\\\([^\\r\\n\\f])", "g"), funescape = function(escape4, nonHex) { - var high = "0x" + escape4.slice(1) - 65536; - if (nonHex) { - return nonHex; - } - return high < 0 ? String.fromCharCode(high + 65536) : String.fromCharCode(high >> 10 | 55296, high & 1023 | 56320); - }, unloadHandler = function() { - setDocument(); - }, inDisabledFieldset = addCombinator( - function(elem) { - return elem.disabled === true && nodeName(elem, "fieldset"); - }, - { dir: "parentNode", next: "legend" } - ); - function safeActiveElement() { - try { - return document3.activeElement; - } catch (err) { - } - } - try { - push4.apply( - arr = slice8.call(preferredDoc.childNodes), - preferredDoc.childNodes - ); - arr[preferredDoc.childNodes.length].nodeType; - } catch (e3) { - push4 = { - apply: function(target, els) { - pushNative.apply(target, slice8.call(els)); - }, - call: function(target) { - pushNative.apply(target, slice8.call(arguments, 1)); - } - }; - } - function find4(selector, context2, results, seed) { - var m3, i4, elem, nid, match3, groups2, newSelector, newContext = context2 && context2.ownerDocument, nodeType3 = context2 ? context2.nodeType : 9; - results = results || []; - if (typeof selector !== "string" || !selector || nodeType3 !== 1 && nodeType3 !== 9 && nodeType3 !== 11) { - return results; - } - if (!seed) { - setDocument(context2); - context2 = context2 || document3; - if (documentIsHTML) { - if (nodeType3 !== 11 && (match3 = rquickExpr2.exec(selector))) { - if (m3 = match3[1]) { - if (nodeType3 === 9) { - if (elem = context2.getElementById(m3)) { - if (elem.id === m3) { - push4.call(results, elem); - return results; - } - } else { - return results; - } - } else { - if (newContext && (elem = newContext.getElementById(m3)) && find4.contains(context2, elem) && elem.id === m3) { - push4.call(results, elem); - return results; - } - } - } else if (match3[2]) { - push4.apply(results, context2.getElementsByTagName(selector)); - return results; - } else if ((m3 = match3[3]) && context2.getElementsByClassName) { - push4.apply(results, context2.getElementsByClassName(m3)); - return results; - } - } - if (!nonnativeSelectorCache[selector + " "] && (!rbuggyQSA || !rbuggyQSA.test(selector))) { - newSelector = selector; - newContext = context2; - if (nodeType3 === 1 && (rdescend.test(selector) || rleadingCombinator.test(selector))) { - newContext = rsibling.test(selector) && testContext(context2.parentNode) || context2; - if (newContext != context2 || !support.scope) { - if (nid = context2.getAttribute("id")) { - nid = jQuery.escapeSelector(nid); - } else { - context2.setAttribute("id", nid = expando); - } - } - groups2 = tokenize3(selector); - i4 = groups2.length; - while (i4--) { - groups2[i4] = (nid ? "#" + nid : ":scope") + " " + toSelector(groups2[i4]); - } - newSelector = groups2.join(","); - } - try { - push4.apply( - results, - newContext.querySelectorAll(newSelector) - ); - return results; - } catch (qsaError) { - nonnativeSelectorCache(selector, true); - } finally { - if (nid === expando) { - context2.removeAttribute("id"); - } - } - } - } - } - return select(selector.replace(rtrimCSS, "$1"), context2, results, seed); - } - function createCache() { - var keys2 = []; - function cache3(key, value2) { - if (keys2.push(key + " ") > Expr.cacheLength) { - delete cache3[keys2.shift()]; - } - return cache3[key + " "] = value2; - } - return cache3; - } - function markFunction(fn3) { - fn3[expando] = true; - return fn3; - } - function assert(fn3) { - var el = document3.createElement("fieldset"); - try { - return !!fn3(el); - } catch (e3) { - return false; - } finally { - if (el.parentNode) { - el.parentNode.removeChild(el); - } - el = null; - } - } - function createInputPseudo(type3) { - return function(elem) { - return nodeName(elem, "input") && elem.type === type3; - }; - } - function createButtonPseudo(type3) { - return function(elem) { - return (nodeName(elem, "input") || nodeName(elem, "button")) && elem.type === type3; - }; - } - function createDisabledPseudo(disabled) { - return function(elem) { - if ("form" in elem) { - if (elem.parentNode && elem.disabled === false) { - if ("label" in elem) { - if ("label" in elem.parentNode) { - return elem.parentNode.disabled === disabled; - } else { - return elem.disabled === disabled; - } - } - return elem.isDisabled === disabled || // Where there is no isDisabled, check manually - elem.isDisabled !== !disabled && inDisabledFieldset(elem) === disabled; - } - return elem.disabled === disabled; - } else if ("label" in elem) { - return elem.disabled === disabled; - } - return false; - }; - } - function createPositionalPseudo(fn3) { - return markFunction(function(argument) { - argument = +argument; - return markFunction(function(seed, matches35) { - var j3, matchIndexes = fn3([], seed.length, argument), i4 = matchIndexes.length; - while (i4--) { - if (seed[j3 = matchIndexes[i4]]) { - seed[j3] = !(matches35[j3] = seed[j3]); - } - } - }); - }); - } - function testContext(context2) { - return context2 && typeof context2.getElementsByTagName !== "undefined" && context2; - } - function setDocument(node2) { - var subWindow, doc = node2 ? node2.ownerDocument || node2 : preferredDoc; - if (doc == document3 || doc.nodeType !== 9 || !doc.documentElement) { - return document3; - } - document3 = doc; - documentElement2 = document3.documentElement; - documentIsHTML = !jQuery.isXMLDoc(document3); - matches34 = documentElement2.matches || documentElement2.webkitMatchesSelector || documentElement2.msMatchesSelector; - if (documentElement2.msMatchesSelector && // Support: IE 11+, Edge 17 - 18+ - // IE/Edge sometimes throw a "Permission denied" error when strict-comparing - // two documents; shallow comparisons work. - // eslint-disable-next-line eqeqeq - preferredDoc != document3 && (subWindow = document3.defaultView) && subWindow.top !== subWindow) { - subWindow.addEventListener("unload", unloadHandler); - } - support.getById = assert(function(el) { - documentElement2.appendChild(el).id = jQuery.expando; - return !document3.getElementsByName || !document3.getElementsByName(jQuery.expando).length; - }); - support.disconnectedMatch = assert(function(el) { - return matches34.call(el, "*"); - }); - support.scope = assert(function() { - return document3.querySelectorAll(":scope"); - }); - support.cssHas = assert(function() { - try { - document3.querySelector(":has(*,:jqfake)"); - return false; - } catch (e3) { - return true; - } - }); - if (support.getById) { - Expr.filter.ID = function(id28) { - var attrId = id28.replace(runescape, funescape); - return function(elem) { - return elem.getAttribute("id") === attrId; - }; - }; - Expr.find.ID = function(id28, context2) { - if (typeof context2.getElementById !== "undefined" && documentIsHTML) { - var elem = context2.getElementById(id28); - return elem ? [elem] : []; - } - }; - } else { - Expr.filter.ID = function(id28) { - var attrId = id28.replace(runescape, funescape); - return function(elem) { - var node3 = typeof elem.getAttributeNode !== "undefined" && elem.getAttributeNode("id"); - return node3 && node3.value === attrId; - }; - }; - Expr.find.ID = function(id28, context2) { - if (typeof context2.getElementById !== "undefined" && documentIsHTML) { - var node3, i4, elems, elem = context2.getElementById(id28); - if (elem) { - node3 = elem.getAttributeNode("id"); - if (node3 && node3.value === id28) { - return [elem]; - } - elems = context2.getElementsByName(id28); - i4 = 0; - while (elem = elems[i4++]) { - node3 = elem.getAttributeNode("id"); - if (node3 && node3.value === id28) { - return [elem]; - } - } - } - return []; - } - }; - } - Expr.find.TAG = function(tag, context2) { - if (typeof context2.getElementsByTagName !== "undefined") { - return context2.getElementsByTagName(tag); - } else { - return context2.querySelectorAll(tag); - } - }; - Expr.find.CLASS = function(className, context2) { - if (typeof context2.getElementsByClassName !== "undefined" && documentIsHTML) { - return context2.getElementsByClassName(className); - } - }; - rbuggyQSA = []; - assert(function(el) { - var input; - documentElement2.appendChild(el).innerHTML = ""; - if (!el.querySelectorAll("[selected]").length) { - rbuggyQSA.push("\\[" + whitespace2 + "*(?:value|" + booleans + ")"); - } - if (!el.querySelectorAll("[id~=" + expando + "-]").length) { - rbuggyQSA.push("~="); - } - if (!el.querySelectorAll("a#" + expando + "+*").length) { - rbuggyQSA.push(".#.+[+~]"); - } - if (!el.querySelectorAll(":checked").length) { - rbuggyQSA.push(":checked"); - } - input = document3.createElement("input"); - input.setAttribute("type", "hidden"); - el.appendChild(input).setAttribute("name", "D"); - documentElement2.appendChild(el).disabled = true; - if (el.querySelectorAll(":disabled").length !== 2) { - rbuggyQSA.push(":enabled", ":disabled"); - } - input = document3.createElement("input"); - input.setAttribute("name", ""); - el.appendChild(input); - if (!el.querySelectorAll("[name='']").length) { - rbuggyQSA.push("\\[" + whitespace2 + "*name" + whitespace2 + "*=" + whitespace2 + `*(?:''|"")`); - } - }); - if (!support.cssHas) { - rbuggyQSA.push(":has"); - } - rbuggyQSA = rbuggyQSA.length && new RegExp(rbuggyQSA.join("|")); - sortOrder = function(a3, b11) { - if (a3 === b11) { - hasDuplicate = true; - return 0; - } - var compare = !a3.compareDocumentPosition - !b11.compareDocumentPosition; - if (compare) { - return compare; - } - compare = (a3.ownerDocument || a3) == (b11.ownerDocument || b11) ? a3.compareDocumentPosition(b11) : ( - // Otherwise we know they are disconnected - 1 - ); - if (compare & 1 || !support.sortDetached && b11.compareDocumentPosition(a3) === compare) { - if (a3 === document3 || a3.ownerDocument == preferredDoc && find4.contains(preferredDoc, a3)) { - return -1; - } - if (b11 === document3 || b11.ownerDocument == preferredDoc && find4.contains(preferredDoc, b11)) { - return 1; - } - return sortInput ? indexOf2.call(sortInput, a3) - indexOf2.call(sortInput, b11) : 0; - } - return compare & 4 ? -1 : 1; - }; - return document3; - } - find4.matches = function(expr, elements2) { - return find4(expr, null, null, elements2); - }; - find4.matchesSelector = function(elem, expr) { - setDocument(elem); - if (documentIsHTML && !nonnativeSelectorCache[expr + " "] && (!rbuggyQSA || !rbuggyQSA.test(expr))) { - try { - var ret = matches34.call(elem, expr); - if (ret || support.disconnectedMatch || // As well, disconnected nodes are said to be in a document - // fragment in IE 9 - elem.document && elem.document.nodeType !== 11) { - return ret; - } - } catch (e3) { - nonnativeSelectorCache(expr, true); - } - } - return find4(expr, document3, null, [elem]).length > 0; - }; - find4.contains = function(context2, elem) { - if ((context2.ownerDocument || context2) != document3) { - setDocument(context2); - } - return jQuery.contains(context2, elem); - }; - find4.attr = function(elem, name) { - if ((elem.ownerDocument || elem) != document3) { - setDocument(elem); - } - var fn3 = Expr.attrHandle[name.toLowerCase()], val = fn3 && hasOwn.call(Expr.attrHandle, name.toLowerCase()) ? fn3(elem, name, !documentIsHTML) : void 0; - if (val !== void 0) { - return val; - } - return elem.getAttribute(name); - }; - find4.error = function(msg) { - throw new Error("Syntax error, unrecognized expression: " + msg); - }; - jQuery.uniqueSort = function(results) { - var elem, duplicates = [], j3 = 0, i4 = 0; - hasDuplicate = !support.sortStable; - sortInput = !support.sortStable && slice8.call(results, 0); - sort4.call(results, sortOrder); - if (hasDuplicate) { - while (elem = results[i4++]) { - if (elem === results[i4]) { - j3 = duplicates.push(i4); - } - } - while (j3--) { - splice4.call(results, duplicates[j3], 1); - } - } - sortInput = null; - return results; - }; - jQuery.fn.uniqueSort = function() { - return this.pushStack(jQuery.uniqueSort(slice8.apply(this))); - }; - Expr = jQuery.expr = { - // Can be adjusted by the user - cacheLength: 50, - createPseudo: markFunction, - match: matchExpr, - attrHandle: {}, - find: {}, - relative: { - ">": { dir: "parentNode", first: true }, - " ": { dir: "parentNode" }, - "+": { dir: "previousSibling", first: true }, - "~": { dir: "previousSibling" } - }, - preFilter: { - ATTR: function(match3) { - match3[1] = match3[1].replace(runescape, funescape); - match3[3] = (match3[3] || match3[4] || match3[5] || "").replace(runescape, funescape); - if (match3[2] === "~=") { - match3[3] = " " + match3[3] + " "; - } - return match3.slice(0, 4); - }, - CHILD: function(match3) { - match3[1] = match3[1].toLowerCase(); - if (match3[1].slice(0, 3) === "nth") { - if (!match3[3]) { - find4.error(match3[0]); - } - match3[4] = +(match3[4] ? match3[5] + (match3[6] || 1) : 2 * (match3[3] === "even" || match3[3] === "odd")); - match3[5] = +(match3[7] + match3[8] || match3[3] === "odd"); - } else if (match3[3]) { - find4.error(match3[0]); - } - return match3; - }, - PSEUDO: function(match3) { - var excess, unquoted = !match3[6] && match3[2]; - if (matchExpr.CHILD.test(match3[0])) { - return null; - } - if (match3[3]) { - match3[2] = match3[4] || match3[5] || ""; - } else if (unquoted && rpseudo.test(unquoted) && // Get excess from tokenize (recursively) - (excess = tokenize3(unquoted, true)) && // advance to the next closing parenthesis - (excess = unquoted.indexOf(")", unquoted.length - excess) - unquoted.length)) { - match3[0] = match3[0].slice(0, excess); - match3[2] = unquoted.slice(0, excess); - } - return match3.slice(0, 3); - } - }, - filter: { - TAG: function(nodeNameSelector) { - var expectedNodeName = nodeNameSelector.replace(runescape, funescape).toLowerCase(); - return nodeNameSelector === "*" ? function() { - return true; - } : function(elem) { - return nodeName(elem, expectedNodeName); - }; - }, - CLASS: function(className) { - var pattern = classCache[className + " "]; - return pattern || (pattern = new RegExp("(^|" + whitespace2 + ")" + className + "(" + whitespace2 + "|$)")) && classCache(className, function(elem) { - return pattern.test( - typeof elem.className === "string" && elem.className || typeof elem.getAttribute !== "undefined" && elem.getAttribute("class") || "" - ); - }); - }, - ATTR: function(name, operator, check) { - return function(elem) { - var result2 = find4.attr(elem, name); - if (result2 == null) { - return operator === "!="; - } - if (!operator) { - return true; - } - result2 += ""; - if (operator === "=") { - return result2 === check; - } - if (operator === "!=") { - return result2 !== check; - } - if (operator === "^=") { - return check && result2.indexOf(check) === 0; - } - if (operator === "*=") { - return check && result2.indexOf(check) > -1; - } - if (operator === "$=") { - return check && result2.slice(-check.length) === check; - } - if (operator === "~=") { - return (" " + result2.replace(rwhitespace, " ") + " ").indexOf(check) > -1; - } - if (operator === "|=") { - return result2 === check || result2.slice(0, check.length + 1) === check + "-"; - } - return false; - }; - }, - CHILD: function(type3, what, _argument, first3, last3) { - var simple = type3.slice(0, 3) !== "nth", forward = type3.slice(-4) !== "last", ofType = what === "of-type"; - return first3 === 1 && last3 === 0 ? ( - // Shortcut for :nth-*(n) - function(elem) { - return !!elem.parentNode; - } - ) : function(elem, _context, xml2) { - var cache3, outerCache, node2, nodeIndex, start3, dir3 = simple !== forward ? "nextSibling" : "previousSibling", parent5 = elem.parentNode, name = ofType && elem.nodeName.toLowerCase(), useCache = !xml2 && !ofType, diff2 = false; - if (parent5) { - if (simple) { - while (dir3) { - node2 = elem; - while (node2 = node2[dir3]) { - if (ofType ? nodeName(node2, name) : node2.nodeType === 1) { - return false; - } - } - start3 = dir3 = type3 === "only" && !start3 && "nextSibling"; - } - return true; - } - start3 = [forward ? parent5.firstChild : parent5.lastChild]; - if (forward && useCache) { - outerCache = parent5[expando] || (parent5[expando] = {}); - cache3 = outerCache[type3] || []; - nodeIndex = cache3[0] === dirruns && cache3[1]; - diff2 = nodeIndex && cache3[2]; - node2 = nodeIndex && parent5.childNodes[nodeIndex]; - while (node2 = ++nodeIndex && node2 && node2[dir3] || // Fallback to seeking `elem` from the start - (diff2 = nodeIndex = 0) || start3.pop()) { - if (node2.nodeType === 1 && ++diff2 && node2 === elem) { - outerCache[type3] = [dirruns, nodeIndex, diff2]; - break; - } - } - } else { - if (useCache) { - outerCache = elem[expando] || (elem[expando] = {}); - cache3 = outerCache[type3] || []; - nodeIndex = cache3[0] === dirruns && cache3[1]; - diff2 = nodeIndex; - } - if (diff2 === false) { - while (node2 = ++nodeIndex && node2 && node2[dir3] || (diff2 = nodeIndex = 0) || start3.pop()) { - if ((ofType ? nodeName(node2, name) : node2.nodeType === 1) && ++diff2) { - if (useCache) { - outerCache = node2[expando] || (node2[expando] = {}); - outerCache[type3] = [dirruns, diff2]; - } - if (node2 === elem) { - break; - } - } - } - } - } - diff2 -= last3; - return diff2 === first3 || diff2 % first3 === 0 && diff2 / first3 >= 0; - } - }; - }, - PSEUDO: function(pseudo, argument) { - var args, fn3 = Expr.pseudos[pseudo] || Expr.setFilters[pseudo.toLowerCase()] || find4.error("unsupported pseudo: " + pseudo); - if (fn3[expando]) { - return fn3(argument); - } - if (fn3.length > 1) { - args = [pseudo, pseudo, "", argument]; - return Expr.setFilters.hasOwnProperty(pseudo.toLowerCase()) ? markFunction(function(seed, matches35) { - var idx, matched = fn3(seed, argument), i4 = matched.length; - while (i4--) { - idx = indexOf2.call(seed, matched[i4]); - seed[idx] = !(matches35[idx] = matched[i4]); - } - }) : function(elem) { - return fn3(elem, 0, args); - }; - } - return fn3; - } - }, - pseudos: { - // Potentially complex pseudos - not: markFunction(function(selector) { - var input = [], results = [], matcher = compile2(selector.replace(rtrimCSS, "$1")); - return matcher[expando] ? markFunction(function(seed, matches35, _context, xml2) { - var elem, unmatched = matcher(seed, null, xml2, []), i4 = seed.length; - while (i4--) { - if (elem = unmatched[i4]) { - seed[i4] = !(matches35[i4] = elem); - } - } - }) : function(elem, _context, xml2) { - input[0] = elem; - matcher(input, null, xml2, results); - input[0] = null; - return !results.pop(); - }; - }), - has: markFunction(function(selector) { - return function(elem) { - return find4(selector, elem).length > 0; - }; - }), - contains: markFunction(function(text4) { - text4 = text4.replace(runescape, funescape); - return function(elem) { - return (elem.textContent || jQuery.text(elem)).indexOf(text4) > -1; - }; - }), - // "Whether an element is represented by a :lang() selector - // is based solely on the element's language value - // being equal to the identifier C, - // or beginning with the identifier C immediately followed by "-". - // The matching of C against the element's language value is performed case-insensitively. - // The identifier C does not have to be a valid language name." - // https://www.w3.org/TR/selectors/#lang-pseudo - lang: markFunction(function(lang) { - if (!ridentifier.test(lang || "")) { - find4.error("unsupported lang: " + lang); - } - lang = lang.replace(runescape, funescape).toLowerCase(); - return function(elem) { - var elemLang; - do { - if (elemLang = documentIsHTML ? elem.lang : elem.getAttribute("xml:lang") || elem.getAttribute("lang")) { - elemLang = elemLang.toLowerCase(); - return elemLang === lang || elemLang.indexOf(lang + "-") === 0; - } - } while ((elem = elem.parentNode) && elem.nodeType === 1); - return false; - }; - }), - // Miscellaneous - target: function(elem) { - var hash2 = window3.location && window3.location.hash; - return hash2 && hash2.slice(1) === elem.id; - }, - root: function(elem) { - return elem === documentElement2; - }, - focus: function(elem) { - return elem === safeActiveElement() && document3.hasFocus() && !!(elem.type || elem.href || ~elem.tabIndex); - }, - // Boolean properties - enabled: createDisabledPseudo(false), - disabled: createDisabledPseudo(true), - checked: function(elem) { - return nodeName(elem, "input") && !!elem.checked || nodeName(elem, "option") && !!elem.selected; - }, - selected: function(elem) { - if (elem.parentNode) { - elem.parentNode.selectedIndex; - } - return elem.selected === true; - }, - // Contents - empty: function(elem) { - for (elem = elem.firstChild; elem; elem = elem.nextSibling) { - if (elem.nodeType < 6) { - return false; - } - } - return true; - }, - parent: function(elem) { - return !Expr.pseudos.empty(elem); - }, - // Element/input types - header: function(elem) { - return rheader.test(elem.nodeName); - }, - input: function(elem) { - return rinputs.test(elem.nodeName); - }, - button: function(elem) { - return nodeName(elem, "input") && elem.type === "button" || nodeName(elem, "button"); - }, - text: function(elem) { - var attr; - return nodeName(elem, "input") && elem.type === "text" && // Support: IE <10 only - // New HTML5 attribute values (e.g., "search") appear - // with elem.type === "text" - ((attr = elem.getAttribute("type")) == null || attr.toLowerCase() === "text"); - }, - // Position-in-collection - first: createPositionalPseudo(function() { - return [0]; - }), - last: createPositionalPseudo(function(_matchIndexes, length2) { - return [length2 - 1]; - }), - eq: createPositionalPseudo(function(_matchIndexes, length2, argument) { - return [argument < 0 ? argument + length2 : argument]; - }), - even: createPositionalPseudo(function(matchIndexes, length2) { - var i4 = 0; - for (; i4 < length2; i4 += 2) { - matchIndexes.push(i4); - } - return matchIndexes; - }), - odd: createPositionalPseudo(function(matchIndexes, length2) { - var i4 = 1; - for (; i4 < length2; i4 += 2) { - matchIndexes.push(i4); - } - return matchIndexes; - }), - lt: createPositionalPseudo(function(matchIndexes, length2, argument) { - var i4; - if (argument < 0) { - i4 = argument + length2; - } else if (argument > length2) { - i4 = length2; - } else { - i4 = argument; - } - for (; --i4 >= 0; ) { - matchIndexes.push(i4); - } - return matchIndexes; - }), - gt: createPositionalPseudo(function(matchIndexes, length2, argument) { - var i4 = argument < 0 ? argument + length2 : argument; - for (; ++i4 < length2; ) { - matchIndexes.push(i4); - } - return matchIndexes; - }) - } - }; - Expr.pseudos.nth = Expr.pseudos.eq; - for (i3 in { radio: true, checkbox: true, file: true, password: true, image: true }) { - Expr.pseudos[i3] = createInputPseudo(i3); - } - for (i3 in { submit: true, reset: true }) { - Expr.pseudos[i3] = createButtonPseudo(i3); - } - function setFilters() { - } - setFilters.prototype = Expr.filters = Expr.pseudos; - Expr.setFilters = new setFilters(); - function tokenize3(selector, parseOnly) { - var matched, match3, tokens2, type3, soFar, groups2, preFilters, cached = tokenCache[selector + " "]; - if (cached) { - return parseOnly ? 0 : cached.slice(0); - } - soFar = selector; - groups2 = []; - preFilters = Expr.preFilter; - while (soFar) { - if (!matched || (match3 = rcomma.exec(soFar))) { - if (match3) { - soFar = soFar.slice(match3[0].length) || soFar; - } - groups2.push(tokens2 = []); - } - matched = false; - if (match3 = rleadingCombinator.exec(soFar)) { - matched = match3.shift(); - tokens2.push({ - value: matched, - // Cast descendant combinators to space - type: match3[0].replace(rtrimCSS, " ") - }); - soFar = soFar.slice(matched.length); - } - for (type3 in Expr.filter) { - if ((match3 = matchExpr[type3].exec(soFar)) && (!preFilters[type3] || (match3 = preFilters[type3](match3)))) { - matched = match3.shift(); - tokens2.push({ - value: matched, - type: type3, - matches: match3 - }); - soFar = soFar.slice(matched.length); - } - } - if (!matched) { - break; - } - } - if (parseOnly) { - return soFar.length; - } - return soFar ? find4.error(selector) : ( - // Cache the tokens - tokenCache(selector, groups2).slice(0) - ); - } - function toSelector(tokens2) { - var i4 = 0, len = tokens2.length, selector = ""; - for (; i4 < len; i4++) { - selector += tokens2[i4].value; - } - return selector; - } - function addCombinator(matcher, combinator, base) { - var dir3 = combinator.dir, skip = combinator.next, key = skip || dir3, checkNonElements = base && key === "parentNode", doneName = done++; - return combinator.first ? ( - // Check against closest ancestor/preceding element - function(elem, context2, xml2) { - while (elem = elem[dir3]) { - if (elem.nodeType === 1 || checkNonElements) { - return matcher(elem, context2, xml2); - } - } - return false; - } - ) : ( - // Check against all ancestor/preceding elements - function(elem, context2, xml2) { - var oldCache, outerCache, newCache = [dirruns, doneName]; - if (xml2) { - while (elem = elem[dir3]) { - if (elem.nodeType === 1 || checkNonElements) { - if (matcher(elem, context2, xml2)) { - return true; - } - } - } - } else { - while (elem = elem[dir3]) { - if (elem.nodeType === 1 || checkNonElements) { - outerCache = elem[expando] || (elem[expando] = {}); - if (skip && nodeName(elem, skip)) { - elem = elem[dir3] || elem; - } else if ((oldCache = outerCache[key]) && oldCache[0] === dirruns && oldCache[1] === doneName) { - return newCache[2] = oldCache[2]; - } else { - outerCache[key] = newCache; - if (newCache[2] = matcher(elem, context2, xml2)) { - return true; - } - } - } - } - } - return false; - } - ); - } - function elementMatcher(matchers) { - return matchers.length > 1 ? function(elem, context2, xml2) { - var i4 = matchers.length; - while (i4--) { - if (!matchers[i4](elem, context2, xml2)) { - return false; - } - } - return true; - } : matchers[0]; - } - function multipleContexts(selector, contexts, results) { - var i4 = 0, len = contexts.length; - for (; i4 < len; i4++) { - find4(selector, contexts[i4], results); - } - return results; - } - function condense(unmatched, map8, filter9, context2, xml2) { - var elem, newUnmatched = [], i4 = 0, len = unmatched.length, mapped = map8 != null; - for (; i4 < len; i4++) { - if (elem = unmatched[i4]) { - if (!filter9 || filter9(elem, context2, xml2)) { - newUnmatched.push(elem); - if (mapped) { - map8.push(i4); - } - } - } - } - return newUnmatched; - } - function setMatcher(preFilter, selector, matcher, postFilter, postFinder, postSelector) { - if (postFilter && !postFilter[expando]) { - postFilter = setMatcher(postFilter); - } - if (postFinder && !postFinder[expando]) { - postFinder = setMatcher(postFinder, postSelector); - } - return markFunction(function(seed, results, context2, xml2) { - var temp, i4, elem, matcherOut, preMap = [], postMap = [], preexisting = results.length, elems = seed || multipleContexts( - selector || "*", - context2.nodeType ? [context2] : context2, - [] - ), matcherIn = preFilter && (seed || !selector) ? condense(elems, preMap, preFilter, context2, xml2) : elems; - if (matcher) { - matcherOut = postFinder || (seed ? preFilter : preexisting || postFilter) ? ( - // ...intermediate processing is necessary - [] - ) : ( - // ...otherwise use results directly - results - ); - matcher(matcherIn, matcherOut, context2, xml2); - } else { - matcherOut = matcherIn; - } - if (postFilter) { - temp = condense(matcherOut, postMap); - postFilter(temp, [], context2, xml2); - i4 = temp.length; - while (i4--) { - if (elem = temp[i4]) { - matcherOut[postMap[i4]] = !(matcherIn[postMap[i4]] = elem); - } - } - } - if (seed) { - if (postFinder || preFilter) { - if (postFinder) { - temp = []; - i4 = matcherOut.length; - while (i4--) { - if (elem = matcherOut[i4]) { - temp.push(matcherIn[i4] = elem); - } - } - postFinder(null, matcherOut = [], temp, xml2); - } - i4 = matcherOut.length; - while (i4--) { - if ((elem = matcherOut[i4]) && (temp = postFinder ? indexOf2.call(seed, elem) : preMap[i4]) > -1) { - seed[temp] = !(results[temp] = elem); - } - } - } - } else { - matcherOut = condense( - matcherOut === results ? matcherOut.splice(preexisting, matcherOut.length) : matcherOut - ); - if (postFinder) { - postFinder(null, results, matcherOut, xml2); - } else { - push4.apply(results, matcherOut); - } - } - }); - } - function matcherFromTokens(tokens2) { - var checkContext, matcher, j3, len = tokens2.length, leadingRelative = Expr.relative[tokens2[0].type], implicitRelative = leadingRelative || Expr.relative[" "], i4 = leadingRelative ? 1 : 0, matchContext = addCombinator(function(elem) { - return elem === checkContext; - }, implicitRelative, true), matchAnyContext = addCombinator(function(elem) { - return indexOf2.call(checkContext, elem) > -1; - }, implicitRelative, true), matchers = [function(elem, context2, xml2) { - var ret = !leadingRelative && (xml2 || context2 != outermostContext) || ((checkContext = context2).nodeType ? matchContext(elem, context2, xml2) : matchAnyContext(elem, context2, xml2)); - checkContext = null; - return ret; - }]; - for (; i4 < len; i4++) { - if (matcher = Expr.relative[tokens2[i4].type]) { - matchers = [addCombinator(elementMatcher(matchers), matcher)]; - } else { - matcher = Expr.filter[tokens2[i4].type].apply(null, tokens2[i4].matches); - if (matcher[expando]) { - j3 = ++i4; - for (; j3 < len; j3++) { - if (Expr.relative[tokens2[j3].type]) { - break; - } - } - return setMatcher( - i4 > 1 && elementMatcher(matchers), - i4 > 1 && toSelector( - // If the preceding token was a descendant combinator, insert an implicit any-element `*` - tokens2.slice(0, i4 - 1).concat({ value: tokens2[i4 - 2].type === " " ? "*" : "" }) - ).replace(rtrimCSS, "$1"), - matcher, - i4 < j3 && matcherFromTokens(tokens2.slice(i4, j3)), - j3 < len && matcherFromTokens(tokens2 = tokens2.slice(j3)), - j3 < len && toSelector(tokens2) - ); - } - matchers.push(matcher); - } - } - return elementMatcher(matchers); - } - function matcherFromGroupMatchers(elementMatchers, setMatchers) { - var bySet = setMatchers.length > 0, byElement = elementMatchers.length > 0, superMatcher = function(seed, context2, xml2, results, outermost) { - var elem, j3, matcher, matchedCount = 0, i4 = "0", unmatched = seed && [], setMatched = [], contextBackup = outermostContext, elems = seed || byElement && Expr.find.TAG("*", outermost), dirrunsUnique = dirruns += contextBackup == null ? 1 : Math.random() || 0.1, len = elems.length; - if (outermost) { - outermostContext = context2 == document3 || context2 || outermost; - } - for (; i4 !== len && (elem = elems[i4]) != null; i4++) { - if (byElement && elem) { - j3 = 0; - if (!context2 && elem.ownerDocument != document3) { - setDocument(elem); - xml2 = !documentIsHTML; - } - while (matcher = elementMatchers[j3++]) { - if (matcher(elem, context2 || document3, xml2)) { - push4.call(results, elem); - break; - } - } - if (outermost) { - dirruns = dirrunsUnique; - } - } - if (bySet) { - if (elem = !matcher && elem) { - matchedCount--; - } - if (seed) { - unmatched.push(elem); - } - } - } - matchedCount += i4; - if (bySet && i4 !== matchedCount) { - j3 = 0; - while (matcher = setMatchers[j3++]) { - matcher(unmatched, setMatched, context2, xml2); - } - if (seed) { - if (matchedCount > 0) { - while (i4--) { - if (!(unmatched[i4] || setMatched[i4])) { - setMatched[i4] = pop.call(results); - } - } - } - setMatched = condense(setMatched); - } - push4.apply(results, setMatched); - if (outermost && !seed && setMatched.length > 0 && matchedCount + setMatchers.length > 1) { - jQuery.uniqueSort(results); - } - } - if (outermost) { - dirruns = dirrunsUnique; - outermostContext = contextBackup; - } - return unmatched; - }; - return bySet ? markFunction(superMatcher) : superMatcher; - } - function compile2(selector, match3) { - var i4, setMatchers = [], elementMatchers = [], cached = compilerCache[selector + " "]; - if (!cached) { - if (!match3) { - match3 = tokenize3(selector); - } - i4 = match3.length; - while (i4--) { - cached = matcherFromTokens(match3[i4]); - if (cached[expando]) { - setMatchers.push(cached); - } else { - elementMatchers.push(cached); - } - } - cached = compilerCache( - selector, - matcherFromGroupMatchers(elementMatchers, setMatchers) - ); - cached.selector = selector; - } - return cached; - } - function select(selector, context2, results, seed) { - var i4, tokens2, token2, type3, find5, compiled = typeof selector === "function" && selector, match3 = !seed && tokenize3(selector = compiled.selector || selector); - results = results || []; - if (match3.length === 1) { - tokens2 = match3[0] = match3[0].slice(0); - if (tokens2.length > 2 && (token2 = tokens2[0]).type === "ID" && context2.nodeType === 9 && documentIsHTML && Expr.relative[tokens2[1].type]) { - context2 = (Expr.find.ID( - token2.matches[0].replace(runescape, funescape), - context2 - ) || [])[0]; - if (!context2) { - return results; - } else if (compiled) { - context2 = context2.parentNode; - } - selector = selector.slice(tokens2.shift().value.length); - } - i4 = matchExpr.needsContext.test(selector) ? 0 : tokens2.length; - while (i4--) { - token2 = tokens2[i4]; - if (Expr.relative[type3 = token2.type]) { - break; - } - if (find5 = Expr.find[type3]) { - if (seed = find5( - token2.matches[0].replace(runescape, funescape), - rsibling.test(tokens2[0].type) && testContext(context2.parentNode) || context2 - )) { - tokens2.splice(i4, 1); - selector = seed.length && toSelector(tokens2); - if (!selector) { - push4.apply(results, seed); - return results; - } - break; - } - } - } - } - (compiled || compile2(selector, match3))( - seed, - context2, - !documentIsHTML, - results, - !context2 || rsibling.test(selector) && testContext(context2.parentNode) || context2 - ); - return results; - } - support.sortStable = expando.split("").sort(sortOrder).join("") === expando; - setDocument(); - support.sortDetached = assert(function(el) { - return el.compareDocumentPosition(document3.createElement("fieldset")) & 1; - }); - jQuery.find = find4; - jQuery.expr[":"] = jQuery.expr.pseudos; - jQuery.unique = jQuery.uniqueSort; - find4.compile = compile2; - find4.select = select; - find4.setDocument = setDocument; - find4.tokenize = tokenize3; - find4.escape = jQuery.escapeSelector; - find4.getText = jQuery.text; - find4.isXML = jQuery.isXMLDoc; - find4.selectors = jQuery.expr; - find4.support = jQuery.support; - find4.uniqueSort = jQuery.uniqueSort; - })(); - var dir2 = function(elem, dir3, until) { - var matched = [], truncate2 = until !== void 0; - while ((elem = elem[dir3]) && elem.nodeType !== 9) { - if (elem.nodeType === 1) { - if (truncate2 && jQuery(elem).is(until)) { - break; - } - matched.push(elem); - } - } - return matched; - }; - var siblings2 = function(n2, elem) { - var matched = []; - for (; n2; n2 = n2.nextSibling) { - if (n2.nodeType === 1 && n2 !== elem) { - matched.push(n2); - } - } - return matched; - }; - var rneedsContext = jQuery.expr.match.needsContext; - var rsingleTag = /^<([a-z][^\/\0>:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i; - function winnow(elements2, qualifier, not2) { - if (isFunction2(qualifier)) { - return jQuery.grep(elements2, function(elem, i3) { - return !!qualifier.call(elem, i3, elem) !== not2; - }); - } - if (qualifier.nodeType) { - return jQuery.grep(elements2, function(elem) { - return elem === qualifier !== not2; - }); - } - if (typeof qualifier !== "string") { - return jQuery.grep(elements2, function(elem) { - return indexOf2.call(qualifier, elem) > -1 !== not2; - }); - } - return jQuery.filter(qualifier, elements2, not2); - } - jQuery.filter = function(expr, elems, not2) { - var elem = elems[0]; - if (not2) { - expr = ":not(" + expr + ")"; - } - if (elems.length === 1 && elem.nodeType === 1) { - return jQuery.find.matchesSelector(elem, expr) ? [elem] : []; - } - return jQuery.find.matches(expr, jQuery.grep(elems, function(elem2) { - return elem2.nodeType === 1; - })); - }; - jQuery.fn.extend({ - find: function(selector) { - var i3, ret, len = this.length, self2 = this; - if (typeof selector !== "string") { - return this.pushStack(jQuery(selector).filter(function() { - for (i3 = 0; i3 < len; i3++) { - if (jQuery.contains(self2[i3], this)) { - return true; - } - } - })); - } - ret = this.pushStack([]); - for (i3 = 0; i3 < len; i3++) { - jQuery.find(selector, self2[i3], ret); - } - return len > 1 ? jQuery.uniqueSort(ret) : ret; - }, - filter: function(selector) { - return this.pushStack(winnow(this, selector || [], false)); - }, - not: function(selector) { - return this.pushStack(winnow(this, selector || [], true)); - }, - is: function(selector) { - return !!winnow( - this, - // If this is a positional/relative selector, check membership in the returned set - // so $("p:first").is("p:last") won't return true for a doc with two "p". - typeof selector === "string" && rneedsContext.test(selector) ? jQuery(selector) : selector || [], - false - ).length; - } - }); - var rootjQuery, rquickExpr = /^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]+))$/, init4 = jQuery.fn.init = function(selector, context2, root3) { - var match3, elem; - if (!selector) { - return this; - } - root3 = root3 || rootjQuery; - if (typeof selector === "string") { - if (selector[0] === "<" && selector[selector.length - 1] === ">" && selector.length >= 3) { - match3 = [null, selector, null]; - } else { - match3 = rquickExpr.exec(selector); - } - if (match3 && (match3[1] || !context2)) { - if (match3[1]) { - context2 = context2 instanceof jQuery ? context2[0] : context2; - jQuery.merge(this, jQuery.parseHTML( - match3[1], - context2 && context2.nodeType ? context2.ownerDocument || context2 : document2, - true - )); - if (rsingleTag.test(match3[1]) && jQuery.isPlainObject(context2)) { - for (match3 in context2) { - if (isFunction2(this[match3])) { - this[match3](context2[match3]); - } else { - this.attr(match3, context2[match3]); - } - } - } - return this; - } else { - elem = document2.getElementById(match3[2]); - if (elem) { - this[0] = elem; - this.length = 1; - } - return this; - } - } else if (!context2 || context2.jquery) { - return (context2 || root3).find(selector); - } else { - return this.constructor(context2).find(selector); - } - } else if (selector.nodeType) { - this[0] = selector; - this.length = 1; - return this; - } else if (isFunction2(selector)) { - return root3.ready !== void 0 ? root3.ready(selector) : ( - // Execute immediately if ready is not present - selector(jQuery) - ); - } - return jQuery.makeArray(selector, this); - }; - init4.prototype = jQuery.fn; - rootjQuery = jQuery(document2); - var rparentsprev = /^(?:parents|prev(?:Until|All))/, guaranteedUnique = { - children: true, - contents: true, - next: true, - prev: true - }; - jQuery.fn.extend({ - has: function(target) { - var targets = jQuery(target, this), l4 = targets.length; - return this.filter(function() { - var i3 = 0; - for (; i3 < l4; i3++) { - if (jQuery.contains(this, targets[i3])) { - return true; - } - } - }); - }, - closest: function(selectors, context2) { - var cur, i3 = 0, l4 = this.length, matched = [], targets = typeof selectors !== "string" && jQuery(selectors); - if (!rneedsContext.test(selectors)) { - for (; i3 < l4; i3++) { - for (cur = this[i3]; cur && cur !== context2; cur = cur.parentNode) { - if (cur.nodeType < 11 && (targets ? targets.index(cur) > -1 : ( - // Don't pass non-elements to jQuery#find - cur.nodeType === 1 && jQuery.find.matchesSelector(cur, selectors) - ))) { - matched.push(cur); - break; - } - } - } - } - return this.pushStack(matched.length > 1 ? jQuery.uniqueSort(matched) : matched); - }, - // Determine the position of an element within the set - index: function(elem) { - if (!elem) { - return this[0] && this[0].parentNode ? this.first().prevAll().length : -1; - } - if (typeof elem === "string") { - return indexOf2.call(jQuery(elem), this[0]); - } - return indexOf2.call( - this, - // If it receives a jQuery object, the first element is used - elem.jquery ? elem[0] : elem - ); - }, - add: function(selector, context2) { - return this.pushStack( - jQuery.uniqueSort( - jQuery.merge(this.get(), jQuery(selector, context2)) - ) - ); - }, - addBack: function(selector) { - return this.add( - selector == null ? this.prevObject : this.prevObject.filter(selector) - ); - } - }); - function sibling(cur, dir3) { - while ((cur = cur[dir3]) && cur.nodeType !== 1) { - } - return cur; - } - jQuery.each({ - parent: function(elem) { - var parent5 = elem.parentNode; - return parent5 && parent5.nodeType !== 11 ? parent5 : null; - }, - parents: function(elem) { - return dir2(elem, "parentNode"); - }, - parentsUntil: function(elem, _i, until) { - return dir2(elem, "parentNode", until); - }, - next: function(elem) { - return sibling(elem, "nextSibling"); - }, - prev: function(elem) { - return sibling(elem, "previousSibling"); - }, - nextAll: function(elem) { - return dir2(elem, "nextSibling"); - }, - prevAll: function(elem) { - return dir2(elem, "previousSibling"); - }, - nextUntil: function(elem, _i, until) { - return dir2(elem, "nextSibling", until); - }, - prevUntil: function(elem, _i, until) { - return dir2(elem, "previousSibling", until); - }, - siblings: function(elem) { - return siblings2((elem.parentNode || {}).firstChild, elem); - }, - children: function(elem) { - return siblings2(elem.firstChild); - }, - contents: function(elem) { - if (elem.contentDocument != null && // Support: IE 11+ - // elements with no `data` attribute has an object - // `contentDocument` with a `null` prototype. - getProto(elem.contentDocument)) { - return elem.contentDocument; - } - if (nodeName(elem, "template")) { - elem = elem.content || elem; - } - return jQuery.merge([], elem.childNodes); - } - }, function(name, fn3) { - jQuery.fn[name] = function(until, selector) { - var matched = jQuery.map(this, fn3, until); - if (name.slice(-5) !== "Until") { - selector = until; - } - if (selector && typeof selector === "string") { - matched = jQuery.filter(selector, matched); - } - if (this.length > 1) { - if (!guaranteedUnique[name]) { - jQuery.uniqueSort(matched); - } - if (rparentsprev.test(name)) { - matched.reverse(); - } - } - return this.pushStack(matched); - }; - }); - var rnothtmlwhite = /[^\x20\t\r\n\f]+/g; - function createOptions(options2) { - var object3 = {}; - jQuery.each(options2.match(rnothtmlwhite) || [], function(_3, flag) { - object3[flag] = true; - }); - return object3; - } - jQuery.Callbacks = function(options2) { - options2 = typeof options2 === "string" ? createOptions(options2) : jQuery.extend({}, options2); - var firing, memory, fired, locked, list = [], queue = [], firingIndex = -1, fire = function() { - locked = locked || options2.once; - fired = firing = true; - for (; queue.length; firingIndex = -1) { - memory = queue.shift(); - while (++firingIndex < list.length) { - if (list[firingIndex].apply(memory[0], memory[1]) === false && options2.stopOnFalse) { - firingIndex = list.length; - memory = false; - } - } - } - if (!options2.memory) { - memory = false; - } - firing = false; - if (locked) { - if (memory) { - list = []; - } else { - list = ""; - } - } - }, self2 = { - // Add a callback or a collection of callbacks to the list - add: function() { - if (list) { - if (memory && !firing) { - firingIndex = list.length - 1; - queue.push(memory); - } - (function add6(args) { - jQuery.each(args, function(_3, arg) { - if (isFunction2(arg)) { - if (!options2.unique || !self2.has(arg)) { - list.push(arg); - } - } else if (arg && arg.length && toType(arg) !== "string") { - add6(arg); - } - }); - })(arguments); - if (memory && !firing) { - fire(); - } - } - return this; - }, - // Remove a callback from the list - remove: function() { - jQuery.each(arguments, function(_3, arg) { - var index2; - while ((index2 = jQuery.inArray(arg, list, index2)) > -1) { - list.splice(index2, 1); - if (index2 <= firingIndex) { - firingIndex--; - } - } - }); - return this; - }, - // Check if a given callback is in the list. - // If no argument is given, return whether or not list has callbacks attached. - has: function(fn3) { - return fn3 ? jQuery.inArray(fn3, list) > -1 : list.length > 0; - }, - // Remove all callbacks from the list - empty: function() { - if (list) { - list = []; - } - return this; - }, - // Disable .fire and .add - // Abort any current/pending executions - // Clear all callbacks and values - disable: function() { - locked = queue = []; - list = memory = ""; - return this; - }, - disabled: function() { - return !list; - }, - // Disable .fire - // Also disable .add unless we have memory (since it would have no effect) - // Abort any pending executions - lock: function() { - locked = queue = []; - if (!memory && !firing) { - list = memory = ""; - } - return this; - }, - locked: function() { - return !!locked; - }, - // Call all callbacks with the given context and arguments - fireWith: function(context2, args) { - if (!locked) { - args = args || []; - args = [context2, args.slice ? args.slice() : args]; - queue.push(args); - if (!firing) { - fire(); - } - } - return this; - }, - // Call all the callbacks with the given arguments - fire: function() { - self2.fireWith(this, arguments); - return this; - }, - // To know if the callbacks have already been called at least once - fired: function() { - return !!fired; - } - }; - return self2; - }; - function Identity(v6) { - return v6; - } - function Thrower(ex) { - throw ex; - } - function adoptValue(value2, resolve2, reject3, noValue) { - var method2; - try { - if (value2 && isFunction2(method2 = value2.promise)) { - method2.call(value2).done(resolve2).fail(reject3); - } else if (value2 && isFunction2(method2 = value2.then)) { - method2.call(value2, resolve2, reject3); - } else { - resolve2.apply(void 0, [value2].slice(noValue)); - } - } catch (value3) { - reject3.apply(void 0, [value3]); - } - } - jQuery.extend({ - Deferred: function(func) { - var tuples = [ - // action, add listener, callbacks, - // ... .then handlers, argument index, [final state] - [ - "notify", - "progress", - jQuery.Callbacks("memory"), - jQuery.Callbacks("memory"), - 2 - ], - [ - "resolve", - "done", - jQuery.Callbacks("once memory"), - jQuery.Callbacks("once memory"), - 0, - "resolved" - ], - [ - "reject", - "fail", - jQuery.Callbacks("once memory"), - jQuery.Callbacks("once memory"), - 1, - "rejected" - ] - ], state4 = "pending", promise4 = { - state: function() { - return state4; - }, - always: function() { - deferred.done(arguments).fail(arguments); - return this; - }, - "catch": function(fn3) { - return promise4.then(null, fn3); - }, - // Keep pipe for back-compat - pipe: function() { - var fns = arguments; - return jQuery.Deferred(function(newDefer) { - jQuery.each(tuples, function(_i, tuple) { - var fn3 = isFunction2(fns[tuple[4]]) && fns[tuple[4]]; - deferred[tuple[1]](function() { - var returned = fn3 && fn3.apply(this, arguments); - if (returned && isFunction2(returned.promise)) { - returned.promise().progress(newDefer.notify).done(newDefer.resolve).fail(newDefer.reject); - } else { - newDefer[tuple[0] + "With"]( - this, - fn3 ? [returned] : arguments - ); - } - }); - }); - fns = null; - }).promise(); - }, - then: function(onFulfilled, onRejected, onProgress) { - var maxDepth = 0; - function resolve2(depth, deferred2, handler, special) { - return function() { - var that = this, args = arguments, mightThrow = function() { - var returned, then2; - if (depth < maxDepth) { - return; - } - returned = handler.apply(that, args); - if (returned === deferred2.promise()) { - throw new TypeError("Thenable self-resolution"); - } - then2 = returned && // Support: Promises/A+ section 2.3.4 - // https://promisesaplus.com/#point-64 - // Only check objects and functions for thenability - (typeof returned === "object" || typeof returned === "function") && returned.then; - if (isFunction2(then2)) { - if (special) { - then2.call( - returned, - resolve2(maxDepth, deferred2, Identity, special), - resolve2(maxDepth, deferred2, Thrower, special) - ); - } else { - maxDepth++; - then2.call( - returned, - resolve2(maxDepth, deferred2, Identity, special), - resolve2(maxDepth, deferred2, Thrower, special), - resolve2( - maxDepth, - deferred2, - Identity, - deferred2.notifyWith - ) - ); - } - } else { - if (handler !== Identity) { - that = void 0; - args = [returned]; - } - (special || deferred2.resolveWith)(that, args); - } - }, process2 = special ? mightThrow : function() { - try { - mightThrow(); - } catch (e3) { - if (jQuery.Deferred.exceptionHook) { - jQuery.Deferred.exceptionHook( - e3, - process2.error - ); - } - if (depth + 1 >= maxDepth) { - if (handler !== Thrower) { - that = void 0; - args = [e3]; - } - deferred2.rejectWith(that, args); - } - } - }; - if (depth) { - process2(); - } else { - if (jQuery.Deferred.getErrorHook) { - process2.error = jQuery.Deferred.getErrorHook(); - } else if (jQuery.Deferred.getStackHook) { - process2.error = jQuery.Deferred.getStackHook(); - } - window3.setTimeout(process2); - } - }; - } - return jQuery.Deferred(function(newDefer) { - tuples[0][3].add( - resolve2( - 0, - newDefer, - isFunction2(onProgress) ? onProgress : Identity, - newDefer.notifyWith - ) - ); - tuples[1][3].add( - resolve2( - 0, - newDefer, - isFunction2(onFulfilled) ? onFulfilled : Identity - ) - ); - tuples[2][3].add( - resolve2( - 0, - newDefer, - isFunction2(onRejected) ? onRejected : Thrower - ) - ); - }).promise(); - }, - // Get a promise for this deferred - // If obj is provided, the promise aspect is added to the object - promise: function(obj) { - return obj != null ? jQuery.extend(obj, promise4) : promise4; - } - }, deferred = {}; - jQuery.each(tuples, function(i3, tuple) { - var list = tuple[2], stateString = tuple[5]; - promise4[tuple[1]] = list.add; - if (stateString) { - list.add( - function() { - state4 = stateString; - }, - // rejected_callbacks.disable - // fulfilled_callbacks.disable - tuples[3 - i3][2].disable, - // rejected_handlers.disable - // fulfilled_handlers.disable - tuples[3 - i3][3].disable, - // progress_callbacks.lock - tuples[0][2].lock, - // progress_handlers.lock - tuples[0][3].lock - ); - } - list.add(tuple[3].fire); - deferred[tuple[0]] = function() { - deferred[tuple[0] + "With"](this === deferred ? void 0 : this, arguments); - return this; - }; - deferred[tuple[0] + "With"] = list.fireWith; - }); - promise4.promise(deferred); - if (func) { - func.call(deferred, deferred); - } - return deferred; - }, - // Deferred helper - when: function(singleValue) { - var remaining = arguments.length, i3 = remaining, resolveContexts = Array(i3), resolveValues = slice8.call(arguments), primary = jQuery.Deferred(), updateFunc = function(i4) { - return function(value2) { - resolveContexts[i4] = this; - resolveValues[i4] = arguments.length > 1 ? slice8.call(arguments) : value2; - if (!--remaining) { - primary.resolveWith(resolveContexts, resolveValues); - } - }; - }; - if (remaining <= 1) { - adoptValue( - singleValue, - primary.done(updateFunc(i3)).resolve, - primary.reject, - !remaining - ); - if (primary.state() === "pending" || isFunction2(resolveValues[i3] && resolveValues[i3].then)) { - return primary.then(); - } - } - while (i3--) { - adoptValue(resolveValues[i3], updateFunc(i3), primary.reject); - } - return primary.promise(); - } - }); - var rerrorNames = /^(Eval|Internal|Range|Reference|Syntax|Type|URI)Error$/; - jQuery.Deferred.exceptionHook = function(error3, asyncError) { - if (window3.console && window3.console.warn && error3 && rerrorNames.test(error3.name)) { - window3.console.warn( - "jQuery.Deferred exception: " + error3.message, - error3.stack, - asyncError - ); - } - }; - jQuery.readyException = function(error3) { - window3.setTimeout(function() { - throw error3; - }); - }; - var readyList = jQuery.Deferred(); - jQuery.fn.ready = function(fn3) { - readyList.then(fn3).catch(function(error3) { - jQuery.readyException(error3); - }); - return this; - }; - jQuery.extend({ - // Is the DOM ready to be used? Set to true once it occurs. - isReady: false, - // A counter to track how many items to wait for before - // the ready event fires. See trac-6781 - readyWait: 1, - // Handle when the DOM is ready - ready: function(wait) { - if (wait === true ? --jQuery.readyWait : jQuery.isReady) { - return; - } - jQuery.isReady = true; - if (wait !== true && --jQuery.readyWait > 0) { - return; - } - readyList.resolveWith(document2, [jQuery]); - } - }); - jQuery.ready.then = readyList.then; - function completed2() { - document2.removeEventListener("DOMContentLoaded", completed2); - window3.removeEventListener("load", completed2); - jQuery.ready(); - } - if (document2.readyState === "complete" || document2.readyState !== "loading" && !document2.documentElement.doScroll) { - window3.setTimeout(jQuery.ready); - } else { - document2.addEventListener("DOMContentLoaded", completed2); - window3.addEventListener("load", completed2); - } - var access = function(elems, fn3, key, value2, chainable, emptyGet, raw) { - var i3 = 0, len = elems.length, bulk = key == null; - if (toType(key) === "object") { - chainable = true; - for (i3 in key) { - access(elems, fn3, i3, key[i3], true, emptyGet, raw); - } - } else if (value2 !== void 0) { - chainable = true; - if (!isFunction2(value2)) { - raw = true; - } - if (bulk) { - if (raw) { - fn3.call(elems, value2); - fn3 = null; - } else { - bulk = fn3; - fn3 = function(elem, _key, value3) { - return bulk.call(jQuery(elem), value3); - }; - } - } - if (fn3) { - for (; i3 < len; i3++) { - fn3( - elems[i3], - key, - raw ? value2 : value2.call(elems[i3], i3, fn3(elems[i3], key)) - ); - } - } - } - if (chainable) { - return elems; - } - if (bulk) { - return fn3.call(elems); - } - return len ? fn3(elems[0], key) : emptyGet; - }; - var rmsPrefix = /^-ms-/, rdashAlpha = /-([a-z])/g; - function fcamelCase(_all, letter) { - return letter.toUpperCase(); - } - function camelCase2(string3) { - return string3.replace(rmsPrefix, "ms-").replace(rdashAlpha, fcamelCase); - } - var acceptData = function(owner) { - return owner.nodeType === 1 || owner.nodeType === 9 || !+owner.nodeType; - }; - function Data() { - this.expando = jQuery.expando + Data.uid++; - } - Data.uid = 1; - Data.prototype = { - cache: function(owner) { - var value2 = owner[this.expando]; - if (!value2) { - value2 = {}; - if (acceptData(owner)) { - if (owner.nodeType) { - owner[this.expando] = value2; - } else { - Object.defineProperty(owner, this.expando, { - value: value2, - configurable: true - }); - } - } - } - return value2; - }, - set: function(owner, data6, value2) { - var prop, cache3 = this.cache(owner); - if (typeof data6 === "string") { - cache3[camelCase2(data6)] = value2; - } else { - for (prop in data6) { - cache3[camelCase2(prop)] = data6[prop]; - } - } - return cache3; - }, - get: function(owner, key) { - return key === void 0 ? this.cache(owner) : ( - // Always use camelCase key (gh-2257) - owner[this.expando] && owner[this.expando][camelCase2(key)] - ); - }, - access: function(owner, key, value2) { - if (key === void 0 || key && typeof key === "string" && value2 === void 0) { - return this.get(owner, key); - } - this.set(owner, key, value2); - return value2 !== void 0 ? value2 : key; - }, - remove: function(owner, key) { - var i3, cache3 = owner[this.expando]; - if (cache3 === void 0) { - return; - } - if (key !== void 0) { - if (Array.isArray(key)) { - key = key.map(camelCase2); - } else { - key = camelCase2(key); - key = key in cache3 ? [key] : key.match(rnothtmlwhite) || []; - } - i3 = key.length; - while (i3--) { - delete cache3[key[i3]]; - } - } - if (key === void 0 || jQuery.isEmptyObject(cache3)) { - if (owner.nodeType) { - owner[this.expando] = void 0; - } else { - delete owner[this.expando]; - } - } - }, - hasData: function(owner) { - var cache3 = owner[this.expando]; - return cache3 !== void 0 && !jQuery.isEmptyObject(cache3); - } - }; - var dataPriv = new Data(); - var dataUser = new Data(); - var rbrace = /^(?:\{[\w\W]*\}|\[[\w\W]*\])$/, rmultiDash = /[A-Z]/g; - function getData3(data6) { - if (data6 === "true") { - return true; - } - if (data6 === "false") { - return false; - } - if (data6 === "null") { - return null; - } - if (data6 === +data6 + "") { - return +data6; - } - if (rbrace.test(data6)) { - return JSON.parse(data6); - } - return data6; - } - function dataAttr(elem, key, data6) { - var name; - if (data6 === void 0 && elem.nodeType === 1) { - name = "data-" + key.replace(rmultiDash, "-$&").toLowerCase(); - data6 = elem.getAttribute(name); - if (typeof data6 === "string") { - try { - data6 = getData3(data6); - } catch (e3) { - } - dataUser.set(elem, key, data6); - } else { - data6 = void 0; - } - } - return data6; - } - jQuery.extend({ - hasData: function(elem) { - return dataUser.hasData(elem) || dataPriv.hasData(elem); - }, - data: function(elem, name, data6) { - return dataUser.access(elem, name, data6); - }, - removeData: function(elem, name) { - dataUser.remove(elem, name); - }, - // TODO: Now that all calls to _data and _removeData have been replaced - // with direct calls to dataPriv methods, these can be deprecated. - _data: function(elem, name, data6) { - return dataPriv.access(elem, name, data6); - }, - _removeData: function(elem, name) { - dataPriv.remove(elem, name); - } - }); - jQuery.fn.extend({ - data: function(key, value2) { - var i3, name, data6, elem = this[0], attrs = elem && elem.attributes; - if (key === void 0) { - if (this.length) { - data6 = dataUser.get(elem); - if (elem.nodeType === 1 && !dataPriv.get(elem, "hasDataAttrs")) { - i3 = attrs.length; - while (i3--) { - if (attrs[i3]) { - name = attrs[i3].name; - if (name.indexOf("data-") === 0) { - name = camelCase2(name.slice(5)); - dataAttr(elem, name, data6[name]); - } - } - } - dataPriv.set(elem, "hasDataAttrs", true); - } - } - return data6; - } - if (typeof key === "object") { - return this.each(function() { - dataUser.set(this, key); - }); - } - return access(this, function(value3) { - var data7; - if (elem && value3 === void 0) { - data7 = dataUser.get(elem, key); - if (data7 !== void 0) { - return data7; - } - data7 = dataAttr(elem, key); - if (data7 !== void 0) { - return data7; - } - return; - } - this.each(function() { - dataUser.set(this, key, value3); - }); - }, null, value2, arguments.length > 1, null, true); - }, - removeData: function(key) { - return this.each(function() { - dataUser.remove(this, key); - }); - } - }); - jQuery.extend({ - queue: function(elem, type3, data6) { - var queue; - if (elem) { - type3 = (type3 || "fx") + "queue"; - queue = dataPriv.get(elem, type3); - if (data6) { - if (!queue || Array.isArray(data6)) { - queue = dataPriv.access(elem, type3, jQuery.makeArray(data6)); - } else { - queue.push(data6); - } - } - return queue || []; - } - }, - dequeue: function(elem, type3) { - type3 = type3 || "fx"; - var queue = jQuery.queue(elem, type3), startLength = queue.length, fn3 = queue.shift(), hooks = jQuery._queueHooks(elem, type3), next3 = function() { - jQuery.dequeue(elem, type3); - }; - if (fn3 === "inprogress") { - fn3 = queue.shift(); - startLength--; - } - if (fn3) { - if (type3 === "fx") { - queue.unshift("inprogress"); - } - delete hooks.stop; - fn3.call(elem, next3, hooks); - } - if (!startLength && hooks) { - hooks.empty.fire(); - } - }, - // Not public - generate a queueHooks object, or return the current one - _queueHooks: function(elem, type3) { - var key = type3 + "queueHooks"; - return dataPriv.get(elem, key) || dataPriv.access(elem, key, { - empty: jQuery.Callbacks("once memory").add(function() { - dataPriv.remove(elem, [type3 + "queue", key]); - }) - }); - } - }); - jQuery.fn.extend({ - queue: function(type3, data6) { - var setter = 2; - if (typeof type3 !== "string") { - data6 = type3; - type3 = "fx"; - setter--; - } - if (arguments.length < setter) { - return jQuery.queue(this[0], type3); - } - return data6 === void 0 ? this : this.each(function() { - var queue = jQuery.queue(this, type3, data6); - jQuery._queueHooks(this, type3); - if (type3 === "fx" && queue[0] !== "inprogress") { - jQuery.dequeue(this, type3); - } - }); - }, - dequeue: function(type3) { - return this.each(function() { - jQuery.dequeue(this, type3); - }); - }, - clearQueue: function(type3) { - return this.queue(type3 || "fx", []); - }, - // Get a promise resolved when queues of a certain type - // are emptied (fx is the type by default) - promise: function(type3, obj) { - var tmp, count3 = 1, defer2 = jQuery.Deferred(), elements2 = this, i3 = this.length, resolve2 = function() { - if (!--count3) { - defer2.resolveWith(elements2, [elements2]); - } - }; - if (typeof type3 !== "string") { - obj = type3; - type3 = void 0; - } - type3 = type3 || "fx"; - while (i3--) { - tmp = dataPriv.get(elements2[i3], type3 + "queueHooks"); - if (tmp && tmp.empty) { - count3++; - tmp.empty.add(resolve2); - } - } - resolve2(); - return defer2.promise(obj); - } - }); - var pnum = /[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/.source; - var rcssNum = new RegExp("^(?:([+-])=|)(" + pnum + ")([a-z%]*)$", "i"); - var cssExpand = ["Top", "Right", "Bottom", "Left"]; - var documentElement = document2.documentElement; - var isAttached = function(elem) { - return jQuery.contains(elem.ownerDocument, elem); - }, composed = { composed: true }; - if (documentElement.getRootNode) { - isAttached = function(elem) { - return jQuery.contains(elem.ownerDocument, elem) || elem.getRootNode(composed) === elem.ownerDocument; - }; - } - var isHiddenWithinTree = function(elem, el) { - elem = el || elem; - return elem.style.display === "none" || elem.style.display === "" && // Otherwise, check computed style - // Support: Firefox <=43 - 45 - // Disconnected elements can have computed display: none, so first confirm that elem is - // in the document. - isAttached(elem) && jQuery.css(elem, "display") === "none"; - }; - function adjustCSS(elem, prop, valueParts, tween) { - var adjusted, scale2, maxIterations = 20, currentValue = tween ? function() { - return tween.cur(); - } : function() { - return jQuery.css(elem, prop, ""); - }, initial2 = currentValue(), unit2 = valueParts && valueParts[3] || (jQuery.cssNumber[prop] ? "" : "px"), initialInUnit = elem.nodeType && (jQuery.cssNumber[prop] || unit2 !== "px" && +initial2) && rcssNum.exec(jQuery.css(elem, prop)); - if (initialInUnit && initialInUnit[3] !== unit2) { - initial2 = initial2 / 2; - unit2 = unit2 || initialInUnit[3]; - initialInUnit = +initial2 || 1; - while (maxIterations--) { - jQuery.style(elem, prop, initialInUnit + unit2); - if ((1 - scale2) * (1 - (scale2 = currentValue() / initial2 || 0.5)) <= 0) { - maxIterations = 0; - } - initialInUnit = initialInUnit / scale2; - } - initialInUnit = initialInUnit * 2; - jQuery.style(elem, prop, initialInUnit + unit2); - valueParts = valueParts || []; - } - if (valueParts) { - initialInUnit = +initialInUnit || +initial2 || 0; - adjusted = valueParts[1] ? initialInUnit + (valueParts[1] + 1) * valueParts[2] : +valueParts[2]; - if (tween) { - tween.unit = unit2; - tween.start = initialInUnit; - tween.end = adjusted; - } - } - return adjusted; - } - var defaultDisplayMap = {}; - function getDefaultDisplay(elem) { - var temp, doc = elem.ownerDocument, nodeName2 = elem.nodeName, display = defaultDisplayMap[nodeName2]; - if (display) { - return display; - } - temp = doc.body.appendChild(doc.createElement(nodeName2)); - display = jQuery.css(temp, "display"); - temp.parentNode.removeChild(temp); - if (display === "none") { - display = "block"; - } - defaultDisplayMap[nodeName2] = display; - return display; - } - function showHide(elements2, show2) { - var display, elem, values2 = [], index2 = 0, length2 = elements2.length; - for (; index2 < length2; index2++) { - elem = elements2[index2]; - if (!elem.style) { - continue; - } - display = elem.style.display; - if (show2) { - if (display === "none") { - values2[index2] = dataPriv.get(elem, "display") || null; - if (!values2[index2]) { - elem.style.display = ""; - } - } - if (elem.style.display === "" && isHiddenWithinTree(elem)) { - values2[index2] = getDefaultDisplay(elem); - } - } else { - if (display !== "none") { - values2[index2] = "none"; - dataPriv.set(elem, "display", display); - } - } - } - for (index2 = 0; index2 < length2; index2++) { - if (values2[index2] != null) { - elements2[index2].style.display = values2[index2]; - } - } - return elements2; - } - jQuery.fn.extend({ - show: function() { - return showHide(this, true); - }, - hide: function() { - return showHide(this); - }, - toggle: function(state4) { - if (typeof state4 === "boolean") { - return state4 ? this.show() : this.hide(); - } - return this.each(function() { - if (isHiddenWithinTree(this)) { - jQuery(this).show(); - } else { - jQuery(this).hide(); - } - }); - } - }); - var rcheckableType = /^(?:checkbox|radio)$/i; - var rtagName = /<([a-z][^\/\0>\x20\t\r\n\f]*)/i; - var rscriptType = /^$|^module$|\/(?:java|ecma)script/i; - (function() { - var fragment = document2.createDocumentFragment(), div = fragment.appendChild(document2.createElement("div")), input = document2.createElement("input"); - input.setAttribute("type", "radio"); - input.setAttribute("checked", "checked"); - input.setAttribute("name", "t"); - div.appendChild(input); - support.checkClone = div.cloneNode(true).cloneNode(true).lastChild.checked; - div.innerHTML = ""; - support.noCloneChecked = !!div.cloneNode(true).lastChild.defaultValue; - div.innerHTML = ""; - support.option = !!div.lastChild; - })(); - var wrapMap = { - // XHTML parsers do not magically insert elements in the - // same way that tag soup parsers do. So we cannot shorten - // this by omitting or other required elements. - thead: [1, "", "
"], - col: [2, "", "
"], - tr: [2, "", "
"], - td: [3, "", "
"], - _default: [0, "", ""] - }; - wrapMap.tbody = wrapMap.tfoot = wrapMap.colgroup = wrapMap.caption = wrapMap.thead; - wrapMap.th = wrapMap.td; - if (!support.option) { - wrapMap.optgroup = wrapMap.option = [1, ""]; - } - function getAll(context2, tag) { - var ret; - if (typeof context2.getElementsByTagName !== "undefined") { - ret = context2.getElementsByTagName(tag || "*"); - } else if (typeof context2.querySelectorAll !== "undefined") { - ret = context2.querySelectorAll(tag || "*"); - } else { - ret = []; - } - if (tag === void 0 || tag && nodeName(context2, tag)) { - return jQuery.merge([context2], ret); - } - return ret; - } - function setGlobalEval(elems, refElements) { - var i3 = 0, l4 = elems.length; - for (; i3 < l4; i3++) { - dataPriv.set( - elems[i3], - "globalEval", - !refElements || dataPriv.get(refElements[i3], "globalEval") - ); - } - } - var rhtml = /<|&#?\w+;/; - function buildFragment(elems, context2, scripts, selection2, ignored) { - var elem, tmp, tag, wrap4, attached, j3, fragment = context2.createDocumentFragment(), nodes5 = [], i3 = 0, l4 = elems.length; - for (; i3 < l4; i3++) { - elem = elems[i3]; - if (elem || elem === 0) { - if (toType(elem) === "object") { - jQuery.merge(nodes5, elem.nodeType ? [elem] : elem); - } else if (!rhtml.test(elem)) { - nodes5.push(context2.createTextNode(elem)); - } else { - tmp = tmp || fragment.appendChild(context2.createElement("div")); - tag = (rtagName.exec(elem) || ["", ""])[1].toLowerCase(); - wrap4 = wrapMap[tag] || wrapMap._default; - tmp.innerHTML = wrap4[1] + jQuery.htmlPrefilter(elem) + wrap4[2]; - j3 = wrap4[0]; - while (j3--) { - tmp = tmp.lastChild; - } - jQuery.merge(nodes5, tmp.childNodes); - tmp = fragment.firstChild; - tmp.textContent = ""; - } - } - } - fragment.textContent = ""; - i3 = 0; - while (elem = nodes5[i3++]) { - if (selection2 && jQuery.inArray(elem, selection2) > -1) { - if (ignored) { - ignored.push(elem); - } - continue; - } - attached = isAttached(elem); - tmp = getAll(fragment.appendChild(elem), "script"); - if (attached) { - setGlobalEval(tmp); - } - if (scripts) { - j3 = 0; - while (elem = tmp[j3++]) { - if (rscriptType.test(elem.type || "")) { - scripts.push(elem); - } - } - } - } - return fragment; - } - var rtypenamespace = /^([^.]*)(?:\.(.+)|)/; - function returnTrue2() { - return true; - } - function returnFalse2() { - return false; - } - function on3(elem, types, selector, data6, fn3, one4) { - var origFn, type3; - if (typeof types === "object") { - if (typeof selector !== "string") { - data6 = data6 || selector; - selector = void 0; - } - for (type3 in types) { - on3(elem, type3, selector, data6, types[type3], one4); - } - return elem; - } - if (data6 == null && fn3 == null) { - fn3 = selector; - data6 = selector = void 0; - } else if (fn3 == null) { - if (typeof selector === "string") { - fn3 = data6; - data6 = void 0; - } else { - fn3 = data6; - data6 = selector; - selector = void 0; - } - } - if (fn3 === false) { - fn3 = returnFalse2; - } else if (!fn3) { - return elem; - } - if (one4 === 1) { - origFn = fn3; - fn3 = function(event3) { - jQuery().off(event3); - return origFn.apply(this, arguments); - }; - fn3.guid = origFn.guid || (origFn.guid = jQuery.guid++); - } - return elem.each(function() { - jQuery.event.add(this, types, fn3, data6, selector); - }); - } - jQuery.event = { - global: {}, - add: function(elem, types, handler, data6, selector) { - var handleObjIn, eventHandle, tmp, events, t4, handleObj, special, handlers, type3, namespaces, origType, elemData = dataPriv.get(elem); - if (!acceptData(elem)) { - return; - } - if (handler.handler) { - handleObjIn = handler; - handler = handleObjIn.handler; - selector = handleObjIn.selector; - } - if (selector) { - jQuery.find.matchesSelector(documentElement, selector); - } - if (!handler.guid) { - handler.guid = jQuery.guid++; - } - if (!(events = elemData.events)) { - events = elemData.events = /* @__PURE__ */ Object.create(null); - } - if (!(eventHandle = elemData.handle)) { - eventHandle = elemData.handle = function(e3) { - return typeof jQuery !== "undefined" && jQuery.event.triggered !== e3.type ? jQuery.event.dispatch.apply(elem, arguments) : void 0; - }; - } - types = (types || "").match(rnothtmlwhite) || [""]; - t4 = types.length; - while (t4--) { - tmp = rtypenamespace.exec(types[t4]) || []; - type3 = origType = tmp[1]; - namespaces = (tmp[2] || "").split(".").sort(); - if (!type3) { - continue; - } - special = jQuery.event.special[type3] || {}; - type3 = (selector ? special.delegateType : special.bindType) || type3; - special = jQuery.event.special[type3] || {}; - handleObj = jQuery.extend({ - type: type3, - origType, - data: data6, - handler, - guid: handler.guid, - selector, - needsContext: selector && jQuery.expr.match.needsContext.test(selector), - namespace: namespaces.join(".") - }, handleObjIn); - if (!(handlers = events[type3])) { - handlers = events[type3] = []; - handlers.delegateCount = 0; - if (!special.setup || special.setup.call(elem, data6, namespaces, eventHandle) === false) { - if (elem.addEventListener) { - elem.addEventListener(type3, eventHandle); - } - } - } - if (special.add) { - special.add.call(elem, handleObj); - if (!handleObj.handler.guid) { - handleObj.handler.guid = handler.guid; - } - } - if (selector) { - handlers.splice(handlers.delegateCount++, 0, handleObj); - } else { - handlers.push(handleObj); - } - jQuery.event.global[type3] = true; - } - }, - // Detach an event or set of events from an element - remove: function(elem, types, handler, selector, mappedTypes) { - var j3, origCount, tmp, events, t4, handleObj, special, handlers, type3, namespaces, origType, elemData = dataPriv.hasData(elem) && dataPriv.get(elem); - if (!elemData || !(events = elemData.events)) { - return; - } - types = (types || "").match(rnothtmlwhite) || [""]; - t4 = types.length; - while (t4--) { - tmp = rtypenamespace.exec(types[t4]) || []; - type3 = origType = tmp[1]; - namespaces = (tmp[2] || "").split(".").sort(); - if (!type3) { - for (type3 in events) { - jQuery.event.remove(elem, type3 + types[t4], handler, selector, true); - } - continue; - } - special = jQuery.event.special[type3] || {}; - type3 = (selector ? special.delegateType : special.bindType) || type3; - handlers = events[type3] || []; - tmp = tmp[2] && new RegExp("(^|\\.)" + namespaces.join("\\.(?:.*\\.|)") + "(\\.|$)"); - origCount = j3 = handlers.length; - while (j3--) { - handleObj = handlers[j3]; - if ((mappedTypes || origType === handleObj.origType) && (!handler || handler.guid === handleObj.guid) && (!tmp || tmp.test(handleObj.namespace)) && (!selector || selector === handleObj.selector || selector === "**" && handleObj.selector)) { - handlers.splice(j3, 1); - if (handleObj.selector) { - handlers.delegateCount--; - } - if (special.remove) { - special.remove.call(elem, handleObj); - } - } - } - if (origCount && !handlers.length) { - if (!special.teardown || special.teardown.call(elem, namespaces, elemData.handle) === false) { - jQuery.removeEvent(elem, type3, elemData.handle); - } - delete events[type3]; - } - } - if (jQuery.isEmptyObject(events)) { - dataPriv.remove(elem, "handle events"); - } - }, - dispatch: function(nativeEvent) { - var i3, j3, ret, matched, handleObj, handlerQueue, args = new Array(arguments.length), event3 = jQuery.event.fix(nativeEvent), handlers = (dataPriv.get(this, "events") || /* @__PURE__ */ Object.create(null))[event3.type] || [], special = jQuery.event.special[event3.type] || {}; - args[0] = event3; - for (i3 = 1; i3 < arguments.length; i3++) { - args[i3] = arguments[i3]; - } - event3.delegateTarget = this; - if (special.preDispatch && special.preDispatch.call(this, event3) === false) { - return; - } - handlerQueue = jQuery.event.handlers.call(this, event3, handlers); - i3 = 0; - while ((matched = handlerQueue[i3++]) && !event3.isPropagationStopped()) { - event3.currentTarget = matched.elem; - j3 = 0; - while ((handleObj = matched.handlers[j3++]) && !event3.isImmediatePropagationStopped()) { - if (!event3.rnamespace || handleObj.namespace === false || event3.rnamespace.test(handleObj.namespace)) { - event3.handleObj = handleObj; - event3.data = handleObj.data; - ret = ((jQuery.event.special[handleObj.origType] || {}).handle || handleObj.handler).apply(matched.elem, args); - if (ret !== void 0) { - if ((event3.result = ret) === false) { - event3.preventDefault(); - event3.stopPropagation(); - } - } - } - } - } - if (special.postDispatch) { - special.postDispatch.call(this, event3); - } - return event3.result; - }, - handlers: function(event3, handlers) { - var i3, handleObj, sel, matchedHandlers, matchedSelectors, handlerQueue = [], delegateCount = handlers.delegateCount, cur = event3.target; - if (delegateCount && // Support: IE <=9 - // Black-hole SVG instance trees (trac-13180) - cur.nodeType && // Support: Firefox <=42 - // Suppress spec-violating clicks indicating a non-primary pointer button (trac-3861) - // https://www.w3.org/TR/DOM-Level-3-Events/#event-type-click - // Support: IE 11 only - // ...but not arrow key "clicks" of radio inputs, which can have `button` -1 (gh-2343) - !(event3.type === "click" && event3.button >= 1)) { - for (; cur !== this; cur = cur.parentNode || this) { - if (cur.nodeType === 1 && !(event3.type === "click" && cur.disabled === true)) { - matchedHandlers = []; - matchedSelectors = {}; - for (i3 = 0; i3 < delegateCount; i3++) { - handleObj = handlers[i3]; - sel = handleObj.selector + " "; - if (matchedSelectors[sel] === void 0) { - matchedSelectors[sel] = handleObj.needsContext ? jQuery(sel, this).index(cur) > -1 : jQuery.find(sel, this, null, [cur]).length; - } - if (matchedSelectors[sel]) { - matchedHandlers.push(handleObj); - } - } - if (matchedHandlers.length) { - handlerQueue.push({ elem: cur, handlers: matchedHandlers }); - } - } - } - } - cur = this; - if (delegateCount < handlers.length) { - handlerQueue.push({ elem: cur, handlers: handlers.slice(delegateCount) }); - } - return handlerQueue; - }, - addProp: function(name, hook2) { - Object.defineProperty(jQuery.Event.prototype, name, { - enumerable: true, - configurable: true, - get: isFunction2(hook2) ? function() { - if (this.originalEvent) { - return hook2(this.originalEvent); - } - } : function() { - if (this.originalEvent) { - return this.originalEvent[name]; - } - }, - set: function(value2) { - Object.defineProperty(this, name, { - enumerable: true, - configurable: true, - writable: true, - value: value2 - }); - } - }); - }, - fix: function(originalEvent) { - return originalEvent[jQuery.expando] ? originalEvent : new jQuery.Event(originalEvent); - }, - special: { - load: { - // Prevent triggered image.load events from bubbling to window.load - noBubble: true - }, - click: { - // Utilize native event to ensure correct state for checkable inputs - setup: function(data6) { - var el = this || data6; - if (rcheckableType.test(el.type) && el.click && nodeName(el, "input")) { - leverageNative(el, "click", true); - } - return false; - }, - trigger: function(data6) { - var el = this || data6; - if (rcheckableType.test(el.type) && el.click && nodeName(el, "input")) { - leverageNative(el, "click"); - } - return true; - }, - // For cross-browser consistency, suppress native .click() on links - // Also prevent it if we're currently inside a leveraged native-event stack - _default: function(event3) { - var target = event3.target; - return rcheckableType.test(target.type) && target.click && nodeName(target, "input") && dataPriv.get(target, "click") || nodeName(target, "a"); - } - }, - beforeunload: { - postDispatch: function(event3) { - if (event3.result !== void 0 && event3.originalEvent) { - event3.originalEvent.returnValue = event3.result; - } - } - } - } - }; - function leverageNative(el, type3, isSetup) { - if (!isSetup) { - if (dataPriv.get(el, type3) === void 0) { - jQuery.event.add(el, type3, returnTrue2); - } - return; - } - dataPriv.set(el, type3, false); - jQuery.event.add(el, type3, { - namespace: false, - handler: function(event3) { - var result2, saved = dataPriv.get(this, type3); - if (event3.isTrigger & 1 && this[type3]) { - if (!saved) { - saved = slice8.call(arguments); - dataPriv.set(this, type3, saved); - this[type3](); - result2 = dataPriv.get(this, type3); - dataPriv.set(this, type3, false); - if (saved !== result2) { - event3.stopImmediatePropagation(); - event3.preventDefault(); - return result2; - } - } else if ((jQuery.event.special[type3] || {}).delegateType) { - event3.stopPropagation(); - } - } else if (saved) { - dataPriv.set(this, type3, jQuery.event.trigger( - saved[0], - saved.slice(1), - this - )); - event3.stopPropagation(); - event3.isImmediatePropagationStopped = returnTrue2; - } - } - }); - } - jQuery.removeEvent = function(elem, type3, handle) { - if (elem.removeEventListener) { - elem.removeEventListener(type3, handle); - } - }; - jQuery.Event = function(src, props) { - if (!(this instanceof jQuery.Event)) { - return new jQuery.Event(src, props); - } - if (src && src.type) { - this.originalEvent = src; - this.type = src.type; - this.isDefaultPrevented = src.defaultPrevented || src.defaultPrevented === void 0 && // Support: Android <=2.3 only - src.returnValue === false ? returnTrue2 : returnFalse2; - this.target = src.target && src.target.nodeType === 3 ? src.target.parentNode : src.target; - this.currentTarget = src.currentTarget; - this.relatedTarget = src.relatedTarget; - } else { - this.type = src; - } - if (props) { - jQuery.extend(this, props); - } - this.timeStamp = src && src.timeStamp || Date.now(); - this[jQuery.expando] = true; - }; - jQuery.Event.prototype = { - constructor: jQuery.Event, - isDefaultPrevented: returnFalse2, - isPropagationStopped: returnFalse2, - isImmediatePropagationStopped: returnFalse2, - isSimulated: false, - preventDefault: function() { - var e3 = this.originalEvent; - this.isDefaultPrevented = returnTrue2; - if (e3 && !this.isSimulated) { - e3.preventDefault(); - } - }, - stopPropagation: function() { - var e3 = this.originalEvent; - this.isPropagationStopped = returnTrue2; - if (e3 && !this.isSimulated) { - e3.stopPropagation(); - } - }, - stopImmediatePropagation: function() { - var e3 = this.originalEvent; - this.isImmediatePropagationStopped = returnTrue2; - if (e3 && !this.isSimulated) { - e3.stopImmediatePropagation(); - } - this.stopPropagation(); - } - }; - jQuery.each({ - altKey: true, - bubbles: true, - cancelable: true, - changedTouches: true, - ctrlKey: true, - detail: true, - eventPhase: true, - metaKey: true, - pageX: true, - pageY: true, - shiftKey: true, - view: true, - "char": true, - code: true, - charCode: true, - key: true, - keyCode: true, - button: true, - buttons: true, - clientX: true, - clientY: true, - offsetX: true, - offsetY: true, - pointerId: true, - pointerType: true, - screenX: true, - screenY: true, - targetTouches: true, - toElement: true, - touches: true, - which: true - }, jQuery.event.addProp); - jQuery.each({ focus: "focusin", blur: "focusout" }, function(type3, delegateType) { - function focusMappedHandler(nativeEvent) { - if (document2.documentMode) { - var handle = dataPriv.get(this, "handle"), event3 = jQuery.event.fix(nativeEvent); - event3.type = nativeEvent.type === "focusin" ? "focus" : "blur"; - event3.isSimulated = true; - handle(nativeEvent); - if (event3.target === event3.currentTarget) { - handle(event3); - } - } else { - jQuery.event.simulate( - delegateType, - nativeEvent.target, - jQuery.event.fix(nativeEvent) - ); - } - } - jQuery.event.special[type3] = { - // Utilize native event if possible so blur/focus sequence is correct - setup: function() { - var attaches; - leverageNative(this, type3, true); - if (document2.documentMode) { - attaches = dataPriv.get(this, delegateType); - if (!attaches) { - this.addEventListener(delegateType, focusMappedHandler); - } - dataPriv.set(this, delegateType, (attaches || 0) + 1); - } else { - return false; - } - }, - trigger: function() { - leverageNative(this, type3); - return true; - }, - teardown: function() { - var attaches; - if (document2.documentMode) { - attaches = dataPriv.get(this, delegateType) - 1; - if (!attaches) { - this.removeEventListener(delegateType, focusMappedHandler); - dataPriv.remove(this, delegateType); - } else { - dataPriv.set(this, delegateType, attaches); - } - } else { - return false; - } - }, - // Suppress native focus or blur if we're currently inside - // a leveraged native-event stack - _default: function(event3) { - return dataPriv.get(event3.target, type3); - }, - delegateType - }; - jQuery.event.special[delegateType] = { - setup: function() { - var doc = this.ownerDocument || this.document || this, dataHolder = document2.documentMode ? this : doc, attaches = dataPriv.get(dataHolder, delegateType); - if (!attaches) { - if (document2.documentMode) { - this.addEventListener(delegateType, focusMappedHandler); - } else { - doc.addEventListener(type3, focusMappedHandler, true); - } - } - dataPriv.set(dataHolder, delegateType, (attaches || 0) + 1); - }, - teardown: function() { - var doc = this.ownerDocument || this.document || this, dataHolder = document2.documentMode ? this : doc, attaches = dataPriv.get(dataHolder, delegateType) - 1; - if (!attaches) { - if (document2.documentMode) { - this.removeEventListener(delegateType, focusMappedHandler); - } else { - doc.removeEventListener(type3, focusMappedHandler, true); - } - dataPriv.remove(dataHolder, delegateType); - } else { - dataPriv.set(dataHolder, delegateType, attaches); - } - } - }; - }); - jQuery.each({ - mouseenter: "mouseover", - mouseleave: "mouseout", - pointerenter: "pointerover", - pointerleave: "pointerout" - }, function(orig, fix) { - jQuery.event.special[orig] = { - delegateType: fix, - bindType: fix, - handle: function(event3) { - var ret, target = this, related = event3.relatedTarget, handleObj = event3.handleObj; - if (!related || related !== target && !jQuery.contains(target, related)) { - event3.type = handleObj.origType; - ret = handleObj.handler.apply(this, arguments); - event3.type = fix; - } - return ret; - } - }; - }); - jQuery.fn.extend({ - on: function(types, selector, data6, fn3) { - return on3(this, types, selector, data6, fn3); - }, - one: function(types, selector, data6, fn3) { - return on3(this, types, selector, data6, fn3, 1); - }, - off: function(types, selector, fn3) { - var handleObj, type3; - if (types && types.preventDefault && types.handleObj) { - handleObj = types.handleObj; - jQuery(types.delegateTarget).off( - handleObj.namespace ? handleObj.origType + "." + handleObj.namespace : handleObj.origType, - handleObj.selector, - handleObj.handler - ); - return this; - } - if (typeof types === "object") { - for (type3 in types) { - this.off(type3, selector, types[type3]); - } - return this; - } - if (selector === false || typeof selector === "function") { - fn3 = selector; - selector = void 0; - } - if (fn3 === false) { - fn3 = returnFalse2; - } - return this.each(function() { - jQuery.event.remove(this, types, fn3, selector); - }); - } - }); - var rnoInnerhtml = /\s*$/g; - function manipulationTarget(elem, content) { - if (nodeName(elem, "table") && nodeName(content.nodeType !== 11 ? content : content.firstChild, "tr")) { - return jQuery(elem).children("tbody")[0] || elem; - } - return elem; - } - function disableScript(elem) { - elem.type = (elem.getAttribute("type") !== null) + "/" + elem.type; - return elem; - } - function restoreScript(elem) { - if ((elem.type || "").slice(0, 5) === "true/") { - elem.type = elem.type.slice(5); - } else { - elem.removeAttribute("type"); - } - return elem; - } - function cloneCopyEvent(src, dest) { - var i3, l4, type3, pdataOld, udataOld, udataCur, events; - if (dest.nodeType !== 1) { - return; - } - if (dataPriv.hasData(src)) { - pdataOld = dataPriv.get(src); - events = pdataOld.events; - if (events) { - dataPriv.remove(dest, "handle events"); - for (type3 in events) { - for (i3 = 0, l4 = events[type3].length; i3 < l4; i3++) { - jQuery.event.add(dest, type3, events[type3][i3]); - } - } - } - } - if (dataUser.hasData(src)) { - udataOld = dataUser.access(src); - udataCur = jQuery.extend({}, udataOld); - dataUser.set(dest, udataCur); - } - } - function fixInput(src, dest) { - var nodeName2 = dest.nodeName.toLowerCase(); - if (nodeName2 === "input" && rcheckableType.test(src.type)) { - dest.checked = src.checked; - } else if (nodeName2 === "input" || nodeName2 === "textarea") { - dest.defaultValue = src.defaultValue; - } - } - function domManip(collection4, args, callback, ignored) { - args = flat(args); - var fragment, first3, scripts, hasScripts, node2, doc, i3 = 0, l4 = collection4.length, iNoClone = l4 - 1, value2 = args[0], valueIsFunction = isFunction2(value2); - if (valueIsFunction || l4 > 1 && typeof value2 === "string" && !support.checkClone && rchecked.test(value2)) { - return collection4.each(function(index2) { - var self2 = collection4.eq(index2); - if (valueIsFunction) { - args[0] = value2.call(this, index2, self2.html()); - } - domManip(self2, args, callback, ignored); - }); - } - if (l4) { - fragment = buildFragment(args, collection4[0].ownerDocument, false, collection4, ignored); - first3 = fragment.firstChild; - if (fragment.childNodes.length === 1) { - fragment = first3; - } - if (first3 || ignored) { - scripts = jQuery.map(getAll(fragment, "script"), disableScript); - hasScripts = scripts.length; - for (; i3 < l4; i3++) { - node2 = fragment; - if (i3 !== iNoClone) { - node2 = jQuery.clone(node2, true, true); - if (hasScripts) { - jQuery.merge(scripts, getAll(node2, "script")); - } - } - callback.call(collection4[i3], node2, i3); - } - if (hasScripts) { - doc = scripts[scripts.length - 1].ownerDocument; - jQuery.map(scripts, restoreScript); - for (i3 = 0; i3 < hasScripts; i3++) { - node2 = scripts[i3]; - if (rscriptType.test(node2.type || "") && !dataPriv.access(node2, "globalEval") && jQuery.contains(doc, node2)) { - if (node2.src && (node2.type || "").toLowerCase() !== "module") { - if (jQuery._evalUrl && !node2.noModule) { - jQuery._evalUrl(node2.src, { - nonce: node2.nonce || node2.getAttribute("nonce") - }, doc); - } - } else { - DOMEval(node2.textContent.replace(rcleanScript, ""), node2, doc); - } - } - } - } - } - } - return collection4; - } - function remove4(elem, selector, keepData) { - var node2, nodes5 = selector ? jQuery.filter(selector, elem) : elem, i3 = 0; - for (; (node2 = nodes5[i3]) != null; i3++) { - if (!keepData && node2.nodeType === 1) { - jQuery.cleanData(getAll(node2)); - } - if (node2.parentNode) { - if (keepData && isAttached(node2)) { - setGlobalEval(getAll(node2, "script")); - } - node2.parentNode.removeChild(node2); - } - } - return elem; - } - jQuery.extend({ - htmlPrefilter: function(html3) { - return html3; - }, - clone: function(elem, dataAndEvents, deepDataAndEvents) { - var i3, l4, srcElements, destElements, clone7 = elem.cloneNode(true), inPage = isAttached(elem); - if (!support.noCloneChecked && (elem.nodeType === 1 || elem.nodeType === 11) && !jQuery.isXMLDoc(elem)) { - destElements = getAll(clone7); - srcElements = getAll(elem); - for (i3 = 0, l4 = srcElements.length; i3 < l4; i3++) { - fixInput(srcElements[i3], destElements[i3]); - } - } - if (dataAndEvents) { - if (deepDataAndEvents) { - srcElements = srcElements || getAll(elem); - destElements = destElements || getAll(clone7); - for (i3 = 0, l4 = srcElements.length; i3 < l4; i3++) { - cloneCopyEvent(srcElements[i3], destElements[i3]); - } - } else { - cloneCopyEvent(elem, clone7); - } - } - destElements = getAll(clone7, "script"); - if (destElements.length > 0) { - setGlobalEval(destElements, !inPage && getAll(elem, "script")); - } - return clone7; - }, - cleanData: function(elems) { - var data6, elem, type3, special = jQuery.event.special, i3 = 0; - for (; (elem = elems[i3]) !== void 0; i3++) { - if (acceptData(elem)) { - if (data6 = elem[dataPriv.expando]) { - if (data6.events) { - for (type3 in data6.events) { - if (special[type3]) { - jQuery.event.remove(elem, type3); - } else { - jQuery.removeEvent(elem, type3, data6.handle); - } - } - } - elem[dataPriv.expando] = void 0; - } - if (elem[dataUser.expando]) { - elem[dataUser.expando] = void 0; - } - } - } - } - }); - jQuery.fn.extend({ - detach: function(selector) { - return remove4(this, selector, true); - }, - remove: function(selector) { - return remove4(this, selector); - }, - text: function(value2) { - return access(this, function(value3) { - return value3 === void 0 ? jQuery.text(this) : this.empty().each(function() { - if (this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9) { - this.textContent = value3; - } - }); - }, null, value2, arguments.length); - }, - append: function() { - return domManip(this, arguments, function(elem) { - if (this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9) { - var target = manipulationTarget(this, elem); - target.appendChild(elem); - } - }); - }, - prepend: function() { - return domManip(this, arguments, function(elem) { - if (this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9) { - var target = manipulationTarget(this, elem); - target.insertBefore(elem, target.firstChild); - } - }); - }, - before: function() { - return domManip(this, arguments, function(elem) { - if (this.parentNode) { - this.parentNode.insertBefore(elem, this); - } - }); - }, - after: function() { - return domManip(this, arguments, function(elem) { - if (this.parentNode) { - this.parentNode.insertBefore(elem, this.nextSibling); - } - }); - }, - empty: function() { - var elem, i3 = 0; - for (; (elem = this[i3]) != null; i3++) { - if (elem.nodeType === 1) { - jQuery.cleanData(getAll(elem, false)); - elem.textContent = ""; - } - } - return this; - }, - clone: function(dataAndEvents, deepDataAndEvents) { - dataAndEvents = dataAndEvents == null ? false : dataAndEvents; - deepDataAndEvents = deepDataAndEvents == null ? dataAndEvents : deepDataAndEvents; - return this.map(function() { - return jQuery.clone(this, dataAndEvents, deepDataAndEvents); - }); - }, - html: function(value2) { - return access(this, function(value3) { - var elem = this[0] || {}, i3 = 0, l4 = this.length; - if (value3 === void 0 && elem.nodeType === 1) { - return elem.innerHTML; - } - if (typeof value3 === "string" && !rnoInnerhtml.test(value3) && !wrapMap[(rtagName.exec(value3) || ["", ""])[1].toLowerCase()]) { - value3 = jQuery.htmlPrefilter(value3); - try { - for (; i3 < l4; i3++) { - elem = this[i3] || {}; - if (elem.nodeType === 1) { - jQuery.cleanData(getAll(elem, false)); - elem.innerHTML = value3; - } - } - elem = 0; - } catch (e3) { - } - } - if (elem) { - this.empty().append(value3); - } - }, null, value2, arguments.length); - }, - replaceWith: function() { - var ignored = []; - return domManip(this, arguments, function(elem) { - var parent5 = this.parentNode; - if (jQuery.inArray(this, ignored) < 0) { - jQuery.cleanData(getAll(this)); - if (parent5) { - parent5.replaceChild(elem, this); - } - } - }, ignored); - } - }); - jQuery.each({ - appendTo: "append", - prependTo: "prepend", - insertBefore: "before", - insertAfter: "after", - replaceAll: "replaceWith" - }, function(name, original) { - jQuery.fn[name] = function(selector) { - var elems, ret = [], insert = jQuery(selector), last3 = insert.length - 1, i3 = 0; - for (; i3 <= last3; i3++) { - elems = i3 === last3 ? this : this.clone(true); - jQuery(insert[i3])[original](elems); - push3.apply(ret, elems.get()); - } - return this.pushStack(ret); - }; - }); - var rnumnonpx = new RegExp("^(" + pnum + ")(?!px)[a-z%]+$", "i"); - var rcustomProp = /^--/; - var getStyles20 = function(elem) { - var view = elem.ownerDocument.defaultView; - if (!view || !view.opener) { - view = window3; - } - return view.getComputedStyle(elem); - }; - var swap = function(elem, options2, callback) { - var ret, name, old = {}; - for (name in options2) { - old[name] = elem.style[name]; - elem.style[name] = options2[name]; - } - ret = callback.call(elem); - for (name in options2) { - elem.style[name] = old[name]; - } - return ret; - }; - var rboxStyle = new RegExp(cssExpand.join("|"), "i"); - (function() { - function computeStyleTests() { - if (!div) { - return; - } - container2.style.cssText = "position:absolute;left:-11111px;width:60px;margin-top:1px;padding:0;border:0"; - div.style.cssText = "position:relative;display:block;box-sizing:border-box;overflow:scroll;margin:auto;border:1px;padding:1px;width:60%;top:1%"; - documentElement.appendChild(container2).appendChild(div); - var divStyle = window3.getComputedStyle(div); - pixelPositionVal = divStyle.top !== "1%"; - reliableMarginLeftVal = roundPixelMeasures(divStyle.marginLeft) === 12; - div.style.right = "60%"; - pixelBoxStylesVal = roundPixelMeasures(divStyle.right) === 36; - boxSizingReliableVal = roundPixelMeasures(divStyle.width) === 36; - div.style.position = "absolute"; - scrollboxSizeVal = roundPixelMeasures(div.offsetWidth / 3) === 12; - documentElement.removeChild(container2); - div = null; - } - function roundPixelMeasures(measure) { - return Math.round(parseFloat(measure)); - } - var pixelPositionVal, boxSizingReliableVal, scrollboxSizeVal, pixelBoxStylesVal, reliableTrDimensionsVal, reliableMarginLeftVal, container2 = document2.createElement("div"), div = document2.createElement("div"); - if (!div.style) { - return; - } - div.style.backgroundClip = "content-box"; - div.cloneNode(true).style.backgroundClip = ""; - support.clearCloneStyle = div.style.backgroundClip === "content-box"; - jQuery.extend(support, { - boxSizingReliable: function() { - computeStyleTests(); - return boxSizingReliableVal; - }, - pixelBoxStyles: function() { - computeStyleTests(); - return pixelBoxStylesVal; - }, - pixelPosition: function() { - computeStyleTests(); - return pixelPositionVal; - }, - reliableMarginLeft: function() { - computeStyleTests(); - return reliableMarginLeftVal; - }, - scrollboxSize: function() { - computeStyleTests(); - return scrollboxSizeVal; - }, - // Support: IE 9 - 11+, Edge 15 - 18+ - // IE/Edge misreport `getComputedStyle` of table rows with width/height - // set in CSS while `offset*` properties report correct values. - // Behavior in IE 9 is more subtle than in newer versions & it passes - // some versions of this test; make sure not to make it pass there! - // - // Support: Firefox 70+ - // Only Firefox includes border widths - // in computed dimensions. (gh-4529) - reliableTrDimensions: function() { - var table, tr, trChild, trStyle; - if (reliableTrDimensionsVal == null) { - table = document2.createElement("table"); - tr = document2.createElement("tr"); - trChild = document2.createElement("div"); - table.style.cssText = "position:absolute;left:-11111px;border-collapse:separate"; - tr.style.cssText = "box-sizing:content-box;border:1px solid"; - tr.style.height = "1px"; - trChild.style.height = "9px"; - trChild.style.display = "block"; - documentElement.appendChild(table).appendChild(tr).appendChild(trChild); - trStyle = window3.getComputedStyle(tr); - reliableTrDimensionsVal = parseInt(trStyle.height, 10) + parseInt(trStyle.borderTopWidth, 10) + parseInt(trStyle.borderBottomWidth, 10) === tr.offsetHeight; - documentElement.removeChild(table); - } - return reliableTrDimensionsVal; - } - }); - })(); - function curCSS(elem, name, computed) { - var width3, minWidth, maxWidth2, ret, isCustomProp = rcustomProp.test(name), style3 = elem.style; - computed = computed || getStyles20(elem); - if (computed) { - ret = computed.getPropertyValue(name) || computed[name]; - if (isCustomProp && ret) { - ret = ret.replace(rtrimCSS, "$1") || void 0; - } - if (ret === "" && !isAttached(elem)) { - ret = jQuery.style(elem, name); - } - if (!support.pixelBoxStyles() && rnumnonpx.test(ret) && rboxStyle.test(name)) { - width3 = style3.width; - minWidth = style3.minWidth; - maxWidth2 = style3.maxWidth; - style3.minWidth = style3.maxWidth = style3.width = ret; - ret = computed.width; - style3.width = width3; - style3.minWidth = minWidth; - style3.maxWidth = maxWidth2; - } - } - return ret !== void 0 ? ( - // Support: IE <=9 - 11 only - // IE returns zIndex value as an integer. - ret + "" - ) : ret; - } - function addGetHookIf(conditionFn, hookFn) { - return { - get: function() { - if (conditionFn()) { - delete this.get; - return; - } - return (this.get = hookFn).apply(this, arguments); - } - }; - } - var cssPrefixes = ["Webkit", "Moz", "ms"], emptyStyle = document2.createElement("div").style, vendorProps = {}; - function vendorPropName(name) { - var capName = name[0].toUpperCase() + name.slice(1), i3 = cssPrefixes.length; - while (i3--) { - name = cssPrefixes[i3] + capName; - if (name in emptyStyle) { - return name; - } - } - } - function finalPropName(name) { - var final = jQuery.cssProps[name] || vendorProps[name]; - if (final) { - return final; - } - if (name in emptyStyle) { - return name; - } - return vendorProps[name] = vendorPropName(name) || name; - } - var rdisplayswap = /^(none|table(?!-c[ea]).+)/, cssShow = { position: "absolute", visibility: "hidden", display: "block" }, cssNormalTransform = { - letterSpacing: "0", - fontWeight: "400" - }; - function setPositiveNumber(_elem, value2, subtract2) { - var matches34 = rcssNum.exec(value2); - return matches34 ? ( - // Guard against undefined "subtract", e.g., when used as in cssHooks - Math.max(0, matches34[2] - (subtract2 || 0)) + (matches34[3] || "px") - ) : value2; - } - function boxModelAdjustment(elem, dimension, box, isBorderBox, styles4, computedVal) { - var i3 = dimension === "width" ? 1 : 0, extra = 0, delta = 0, marginDelta = 0; - if (box === (isBorderBox ? "border" : "content")) { - return 0; - } - for (; i3 < 4; i3 += 2) { - if (box === "margin") { - marginDelta += jQuery.css(elem, box + cssExpand[i3], true, styles4); - } - if (!isBorderBox) { - delta += jQuery.css(elem, "padding" + cssExpand[i3], true, styles4); - if (box !== "padding") { - delta += jQuery.css(elem, "border" + cssExpand[i3] + "Width", true, styles4); - } else { - extra += jQuery.css(elem, "border" + cssExpand[i3] + "Width", true, styles4); - } - } else { - if (box === "content") { - delta -= jQuery.css(elem, "padding" + cssExpand[i3], true, styles4); - } - if (box !== "margin") { - delta -= jQuery.css(elem, "border" + cssExpand[i3] + "Width", true, styles4); - } - } - } - if (!isBorderBox && computedVal >= 0) { - delta += Math.max(0, Math.ceil( - elem["offset" + dimension[0].toUpperCase() + dimension.slice(1)] - computedVal - delta - extra - 0.5 - // If offsetWidth/offsetHeight is unknown, then we can't determine content-box scroll gutter - // Use an explicit zero to avoid NaN (gh-3964) - )) || 0; - } - return delta + marginDelta; - } - function getWidthOrHeight(elem, dimension, extra) { - var styles4 = getStyles20(elem), boxSizingNeeded = !support.boxSizingReliable() || extra, isBorderBox = boxSizingNeeded && jQuery.css(elem, "boxSizing", false, styles4) === "border-box", valueIsBorderBox = isBorderBox, val = curCSS(elem, dimension, styles4), offsetProp = "offset" + dimension[0].toUpperCase() + dimension.slice(1); - if (rnumnonpx.test(val)) { - if (!extra) { - return val; - } - val = "auto"; - } - if ((!support.boxSizingReliable() && isBorderBox || // Support: IE 10 - 11+, Edge 15 - 18+ - // IE/Edge misreport `getComputedStyle` of table rows with width/height - // set in CSS while `offset*` properties report correct values. - // Interestingly, in some cases IE 9 doesn't suffer from this issue. - !support.reliableTrDimensions() && nodeName(elem, "tr") || // Fall back to offsetWidth/offsetHeight when value is "auto" - // This happens for inline elements with no explicit setting (gh-3571) - val === "auto" || // Support: Android <=4.1 - 4.3 only - // Also use offsetWidth/offsetHeight for misreported inline dimensions (gh-3602) - !parseFloat(val) && jQuery.css(elem, "display", false, styles4) === "inline") && // Make sure the element is visible & connected - elem.getClientRects().length) { - isBorderBox = jQuery.css(elem, "boxSizing", false, styles4) === "border-box"; - valueIsBorderBox = offsetProp in elem; - if (valueIsBorderBox) { - val = elem[offsetProp]; - } - } - val = parseFloat(val) || 0; - return val + boxModelAdjustment( - elem, - dimension, - extra || (isBorderBox ? "border" : "content"), - valueIsBorderBox, - styles4, - // Provide the current computed size to request scroll gutter calculation (gh-3589) - val - ) + "px"; - } - jQuery.extend({ - // Add in style property hooks for overriding the default - // behavior of getting and setting a style property - cssHooks: { - opacity: { - get: function(elem, computed) { - if (computed) { - var ret = curCSS(elem, "opacity"); - return ret === "" ? "1" : ret; - } - } - } - }, - // Don't automatically add "px" to these possibly-unitless properties - cssNumber: { - animationIterationCount: true, - aspectRatio: true, - borderImageSlice: true, - columnCount: true, - flexGrow: true, - flexShrink: true, - fontWeight: true, - gridArea: true, - gridColumn: true, - gridColumnEnd: true, - gridColumnStart: true, - gridRow: true, - gridRowEnd: true, - gridRowStart: true, - lineHeight: true, - opacity: true, - order: true, - orphans: true, - scale: true, - widows: true, - zIndex: true, - zoom: true, - // SVG-related - fillOpacity: true, - floodOpacity: true, - stopOpacity: true, - strokeMiterlimit: true, - strokeOpacity: true - }, - // Add in properties whose names you wish to fix before - // setting or getting the value - cssProps: {}, - // Get and set the style property on a DOM Node - style: function(elem, name, value2, extra) { - if (!elem || elem.nodeType === 3 || elem.nodeType === 8 || !elem.style) { - return; - } - var ret, type3, hooks, origName = camelCase2(name), isCustomProp = rcustomProp.test(name), style3 = elem.style; - if (!isCustomProp) { - name = finalPropName(origName); - } - hooks = jQuery.cssHooks[name] || jQuery.cssHooks[origName]; - if (value2 !== void 0) { - type3 = typeof value2; - if (type3 === "string" && (ret = rcssNum.exec(value2)) && ret[1]) { - value2 = adjustCSS(elem, name, ret); - type3 = "number"; - } - if (value2 == null || value2 !== value2) { - return; - } - if (type3 === "number" && !isCustomProp) { - value2 += ret && ret[3] || (jQuery.cssNumber[origName] ? "" : "px"); - } - if (!support.clearCloneStyle && value2 === "" && name.indexOf("background") === 0) { - style3[name] = "inherit"; - } - if (!hooks || !("set" in hooks) || (value2 = hooks.set(elem, value2, extra)) !== void 0) { - if (isCustomProp) { - style3.setProperty(name, value2); - } else { - style3[name] = value2; - } - } - } else { - if (hooks && "get" in hooks && (ret = hooks.get(elem, false, extra)) !== void 0) { - return ret; - } - return style3[name]; - } - }, - css: function(elem, name, extra, styles4) { - var val, num, hooks, origName = camelCase2(name), isCustomProp = rcustomProp.test(name); - if (!isCustomProp) { - name = finalPropName(origName); - } - hooks = jQuery.cssHooks[name] || jQuery.cssHooks[origName]; - if (hooks && "get" in hooks) { - val = hooks.get(elem, true, extra); - } - if (val === void 0) { - val = curCSS(elem, name, styles4); - } - if (val === "normal" && name in cssNormalTransform) { - val = cssNormalTransform[name]; - } - if (extra === "" || extra) { - num = parseFloat(val); - return extra === true || isFinite(num) ? num || 0 : val; - } - return val; - } - }); - jQuery.each(["height", "width"], function(_i, dimension) { - jQuery.cssHooks[dimension] = { - get: function(elem, computed, extra) { - if (computed) { - return rdisplayswap.test(jQuery.css(elem, "display")) && // Support: Safari 8+ - // Table columns in Safari have non-zero offsetWidth & zero - // getBoundingClientRect().width unless display is changed. - // Support: IE <=11 only - // Running getBoundingClientRect on a disconnected node - // in IE throws an error. - (!elem.getClientRects().length || !elem.getBoundingClientRect().width) ? swap(elem, cssShow, function() { - return getWidthOrHeight(elem, dimension, extra); - }) : getWidthOrHeight(elem, dimension, extra); - } - }, - set: function(elem, value2, extra) { - var matches34, styles4 = getStyles20(elem), scrollboxSizeBuggy = !support.scrollboxSize() && styles4.position === "absolute", boxSizingNeeded = scrollboxSizeBuggy || extra, isBorderBox = boxSizingNeeded && jQuery.css(elem, "boxSizing", false, styles4) === "border-box", subtract2 = extra ? boxModelAdjustment( - elem, - dimension, - extra, - isBorderBox, - styles4 - ) : 0; - if (isBorderBox && scrollboxSizeBuggy) { - subtract2 -= Math.ceil( - elem["offset" + dimension[0].toUpperCase() + dimension.slice(1)] - parseFloat(styles4[dimension]) - boxModelAdjustment(elem, dimension, "border", false, styles4) - 0.5 - ); - } - if (subtract2 && (matches34 = rcssNum.exec(value2)) && (matches34[3] || "px") !== "px") { - elem.style[dimension] = value2; - value2 = jQuery.css(elem, dimension); - } - return setPositiveNumber(elem, value2, subtract2); - } - }; - }); - jQuery.cssHooks.marginLeft = addGetHookIf( - support.reliableMarginLeft, - function(elem, computed) { - if (computed) { - return (parseFloat(curCSS(elem, "marginLeft")) || elem.getBoundingClientRect().left - swap(elem, { marginLeft: 0 }, function() { - return elem.getBoundingClientRect().left; - })) + "px"; - } - } - ); - jQuery.each({ - margin: "", - padding: "", - border: "Width" - }, function(prefix2, suffix) { - jQuery.cssHooks[prefix2 + suffix] = { - expand: function(value2) { - var i3 = 0, expanded = {}, parts = typeof value2 === "string" ? value2.split(" ") : [value2]; - for (; i3 < 4; i3++) { - expanded[prefix2 + cssExpand[i3] + suffix] = parts[i3] || parts[i3 - 2] || parts[0]; - } - return expanded; - } - }; - if (prefix2 !== "margin") { - jQuery.cssHooks[prefix2 + suffix].set = setPositiveNumber; - } - }); - jQuery.fn.extend({ - css: function(name, value2) { - return access(this, function(elem, name2, value3) { - var styles4, len, map8 = {}, i3 = 0; - if (Array.isArray(name2)) { - styles4 = getStyles20(elem); - len = name2.length; - for (; i3 < len; i3++) { - map8[name2[i3]] = jQuery.css(elem, name2[i3], false, styles4); - } - return map8; - } - return value3 !== void 0 ? jQuery.style(elem, name2, value3) : jQuery.css(elem, name2); - }, name, value2, arguments.length > 1); - } - }); - function Tween(elem, options2, prop, end2, easing) { - return new Tween.prototype.init(elem, options2, prop, end2, easing); - } - jQuery.Tween = Tween; - Tween.prototype = { - constructor: Tween, - init: function(elem, options2, prop, end2, easing, unit2) { - this.elem = elem; - this.prop = prop; - this.easing = easing || jQuery.easing._default; - this.options = options2; - this.start = this.now = this.cur(); - this.end = end2; - this.unit = unit2 || (jQuery.cssNumber[prop] ? "" : "px"); - }, - cur: function() { - var hooks = Tween.propHooks[this.prop]; - return hooks && hooks.get ? hooks.get(this) : Tween.propHooks._default.get(this); - }, - run: function(percent) { - var eased, hooks = Tween.propHooks[this.prop]; - if (this.options.duration) { - this.pos = eased = jQuery.easing[this.easing]( - percent, - this.options.duration * percent, - 0, - 1, - this.options.duration - ); - } else { - this.pos = eased = percent; - } - this.now = (this.end - this.start) * eased + this.start; - if (this.options.step) { - this.options.step.call(this.elem, this.now, this); - } - if (hooks && hooks.set) { - hooks.set(this); - } else { - Tween.propHooks._default.set(this); - } - return this; - } - }; - Tween.prototype.init.prototype = Tween.prototype; - Tween.propHooks = { - _default: { - get: function(tween) { - var result2; - if (tween.elem.nodeType !== 1 || tween.elem[tween.prop] != null && tween.elem.style[tween.prop] == null) { - return tween.elem[tween.prop]; - } - result2 = jQuery.css(tween.elem, tween.prop, ""); - return !result2 || result2 === "auto" ? 0 : result2; - }, - set: function(tween) { - if (jQuery.fx.step[tween.prop]) { - jQuery.fx.step[tween.prop](tween); - } else if (tween.elem.nodeType === 1 && (jQuery.cssHooks[tween.prop] || tween.elem.style[finalPropName(tween.prop)] != null)) { - jQuery.style(tween.elem, tween.prop, tween.now + tween.unit); - } else { - tween.elem[tween.prop] = tween.now; - } - } - } - }; - Tween.propHooks.scrollTop = Tween.propHooks.scrollLeft = { - set: function(tween) { - if (tween.elem.nodeType && tween.elem.parentNode) { - tween.elem[tween.prop] = tween.now; - } - } - }; - jQuery.easing = { - linear: function(p3) { - return p3; - }, - swing: function(p3) { - return 0.5 - Math.cos(p3 * Math.PI) / 2; - }, - _default: "swing" - }; - jQuery.fx = Tween.prototype.init; - jQuery.fx.step = {}; - var fxNow, inProgress, rfxtypes = /^(?:toggle|show|hide)$/, rrun = /queueHooks$/; - function schedule() { - if (inProgress) { - if (document2.hidden === false && window3.requestAnimationFrame) { - window3.requestAnimationFrame(schedule); - } else { - window3.setTimeout(schedule, jQuery.fx.interval); - } - jQuery.fx.tick(); - } - } - function createFxNow() { - window3.setTimeout(function() { - fxNow = void 0; - }); - return fxNow = Date.now(); - } - function genFx(type3, includeWidth) { - var which, i3 = 0, attrs = { height: type3 }; - includeWidth = includeWidth ? 1 : 0; - for (; i3 < 4; i3 += 2 - includeWidth) { - which = cssExpand[i3]; - attrs["margin" + which] = attrs["padding" + which] = type3; - } - if (includeWidth) { - attrs.opacity = attrs.width = type3; - } - return attrs; - } - function createTween(value2, prop, animation2) { - var tween, collection4 = (Animation3.tweeners[prop] || []).concat(Animation3.tweeners["*"]), index2 = 0, length2 = collection4.length; - for (; index2 < length2; index2++) { - if (tween = collection4[index2].call(animation2, prop, value2)) { - return tween; - } - } - } - function defaultPrefilter(elem, props, opts) { - var prop, value2, toggle, hooks, oldfire, propTween, restoreDisplay, display, isBox = "width" in props || "height" in props, anim = this, orig = {}, style3 = elem.style, hidden = elem.nodeType && isHiddenWithinTree(elem), dataShow = dataPriv.get(elem, "fxshow"); - if (!opts.queue) { - hooks = jQuery._queueHooks(elem, "fx"); - if (hooks.unqueued == null) { - hooks.unqueued = 0; - oldfire = hooks.empty.fire; - hooks.empty.fire = function() { - if (!hooks.unqueued) { - oldfire(); - } - }; - } - hooks.unqueued++; - anim.always(function() { - anim.always(function() { - hooks.unqueued--; - if (!jQuery.queue(elem, "fx").length) { - hooks.empty.fire(); - } - }); - }); - } - for (prop in props) { - value2 = props[prop]; - if (rfxtypes.test(value2)) { - delete props[prop]; - toggle = toggle || value2 === "toggle"; - if (value2 === (hidden ? "hide" : "show")) { - if (value2 === "show" && dataShow && dataShow[prop] !== void 0) { - hidden = true; - } else { - continue; - } - } - orig[prop] = dataShow && dataShow[prop] || jQuery.style(elem, prop); - } - } - propTween = !jQuery.isEmptyObject(props); - if (!propTween && jQuery.isEmptyObject(orig)) { - return; - } - if (isBox && elem.nodeType === 1) { - opts.overflow = [style3.overflow, style3.overflowX, style3.overflowY]; - restoreDisplay = dataShow && dataShow.display; - if (restoreDisplay == null) { - restoreDisplay = dataPriv.get(elem, "display"); - } - display = jQuery.css(elem, "display"); - if (display === "none") { - if (restoreDisplay) { - display = restoreDisplay; - } else { - showHide([elem], true); - restoreDisplay = elem.style.display || restoreDisplay; - display = jQuery.css(elem, "display"); - showHide([elem]); - } - } - if (display === "inline" || display === "inline-block" && restoreDisplay != null) { - if (jQuery.css(elem, "float") === "none") { - if (!propTween) { - anim.done(function() { - style3.display = restoreDisplay; - }); - if (restoreDisplay == null) { - display = style3.display; - restoreDisplay = display === "none" ? "" : display; - } - } - style3.display = "inline-block"; - } - } - } - if (opts.overflow) { - style3.overflow = "hidden"; - anim.always(function() { - style3.overflow = opts.overflow[0]; - style3.overflowX = opts.overflow[1]; - style3.overflowY = opts.overflow[2]; - }); - } - propTween = false; - for (prop in orig) { - if (!propTween) { - if (dataShow) { - if ("hidden" in dataShow) { - hidden = dataShow.hidden; - } - } else { - dataShow = dataPriv.access(elem, "fxshow", { display: restoreDisplay }); - } - if (toggle) { - dataShow.hidden = !hidden; - } - if (hidden) { - showHide([elem], true); - } - anim.done(function() { - if (!hidden) { - showHide([elem]); - } - dataPriv.remove(elem, "fxshow"); - for (prop in orig) { - jQuery.style(elem, prop, orig[prop]); - } - }); - } - propTween = createTween(hidden ? dataShow[prop] : 0, prop, anim); - if (!(prop in dataShow)) { - dataShow[prop] = propTween.start; - if (hidden) { - propTween.end = propTween.start; - propTween.start = 0; - } - } - } - } - function propFilter(props, specialEasing) { - var index2, name, easing, value2, hooks; - for (index2 in props) { - name = camelCase2(index2); - easing = specialEasing[name]; - value2 = props[index2]; - if (Array.isArray(value2)) { - easing = value2[1]; - value2 = props[index2] = value2[0]; - } - if (index2 !== name) { - props[name] = value2; - delete props[index2]; - } - hooks = jQuery.cssHooks[name]; - if (hooks && "expand" in hooks) { - value2 = hooks.expand(value2); - delete props[name]; - for (index2 in value2) { - if (!(index2 in props)) { - props[index2] = value2[index2]; - specialEasing[index2] = easing; - } - } - } else { - specialEasing[name] = easing; - } - } - } - function Animation3(elem, properties, options2) { - var result2, stopped, index2 = 0, length2 = Animation3.prefilters.length, deferred = jQuery.Deferred().always(function() { - delete tick.elem; - }), tick = function() { - if (stopped) { - return false; - } - var currentTime2 = fxNow || createFxNow(), remaining = Math.max(0, animation2.startTime + animation2.duration - currentTime2), temp = remaining / animation2.duration || 0, percent = 1 - temp, index3 = 0, length3 = animation2.tweens.length; - for (; index3 < length3; index3++) { - animation2.tweens[index3].run(percent); - } - deferred.notifyWith(elem, [animation2, percent, remaining]); - if (percent < 1 && length3) { - return remaining; - } - if (!length3) { - deferred.notifyWith(elem, [animation2, 1, 0]); - } - deferred.resolveWith(elem, [animation2]); - return false; - }, animation2 = deferred.promise({ - elem, - props: jQuery.extend({}, properties), - opts: jQuery.extend(true, { - specialEasing: {}, - easing: jQuery.easing._default - }, options2), - originalProperties: properties, - originalOptions: options2, - startTime: fxNow || createFxNow(), - duration: options2.duration, - tweens: [], - createTween: function(prop, end2) { - var tween = jQuery.Tween( - elem, - animation2.opts, - prop, - end2, - animation2.opts.specialEasing[prop] || animation2.opts.easing - ); - animation2.tweens.push(tween); - return tween; - }, - stop: function(gotoEnd) { - var index3 = 0, length3 = gotoEnd ? animation2.tweens.length : 0; - if (stopped) { - return this; - } - stopped = true; - for (; index3 < length3; index3++) { - animation2.tweens[index3].run(1); - } - if (gotoEnd) { - deferred.notifyWith(elem, [animation2, 1, 0]); - deferred.resolveWith(elem, [animation2, gotoEnd]); - } else { - deferred.rejectWith(elem, [animation2, gotoEnd]); - } - return this; - } - }), props = animation2.props; - propFilter(props, animation2.opts.specialEasing); - for (; index2 < length2; index2++) { - result2 = Animation3.prefilters[index2].call(animation2, elem, props, animation2.opts); - if (result2) { - if (isFunction2(result2.stop)) { - jQuery._queueHooks(animation2.elem, animation2.opts.queue).stop = result2.stop.bind(result2); - } - return result2; - } - } - jQuery.map(props, createTween, animation2); - if (isFunction2(animation2.opts.start)) { - animation2.opts.start.call(elem, animation2); - } - animation2.progress(animation2.opts.progress).done(animation2.opts.done, animation2.opts.complete).fail(animation2.opts.fail).always(animation2.opts.always); - jQuery.fx.timer( - jQuery.extend(tick, { - elem, - anim: animation2, - queue: animation2.opts.queue - }) - ); - return animation2; - } - jQuery.Animation = jQuery.extend(Animation3, { - tweeners: { - "*": [function(prop, value2) { - var tween = this.createTween(prop, value2); - adjustCSS(tween.elem, prop, rcssNum.exec(value2), tween); - return tween; - }] - }, - tweener: function(props, callback) { - if (isFunction2(props)) { - callback = props; - props = ["*"]; - } else { - props = props.match(rnothtmlwhite); - } - var prop, index2 = 0, length2 = props.length; - for (; index2 < length2; index2++) { - prop = props[index2]; - Animation3.tweeners[prop] = Animation3.tweeners[prop] || []; - Animation3.tweeners[prop].unshift(callback); - } - }, - prefilters: [defaultPrefilter], - prefilter: function(callback, prepend) { - if (prepend) { - Animation3.prefilters.unshift(callback); - } else { - Animation3.prefilters.push(callback); - } - } - }); - jQuery.speed = function(speed, easing, fn3) { - var opt = speed && typeof speed === "object" ? jQuery.extend({}, speed) : { - complete: fn3 || !fn3 && easing || isFunction2(speed) && speed, - duration: speed, - easing: fn3 && easing || easing && !isFunction2(easing) && easing - }; - if (jQuery.fx.off) { - opt.duration = 0; - } else { - if (typeof opt.duration !== "number") { - if (opt.duration in jQuery.fx.speeds) { - opt.duration = jQuery.fx.speeds[opt.duration]; - } else { - opt.duration = jQuery.fx.speeds._default; - } - } - } - if (opt.queue == null || opt.queue === true) { - opt.queue = "fx"; - } - opt.old = opt.complete; - opt.complete = function() { - if (isFunction2(opt.old)) { - opt.old.call(this); - } - if (opt.queue) { - jQuery.dequeue(this, opt.queue); - } - }; - return opt; - }; - jQuery.fn.extend({ - fadeTo: function(speed, to, easing, callback) { - return this.filter(isHiddenWithinTree).css("opacity", 0).show().end().animate({ opacity: to }, speed, easing, callback); - }, - animate: function(prop, speed, easing, callback) { - var empty3 = jQuery.isEmptyObject(prop), optall = jQuery.speed(speed, easing, callback), doAnimation = function() { - var anim = Animation3(this, jQuery.extend({}, prop), optall); - if (empty3 || dataPriv.get(this, "finish")) { - anim.stop(true); - } - }; - doAnimation.finish = doAnimation; - return empty3 || optall.queue === false ? this.each(doAnimation) : this.queue(optall.queue, doAnimation); - }, - stop: function(type3, clearQueue2, gotoEnd) { - var stopQueue = function(hooks) { - var stop5 = hooks.stop; - delete hooks.stop; - stop5(gotoEnd); - }; - if (typeof type3 !== "string") { - gotoEnd = clearQueue2; - clearQueue2 = type3; - type3 = void 0; - } - if (clearQueue2) { - this.queue(type3 || "fx", []); - } - return this.each(function() { - var dequeue = true, index2 = type3 != null && type3 + "queueHooks", timers = jQuery.timers, data6 = dataPriv.get(this); - if (index2) { - if (data6[index2] && data6[index2].stop) { - stopQueue(data6[index2]); - } - } else { - for (index2 in data6) { - if (data6[index2] && data6[index2].stop && rrun.test(index2)) { - stopQueue(data6[index2]); - } - } - } - for (index2 = timers.length; index2--; ) { - if (timers[index2].elem === this && (type3 == null || timers[index2].queue === type3)) { - timers[index2].anim.stop(gotoEnd); - dequeue = false; - timers.splice(index2, 1); - } - } - if (dequeue || !gotoEnd) { - jQuery.dequeue(this, type3); - } - }); - }, - finish: function(type3) { - if (type3 !== false) { - type3 = type3 || "fx"; - } - return this.each(function() { - var index2, data6 = dataPriv.get(this), queue = data6[type3 + "queue"], hooks = data6[type3 + "queueHooks"], timers = jQuery.timers, length2 = queue ? queue.length : 0; - data6.finish = true; - jQuery.queue(this, type3, []); - if (hooks && hooks.stop) { - hooks.stop.call(this, true); - } - for (index2 = timers.length; index2--; ) { - if (timers[index2].elem === this && timers[index2].queue === type3) { - timers[index2].anim.stop(true); - timers.splice(index2, 1); - } - } - for (index2 = 0; index2 < length2; index2++) { - if (queue[index2] && queue[index2].finish) { - queue[index2].finish.call(this); - } - } - delete data6.finish; - }); - } - }); - jQuery.each(["toggle", "show", "hide"], function(_i, name) { - var cssFn = jQuery.fn[name]; - jQuery.fn[name] = function(speed, easing, callback) { - return speed == null || typeof speed === "boolean" ? cssFn.apply(this, arguments) : this.animate(genFx(name, true), speed, easing, callback); - }; - }); - jQuery.each({ - slideDown: genFx("show"), - slideUp: genFx("hide"), - slideToggle: genFx("toggle"), - fadeIn: { opacity: "show" }, - fadeOut: { opacity: "hide" }, - fadeToggle: { opacity: "toggle" } - }, function(name, props) { - jQuery.fn[name] = function(speed, easing, callback) { - return this.animate(props, speed, easing, callback); - }; - }); - jQuery.timers = []; - jQuery.fx.tick = function() { - var timer3, i3 = 0, timers = jQuery.timers; - fxNow = Date.now(); - for (; i3 < timers.length; i3++) { - timer3 = timers[i3]; - if (!timer3() && timers[i3] === timer3) { - timers.splice(i3--, 1); - } - } - if (!timers.length) { - jQuery.fx.stop(); - } - fxNow = void 0; - }; - jQuery.fx.timer = function(timer3) { - jQuery.timers.push(timer3); - jQuery.fx.start(); - }; - jQuery.fx.interval = 13; - jQuery.fx.start = function() { - if (inProgress) { - return; - } - inProgress = true; - schedule(); - }; - jQuery.fx.stop = function() { - inProgress = null; - }; - jQuery.fx.speeds = { - slow: 600, - fast: 200, - // Default speed - _default: 400 - }; - jQuery.fn.delay = function(time4, type3) { - time4 = jQuery.fx ? jQuery.fx.speeds[time4] || time4 : time4; - type3 = type3 || "fx"; - return this.queue(type3, function(next3, hooks) { - var timeout2 = window3.setTimeout(next3, time4); - hooks.stop = function() { - window3.clearTimeout(timeout2); - }; - }); - }; - (function() { - var input = document2.createElement("input"), select = document2.createElement("select"), opt = select.appendChild(document2.createElement("option")); - input.type = "checkbox"; - support.checkOn = input.value !== ""; - support.optSelected = opt.selected; - input = document2.createElement("input"); - input.value = "t"; - input.type = "radio"; - support.radioValue = input.value === "t"; - })(); - var boolHook, attrHandle = jQuery.expr.attrHandle; - jQuery.fn.extend({ - attr: function(name, value2) { - return access(this, jQuery.attr, name, value2, arguments.length > 1); - }, - removeAttr: function(name) { - return this.each(function() { - jQuery.removeAttr(this, name); - }); - } - }); - jQuery.extend({ - attr: function(elem, name, value2) { - var ret, hooks, nType = elem.nodeType; - if (nType === 3 || nType === 8 || nType === 2) { - return; - } - if (typeof elem.getAttribute === "undefined") { - return jQuery.prop(elem, name, value2); - } - if (nType !== 1 || !jQuery.isXMLDoc(elem)) { - hooks = jQuery.attrHooks[name.toLowerCase()] || (jQuery.expr.match.bool.test(name) ? boolHook : void 0); - } - if (value2 !== void 0) { - if (value2 === null) { - jQuery.removeAttr(elem, name); - return; - } - if (hooks && "set" in hooks && (ret = hooks.set(elem, value2, name)) !== void 0) { - return ret; - } - elem.setAttribute(name, value2 + ""); - return value2; - } - if (hooks && "get" in hooks && (ret = hooks.get(elem, name)) !== null) { - return ret; - } - ret = jQuery.find.attr(elem, name); - return ret == null ? void 0 : ret; - }, - attrHooks: { - type: { - set: function(elem, value2) { - if (!support.radioValue && value2 === "radio" && nodeName(elem, "input")) { - var val = elem.value; - elem.setAttribute("type", value2); - if (val) { - elem.value = val; - } - return value2; - } - } - } - }, - removeAttr: function(elem, value2) { - var name, i3 = 0, attrNames = value2 && value2.match(rnothtmlwhite); - if (attrNames && elem.nodeType === 1) { - while (name = attrNames[i3++]) { - elem.removeAttribute(name); - } - } - } - }); - boolHook = { - set: function(elem, value2, name) { - if (value2 === false) { - jQuery.removeAttr(elem, name); - } else { - elem.setAttribute(name, name); - } - return name; - } - }; - jQuery.each(jQuery.expr.match.bool.source.match(/\w+/g), function(_i, name) { - var getter = attrHandle[name] || jQuery.find.attr; - attrHandle[name] = function(elem, name2, isXML) { - var ret, handle, lowercaseName = name2.toLowerCase(); - if (!isXML) { - handle = attrHandle[lowercaseName]; - attrHandle[lowercaseName] = ret; - ret = getter(elem, name2, isXML) != null ? lowercaseName : null; - attrHandle[lowercaseName] = handle; - } - return ret; - }; - }); - var rfocusable = /^(?:input|select|textarea|button)$/i, rclickable = /^(?:a|area)$/i; - jQuery.fn.extend({ - prop: function(name, value2) { - return access(this, jQuery.prop, name, value2, arguments.length > 1); - }, - removeProp: function(name) { - return this.each(function() { - delete this[jQuery.propFix[name] || name]; - }); - } - }); - jQuery.extend({ - prop: function(elem, name, value2) { - var ret, hooks, nType = elem.nodeType; - if (nType === 3 || nType === 8 || nType === 2) { - return; - } - if (nType !== 1 || !jQuery.isXMLDoc(elem)) { - name = jQuery.propFix[name] || name; - hooks = jQuery.propHooks[name]; - } - if (value2 !== void 0) { - if (hooks && "set" in hooks && (ret = hooks.set(elem, value2, name)) !== void 0) { - return ret; - } - return elem[name] = value2; - } - if (hooks && "get" in hooks && (ret = hooks.get(elem, name)) !== null) { - return ret; - } - return elem[name]; - }, - propHooks: { - tabIndex: { - get: function(elem) { - var tabindex = jQuery.find.attr(elem, "tabindex"); - if (tabindex) { - return parseInt(tabindex, 10); - } - if (rfocusable.test(elem.nodeName) || rclickable.test(elem.nodeName) && elem.href) { - return 0; - } - return -1; - } - } - }, - propFix: { - "for": "htmlFor", - "class": "className" - } - }); - if (!support.optSelected) { - jQuery.propHooks.selected = { - get: function(elem) { - var parent5 = elem.parentNode; - if (parent5 && parent5.parentNode) { - parent5.parentNode.selectedIndex; - } - return null; - }, - set: function(elem) { - var parent5 = elem.parentNode; - if (parent5) { - parent5.selectedIndex; - if (parent5.parentNode) { - parent5.parentNode.selectedIndex; - } - } - } - }; - } - jQuery.each([ - "tabIndex", - "readOnly", - "maxLength", - "cellSpacing", - "cellPadding", - "rowSpan", - "colSpan", - "useMap", - "frameBorder", - "contentEditable" - ], function() { - jQuery.propFix[this.toLowerCase()] = this; - }); - function stripAndCollapse(value2) { - var tokens2 = value2.match(rnothtmlwhite) || []; - return tokens2.join(" "); - } - function getClass(elem) { - return elem.getAttribute && elem.getAttribute("class") || ""; - } - function classesToArray(value2) { - if (Array.isArray(value2)) { - return value2; - } - if (typeof value2 === "string") { - return value2.match(rnothtmlwhite) || []; - } - return []; - } - jQuery.fn.extend({ - addClass: function(value2) { - var classNames, cur, curValue, className, i3, finalValue; - if (isFunction2(value2)) { - return this.each(function(j3) { - jQuery(this).addClass(value2.call(this, j3, getClass(this))); - }); - } - classNames = classesToArray(value2); - if (classNames.length) { - return this.each(function() { - curValue = getClass(this); - cur = this.nodeType === 1 && " " + stripAndCollapse(curValue) + " "; - if (cur) { - for (i3 = 0; i3 < classNames.length; i3++) { - className = classNames[i3]; - if (cur.indexOf(" " + className + " ") < 0) { - cur += className + " "; - } - } - finalValue = stripAndCollapse(cur); - if (curValue !== finalValue) { - this.setAttribute("class", finalValue); - } - } - }); - } - return this; - }, - removeClass: function(value2) { - var classNames, cur, curValue, className, i3, finalValue; - if (isFunction2(value2)) { - return this.each(function(j3) { - jQuery(this).removeClass(value2.call(this, j3, getClass(this))); - }); - } - if (!arguments.length) { - return this.attr("class", ""); - } - classNames = classesToArray(value2); - if (classNames.length) { - return this.each(function() { - curValue = getClass(this); - cur = this.nodeType === 1 && " " + stripAndCollapse(curValue) + " "; - if (cur) { - for (i3 = 0; i3 < classNames.length; i3++) { - className = classNames[i3]; - while (cur.indexOf(" " + className + " ") > -1) { - cur = cur.replace(" " + className + " ", " "); - } - } - finalValue = stripAndCollapse(cur); - if (curValue !== finalValue) { - this.setAttribute("class", finalValue); - } - } - }); - } - return this; - }, - toggleClass: function(value2, stateVal) { - var classNames, className, i3, self2, type3 = typeof value2, isValidValue = type3 === "string" || Array.isArray(value2); - if (isFunction2(value2)) { - return this.each(function(i4) { - jQuery(this).toggleClass( - value2.call(this, i4, getClass(this), stateVal), - stateVal - ); - }); - } - if (typeof stateVal === "boolean" && isValidValue) { - return stateVal ? this.addClass(value2) : this.removeClass(value2); - } - classNames = classesToArray(value2); - return this.each(function() { - if (isValidValue) { - self2 = jQuery(this); - for (i3 = 0; i3 < classNames.length; i3++) { - className = classNames[i3]; - if (self2.hasClass(className)) { - self2.removeClass(className); - } else { - self2.addClass(className); - } - } - } else if (value2 === void 0 || type3 === "boolean") { - className = getClass(this); - if (className) { - dataPriv.set(this, "__className__", className); - } - if (this.setAttribute) { - this.setAttribute( - "class", - className || value2 === false ? "" : dataPriv.get(this, "__className__") || "" - ); - } - } - }); - }, - hasClass: function(selector) { - var className, elem, i3 = 0; - className = " " + selector + " "; - while (elem = this[i3++]) { - if (elem.nodeType === 1 && (" " + stripAndCollapse(getClass(elem)) + " ").indexOf(className) > -1) { - return true; - } - } - return false; - } - }); - var rreturn = /\r/g; - jQuery.fn.extend({ - val: function(value2) { - var hooks, ret, valueIsFunction, elem = this[0]; - if (!arguments.length) { - if (elem) { - hooks = jQuery.valHooks[elem.type] || jQuery.valHooks[elem.nodeName.toLowerCase()]; - if (hooks && "get" in hooks && (ret = hooks.get(elem, "value")) !== void 0) { - return ret; - } - ret = elem.value; - if (typeof ret === "string") { - return ret.replace(rreturn, ""); - } - return ret == null ? "" : ret; - } - return; - } - valueIsFunction = isFunction2(value2); - return this.each(function(i3) { - var val; - if (this.nodeType !== 1) { - return; - } - if (valueIsFunction) { - val = value2.call(this, i3, jQuery(this).val()); - } else { - val = value2; - } - if (val == null) { - val = ""; - } else if (typeof val === "number") { - val += ""; - } else if (Array.isArray(val)) { - val = jQuery.map(val, function(value3) { - return value3 == null ? "" : value3 + ""; - }); - } - hooks = jQuery.valHooks[this.type] || jQuery.valHooks[this.nodeName.toLowerCase()]; - if (!hooks || !("set" in hooks) || hooks.set(this, val, "value") === void 0) { - this.value = val; - } - }); - } - }); - jQuery.extend({ - valHooks: { - option: { - get: function(elem) { - var val = jQuery.find.attr(elem, "value"); - return val != null ? val : ( - // Support: IE <=10 - 11 only - // option.text throws exceptions (trac-14686, trac-14858) - // Strip and collapse whitespace - // https://html.spec.whatwg.org/#strip-and-collapse-whitespace - stripAndCollapse(jQuery.text(elem)) - ); - } - }, - select: { - get: function(elem) { - var value2, option2, i3, options2 = elem.options, index2 = elem.selectedIndex, one4 = elem.type === "select-one", values2 = one4 ? null : [], max10 = one4 ? index2 + 1 : options2.length; - if (index2 < 0) { - i3 = max10; - } else { - i3 = one4 ? index2 : 0; - } - for (; i3 < max10; i3++) { - option2 = options2[i3]; - if ((option2.selected || i3 === index2) && // Don't return options that are disabled or in a disabled optgroup - !option2.disabled && (!option2.parentNode.disabled || !nodeName(option2.parentNode, "optgroup"))) { - value2 = jQuery(option2).val(); - if (one4) { - return value2; - } - values2.push(value2); - } - } - return values2; - }, - set: function(elem, value2) { - var optionSet, option2, options2 = elem.options, values2 = jQuery.makeArray(value2), i3 = options2.length; - while (i3--) { - option2 = options2[i3]; - if (option2.selected = jQuery.inArray(jQuery.valHooks.option.get(option2), values2) > -1) { - optionSet = true; - } - } - if (!optionSet) { - elem.selectedIndex = -1; - } - return values2; - } - } - } - }); - jQuery.each(["radio", "checkbox"], function() { - jQuery.valHooks[this] = { - set: function(elem, value2) { - if (Array.isArray(value2)) { - return elem.checked = jQuery.inArray(jQuery(elem).val(), value2) > -1; - } - } - }; - if (!support.checkOn) { - jQuery.valHooks[this].get = function(elem) { - return elem.getAttribute("value") === null ? "on" : elem.value; - }; - } - }); - var location2 = window3.location; - var nonce = { guid: Date.now() }; - var rquery = /\?/; - jQuery.parseXML = function(data6) { - var xml2, parserErrorElem; - if (!data6 || typeof data6 !== "string") { - return null; - } - try { - xml2 = new window3.DOMParser().parseFromString(data6, "text/xml"); - } catch (e3) { - } - parserErrorElem = xml2 && xml2.getElementsByTagName("parsererror")[0]; - if (!xml2 || parserErrorElem) { - jQuery.error("Invalid XML: " + (parserErrorElem ? jQuery.map(parserErrorElem.childNodes, function(el) { - return el.textContent; - }).join("\n") : data6)); - } - return xml2; - }; - var rfocusMorph = /^(?:focusinfocus|focusoutblur)$/, stopPropagationCallback = function(e3) { - e3.stopPropagation(); - }; - jQuery.extend(jQuery.event, { - trigger: function(event3, data6, elem, onlyHandlers) { - var i3, cur, tmp, bubbleType, ontype, handle, special, lastElement, eventPath = [elem || document2], type3 = hasOwn.call(event3, "type") ? event3.type : event3, namespaces = hasOwn.call(event3, "namespace") ? event3.namespace.split(".") : []; - cur = lastElement = tmp = elem = elem || document2; - if (elem.nodeType === 3 || elem.nodeType === 8) { - return; - } - if (rfocusMorph.test(type3 + jQuery.event.triggered)) { - return; - } - if (type3.indexOf(".") > -1) { - namespaces = type3.split("."); - type3 = namespaces.shift(); - namespaces.sort(); - } - ontype = type3.indexOf(":") < 0 && "on" + type3; - event3 = event3[jQuery.expando] ? event3 : new jQuery.Event(type3, typeof event3 === "object" && event3); - event3.isTrigger = onlyHandlers ? 2 : 3; - event3.namespace = namespaces.join("."); - event3.rnamespace = event3.namespace ? new RegExp("(^|\\.)" + namespaces.join("\\.(?:.*\\.|)") + "(\\.|$)") : null; - event3.result = void 0; - if (!event3.target) { - event3.target = elem; - } - data6 = data6 == null ? [event3] : jQuery.makeArray(data6, [event3]); - special = jQuery.event.special[type3] || {}; - if (!onlyHandlers && special.trigger && special.trigger.apply(elem, data6) === false) { - return; - } - if (!onlyHandlers && !special.noBubble && !isWindow(elem)) { - bubbleType = special.delegateType || type3; - if (!rfocusMorph.test(bubbleType + type3)) { - cur = cur.parentNode; - } - for (; cur; cur = cur.parentNode) { - eventPath.push(cur); - tmp = cur; - } - if (tmp === (elem.ownerDocument || document2)) { - eventPath.push(tmp.defaultView || tmp.parentWindow || window3); - } - } - i3 = 0; - while ((cur = eventPath[i3++]) && !event3.isPropagationStopped()) { - lastElement = cur; - event3.type = i3 > 1 ? bubbleType : special.bindType || type3; - handle = (dataPriv.get(cur, "events") || /* @__PURE__ */ Object.create(null))[event3.type] && dataPriv.get(cur, "handle"); - if (handle) { - handle.apply(cur, data6); - } - handle = ontype && cur[ontype]; - if (handle && handle.apply && acceptData(cur)) { - event3.result = handle.apply(cur, data6); - if (event3.result === false) { - event3.preventDefault(); - } - } - } - event3.type = type3; - if (!onlyHandlers && !event3.isDefaultPrevented()) { - if ((!special._default || special._default.apply(eventPath.pop(), data6) === false) && acceptData(elem)) { - if (ontype && isFunction2(elem[type3]) && !isWindow(elem)) { - tmp = elem[ontype]; - if (tmp) { - elem[ontype] = null; - } - jQuery.event.triggered = type3; - if (event3.isPropagationStopped()) { - lastElement.addEventListener(type3, stopPropagationCallback); - } - elem[type3](); - if (event3.isPropagationStopped()) { - lastElement.removeEventListener(type3, stopPropagationCallback); - } - jQuery.event.triggered = void 0; - if (tmp) { - elem[ontype] = tmp; - } - } - } - } - return event3.result; - }, - // Piggyback on a donor event to simulate a different one - // Used only for `focus(in | out)` events - simulate: function(type3, elem, event3) { - var e3 = jQuery.extend( - new jQuery.Event(), - event3, - { - type: type3, - isSimulated: true - } - ); - jQuery.event.trigger(e3, null, elem); - } - }); - jQuery.fn.extend({ - trigger: function(type3, data6) { - return this.each(function() { - jQuery.event.trigger(type3, data6, this); - }); - }, - triggerHandler: function(type3, data6) { - var elem = this[0]; - if (elem) { - return jQuery.event.trigger(type3, data6, elem, true); - } - } - }); - var rbracket = /\[\]$/, rCRLF = /\r?\n/g, rsubmitterTypes = /^(?:submit|button|image|reset|file)$/i, rsubmittable = /^(?:input|select|textarea|keygen)/i; - function buildParams(prefix2, obj, traditional, add6) { - var name; - if (Array.isArray(obj)) { - jQuery.each(obj, function(i3, v6) { - if (traditional || rbracket.test(prefix2)) { - add6(prefix2, v6); - } else { - buildParams( - prefix2 + "[" + (typeof v6 === "object" && v6 != null ? i3 : "") + "]", - v6, - traditional, - add6 - ); - } - }); - } else if (!traditional && toType(obj) === "object") { - for (name in obj) { - buildParams(prefix2 + "[" + name + "]", obj[name], traditional, add6); - } - } else { - add6(prefix2, obj); - } - } - jQuery.param = function(a3, traditional) { - var prefix2, s3 = [], add6 = function(key, valueOrFunction) { - var value2 = isFunction2(valueOrFunction) ? valueOrFunction() : valueOrFunction; - s3[s3.length] = encodeURIComponent(key) + "=" + encodeURIComponent(value2 == null ? "" : value2); - }; - if (a3 == null) { - return ""; - } - if (Array.isArray(a3) || a3.jquery && !jQuery.isPlainObject(a3)) { - jQuery.each(a3, function() { - add6(this.name, this.value); - }); - } else { - for (prefix2 in a3) { - buildParams(prefix2, a3[prefix2], traditional, add6); - } - } - return s3.join("&"); - }; - jQuery.fn.extend({ - serialize: function() { - return jQuery.param(this.serializeArray()); - }, - serializeArray: function() { - return this.map(function() { - var elements2 = jQuery.prop(this, "elements"); - return elements2 ? jQuery.makeArray(elements2) : this; - }).filter(function() { - var type3 = this.type; - return this.name && !jQuery(this).is(":disabled") && rsubmittable.test(this.nodeName) && !rsubmitterTypes.test(type3) && (this.checked || !rcheckableType.test(type3)); - }).map(function(_i, elem) { - var val = jQuery(this).val(); - if (val == null) { - return null; - } - if (Array.isArray(val)) { - return jQuery.map(val, function(val2) { - return { name: elem.name, value: val2.replace(rCRLF, "\r\n") }; - }); - } - return { name: elem.name, value: val.replace(rCRLF, "\r\n") }; - }).get(); - } - }); - var r20 = /%20/g, rhash = /#.*$/, rantiCache = /([?&])_=[^&]*/, rheaders = /^(.*?):[ \t]*([^\r\n]*)$/mg, rlocalProtocol = /^(?:about|app|app-storage|.+-extension|file|res|widget):$/, rnoContent = /^(?:GET|HEAD)$/, rprotocol = /^\/\//, prefilters = {}, transports = {}, allTypes = "*/".concat("*"), originAnchor = document2.createElement("a"); - originAnchor.href = location2.href; - function addToPrefiltersOrTransports(structure) { - return function(dataTypeExpression, func) { - if (typeof dataTypeExpression !== "string") { - func = dataTypeExpression; - dataTypeExpression = "*"; - } - var dataType, i3 = 0, dataTypes = dataTypeExpression.toLowerCase().match(rnothtmlwhite) || []; - if (isFunction2(func)) { - while (dataType = dataTypes[i3++]) { - if (dataType[0] === "+") { - dataType = dataType.slice(1) || "*"; - (structure[dataType] = structure[dataType] || []).unshift(func); - } else { - (structure[dataType] = structure[dataType] || []).push(func); - } - } - } - }; - } - function inspectPrefiltersOrTransports(structure, options2, originalOptions, jqXHR) { - var inspected = {}, seekingTransport = structure === transports; - function inspect(dataType) { - var selected; - inspected[dataType] = true; - jQuery.each(structure[dataType] || [], function(_3, prefilterOrFactory) { - var dataTypeOrTransport = prefilterOrFactory(options2, originalOptions, jqXHR); - if (typeof dataTypeOrTransport === "string" && !seekingTransport && !inspected[dataTypeOrTransport]) { - options2.dataTypes.unshift(dataTypeOrTransport); - inspect(dataTypeOrTransport); - return false; - } else if (seekingTransport) { - return !(selected = dataTypeOrTransport); - } - }); - return selected; - } - return inspect(options2.dataTypes[0]) || !inspected["*"] && inspect("*"); - } - function ajaxExtend(target, src) { - var key, deep, flatOptions = jQuery.ajaxSettings.flatOptions || {}; - for (key in src) { - if (src[key] !== void 0) { - (flatOptions[key] ? target : deep || (deep = {}))[key] = src[key]; - } - } - if (deep) { - jQuery.extend(true, target, deep); - } - return target; - } - function ajaxHandleResponses(s3, jqXHR, responses) { - var ct, type3, finalDataType, firstDataType, contents = s3.contents, dataTypes = s3.dataTypes; - while (dataTypes[0] === "*") { - dataTypes.shift(); - if (ct === void 0) { - ct = s3.mimeType || jqXHR.getResponseHeader("Content-Type"); - } - } - if (ct) { - for (type3 in contents) { - if (contents[type3] && contents[type3].test(ct)) { - dataTypes.unshift(type3); - break; - } - } - } - if (dataTypes[0] in responses) { - finalDataType = dataTypes[0]; - } else { - for (type3 in responses) { - if (!dataTypes[0] || s3.converters[type3 + " " + dataTypes[0]]) { - finalDataType = type3; - break; - } - if (!firstDataType) { - firstDataType = type3; - } - } - finalDataType = finalDataType || firstDataType; - } - if (finalDataType) { - if (finalDataType !== dataTypes[0]) { - dataTypes.unshift(finalDataType); - } - return responses[finalDataType]; - } - } - function ajaxConvert(s3, response, jqXHR, isSuccess) { - var conv2, current, conv, tmp, prev2, converters = {}, dataTypes = s3.dataTypes.slice(); - if (dataTypes[1]) { - for (conv in s3.converters) { - converters[conv.toLowerCase()] = s3.converters[conv]; - } - } - current = dataTypes.shift(); - while (current) { - if (s3.responseFields[current]) { - jqXHR[s3.responseFields[current]] = response; - } - if (!prev2 && isSuccess && s3.dataFilter) { - response = s3.dataFilter(response, s3.dataType); - } - prev2 = current; - current = dataTypes.shift(); - if (current) { - if (current === "*") { - current = prev2; - } else if (prev2 !== "*" && prev2 !== current) { - conv = converters[prev2 + " " + current] || converters["* " + current]; - if (!conv) { - for (conv2 in converters) { - tmp = conv2.split(" "); - if (tmp[1] === current) { - conv = converters[prev2 + " " + tmp[0]] || converters["* " + tmp[0]]; - if (conv) { - if (conv === true) { - conv = converters[conv2]; - } else if (converters[conv2] !== true) { - current = tmp[0]; - dataTypes.unshift(tmp[1]); - } - break; - } - } - } - } - if (conv !== true) { - if (conv && s3.throws) { - response = conv(response); - } else { - try { - response = conv(response); - } catch (e3) { - return { - state: "parsererror", - error: conv ? e3 : "No conversion from " + prev2 + " to " + current - }; - } - } - } - } - } - } - return { state: "success", data: response }; - } - jQuery.extend({ - // Counter for holding the number of active queries - active: 0, - // Last-Modified header cache for next request - lastModified: {}, - etag: {}, - ajaxSettings: { - url: location2.href, - type: "GET", - isLocal: rlocalProtocol.test(location2.protocol), - global: true, - processData: true, - async: true, - contentType: "application/x-www-form-urlencoded; charset=UTF-8", - /* - timeout: 0, - data: null, - dataType: null, - username: null, - password: null, - cache: null, - throws: false, - traditional: false, - headers: {}, - */ - accepts: { - "*": allTypes, - text: "text/plain", - html: "text/html", - xml: "application/xml, text/xml", - json: "application/json, text/javascript" - }, - contents: { - xml: /\bxml\b/, - html: /\bhtml/, - json: /\bjson\b/ - }, - responseFields: { - xml: "responseXML", - text: "responseText", - json: "responseJSON" - }, - // Data converters - // Keys separate source (or catchall "*") and destination types with a single space - converters: { - // Convert anything to text - "* text": String, - // Text to html (true = no transformation) - "text html": true, - // Evaluate text as a json expression - "text json": JSON.parse, - // Parse text as xml - "text xml": jQuery.parseXML - }, - // For options that shouldn't be deep extended: - // you can add your own custom options here if - // and when you create one that shouldn't be - // deep extended (see ajaxExtend) - flatOptions: { - url: true, - context: true - } - }, - // Creates a full fledged settings object into target - // with both ajaxSettings and settings fields. - // If target is omitted, writes into ajaxSettings. - ajaxSetup: function(target, settings) { - return settings ? ( - // Building a settings object - ajaxExtend(ajaxExtend(target, jQuery.ajaxSettings), settings) - ) : ( - // Extending ajaxSettings - ajaxExtend(jQuery.ajaxSettings, target) - ); - }, - ajaxPrefilter: addToPrefiltersOrTransports(prefilters), - ajaxTransport: addToPrefiltersOrTransports(transports), - // Main method - ajax: function(url, options2) { - if (typeof url === "object") { - options2 = url; - url = void 0; - } - options2 = options2 || {}; - var transport, cacheURL, responseHeadersString, responseHeaders, timeoutTimer, urlAnchor, completed3, fireGlobals, i3, uncached, s3 = jQuery.ajaxSetup({}, options2), callbackContext4 = s3.context || s3, globalEventContext = s3.context && (callbackContext4.nodeType || callbackContext4.jquery) ? jQuery(callbackContext4) : jQuery.event, deferred = jQuery.Deferred(), completeDeferred = jQuery.Callbacks("once memory"), statusCode = s3.statusCode || {}, requestHeaders = {}, requestHeadersNames = {}, strAbort = "canceled", jqXHR = { - readyState: 0, - // Builds headers hashtable if needed - getResponseHeader: function(key) { - var match3; - if (completed3) { - if (!responseHeaders) { - responseHeaders = {}; - while (match3 = rheaders.exec(responseHeadersString)) { - responseHeaders[match3[1].toLowerCase() + " "] = (responseHeaders[match3[1].toLowerCase() + " "] || []).concat(match3[2]); - } - } - match3 = responseHeaders[key.toLowerCase() + " "]; - } - return match3 == null ? null : match3.join(", "); - }, - // Raw string - getAllResponseHeaders: function() { - return completed3 ? responseHeadersString : null; - }, - // Caches the header - setRequestHeader: function(name, value2) { - if (completed3 == null) { - name = requestHeadersNames[name.toLowerCase()] = requestHeadersNames[name.toLowerCase()] || name; - requestHeaders[name] = value2; - } - return this; - }, - // Overrides response content-type header - overrideMimeType: function(type3) { - if (completed3 == null) { - s3.mimeType = type3; - } - return this; - }, - // Status-dependent callbacks - statusCode: function(map8) { - var code; - if (map8) { - if (completed3) { - jqXHR.always(map8[jqXHR.status]); - } else { - for (code in map8) { - statusCode[code] = [statusCode[code], map8[code]]; - } - } - } - return this; - }, - // Cancel the request - abort: function(statusText) { - var finalText = statusText || strAbort; - if (transport) { - transport.abort(finalText); - } - done(0, finalText); - return this; - } - }; - deferred.promise(jqXHR); - s3.url = ((url || s3.url || location2.href) + "").replace(rprotocol, location2.protocol + "//"); - s3.type = options2.method || options2.type || s3.method || s3.type; - s3.dataTypes = (s3.dataType || "*").toLowerCase().match(rnothtmlwhite) || [""]; - if (s3.crossDomain == null) { - urlAnchor = document2.createElement("a"); - try { - urlAnchor.href = s3.url; - urlAnchor.href = urlAnchor.href; - s3.crossDomain = originAnchor.protocol + "//" + originAnchor.host !== urlAnchor.protocol + "//" + urlAnchor.host; - } catch (e3) { - s3.crossDomain = true; - } - } - if (s3.data && s3.processData && typeof s3.data !== "string") { - s3.data = jQuery.param(s3.data, s3.traditional); - } - inspectPrefiltersOrTransports(prefilters, s3, options2, jqXHR); - if (completed3) { - return jqXHR; - } - fireGlobals = jQuery.event && s3.global; - if (fireGlobals && jQuery.active++ === 0) { - jQuery.event.trigger("ajaxStart"); - } - s3.type = s3.type.toUpperCase(); - s3.hasContent = !rnoContent.test(s3.type); - cacheURL = s3.url.replace(rhash, ""); - if (!s3.hasContent) { - uncached = s3.url.slice(cacheURL.length); - if (s3.data && (s3.processData || typeof s3.data === "string")) { - cacheURL += (rquery.test(cacheURL) ? "&" : "?") + s3.data; - delete s3.data; - } - if (s3.cache === false) { - cacheURL = cacheURL.replace(rantiCache, "$1"); - uncached = (rquery.test(cacheURL) ? "&" : "?") + "_=" + nonce.guid++ + uncached; - } - s3.url = cacheURL + uncached; - } else if (s3.data && s3.processData && (s3.contentType || "").indexOf("application/x-www-form-urlencoded") === 0) { - s3.data = s3.data.replace(r20, "+"); - } - if (s3.ifModified) { - if (jQuery.lastModified[cacheURL]) { - jqXHR.setRequestHeader("If-Modified-Since", jQuery.lastModified[cacheURL]); - } - if (jQuery.etag[cacheURL]) { - jqXHR.setRequestHeader("If-None-Match", jQuery.etag[cacheURL]); - } - } - if (s3.data && s3.hasContent && s3.contentType !== false || options2.contentType) { - jqXHR.setRequestHeader("Content-Type", s3.contentType); - } - jqXHR.setRequestHeader( - "Accept", - s3.dataTypes[0] && s3.accepts[s3.dataTypes[0]] ? s3.accepts[s3.dataTypes[0]] + (s3.dataTypes[0] !== "*" ? ", " + allTypes + "; q=0.01" : "") : s3.accepts["*"] - ); - for (i3 in s3.headers) { - jqXHR.setRequestHeader(i3, s3.headers[i3]); - } - if (s3.beforeSend && (s3.beforeSend.call(callbackContext4, jqXHR, s3) === false || completed3)) { - return jqXHR.abort(); - } - strAbort = "abort"; - completeDeferred.add(s3.complete); - jqXHR.done(s3.success); - jqXHR.fail(s3.error); - transport = inspectPrefiltersOrTransports(transports, s3, options2, jqXHR); - if (!transport) { - done(-1, "No Transport"); - } else { - jqXHR.readyState = 1; - if (fireGlobals) { - globalEventContext.trigger("ajaxSend", [jqXHR, s3]); - } - if (completed3) { - return jqXHR; - } - if (s3.async && s3.timeout > 0) { - timeoutTimer = window3.setTimeout(function() { - jqXHR.abort("timeout"); - }, s3.timeout); - } - try { - completed3 = false; - transport.send(requestHeaders, done); - } catch (e3) { - if (completed3) { - throw e3; - } - done(-1, e3); - } - } - function done(status, nativeStatusText, responses, headers) { - var isSuccess, success, error3, response, modified, statusText = nativeStatusText; - if (completed3) { - return; - } - completed3 = true; - if (timeoutTimer) { - window3.clearTimeout(timeoutTimer); - } - transport = void 0; - responseHeadersString = headers || ""; - jqXHR.readyState = status > 0 ? 4 : 0; - isSuccess = status >= 200 && status < 300 || status === 304; - if (responses) { - response = ajaxHandleResponses(s3, jqXHR, responses); - } - if (!isSuccess && jQuery.inArray("script", s3.dataTypes) > -1 && jQuery.inArray("json", s3.dataTypes) < 0) { - s3.converters["text script"] = function() { - }; - } - response = ajaxConvert(s3, response, jqXHR, isSuccess); - if (isSuccess) { - if (s3.ifModified) { - modified = jqXHR.getResponseHeader("Last-Modified"); - if (modified) { - jQuery.lastModified[cacheURL] = modified; - } - modified = jqXHR.getResponseHeader("etag"); - if (modified) { - jQuery.etag[cacheURL] = modified; - } - } - if (status === 204 || s3.type === "HEAD") { - statusText = "nocontent"; - } else if (status === 304) { - statusText = "notmodified"; - } else { - statusText = response.state; - success = response.data; - error3 = response.error; - isSuccess = !error3; - } - } else { - error3 = statusText; - if (status || !statusText) { - statusText = "error"; - if (status < 0) { - status = 0; - } - } - } - jqXHR.status = status; - jqXHR.statusText = (nativeStatusText || statusText) + ""; - if (isSuccess) { - deferred.resolveWith(callbackContext4, [success, statusText, jqXHR]); - } else { - deferred.rejectWith(callbackContext4, [jqXHR, statusText, error3]); - } - jqXHR.statusCode(statusCode); - statusCode = void 0; - if (fireGlobals) { - globalEventContext.trigger( - isSuccess ? "ajaxSuccess" : "ajaxError", - [jqXHR, s3, isSuccess ? success : error3] - ); - } - completeDeferred.fireWith(callbackContext4, [jqXHR, statusText]); - if (fireGlobals) { - globalEventContext.trigger("ajaxComplete", [jqXHR, s3]); - if (!--jQuery.active) { - jQuery.event.trigger("ajaxStop"); - } - } - } - return jqXHR; - }, - getJSON: function(url, data6, callback) { - return jQuery.get(url, data6, callback, "json"); - }, - getScript: function(url, callback) { - return jQuery.get(url, void 0, callback, "script"); - } - }); - jQuery.each(["get", "post"], function(_i, method2) { - jQuery[method2] = function(url, data6, callback, type3) { - if (isFunction2(data6)) { - type3 = type3 || callback; - callback = data6; - data6 = void 0; - } - return jQuery.ajax(jQuery.extend({ - url, - type: method2, - dataType: type3, - data: data6, - success: callback - }, jQuery.isPlainObject(url) && url)); - }; - }); - jQuery.ajaxPrefilter(function(s3) { - var i3; - for (i3 in s3.headers) { - if (i3.toLowerCase() === "content-type") { - s3.contentType = s3.headers[i3] || ""; - } - } - }); - jQuery._evalUrl = function(url, options2, doc) { - return jQuery.ajax({ - url, - // Make this explicit, since user can override this through ajaxSetup (trac-11264) - type: "GET", - dataType: "script", - cache: true, - async: false, - global: false, - // Only evaluate the response if it is successful (gh-4126) - // dataFilter is not invoked for failure responses, so using it instead - // of the default converter is kludgy but it works. - converters: { - "text script": function() { - } - }, - dataFilter: function(response) { - jQuery.globalEval(response, options2, doc); - } - }); - }; - jQuery.fn.extend({ - wrapAll: function(html3) { - var wrap4; - if (this[0]) { - if (isFunction2(html3)) { - html3 = html3.call(this[0]); - } - wrap4 = jQuery(html3, this[0].ownerDocument).eq(0).clone(true); - if (this[0].parentNode) { - wrap4.insertBefore(this[0]); - } - wrap4.map(function() { - var elem = this; - while (elem.firstElementChild) { - elem = elem.firstElementChild; - } - return elem; - }).append(this); - } - return this; - }, - wrapInner: function(html3) { - if (isFunction2(html3)) { - return this.each(function(i3) { - jQuery(this).wrapInner(html3.call(this, i3)); - }); - } - return this.each(function() { - var self2 = jQuery(this), contents = self2.contents(); - if (contents.length) { - contents.wrapAll(html3); - } else { - self2.append(html3); - } - }); - }, - wrap: function(html3) { - var htmlIsFunction = isFunction2(html3); - return this.each(function(i3) { - jQuery(this).wrapAll(htmlIsFunction ? html3.call(this, i3) : html3); - }); - }, - unwrap: function(selector) { - this.parent(selector).not("body").each(function() { - jQuery(this).replaceWith(this.childNodes); - }); - return this; - } - }); - jQuery.expr.pseudos.hidden = function(elem) { - return !jQuery.expr.pseudos.visible(elem); - }; - jQuery.expr.pseudos.visible = function(elem) { - return !!(elem.offsetWidth || elem.offsetHeight || elem.getClientRects().length); - }; - jQuery.ajaxSettings.xhr = function() { - try { - return new window3.XMLHttpRequest(); - } catch (e3) { - } - }; - var xhrSuccessStatus = { - // File protocol always yields status code 0, assume 200 - 0: 200, - // Support: IE <=9 only - // trac-1450: sometimes IE returns 1223 when it should be 204 - 1223: 204 - }, xhrSupported = jQuery.ajaxSettings.xhr(); - support.cors = !!xhrSupported && "withCredentials" in xhrSupported; - support.ajax = xhrSupported = !!xhrSupported; - jQuery.ajaxTransport(function(options2) { - var callback, errorCallback; - if (support.cors || xhrSupported && !options2.crossDomain) { - return { - send: function(headers, complete) { - var i3, xhr = options2.xhr(); - xhr.open( - options2.type, - options2.url, - options2.async, - options2.username, - options2.password - ); - if (options2.xhrFields) { - for (i3 in options2.xhrFields) { - xhr[i3] = options2.xhrFields[i3]; - } - } - if (options2.mimeType && xhr.overrideMimeType) { - xhr.overrideMimeType(options2.mimeType); - } - if (!options2.crossDomain && !headers["X-Requested-With"]) { - headers["X-Requested-With"] = "XMLHttpRequest"; - } - for (i3 in headers) { - xhr.setRequestHeader(i3, headers[i3]); - } - callback = function(type3) { - return function() { - if (callback) { - callback = errorCallback = xhr.onload = xhr.onerror = xhr.onabort = xhr.ontimeout = xhr.onreadystatechange = null; - if (type3 === "abort") { - xhr.abort(); - } else if (type3 === "error") { - if (typeof xhr.status !== "number") { - complete(0, "error"); - } else { - complete( - // File: protocol always yields status 0; see trac-8605, trac-14207 - xhr.status, - xhr.statusText - ); - } - } else { - complete( - xhrSuccessStatus[xhr.status] || xhr.status, - xhr.statusText, - // Support: IE <=9 only - // IE9 has no XHR2 but throws on binary (trac-11426) - // For XHR2 non-text, let the caller handle it (gh-2498) - (xhr.responseType || "text") !== "text" || typeof xhr.responseText !== "string" ? { binary: xhr.response } : { text: xhr.responseText }, - xhr.getAllResponseHeaders() - ); - } - } - }; - }; - xhr.onload = callback(); - errorCallback = xhr.onerror = xhr.ontimeout = callback("error"); - if (xhr.onabort !== void 0) { - xhr.onabort = errorCallback; - } else { - xhr.onreadystatechange = function() { - if (xhr.readyState === 4) { - window3.setTimeout(function() { - if (callback) { - errorCallback(); - } - }); - } - }; - } - callback = callback("abort"); - try { - xhr.send(options2.hasContent && options2.data || null); - } catch (e3) { - if (callback) { - throw e3; - } - } - }, - abort: function() { - if (callback) { - callback(); - } - } - }; - } - }); - jQuery.ajaxPrefilter(function(s3) { - if (s3.crossDomain) { - s3.contents.script = false; - } - }); - jQuery.ajaxSetup({ - accepts: { - script: "text/javascript, application/javascript, application/ecmascript, application/x-ecmascript" - }, - contents: { - script: /\b(?:java|ecma)script\b/ - }, - converters: { - "text script": function(text4) { - jQuery.globalEval(text4); - return text4; - } - } - }); - jQuery.ajaxPrefilter("script", function(s3) { - if (s3.cache === void 0) { - s3.cache = false; - } - if (s3.crossDomain) { - s3.type = "GET"; - } - }); - jQuery.ajaxTransport("script", function(s3) { - if (s3.crossDomain || s3.scriptAttrs) { - var script, callback; - return { - send: function(_3, complete) { - script = jQuery(" - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -<nil> Documentation - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
- - - Documentation -
-
- -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
-

Select product

-
- -
- - -
-
-
- -
- - - - - -
- -
-
- -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- -
-
-
-

- - - - - - - - - - -
- - - - - -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Basic Statistics Aggregator Plugin

-

This plugin computes basic statistics such as counts, differences, minima, -maxima, mean values, non-negative differences etc. for a set of metrics and -emits these statistical values every period.

-

Introduced in: Telegraf v1.5.0 -Tags: statistics -OS support: all

-

Global configuration options

-

Plugins support additional global and plugin configuration settings for tasks -such as modifying metrics, tags, and fields, creating aliases, and configuring -plugin ordering. See CONFIGURATION.md for more details.

-

Configuration

- - -
# Keep the aggregate basicstats of each metric passing through.
-[[aggregators.basicstats]]
-  ## The period on which to flush & clear the aggregator.
-  # period = "30s"
-
-  ## If true, the original metric will be dropped by the
-  ## aggregator and will not get sent to the output plugins.
-  # drop_original = false
-
-  ## Configures which basic stats to push as fields
-  # stats = ["count","min","max","mean","variance","stdev"]
-
    -
  • stats -
      -
    • If not specified, then count, min, max, mean, stdev, and s2 are -aggregated and pushed as fields. Other fields are not aggregated by default -to maintain backwards compatibility.
    • -
    • If empty array, no stats are aggregated
    • -
    -
  • -
-

Measurements & Fields

-
    -
  • measurement1 -
      -
    • field1_count
    • -
    • field1_diff (difference)
    • -
    • field1_rate (rate per second)
    • -
    • field1_max
    • -
    • field1_min
    • -
    • field1_mean
    • -
    • field1_non_negative_diff (non-negative difference)
    • -
    • field1_non_negative_rate (non-negative rate per second)
    • -
    • field1_percent_change
    • -
    • field1_sum
    • -
    • field1_s2 (variance)
    • -
    • field1_stdev (standard deviation)
    • -
    • field1_interval (interval in nanoseconds)
    • -
    • field1_last (last aggregated value)
    • -
    • field1_first (first aggregated value)
    • -
    -
  • -
-

Tags

-

No tags are applied by this aggregator.

-

Example Output

- - -
system,host=tars load1=1 1475583980000000000
-system,host=tars load1=1 1475583990000000000
-system,host=tars load1_count=2,load1_diff=0,load1_rate=0,load1_max=1,load1_min=1,load1_mean=1,load1_sum=2,load1_s2=0,load1_stdev=0,load1_interval=10000000000i,load1_last=1 1475584010000000000
-system,host=tars load1=1 1475584020000000000
-system,host=tars load1=3 1475584030000000000
-system,host=tars load1_count=2,load1_diff=2,load1_rate=0.2,load1_max=3,load1_min=1,load1_mean=2,load1_sum=4,load1_s2=2,load1_stdev=1.414162,load1_interval=10000000000i,load1_last=3,load1_first=3 1475584010000000000
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
-

Was this page helpful?

-
- - - -
-
-

Thank you for your feedback!

-
-
-
-
-
-
- - - - -
-
- - -
-
- - - - - - - - - - - - - - - - - - - - - - -
-
- -
- - - - - - - - - - - - - -
- - - -
- -
-
-
- -

New in InfluxDB 3.8

-
- -
-

Key enhancements in InfluxDB 3.8 and the InfluxDB 3 Explorer 1.6.

-

See the Blog Post

- -
- - -
-

InfluxDB 3.8 is now available for both Core and Enterprise, alongside the -1.6 release of the InfluxDB 3 Explorer UI. This release is focused on -operational maturity and making InfluxDB easier to deploy, manage, and run -reliably in production.

-

For more information, check out:

- - -
- - -
- -
-
-
- -

InfluxDB Docker latest tag changing to InfluxDB 3 Core

-
- -
- On May 27, 2026, the latest tag for InfluxDB Docker images will -point to InfluxDB 3 Core. To avoid unexpected upgrades, use specific version -tags in your Docker deployments. -
- - -
-

If using Docker to install and run InfluxDB, the latest tag will point to -InfluxDB 3 Core. To avoid unexpected upgrades, use specific version tags in -your Docker deployments. For example, if using Docker to run InfluxDB v2, -replace the latest version tag with a specific version tag in your Docker -pull command–for example:

- - -
docker pull influxdb:2
-
- - -
- -
- - - - - - - - - - - - - - - diff --git a/pr-preview/pr-6954/telegraf/v1/aggregator-plugins/derivative/index.html b/pr-preview/pr-6954/telegraf/v1/aggregator-plugins/derivative/index.html deleted file mode 100644 index 750334c9f..000000000 --- a/pr-preview/pr-6954/telegraf/v1/aggregator-plugins/derivative/index.html +++ /dev/null @@ -1,4510 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -<nil> Documentation - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
- - - Documentation -
-
- -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
-

Select product

-
- -
- - -
-
-
- -
- - - - - -
- -
-
- -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- -
-
-
-

- - - - - - - - - - -
- - - - - -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Derivative Aggregator Plugin

-

This plugin computes the derivative for all fields of the aggregated metrics.

-

Introduced in: Telegraf v1.18.0 -Tags: math -OS support: all

-

Global configuration options

-

Plugins support additional global and plugin configuration settings for tasks -such as modifying metrics, tags, and fields, creating aliases, and configuring -plugin ordering. See CONFIGURATION.md for more details.

-

Configuration

- - -
# Calculates a derivative for every field.
-[[aggregators.derivative]]
-  ## The period in which to flush the aggregator.
-  # period = "30s"
-
-  ## Suffix to append for the resulting derivative field.
-  # suffix = "_rate"
-
-  ## Field to use for the quotient when computing the derivative.
-  ## When using a field as the derivation parameter the name of that field will
-  ## be used for the resulting derivative, e.g. *fieldname_by_parameter*.
-  ## By default the timestamps of the metrics are used and the suffix is omitted.
-  # variable = ""
-
-  ## Maximum number of roll-overs in case only one measurement is found during a period.
-  # max_roll_over = 10
-

This aggregator will estimate a derivative for each field of a metric, which is -contained in both the first and last metric of the aggregation interval. -Without further configuration the derivative will be calculated with respect to -the time difference between these two measurements in seconds. -The following formula is applied is for every field

- - -
derivative = (value_last - value_first) / (time_last - time_first)
-

The resulting derivative will be named <fieldname>_rate if no suffix is -configured.

-

To calculate a derivative for every field use

- - -
[[aggregators.derivative]]
-  ## Specific Derivative Aggregator Arguments:
-
-  ## Configure a custom derivation variable. Timestamp is used if none is given.
-  # variable = ""
-
-  ## Suffix to add to the field name for the derivative name.
-  # suffix = "_rate"
-
-  ## Roll-Over last measurement to first measurement of next period
-  # max_roll_over = 10
-
-  ## General Aggregator Arguments:
-
-  ## calculate derivative every 30 seconds
-  period = "30s"
-

Time Derivatives

-

In its default configuration it determines the first and last measurement of -the period. From these measurements the time difference in seconds is -calculated. This time difference is than used to divide the difference of each -field using the following formula:

- - -
derivative = (value_last - value_first) / (time_last - time_first)
-

For each field the derivative is emitted with a naming pattern -<fieldname>_rate.

-

Custom Derivation Variable

-

The plugin supports to use a field of the aggregated measurements as derivation -variable in the denominator. This variable is assumed to be a monotonically -increasing value. In this feature the following formula is used:

- - -
derivative = (value_last - value_first) / (variable_last - variable_first)
-

Make sure the specified variable is not filtered and exists in the metrics -passed to this aggregator!

-

When using a custom derivation variable, you should change the suffix of the -derivative name. See the next section on customizing the derivative -name | -| 16 | 4.0 | | | | | -| 18 | 2.0 | | | | | -| 20 | 0.0 | | | | | -||| -1.0 | -1.0 | | |

-

The difference stems from the change of the value between periods, e.g. from 6.0 -to 8.0 between first and second period. Those changes are omitted with -max_roll_over = 0 but are respected with max_roll_over = 1. That there are -no more differences in the calculated derivatives is due to the example data, -which has constant derivatives in during the first and last period, even when -including the gap between the periods. Using max_roll_over with a value -greater 0 may be important, if you need to detect changes between periods, -e.g. when you have very few measurements in a period or quasi-constant metrics -with only occasional changes.

-

Tags

-

No tags are applied by this aggregator. -Existing tags are passed through the aggregator untouched.

-

Example Output

- - -
net bytes_recv=15409i,packets_recv=164i,bytes_sent=16649i,packets_sent=120i 1508843640000000000
-net bytes_recv=73987i,packets_recv=364i,bytes_sent=87328i,packets_sent=452i 1508843660000000000
-net bytes_recv_by_packets_recv=292.89 1508843660000000000
-net packets_sent_rate=16.6,bytes_sent_rate=3533.95 1508843660000000000
-net bytes_sent_by_packet=292.89 1508843660000000000
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
-

Was this page helpful?

-
- - - -
-
-

Thank you for your feedback!

-
-
-
-
-
-
- - - - -
-
- - -
-
- - - - - - - - - - - - - - - - - - - - - - -
-
- -
- - - - - - - - - - - - - -
- - - -
- -
-
-
- -

New in InfluxDB 3.8

-
- -
-

Key enhancements in InfluxDB 3.8 and the InfluxDB 3 Explorer 1.6.

-

See the Blog Post

- -
- - -
-

InfluxDB 3.8 is now available for both Core and Enterprise, alongside the -1.6 release of the InfluxDB 3 Explorer UI. This release is focused on -operational maturity and making InfluxDB easier to deploy, manage, and run -reliably in production.

-

For more information, check out:

- - -
- - -
- -
-
-
- -

InfluxDB Docker latest tag changing to InfluxDB 3 Core

-
- -
- On May 27, 2026, the latest tag for InfluxDB Docker images will -point to InfluxDB 3 Core. To avoid unexpected upgrades, use specific version -tags in your Docker deployments. -
- - -
-

If using Docker to install and run InfluxDB, the latest tag will point to -InfluxDB 3 Core. To avoid unexpected upgrades, use specific version tags in -your Docker deployments. For example, if using Docker to run InfluxDB v2, -replace the latest version tag with a specific version tag in your Docker -pull command–for example:

- - -
docker pull influxdb:2
-
- - -
- -
- - - - - - - - - - - - - - - diff --git a/pr-preview/pr-6954/telegraf/v1/aggregator-plugins/final/index.html b/pr-preview/pr-6954/telegraf/v1/aggregator-plugins/final/index.html deleted file mode 100644 index 1553373c0..000000000 --- a/pr-preview/pr-6954/telegraf/v1/aggregator-plugins/final/index.html +++ /dev/null @@ -1,4482 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -<nil> Documentation - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
- - - Documentation -
-
- -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
-

Select product

-
- -
- - -
-
-
- -
- - - - - -
- -
-
- -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- -
-
-
-

- - - - - - - - - - -
- - - - - -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Final Aggregator Plugin

-

This plugin emits the last metric of a contiguous series, defined as a -series which receives updates within the time period in series_timeout. The -contiguous series may be longer than the time interval defined by period. -When a series has not been updated within the series_timeout, the last metric -is emitted.

-

Alternatively, the plugin emits the last metric in the period for the -periodic output strategy.

-

This is useful for getting the final value for data sources that produce -discrete time series such as procstat, cgroup, kubernetes etc. or to downsample -metrics collected at a higher frequency.

- -
- - -

All emited metrics do have fields with _final appended to the field-name -by default.

-
-

Introduced in: Telegraf v1.11.0 -Tags: sampling -OS support: all

-

Global configuration options

-

Plugins support additional global and plugin configuration settings for tasks -such as modifying metrics, tags, and fields, creating aliases, and configuring -plugin ordering. See CONFIGURATION.md for more details.

-

Configuration

- - -
# Report the final metric of a series
-[[aggregators.final]]
-  ## The period on which to flush & clear the aggregator.
-  # period = "30s"
-
-  ## If true, the original metric will be dropped by the
-  ## aggregator and will not get sent to the output plugins.
-  # drop_original = false
-
-  ## If false, _final is added to every field name
-  # keep_original_field_names = false
-
-  ## The time that a series is not updated until considering it final. Ignored
-  ## when output_strategy is "periodic".
-  # series_timeout = "5m"
-
-  ## Output strategy, supported values:
-  ##   timeout  -- output a metric if no new input arrived for `series_timeout`
-  ##   periodic -- output the last received metric every `period`
-  # output_strategy = "timeout"
-

Output strategy

-

By default (output_strategy = "timeout") the plugin will only emit a metric -for the period if the last received one is older than the series_timeout. This -will not guarantee a regular output of a final metric e.g. if the -series-timeout is a multiple of the gathering interval for an input. In this -case metric sporadically arrive in the timeout phase of the period and emitting -the final metric is suppressed.

-

Contrary to this, output_strategy = "periodic" will always output a final -metric at the end of the period irrespectively of when the last metric arrived, -the series_timeout is ignored.

-

Metrics

-

Measurement and tags are unchanged, fields are emitted with the suffix -_final.

-

Example Output

- - -
counter,host=bar i_final=3,j_final=6 1554281635115090133
-counter,host=foo i_final=3,j_final=6 1554281635112992012
-

Original input:

- - -
counter,host=bar i=1,j=4 1554281633101153300
-counter,host=foo i=1,j=4 1554281633099323601
-counter,host=bar i=2,j=5 1554281634107980073
-counter,host=foo i=2,j=5 1554281634105931116
-counter,host=bar i=3,j=6 1554281635115090133
-counter,host=foo i=3,j=6 1554281635112992012
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
-

Was this page helpful?

-
- - - -
-
-

Thank you for your feedback!

-
-
-
-
-
-
- - - - -
-
- - -
-
- - - - - - - - - - - - - - - - - - - - - - -
-
- -
- - - - - - - - - - - - - -
- - - -
- -
-
-
- -

New in InfluxDB 3.8

-
- -
-

Key enhancements in InfluxDB 3.8 and the InfluxDB 3 Explorer 1.6.

-

See the Blog Post

- -
- - -
-

InfluxDB 3.8 is now available for both Core and Enterprise, alongside the -1.6 release of the InfluxDB 3 Explorer UI. This release is focused on -operational maturity and making InfluxDB easier to deploy, manage, and run -reliably in production.

-

For more information, check out:

- - -
- - -
- -
-
-
- -

InfluxDB Docker latest tag changing to InfluxDB 3 Core

-
- -
- On May 27, 2026, the latest tag for InfluxDB Docker images will -point to InfluxDB 3 Core. To avoid unexpected upgrades, use specific version -tags in your Docker deployments. -
- - -
-

If using Docker to install and run InfluxDB, the latest tag will point to -InfluxDB 3 Core. To avoid unexpected upgrades, use specific version tags in -your Docker deployments. For example, if using Docker to run InfluxDB v2, -replace the latest version tag with a specific version tag in your Docker -pull command–for example:

- - -
docker pull influxdb:2
-
- - -
- -
- - - - - - - - - - - - - - - diff --git a/pr-preview/pr-6954/telegraf/v1/aggregator-plugins/histogram/index.html b/pr-preview/pr-6954/telegraf/v1/aggregator-plugins/histogram/index.html deleted file mode 100644 index 7c39b658a..000000000 --- a/pr-preview/pr-6954/telegraf/v1/aggregator-plugins/histogram/index.html +++ /dev/null @@ -1,4532 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -<nil> Documentation - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
- - - Documentation -
-
- -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
-

Select product

-
- -
- - -
-
-
- -
- - - - - -
- -
-
- -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- -
-
-
-

- - - - - - - - - - -
- - - - - -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Histogram Aggregator Plugin

-

This plugin creates histograms containing the counts of field values within the -configured range. The histogram metric is emitted every period.

-

In cumulative mode, values added to a bucket are also added to the -consecutive buckets in the distribution creating a cumulative histogram.

- -
- - -

By default bucket counts are not reset between periods and will be -non-strictly increasing while Telegraf is running. This behavior can be -by setting the reset parameter.

-
-

Introduced in: Telegraf v1.4.0 -Tags: statistics -OS support: all

-

Global configuration options

-

Plugins support additional global and plugin configuration settings for tasks -such as modifying metrics, tags, and fields, creating aliases, and configuring -plugin ordering. See CONFIGURATION.md for more details.

-

Configuration

- - -
# Configuration for aggregate histogram metrics
-[[aggregators.histogram]]
-  ## The period in which to flush the aggregator.
-  # period = "30s"
-
-  ## If true, the original metric will be dropped by the
-  ## aggregator and will not get sent to the output plugins.
-  # drop_original = false
-
-  ## If true, the histogram will be reset on flush instead
-  ## of accumulating the results.
-  reset = false
-
-  ## Whether bucket values should be accumulated. If set to false, "gt" tag will be added.
-  ## Defaults to true.
-  cumulative = true
-
-  ## Expiration interval for each histogram. The histogram will be expired if
-  ## there are no changes in any buckets for this time interval. 0 == no expiration.
-  # expiration_interval = "0m"
-
-  ## If true, aggregated histogram are pushed to output only if it was updated since
-  ## previous push. Defaults to false.
-  # push_only_on_update = false
-
-  ## Example config that aggregates all fields of the metric.
-  # [[aggregators.histogram.config]]
-  #   ## Right borders of buckets (with +Inf implicitly added).
-  #   buckets = [0.0, 15.6, 34.5, 49.1, 71.5, 80.5, 94.5, 100.0]
-  #   ## The name of metric.
-  #   measurement_name = "cpu"
-
-  ## Example config that aggregates only specific fields of the metric.
-  # [[aggregators.histogram.config]]
-  #   ## Right borders of buckets (with +Inf implicitly added).
-  #   buckets = [0.0, 10.0, 20.0, 30.0, 40.0, 50.0, 60.0, 70.0, 80.0, 90.0, 100.0]
-  #   ## The name of metric.
-  #   measurement_name = "diskio"
-  #   ## The concrete fields of metric
-  #   fields = ["io_time", "read_time", "write_time"]
-

The user is responsible for defining the bounds of the histogram bucket as -well as the measurement name and fields to aggregate.

-

Each histogram config section must contain a buckets and measurement_name -option. Optionally, if fields is set only the fields listed will be -aggregated. If fields is not set all fields are aggregated.

-

The buckets option contains a list of floats which specify the bucket -boundaries. Each float value defines the inclusive upper (right) bound of the -bucket. The +Inf bucket is added automatically and does not need to be -defined. (For left boundaries, these specified bucket borders and -Inf will -be used).

-

Measurements & Fields

-

The postfix bucket will be added to each field key.

-
    -
  • measurement1 -
      -
    • field1_bucket
    • -
    • field2_bucket
    • -
    -
  • -
-

Tags

-
    -
  • cumulative = true (default): -
      -
    • le: Right bucket border. It means that the metric value is less than or -equal to the value of this tag. If a metric value is sorted into a bucket, -it is also sorted into all larger buckets. As a result, the value of -<field>_bucket is rising with rising le value. When le is +Inf, -the bucket value is the count of all metrics, because all metric values are -less than or equal to positive infinity.
    • -
    -
  • -
  • cumulative = false: -
      -
    • gt: Left bucket border. It means that the metric value is greater than -(and not equal to) the value of this tag.
    • -
    • le: Right bucket border. It means that the metric value is less than or -equal to the value of this tag.
    • -
    • As both gt and le are present, each metric is sorted in only exactly -one bucket.
    • -
    -
  • -
-

Example Output

-

Let assume we have the buckets [0, 10, 50, 100] and the following field values -for usage_idle: [50, 7, 99, 12]

-

With cumulative = true:

- - -
cpu,cpu=cpu1,host=localhost,le=0.0 usage_idle_bucket=0i 1486998330000000000  # none
-cpu,cpu=cpu1,host=localhost,le=10.0 usage_idle_bucket=1i 1486998330000000000  # 7
-cpu,cpu=cpu1,host=localhost,le=50.0 usage_idle_bucket=2i 1486998330000000000  # 7, 12
-cpu,cpu=cpu1,host=localhost,le=100.0 usage_idle_bucket=4i 1486998330000000000  # 7, 12, 50, 99
-cpu,cpu=cpu1,host=localhost,le=+Inf usage_idle_bucket=4i 1486998330000000000  # 7, 12, 50, 99
-

With cumulative = false:

- - -
cpu,cpu=cpu1,host=localhost,gt=-Inf,le=0.0 usage_idle_bucket=0i 1486998330000000000  # none
-cpu,cpu=cpu1,host=localhost,gt=0.0,le=10.0 usage_idle_bucket=1i 1486998330000000000  # 7
-cpu,cpu=cpu1,host=localhost,gt=10.0,le=50.0 usage_idle_bucket=1i 1486998330000000000  # 12
-cpu,cpu=cpu1,host=localhost,gt=50.0,le=100.0 usage_idle_bucket=2i 1486998330000000000  # 50, 99
-cpu,cpu=cpu1,host=localhost,gt=100.0,le=+Inf usage_idle_bucket=0i 1486998330000000000  # none
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
-

Was this page helpful?

-
- - - -
-
-

Thank you for your feedback!

-
-
-
-
-
-
- - - - -
-
- - -
-
- - - - - - - - - - - - - - - - - - - - - - -
-
- -
- - - - - - - - - - - - - -
- - - -
- -
-
-
- -

New in InfluxDB 3.8

-
- -
-

Key enhancements in InfluxDB 3.8 and the InfluxDB 3 Explorer 1.6.

-

See the Blog Post

- -
- - -
-

InfluxDB 3.8 is now available for both Core and Enterprise, alongside the -1.6 release of the InfluxDB 3 Explorer UI. This release is focused on -operational maturity and making InfluxDB easier to deploy, manage, and run -reliably in production.

-

For more information, check out:

- - -
- - -
- -
-
-
- -

InfluxDB Docker latest tag changing to InfluxDB 3 Core

-
- -
- On May 27, 2026, the latest tag for InfluxDB Docker images will -point to InfluxDB 3 Core. To avoid unexpected upgrades, use specific version -tags in your Docker deployments. -
- - -
-

If using Docker to install and run InfluxDB, the latest tag will point to -InfluxDB 3 Core. To avoid unexpected upgrades, use specific version tags in -your Docker deployments. For example, if using Docker to run InfluxDB v2, -replace the latest version tag with a specific version tag in your Docker -pull command–for example:

- - -
docker pull influxdb:2
-
- - -
- -
- - - - - - - - - - - - - - - diff --git a/pr-preview/pr-6954/telegraf/v1/aggregator-plugins/merge/index.html b/pr-preview/pr-6954/telegraf/v1/aggregator-plugins/merge/index.html deleted file mode 100644 index 286a7ef08..000000000 --- a/pr-preview/pr-6954/telegraf/v1/aggregator-plugins/merge/index.html +++ /dev/null @@ -1,4445 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -<nil> Documentation - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
- - - Documentation -
-
- -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
-

Select product

-
- -
- - -
-
-
- -
- - - - - -
- -
-
- -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- -
-
-
-

- - - - - - - - - - -
- - - - - -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Merge Aggregator Plugin

-

This plugin merges metrics of the same series and timestamp into new metrics -with the super-set of fields. A series here is defined by the metric name and -the tag key-value set.

-

Use this plugin when fields are split over multiple metrics, with the same -measurement, tag set and timestamp.

-

Introduced in: Telegraf v1.13.0 -Tags: transformation -OS support: all

-

Global configuration options

-

Plugins support additional global and plugin configuration settings for tasks -such as modifying metrics, tags, and fields, creating aliases, and configuring -plugin ordering. See CONFIGURATION.md for more details.

-

Configuration

- - -
# Merge metrics into multifield metrics by series key
-[[aggregators.merge]]
-  ## General Aggregator Arguments:
-  ## The period on which to flush & clear the aggregator.
-  # period = "30s"
-
-  ## Precision to round the metric timestamp to
-  ## This is useful for cases where metrics to merge arrive within a small
-  ## interval and thus vary in timestamp. The timestamp of the resulting metric
-  ## is also rounded.
-  # round_timestamp_to = "1ns"
-
-  ## If true, the original metric will be dropped by the
-  ## aggregator and will not get sent to the output plugins.
-  drop_original = true
-

Example

- - -
- cpu,host=localhost usage_time=42 1567562620000000000
-- cpu,host=localhost idle_time=42 1567562620000000000
-+ cpu,host=localhost idle_time=42,usage_time=42 1567562620000000000
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
-

Was this page helpful?

-
- - - -
-
-

Thank you for your feedback!

-
-
-
-
-
-
- - - - -
-
- - -
-
- - - - - - - - - - - - - - - - - - - - - - -
-
- -
- - - - - - - - - - - - - -
- - - -
- -
-
-
- -

New in InfluxDB 3.8

-
- -
-

Key enhancements in InfluxDB 3.8 and the InfluxDB 3 Explorer 1.6.

-

See the Blog Post

- -
- - -
-

InfluxDB 3.8 is now available for both Core and Enterprise, alongside the -1.6 release of the InfluxDB 3 Explorer UI. This release is focused on -operational maturity and making InfluxDB easier to deploy, manage, and run -reliably in production.

-

For more information, check out:

- - -
- - -
- -
-
-
- -

InfluxDB Docker latest tag changing to InfluxDB 3 Core

-
- -
- On May 27, 2026, the latest tag for InfluxDB Docker images will -point to InfluxDB 3 Core. To avoid unexpected upgrades, use specific version -tags in your Docker deployments. -
- - -
-

If using Docker to install and run InfluxDB, the latest tag will point to -InfluxDB 3 Core. To avoid unexpected upgrades, use specific version tags in -your Docker deployments. For example, if using Docker to run InfluxDB v2, -replace the latest version tag with a specific version tag in your Docker -pull command–for example:

- - -
docker pull influxdb:2
-
- - -
- -
- - - - - - - - - - - - - - - diff --git a/pr-preview/pr-6954/telegraf/v1/aggregator-plugins/minmax/index.html b/pr-preview/pr-6954/telegraf/v1/aggregator-plugins/minmax/index.html deleted file mode 100644 index 3c82fb776..000000000 --- a/pr-preview/pr-6954/telegraf/v1/aggregator-plugins/minmax/index.html +++ /dev/null @@ -1,4453 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -<nil> Documentation - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
- - - Documentation -
-
- -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
-

Select product

-
- -
- - -
-
-
- -
- - - - - -
- -
-
- -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- -
-
-
-

- - - - - - - - - - -
- - - - - -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Minimum-Maximum Aggregator Plugin

-

This plugin aggregates the minimum and maximum values of each field it sees, -emitting the aggrate every period seconds with field names suffixed by _min -and _max respectively.

-

Introduced in: Telegraf v1.1.0 -Tags: statistics -OS support: all

-

Global configuration options

-

Plugins support additional global and plugin configuration settings for tasks -such as modifying metrics, tags, and fields, creating aliases, and configuring -plugin ordering. See CONFIGURATION.md for more details.

-

Configuration

- - -
# Keep the aggregate min/max of each metric passing through.
-[[aggregators.minmax]]
-  ## General Aggregator Arguments:
-  ## The period on which to flush & clear the aggregator.
-  # period = "30s"
-
-  ## If true, the original metric will be dropped by the
-  ## aggregator and will not get sent to the output plugins.
-  # drop_original = false
-

Measurements & Fields

-
    -
  • measurement1 -
      -
    • field1_max
    • -
    • field1_min
    • -
    -
  • -
-

Tags

-

No tags are applied by this aggregator.

-

Example Output

- - -
system,host=tars load1=1.72 1475583980000000000
-system,host=tars load1=1.6 1475583990000000000
-system,host=tars load1=1.66 1475584000000000000
-system,host=tars load1=1.63 1475584010000000000
-system,host=tars load1_max=1.72,load1_min=1.6 1475584010000000000
-system,host=tars load1=1.46 1475584020000000000
-system,host=tars load1=1.39 1475584030000000000
-system,host=tars load1=1.41 1475584040000000000
-system,host=tars load1_max=1.46,load1_min=1.39 1475584040000000000
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
-

Was this page helpful?

-
- - - -
-
-

Thank you for your feedback!

-
-
-
-
-
-
- - - - -
-
- - -
-
- - - - - - - - - - - - - - - - - - - - - - -
-
- -
- - - - - - - - - - - - - -
- - - -
- -
-
-
- -

New in InfluxDB 3.8

-
- -
-

Key enhancements in InfluxDB 3.8 and the InfluxDB 3 Explorer 1.6.

-

See the Blog Post

- -
- - -
-

InfluxDB 3.8 is now available for both Core and Enterprise, alongside the -1.6 release of the InfluxDB 3 Explorer UI. This release is focused on -operational maturity and making InfluxDB easier to deploy, manage, and run -reliably in production.

-

For more information, check out:

- - -
- - -
- -
-
-
- -

InfluxDB Docker latest tag changing to InfluxDB 3 Core

-
- -
- On May 27, 2026, the latest tag for InfluxDB Docker images will -point to InfluxDB 3 Core. To avoid unexpected upgrades, use specific version -tags in your Docker deployments. -
- - -
-

If using Docker to install and run InfluxDB, the latest tag will point to -InfluxDB 3 Core. To avoid unexpected upgrades, use specific version tags in -your Docker deployments. For example, if using Docker to run InfluxDB v2, -replace the latest version tag with a specific version tag in your Docker -pull command–for example:

- - -
docker pull influxdb:2
-
- - -
- -
- - - - - - - - - - - - - - - diff --git a/pr-preview/pr-6954/telegraf/v1/aggregator-plugins/quantile/index.html b/pr-preview/pr-6954/telegraf/v1/aggregator-plugins/quantile/index.html deleted file mode 100644 index 6b861aa34..000000000 --- a/pr-preview/pr-6954/telegraf/v1/aggregator-plugins/quantile/index.html +++ /dev/null @@ -1,4558 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -<nil> Documentation - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
- - - Documentation -
-
- -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
-

Select product

-
- -
- - -
-
-
- -
- - - - - -
- -
-
- -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- -
-
-
-

- - - - - - - - - - -
- - - - - -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Quantile Aggregator Plugin

-

This plugin aggregates each numeric field per metric into the specified -quantiles and emits the quantiles every period. Different aggregation -algorithms are supported with varying accuracy and limitations.

-

Introduced in: Telegraf v1.18.0 -Tags: statistics -OS support: all

-

Global configuration options

-

Plugins support additional global and plugin configuration settings for tasks -such as modifying metrics, tags, and fields, creating aliases, and configuring -plugin ordering. See CONFIGURATION.md for more details.

-

Configuration

- - -
# Keep the aggregate quantiles of each metric passing through.
-[[aggregators.quantile]]
-  ## General Aggregator Arguments:
-  ## The period on which to flush & clear the aggregator.
-  # period = "30s"
-
-  ## If true, the original metric will be dropped by the
-  ## aggregator and will not get sent to the output plugins.
-  # drop_original = false
-
-  ## Quantiles to output in the range [0,1]
-  # quantiles = [0.25, 0.5, 0.75]
-
-  ## Type of aggregation algorithm
-  ## Supported are:
-  ##  "t-digest" -- approximation using centroids, can cope with large number of samples
-  ##  "exact R7" -- exact computation also used by Excel or NumPy (Hyndman & Fan 1996 R7)
-  ##  "exact R8" -- exact computation (Hyndman & Fan 1996 R8)
-  ## NOTE: Do not use "exact" algorithms with large number of samples
-  ##       to not impair performance or memory consumption!
-  # algorithm = "t-digest"
-
-  ## Compression for approximation (t-digest). The value needs to be
-  ## greater or equal to 1.0. Smaller values will result in more
-  ## performance but less accuracy.
-  # compression = 100.0
-

Algorithm types

-

t-digest

-

Proposed by Dunning & Ertl (2019) this type uses a -special data-structure to cluster data. These clusters are later used -to approximate the requested quantiles. The bounds of the approximation -can be controlled by the compression setting where smaller values -result in higher performance but less accuracy.

-

Due to its incremental nature, this algorithm can handle large -numbers of samples efficiently. It is recommended for applications -where exact quantile calculation isn’t required.

-

For implementation details see the underlying golang library.

-

exact R7 and R8

-

These algorithms compute quantiles as described in Hyndman & Fan -(1996). The R7 variant is used in Excel and NumPy. The R8 -variant is recommended by Hyndman & Fan due to its independence of the -underlying sample distribution.

-

These algorithms save all data for the aggregation period. They require a lot -of memory when used with a large number of series or a large number of -samples. They are slower than the t-digest algorithm and are recommended only -to be used with a small number of samples and series.

-

Benchmark (linux/amd64)

-

The benchmark was performed by adding 100 metrics with six numeric -(and two non-numeric) fields to the aggregator and the derive the aggregation -result.

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
algorithm# quantilesavg. runtime
t-digest3376372 ns/op
exact R739782946 ns/op
exact R839158205 ns/op
t-digest100899204 ns/op
exact R71007868816 ns/op
exact R81008099612 ns/op
-

Measurements

-

Measurement names are passed through this aggregator.

-

Fields

-

For all numeric fields (int32/64, uint32/64 and float32/64) new quantile -fields are aggregated in the form <fieldname>_<quantile*100>. Other field -types (e.g. boolean, string) are ignored and dropped from the output.

-

For example passing in the following metric as input:

-
    -
  • somemetric -
      -
    • average_response_ms (float64)
    • -
    • minimum_response_ms (float64)
    • -
    • maximum_response_ms (float64)
    • -
    • status (string)
    • -
    • ok (boolean)
    • -
    -
  • -
-

and the default setting for quantiles you get the following output

-
    -
  • somemetric -
      -
    • average_response_ms_025 (float64)
    • -
    • average_response_ms_050 (float64)
    • -
    • average_response_ms_075 (float64)
    • -
    • minimum_response_ms_025 (float64)
    • -
    • minimum_response_ms_050 (float64)
    • -
    • minimum_response_ms_075 (float64)
    • -
    • maximum_response_ms_025 (float64)
    • -
    • maximum_response_ms_050 (float64)
    • -
    • maximum_response_ms_075 (float64)
    • -
    -
  • -
-

The status and ok fields are dropped because they are not numeric. Note -that the number of resulting fields scales with the number of quantiles -specified.

-

Tags

-

Tags are passed through to the output by this aggregator.

-

Example Output

- - -
cpu,cpu=cpu-total,host=Hugin usage_user=10.814851731872487,usage_system=2.1679541490155687,usage_irq=1.046598554697342,usage_steal=0,usage_guest_nice=0,usage_idle=85.79616247197244,usage_nice=0,usage_iowait=0,usage_softirq=0.1744330924495688,usage_guest=0 1608288360000000000
-cpu,cpu=cpu-total,host=Hugin usage_guest=0,usage_system=2.1601016518428664,usage_iowait=0.02541296060990694,usage_irq=1.0165184243964942,usage_softirq=0.1778907242693666,usage_steal=0,usage_guest_nice=0,usage_user=9.275730622616953,usage_idle=87.34434561626493,usage_nice=0 1608288370000000000
-cpu,cpu=cpu-total,host=Hugin usage_idle=85.78199052131747,usage_nice=0,usage_irq=1.0476428036915637,usage_guest=0,usage_guest_nice=0,usage_system=1.995510102269591,usage_iowait=0,usage_softirq=0.1995510102269662,usage_steal=0,usage_user=10.975305562484735 1608288380000000000
-cpu,cpu=cpu-total,host=Hugin usage_guest_nice_075=0,usage_user_050=10.814851731872487,usage_guest_075=0,usage_steal_025=0,usage_irq_025=1.031558489546918,usage_irq_075=1.0471206791944527,usage_iowait_025=0,usage_guest_050=0,usage_guest_nice_050=0,usage_nice_075=0,usage_iowait_050=0,usage_system_050=2.1601016518428664,usage_irq_050=1.046598554697342,usage_guest_nice_025=0,usage_idle_050=85.79616247197244,usage_softirq_075=0.1887208672481664,usage_steal_075=0,usage_system_025=2.0778058770562287,usage_system_075=2.1640279004292173,usage_softirq_050=0.1778907242693666,usage_nice_050=0,usage_iowait_075=0.01270648030495347,usage_user_075=10.895078647178611,usage_nice_025=0,usage_steal_050=0,usage_user_025=10.04529117724472,usage_idle_025=85.78907649664495,usage_idle_075=86.57025404411868,usage_softirq_025=0.1761619083594677,usage_guest_025=0 1608288390000000000
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
-

Was this page helpful?

-
- - - -
-
-

Thank you for your feedback!

-
-
-
-
-
-
- - - - -
-
- - -
-
- - - - - - - - - - - - - - - - - - - - - - -
-
- -
- - - - - - - - - - - - - -
- - - -
- -
-
-
- -

New in InfluxDB 3.8

-
- -
-

Key enhancements in InfluxDB 3.8 and the InfluxDB 3 Explorer 1.6.

-

See the Blog Post

- -
- - -
-

InfluxDB 3.8 is now available for both Core and Enterprise, alongside the -1.6 release of the InfluxDB 3 Explorer UI. This release is focused on -operational maturity and making InfluxDB easier to deploy, manage, and run -reliably in production.

-

For more information, check out:

- - -
- - -
- -
-
-
- -

InfluxDB Docker latest tag changing to InfluxDB 3 Core

-
- -
- On May 27, 2026, the latest tag for InfluxDB Docker images will -point to InfluxDB 3 Core. To avoid unexpected upgrades, use specific version -tags in your Docker deployments. -
- - -
-

If using Docker to install and run InfluxDB, the latest tag will point to -InfluxDB 3 Core. To avoid unexpected upgrades, use specific version tags in -your Docker deployments. For example, if using Docker to run InfluxDB v2, -replace the latest version tag with a specific version tag in your Docker -pull command–for example:

- - -
docker pull influxdb:2
-
- - -
- -
- - - - - - - - - - - - - - - diff --git a/pr-preview/pr-6954/telegraf/v1/aggregator-plugins/starlark/index.html b/pr-preview/pr-6954/telegraf/v1/aggregator-plugins/starlark/index.html deleted file mode 100644 index a0cb0fa27..000000000 --- a/pr-preview/pr-6954/telegraf/v1/aggregator-plugins/starlark/index.html +++ /dev/null @@ -1,4514 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -<nil> Documentation - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
- - - Documentation -
-
- -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
-

Select product

-
- -
- - -
-
-
- -
- - - - - -
- -
-
- -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- -
-
-
-

- - - - - - - - - - -
- - - - - -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Starlark Aggregator Plugin

-

This plugin allows to implement a custom aggregator plugin via a -Starlark script.

-

The Starlark language is a dialect of Python and will be familiar to those who -have experience with the Python language. However, there are major -differences. Existing Python code is unlikely to work -unmodified.

- -
- - -

The execution environment is sandboxed, and it is not possible to access the -local filesystem or perfoming network operations. This is by design of the -Starlark language as a configuration language.

-
-

The Starlark script used by this plugin needs to be composed of the three -methods defining an aggreagtor named add, push and reset.

-

The add method is called as soon as a new metric is added to the plugin the -metrics to the aggregator. After period, the push method is called to -output the resulting metrics and finally the aggregation is reset by using the -reset method of the Starlark script.

-

The Starlark functions might use the global function state to keep aggregation -information such as added metrics etc.

-

More details on the syntax and available functions can be found in the -Starlark specification.

-

Introduced in: Telegraf v1.21.0 -Tags: transformation -OS support: all

-

Global configuration options

-

Plugins support additional global and plugin configuration settings for tasks -such as modifying metrics, tags, and fields, creating aliases, and configuring -plugin ordering. See CONFIGURATION.md for more details.

-

Configuration

- - -
# Aggregate metrics using a Starlark script
-[[aggregators.starlark]]
-  ## The Starlark source can be set as a string in this configuration file, or
-  ## by referencing a file containing the script.  Only one source or script
-  ## should be set at once.
-  ##
-  ## Source of the Starlark script.
-  source = '''
-state = {}
-
-def add(metric):
-  state["last"] = metric
-
-def push():
-  return state.get("last")
-
-def reset():
-  state.clear()
-'''
-
-  ## File containing a Starlark script.
-  # script = "/usr/local/bin/myscript.star"
-
-  ## The constants of the Starlark script.
-  # [aggregators.starlark.constants]
-  #   max_size = 10
-  #   threshold = 0.75
-  #   default_name = "Julia"
-  #   debug_mode = true
-

Usage

-

The Starlark code should contain a function called add that takes a metric as -argument. The function will be called with each metric to add, and doesn’t -return anything.

- - -
def add(metric):
-  state["last"] = metric
-

The Starlark code should also contain a function called push that doesn’t take -any argument. The function will be called to compute the aggregation, and -returns the metrics to push to the accumulator.

- - -
def push():
-  return state.get("last")
-

The Starlark code should also contain a function called reset that doesn’t -take any argument. The function will be called to reset the plugin, and doesn’t -return anything.

- - -
def reset():
-  state.clear()
-

For a list of available types and functions that can be used in the code, see -the Starlark specification.

-

Python Differences

-

Refer to the section Python -Differences of the -documentation about the Starlark processor.

-

Libraries available

-

Refer to the section Libraries -available of the -documentation about the Starlark processor.

-

Common Questions

-

Refer to the section Common -Questions of the -documentation about the Starlark processor.

-

Examples

-
    -
  • minmax
  • -
  • merge
  • -
-

All examples are in the testdata folder.

-

Open a Pull Request to add any other useful Starlark examples.

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
-

Was this page helpful?

-
- - - -
-
-

Thank you for your feedback!

-
-
-
-
-
-
- - - - -
-
- - -
-
- - - - - - - - - - - - - - - - - - - - - - -
-
- -
- - - - - - - - - - - - - -
- - - -
- -
-
-
- -

New in InfluxDB 3.8

-
- -
-

Key enhancements in InfluxDB 3.8 and the InfluxDB 3 Explorer 1.6.

-

See the Blog Post

- -
- - -
-

InfluxDB 3.8 is now available for both Core and Enterprise, alongside the -1.6 release of the InfluxDB 3 Explorer UI. This release is focused on -operational maturity and making InfluxDB easier to deploy, manage, and run -reliably in production.

-

For more information, check out:

- - -
- - -
- -
-
-
- -

InfluxDB Docker latest tag changing to InfluxDB 3 Core

-
- -
- On May 27, 2026, the latest tag for InfluxDB Docker images will -point to InfluxDB 3 Core. To avoid unexpected upgrades, use specific version -tags in your Docker deployments. -
- - -
-

If using Docker to install and run InfluxDB, the latest tag will point to -InfluxDB 3 Core. To avoid unexpected upgrades, use specific version tags in -your Docker deployments. For example, if using Docker to run InfluxDB v2, -replace the latest version tag with a specific version tag in your Docker -pull command–for example:

- - -
docker pull influxdb:2
-
- - -
- -
- - - - - - - - - - - - - - - diff --git a/pr-preview/pr-6954/telegraf/v1/aggregator-plugins/valuecounter/index.html b/pr-preview/pr-6954/telegraf/v1/aggregator-plugins/valuecounter/index.html deleted file mode 100644 index e9627bfbc..000000000 --- a/pr-preview/pr-6954/telegraf/v1/aggregator-plugins/valuecounter/index.html +++ /dev/null @@ -1,4487 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -<nil> Documentation - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
- - - Documentation -
-
- -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
-

Select product

-
- -
- - -
-
-
- -
- - - - - -
- -
-
- -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- -
-
-
-

- - - - - - - - - - -
- - - - - -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Value Counter Aggregator Plugin

-

This plugin counts the occurrence of unique values in fields and emits the -counter once every period with the field-names being suffixed by the unique -value converted to string.

- -
- - -

The fields to be counted must be configured using the fields setting, -otherwise no field will be counted and no metric is emitted.

-
-

This plugin is useful to e.g. count the occurrances of HTTP status codes or -other categorical values in the defined period.

- -
- - -

Counting fields with a high number of potential values may produce a -significant amounts of new fields and results in an increased memory usage. -Take care to only count fields with a limited set of values.

-
-

Introduced in: Telegraf v1.8.0 -Tags: statistics -OS support: all

-

Global configuration options

-

Plugins support additional global and plugin configuration settings for tasks -such as modifying metrics, tags, and fields, creating aliases, and configuring -plugin ordering. See CONFIGURATION.md for more details.

-

Configuration

- - -
# Count the occurrence of values in fields.
-[[aggregators.valuecounter]]
-  ## General Aggregator Arguments:
-  ## The period on which to flush & clear the aggregator.
-  # period = "30s"
-
-  ## If true, the original metric will be dropped by the
-  ## aggregator and will not get sent to the output plugins.
-  # drop_original = false
-
-  ## The fields for which the values will be counted
-  fields = ["status"]
-

Measurements & Fields

-
    -
  • measurement1 -
      -
    • field_value1
    • -
    • field_value2
    • -
    -
  • -
-

Tags

-

No tags are applied by this aggregator.

-

Example Output

-

Example for parsing a HTTP access log.

-

telegraf.conf:

- - -
[[inputs.logparser]]
-  files = ["/tmp/tst.log"]
-  [inputs.logparser.grok]
-    patterns = ['%{DATA:url:tag} %{NUMBER:response:string}']
-    measurement = "access"
-
-[[aggregators.valuecounter]]
-  namepass = ["access"]
-  fields = ["response"]
-

/tmp/tst.log

- - -
/some/path 200
-/some/path 401
-/some/path 200
- - -
access,url=/some/path,path=/tmp/tst.log,host=localhost.localdomain response="200" 1511948755991487011
-access,url=/some/path,path=/tmp/tst.log,host=localhost.localdomain response="401" 1511948755991522282
-access,url=/some/path,path=/tmp/tst.log,host=localhost.localdomain response="200" 1511948755991531697
-access,path=/tmp/tst.log,host=localhost.localdomain,url=/some/path response_200=2i,response_401=1i 1511948761000000000
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
-

Was this page helpful?

-
- - - -
-
-

Thank you for your feedback!

-
-
-
-
-
-
- - - - -
-
- - -
-
- - - - - - - - - - - - - - - - - - - - - - -
-
- -
- - - - - - - - - - - - - -
- - - -
- -
-
-
- -

New in InfluxDB 3.8

-
- -
-

Key enhancements in InfluxDB 3.8 and the InfluxDB 3 Explorer 1.6.

-

See the Blog Post

- -
- - -
-

InfluxDB 3.8 is now available for both Core and Enterprise, alongside the -1.6 release of the InfluxDB 3 Explorer UI. This release is focused on -operational maturity and making InfluxDB easier to deploy, manage, and run -reliably in production.

-

For more information, check out:

- - -
- - -
- -
-
-
- -

InfluxDB Docker latest tag changing to InfluxDB 3 Core

-
- -
- On May 27, 2026, the latest tag for InfluxDB Docker images will -point to InfluxDB 3 Core. To avoid unexpected upgrades, use specific version -tags in your Docker deployments. -
- - -
-

If using Docker to install and run InfluxDB, the latest tag will point to -InfluxDB 3 Core. To avoid unexpected upgrades, use specific version tags in -your Docker deployments. For example, if using Docker to run InfluxDB v2, -replace the latest version tag with a specific version tag in your Docker -pull command–for example:

- - -
docker pull influxdb:2
-
- - -
- -
- - - - - - - - - - - - - - - diff --git a/pr-preview/pr-6954/telegraf/v1/input-plugins/activemq/index.html b/pr-preview/pr-6954/telegraf/v1/input-plugins/activemq/index.html deleted file mode 100644 index a0e2c2593..000000000 --- a/pr-preview/pr-6954/telegraf/v1/input-plugins/activemq/index.html +++ /dev/null @@ -1,4520 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -<nil> Documentation - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
- - - Documentation -
-
- -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
-

Select product

-
- -
- - -
-
-
- -
- - - - - -
- -
-
- -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- -
-
-
-

- - - - - - - - - - -
- - - - - -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

ActiveMQ Input Plugin

-

This plugin gathers queue, topics and subscribers metrics using the Console API -ActiveMQ message broker daemon.

-

Introduced in: Telegraf v1.8.0 -Tags: messaging -OS support: all

-

Global configuration options

-

Plugins support additional global and plugin configuration settings for tasks -such as modifying metrics, tags, and fields, creating aliases, and configuring -plugin ordering. See CONFIGURATION.md for more details.

-

Configuration

- - -
# Gather ActiveMQ metrics
-[[inputs.activemq]]
-  ## ActiveMQ WebConsole URL
-  url = "http://127.0.0.1:8161"
-
-  ## Credentials for basic HTTP authentication
-  # username = "admin"
-  # password = "admin"
-
-  ## Required ActiveMQ webadmin root path
-  # webadmin = "admin"
-
-  ## Maximum time to receive response.
-  # response_timeout = "5s"
-
-  ## Optional TLS Config
-  # tls_ca = "/etc/telegraf/ca.pem"
-  # tls_cert = "/etc/telegraf/cert.pem"
-  # tls_key = "/etc/telegraf/key.pem"
-  ## Use TLS but skip chain & host verification
-  # insecure_skip_verify = false
-

Metrics

-

Every effort was made to preserve the names based on the XML response from the -ActiveMQ Console API.

-
    -
  • activemq_queues -
      -
    • tags: -
        -
      • name
      • -
      • source
      • -
      • port
      • -
      -
    • -
    • fields: -
        -
      • size
      • -
      • consumer_count
      • -
      • enqueue_count
      • -
      • dequeue_count
      • -
      -
    • -
    -
  • -
  • activemq_topics -
      -
    • tags: -
        -
      • name
      • -
      • source
      • -
      • port
      • -
      -
    • -
    • fields: -
        -
      • size
      • -
      • consumer_count
      • -
      • enqueue_count
      • -
      • dequeue_count
      • -
      -
    • -
    -
  • -
  • activemq_subscribers -
      -
    • tags: -
        -
      • client_id
      • -
      • subscription_name
      • -
      • connection_id
      • -
      • destination_name
      • -
      • selector
      • -
      • active
      • -
      • source
      • -
      • port
      • -
      -
    • -
    • fields: -
        -
      • pending_queue_size
      • -
      • dispatched_queue_size
      • -
      • dispatched_counter
      • -
      • enqueue_counter
      • -
      • dequeue_counter
      • -
      -
    • -
    -
  • -
-

Example Output

- - -
activemq_queues,name=sandra,host=88284b2fe51b,source=localhost,port=8161 consumer_count=0i,enqueue_count=0i,dequeue_count=0i,size=0i 1492610703000000000
-activemq_queues,name=Test,host=88284b2fe51b,source=localhost,port=8161 dequeue_count=0i,size=0i,consumer_count=0i,enqueue_count=0i 1492610703000000000
-activemq_topics,name=ActiveMQ.Advisory.MasterBroker\ ,host=88284b2fe51b,source=localhost,port=8161 size=0i,consumer_count=0i,enqueue_count=1i,dequeue_count=0i 1492610703000000000
-activemq_topics,host=88284b2fe51b,name=AAA\,source=localhost,port=8161  size=0i,consumer_count=1i,enqueue_count=0i,dequeue_count=0i 1492610703000000000
-activemq_topics,name=ActiveMQ.Advisory.Topic\,source=localhost,port=8161 ,host=88284b2fe51b enqueue_count=1i,dequeue_count=0i,size=0i,consumer_count=0i 1492610703000000000
-activemq_topics,name=ActiveMQ.Advisory.Queue\,source=localhost,port=8161 ,host=88284b2fe51b size=0i,consumer_count=0i,enqueue_count=2i,dequeue_count=0i 1492610703000000000
-activemq_topics,name=AAAA\ ,host=88284b2fe51b,source=localhost,port=8161 consumer_count=0i,enqueue_count=0i,dequeue_count=0i,size=0i 1492610703000000000
-activemq_subscribers,connection_id=NOTSET,destination_name=AAA,,source=localhost,port=8161,selector=AA,active=no,host=88284b2fe51b,client_id=AAA,subscription_name=AAA pending_queue_size=0i,dispatched_queue_size=0i,dispatched_counter=0i,enqueue_counter=0i,dequeue_counter=0i 1492610703000000000
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
-

Was this page helpful?

-
- - - -
-
-

Thank you for your feedback!

-
-
-
-
-
-
- - - - -
-
- - -
-
- - - - - - - - - - - - - - - - - - - - - - -
-
- -
- - - - - - - - - - - - - -
- - - -
- -
-
-
- -

New in InfluxDB 3.8

-
- -
-

Key enhancements in InfluxDB 3.8 and the InfluxDB 3 Explorer 1.6.

-

See the Blog Post

- -
- - -
-

InfluxDB 3.8 is now available for both Core and Enterprise, alongside the -1.6 release of the InfluxDB 3 Explorer UI. This release is focused on -operational maturity and making InfluxDB easier to deploy, manage, and run -reliably in production.

-

For more information, check out:

- - -
- - -
- -
-
-
- -

InfluxDB Docker latest tag changing to InfluxDB 3 Core

-
- -
- On May 27, 2026, the latest tag for InfluxDB Docker images will -point to InfluxDB 3 Core. To avoid unexpected upgrades, use specific version -tags in your Docker deployments. -
- - -
-

If using Docker to install and run InfluxDB, the latest tag will point to -InfluxDB 3 Core. To avoid unexpected upgrades, use specific version tags in -your Docker deployments. For example, if using Docker to run InfluxDB v2, -replace the latest version tag with a specific version tag in your Docker -pull command–for example:

- - -
docker pull influxdb:2
-
- - -
- -
- - - - - - - - - - - - - - - diff --git a/pr-preview/pr-6954/telegraf/v1/input-plugins/aerospike/index.html b/pr-preview/pr-6954/telegraf/v1/input-plugins/aerospike/index.html deleted file mode 100644 index 9e0966730..000000000 --- a/pr-preview/pr-6954/telegraf/v1/input-plugins/aerospike/index.html +++ /dev/null @@ -1,4573 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -<nil> Documentation - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
- - - Documentation -
-
- -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
-

Select product

-
- -
- - -
-
-
- -
- - - - - -
- -
-
- -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- -
-
-
-

- - - - - - - - - - -
- - - - - -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Aerospike Input Plugin

-

This plugin queries Aerospike server(s) for node statistics and -statistics on all configured namespaces.

- -
- - -

As of version 1.30 the Aerospike plugin has been deprecated in favor of the -prometheus plugin and the officially -supported Aerospike Prometheus Exporter

-
-

For details on the measurements mean, please consult the -Aerospike Metrics Reference Docs.

- -
- - -

Metric names will have dashes (-) replaced as underscores (_) to make -querying more consistently and easy.

-
-

All metrics are attempted to be cast to integers, then booleans, then strings -in order.

-

Introduced in: Telegraf v0.2.0 -Deprecated in: Telegraf v1.30.0 -Removal in: Telegraf v1.40.0 -Tags: server -OS support: all

-

Global configuration options

-

Plugins support additional global and plugin configuration settings for tasks -such as modifying metrics, tags, and fields, creating aliases, and configuring -plugin ordering. See CONFIGURATION.md for more details.

-

Configuration

- - -
# Read stats from aerospike server(s)
-[[inputs.aerospike]]
-  ## Aerospike servers to connect to (with port)
-  ## This plugin will query all namespaces the aerospike
-  ## server has configured and get stats for them.
-  servers = ["localhost:3000"]
-
-  # username = "telegraf"
-  # password = "pa$$word"
-
-  ## Optional TLS Config
-  ## Set to true/false to enforce TLS being enabled/disabled. If not set,
-  ## enable TLS only if any of the other options are specified.
-  # tls_enable =
-  ## Trusted root certificates for server
-  # tls_ca = "/path/to/cafile"
-  ## Used for TLS client certificate authentication
-  # tls_cert = "/path/to/certfile"
-  ## Used for TLS client certificate authentication
-  # tls_key = "/path/to/keyfile"
-  ## Password for the key file if it is encrypted
-  # tls_key_pwd = ""
-  ## Send the specified TLS server name via SNI
-  # tls_server_name = "kubernetes.example.com"
-  ## Minimal TLS version to accept by the client
-  # tls_min_version = "TLS12"
-  ## List of ciphers to accept, by default all secure ciphers will be accepted
-  ## See https://pkg.go.dev/crypto/tls#pkg-constants for supported values.
-  ## Use "all", "secure" and "insecure" to add all support ciphers, secure
-  ## suites or insecure suites respectively.
-  # tls_cipher_suites = ["secure"]
-  ## Renegotiation method, "never", "once" or "freely"
-  # tls_renegotiation_method = "never"
-  ## Use TLS but skip chain & host verification
-  # insecure_skip_verify = false
-
-  # Feature Options
-  # Add namespace variable to limit the namespaces executed on
-  # Leave blank to do all
-  # disable_query_namespaces = true # default false
-  # namespaces = ["namespace1", "namespace2"]
-
-  # Enable set level telemetry
-  # query_sets = true # default: false
-  # Add namespace set combinations to limit sets executed on
-  # Leave blank to do all sets
-  # sets = ["namespace1/set1", "namespace1/set2", "namespace3"]
-
-  # Histograms
-  # enable_ttl_histogram = true # default: false
-  # enable_object_size_linear_histogram = true # default: false
-
-  # by default, aerospike produces a 100 bucket histogram
-  # this is not great for most graphing tools, this will allow
-  # the ability to squash this to a smaller number of buckets
-  # To have a balanced histogram, the number of buckets chosen
-  # should divide evenly into 100.
-  # num_histogram_buckets = 100 # default: 10
-

Metrics

-

The aerospike metrics are under a few measurement names:

-

aerospike_node: These are the aerospike node measurements, which are -available from the aerospike statistics command.

- - -
  telnet localhost 3003
-  statistics
-  ...
-

aerospike_namespace: These are aerospike namespace measurements, which -are available from the aerospike namespace/<namespace_name> command.

- - -
  telnet localhost 3003
-  namespaces
-  <namespace_1>;<namespace_2>;etc.
-  namespace/<namespace_name>
-  ...
-

aerospike_set: These are aerospike set measurements, which -are available from the aerospike sets/<namespace_name>/<set_name> command.

- - -
  telnet localhost 3003
-  sets
-  sets/<namespace_name>
-  sets/<namespace_name>/<set_name>
-  ...
-

aerospike_histogram_ttl: These are aerospike ttl hisogram measurements, -which is available from the aerospike -histogram:namespace=<namespace_name>;[set=<set_name>;]type=ttl command.

- - -
  telnet localhost 3003
-  histogram:namespace=<namespace_name>;type=ttl
-  histogram:namespace=<namespace_name>;[set=<set_name>;]type=ttl
-  ...
-

aerospike_histogram_object_size_linear: These are aerospike object size -linear histogram measurements, which is available from the aerospike -histogram:namespace=<namespace_name>;[set=<set_name>;]type=object_size_linear -command.

- - -
  telnet localhost 3003
-  histogram:namespace=<namespace_name>;type=object_size_linear
-  histogram:namespace=<namespace_name>;[set=<set_name>;]type=object_size_linear
-  ...
-

Tags

-

All measurements have tags:

-
    -
  • aerospike_host
  • -
  • node_name
  • -
-

Namespace metrics have tags:

-
    -
  • namespace_name
  • -
-

Set metrics have tags:

-
    -
  • namespace_name
  • -
  • set_name
  • -
-

Histogram metrics have tags:

-
    -
  • namespace_name
  • -
  • set_name (optional)
  • -
  • type
  • -
-

Example Output

- - -
aerospike_node,aerospike_host=localhost:3000,node_name="BB9020011AC4202" batch_error=0i,batch_index_complete=0i,batch_index_created_buffers=0i,batch_index_destroyed_buffers=0i,batch_index_error=0i,batch_index_huge_buffers=0i,batch_index_initiate=0i,batch_index_queue="0:0,0:0,0:0,0:0",batch_index_timeout=0i,batch_index_unused_buffers=0i,batch_initiate=0i,batch_queue=0i,batch_timeout=0i,client_connections=6i,cluster_integrity=true,cluster_key="8AF422E05281249E",cluster_size=1i,delete_queue=0i,demarshal_error=0i,early_tsvc_batch_sub_error=0i,early_tsvc_client_error=0i,early_tsvc_udf_sub_error=0i,fabric_connections=16i,fabric_msgs_rcvd=0i,fabric_msgs_sent=0i,heartbeat_connections=0i,heartbeat_received_foreign=0i,heartbeat_received_self=0i,info_complete=47i,info_queue=0i,migrate_allowed=true,migrate_partitions_remaining=0i,migrate_progress_recv=0i,migrate_progress_send=0i,objects=0i,paxos_principal="BB9020011AC4202",proxy_in_progress=0i,proxy_retry=0i,query_long_running=0i,query_short_running=0i,reaped_fds=0i,record_refs=0i,rw_in_progress=0i,scans_active=0i,sindex_gc_activity_dur=0i,sindex_gc_garbage_cleaned=0i,sindex_gc_garbage_found=0i,sindex_gc_inactivity_dur=0i,sindex_gc_list_creation_time=0i,sindex_gc_list_deletion_time=0i,sindex_gc_locktimedout=0i,sindex_gc_objects_validated=0i,sindex_ucgarbage_found=0i,sub_objects=0i,system_free_mem_pct=92i,system_swapping=false,tsvc_queue=0i,uptime=1457i 1468923222000000000
-aerospike_namespace,aerospike_host=localhost:3000,namespace=test,node_name="BB9020011AC4202" allow_nonxdr_writes=true,allow_xdr_writes=true,available_bin_names=32768i,batch_sub_proxy_complete=0i,batch_sub_proxy_error=0i,batch_sub_proxy_timeout=0i,batch_sub_read_error=0i,batch_sub_read_not_found=0i,batch_sub_read_success=0i,batch_sub_read_timeout=0i,batch_sub_tsvc_error=0i,batch_sub_tsvc_timeout=0i,client_delete_error=0i,client_delete_not_found=0i,client_delete_success=0i,client_delete_timeout=0i,client_lang_delete_success=0i,client_lang_error=0i,client_lang_read_success=0i,client_lang_write_success=0i,client_proxy_complete=0i,client_proxy_error=0i,client_proxy_timeout=0i,client_read_error=0i,client_read_not_found=0i,client_read_success=0i,client_read_timeout=0i,client_tsvc_error=0i,client_tsvc_timeout=0i,client_udf_complete=0i,client_udf_error=0i,client_udf_timeout=0i,client_write_error=0i,client_write_success=0i,client_write_timeout=0i,cold_start_evict_ttl=4294967295i,conflict_resolution_policy="generation",current_time=206619222i,data_in_index=false,default_ttl=432000i,device_available_pct=99i,device_free_pct=100i,device_total_bytes=4294967296i,device_used_bytes=0i,disallow_null_setname=false,enable_benchmarks_batch_sub=false,enable_benchmarks_read=false,enable_benchmarks_storage=false,enable_benchmarks_udf=false,enable_benchmarks_udf_sub=false,enable_benchmarks_write=false,enable_hist_proxy=false,enable_xdr=false,evict_hist_buckets=10000i,evict_tenths_pct=5i,evict_ttl=0i,evicted_objects=0i,expired_objects=0i,fail_generation=0i,fail_key_busy=0i,fail_record_too_big=0i,fail_xdr_forbidden=0i,geo2dsphere_within.earth_radius_meters=6371000i,geo2dsphere_within.level_mod=1i,geo2dsphere_within.max_cells=12i,geo2dsphere_within.max_level=30i,geo2dsphere_within.min_level=1i,geo2dsphere_within.strict=true,geo_region_query_cells=0i,geo_region_query_falsepos=0i,geo_region_query_points=0i,geo_region_query_reqs=0i,high_water_disk_pct=50i,high_water_memory_pct=60i,hwm_breached=false,ldt_enabled=false,ldt_gc_rate=0i,ldt_page_size=8192i,master_objects=0i,master_sub_objects=0i,max_ttl=315360000i,max_void_time=0i,memory_free_pct=100i,memory_size=1073741824i,memory_used_bytes=0i,memory_used_data_bytes=0i,memory_used_index_bytes=0i,memory_used_sindex_bytes=0i,migrate_order=5i,migrate_record_receives=0i,migrate_record_retransmits=0i,migrate_records_skipped=0i,migrate_records_transmitted=0i,migrate_rx_instances=0i,migrate_rx_partitions_active=0i,migrate_rx_partitions_initial=0i,migrate_rx_partitions_remaining=0i,migrate_sleep=1i,migrate_tx_instances=0i,migrate_tx_partitions_active=0i,migrate_tx_partitions_imbalance=0i,migrate_tx_partitions_initial=0i,migrate_tx_partitions_remaining=0i,non_expirable_objects=0i,ns_forward_xdr_writes=false,nsup_cycle_duration=0i,nsup_cycle_sleep_pct=0i,objects=0i,prole_objects=0i,prole_sub_objects=0i,query_agg=0i,query_agg_abort=0i,query_agg_avg_rec_count=0i,query_agg_error=0i,query_agg_success=0i,query_fail=0i,query_long_queue_full=0i,query_long_reqs=0i,query_lookup_abort=0i,query_lookup_avg_rec_count=0i,query_lookup_error=0i,query_lookup_success=0i,query_lookups=0i,query_reqs=0i,query_short_queue_full=0i,query_short_reqs=0i,query_udf_bg_failure=0i,query_udf_bg_success=0i,read_consistency_level_override="off",repl_factor=1i,scan_aggr_abort=0i,scan_aggr_complete=0i,scan_aggr_error=0i,scan_basic_abort=0i,scan_basic_complete=0i,scan_basic_error=0i,scan_udf_bg_abort=0i,scan_udf_bg_complete=0i,scan_udf_bg_error=0i,set_deleted_objects=0i,sets_enable_xdr=true,sindex.data_max_memory="ULONG_MAX",sindex.num_partitions=32i,single_bin=false,stop_writes=false,stop_writes_pct=90i,storage_engine="device",storage_engine.cold_start_empty=false,storage_engine.data_in_memory=true,storage_engine.defrag_lwm_pct=50i,storage_engine.defrag_queue_min=0i,storage_engine.defrag_sleep=1000i,storage_engine.defrag_startup_minimum=10i,storage_engine.disable_odirect=false,storage_engine.enable_osync=false,storage_engine.file="/opt/aerospike/data/test.dat",storage_engine.filesize=4294967296i,storage_engine.flush_max_ms=1000i,storage_engine.fsync_max_sec=0i,storage_engine.max_write_cache=67108864i,storage_engine.min_avail_pct=5i,storage_engine.post_write_queue=0i,storage_engine.scheduler_mode="null",storage_engine.write_block_size=1048576i,storage_engine.write_threads=1i,sub_objects=0i,udf_sub_lang_delete_success=0i,udf_sub_lang_error=0i,udf_sub_lang_read_success=0i,udf_sub_lang_write_success=0i,udf_sub_tsvc_error=0i,udf_sub_tsvc_timeout=0i,udf_sub_udf_complete=0i,udf_sub_udf_error=0i,udf_sub_udf_timeout=0i,write_commit_level_override="off",xdr_write_error=0i,xdr_write_success=0i,xdr_write_timeout=0i,{test}_query_hist_track_back=300i,{test}_query_hist_track_slice=10i,{test}_query_hist_track_thresholds="1,8,64",{test}_read_hist_track_back=300i,{test}_read_hist_track_slice=10i,{test}_read_hist_track_thresholds="1,8,64",{test}_udf_hist_track_back=300i,{test}_udf_hist_track_slice=10i,{test}_udf_hist_track_thresholds="1,8,64",{test}_write_hist_track_back=300i,{test}_write_hist_track_slice=10i,{test}_write_hist_track_thresholds="1,8,64" 1468923222000000000
-aerospike_set,aerospike_host=localhost:3000,node_name=BB99458B42826B0,set=test/test disable_eviction=false,memory_data_bytes=0i,objects=0i,set_enable_xdr="use-default",stop_writes_count=0i,tombstones=0i,truncate_lut=0i 1598033805000000000
-aerospike_histogram_ttl,aerospike_host=localhost:3000,namespace=test,node_name=BB98EE5B42826B0,set=test 0=0i,1=0i,10=0i,11=0i,12=0i,13=0i,14=0i,15=0i,16=0i,17=0i,18=0i,19=0i,2=0i,20=0i,21=0i,22=0i,23=0i,24=0i,25=0i,26=0i,27=0i,28=0i,29=0i,3=0i,30=0i,31=0i,32=0i,33=0i,34=0i,35=0i,36=0i,37=0i,38=0i,39=0i,4=0i,40=0i,41=0i,42=0i,43=0i,44=0i,45=0i,46=0i,47=0i,48=0i,49=0i,5=0i,50=0i,51=0i,52=0i,53=0i,54=0i,55=0i,56=0i,57=0i,58=0i,59=0i,6=0i,60=0i,61=0i,62=0i,63=0i,64=0i,65=0i,66=0i,67=0i,68=0i,69=0i,7=0i,70=0i,71=0i,72=0i,73=0i,74=0i,75=0i,76=0i,77=0i,78=0i,79=0i,8=0i,80=0i,81=0i,82=0i,83=0i,84=0i,85=0i,86=0i,87=0i,88=0i,89=0i,9=0i,90=0i,91=0i,92=0i,93=0i,94=0i,95=0i,96=0i,97=0i,98=0i,99=0i 1598034191000000000
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
-

Was this page helpful?

-
- - - -
-
-

Thank you for your feedback!

-
-
-
-
-
-
- - - - -
-
- - -
-
- - - - - - - - - - - - - - - - - - - - - - -
-
- -
- - - - - - - - - - - - - -
- - - -
- -
-
-
- -

New in InfluxDB 3.8

-
- -
-

Key enhancements in InfluxDB 3.8 and the InfluxDB 3 Explorer 1.6.

-

See the Blog Post

- -
- - -
-

InfluxDB 3.8 is now available for both Core and Enterprise, alongside the -1.6 release of the InfluxDB 3 Explorer UI. This release is focused on -operational maturity and making InfluxDB easier to deploy, manage, and run -reliably in production.

-

For more information, check out:

- - -
- - -
- -
-
-
- -

InfluxDB Docker latest tag changing to InfluxDB 3 Core

-
- -
- On May 27, 2026, the latest tag for InfluxDB Docker images will -point to InfluxDB 3 Core. To avoid unexpected upgrades, use specific version -tags in your Docker deployments. -
- - -
-

If using Docker to install and run InfluxDB, the latest tag will point to -InfluxDB 3 Core. To avoid unexpected upgrades, use specific version tags in -your Docker deployments. For example, if using Docker to run InfluxDB v2, -replace the latest version tag with a specific version tag in your Docker -pull command–for example:

- - -
docker pull influxdb:2
-
- - -
- -
- - - - - - - - - - - - - - - diff --git a/pr-preview/pr-6954/telegraf/v1/input-plugins/aliyuncms/index.html b/pr-preview/pr-6954/telegraf/v1/input-plugins/aliyuncms/index.html deleted file mode 100644 index 65a218a42..000000000 --- a/pr-preview/pr-6954/telegraf/v1/input-plugins/aliyuncms/index.html +++ /dev/null @@ -1,4585 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -<nil> Documentation - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
- - - Documentation -
-
- -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
-

Select product

-
- -
- - -
-
-
- -
- - - - - -
- -
-
- -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- -
-
-
-

- - - - - - - - - - -
- - - - - -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Alibaba Cloud Monitor Service (Aliyun) Input Plugin

-

This plugin gathers statistics from the -Alibaba / Aliyun cloud monitoring service. In the following we will -use Aliyun instead of Alibaba as it’s the default naming across the web -console and docs.

-

Introduced in: Telegraf v1.19.0 -Tags: cloud -OS support: all

-

Aliyun Authentication

-

This plugin uses an AccessKey credential for Authentication with the -Aliyun OpenAPI endpoint. In the following order the plugin will attempt -to authenticate.

-
    -
  1. Ram RoleARN credential if access_key_id, access_key_secret, role_arn, -role_session_name is specified
  2. -
  3. AccessKey STS token credential if access_key_id, access_key_secret, -access_key_sts_token is specified
  4. -
  5. AccessKey credential if access_key_id, access_key_secret is specified
  6. -
  7. Ecs Ram Role Credential if role_name is specified
  8. -
  9. RSA keypair credential if private_key, public_key_id is specified
  10. -
  11. Environment variables credential
  12. -
  13. Instance metadata credential
  14. -
-

Global configuration options

-

Plugins support additional global and plugin configuration settings for tasks -such as modifying metrics, tags, and fields, creating aliases, and configuring -plugin ordering. See CONFIGURATION.md for more details.

-

Configuration

- - -
# Pull Metric Statistics from Aliyun CMS
-[[inputs.aliyuncms]]
-  ## Aliyun Credentials
-  ## Credentials are loaded in the following order
-  ## 1) Ram RoleArn credential
-  ## 2) AccessKey STS token credential
-  ## 3) AccessKey credential
-  ## 4) Ecs Ram Role credential
-  ## 5) RSA keypair credential
-  ## 6) Environment variables credential
-  ## 7) Instance metadata credential
-
-  # access_key_id = ""
-  # access_key_secret = ""
-  # access_key_sts_token = ""
-  # role_arn = ""
-  # role_session_name = ""
-  # private_key = ""
-  # public_key_id = ""
-  # role_name = ""
-
-  ## Specify ali cloud regions to be queried for metric and object discovery
-  ## If not set, all supported regions (see below) would be covered, it can
-  ## provide a significant load on API, so the recommendation here is to
-  ## limit the list as much as possible.
-  ## Allowed values: https://www.alibabacloud.com/help/zh/doc-detail/40654.htm
-  ## Default supported regions are:
-  ##   cn-qingdao,cn-beijing,cn-zhangjiakou,cn-huhehaote,cn-hangzhou,
-  ##   cn-shanghai, cn-shenzhen, cn-heyuan,cn-chengdu,cn-hongkong,
-  ##   ap-southeast-1,ap-southeast-2,ap-southeast-3,ap-southeast-5,
-  ##   ap-south-1,ap-northeast-1, us-west-1,us-east-1,eu-central-1,
-  ##   eu-west-1,me-east-1
-  ##
-  ## From discovery perspective it set the scope for object discovery,
-  ## the discovered info can be used to enrich the metrics with objects
-  ##  attributes/tags. Discovery is not supported for all projects.
-  ## Currently, discovery supported for the following projects:
-  ## - acs_ecs_dashboard
-  ## - acs_rds_dashboard
-  ## - acs_slb_dashboard
-  ## - acs_vpc_eip
-  regions = ["cn-hongkong"]
-
-  ## Requested AliyunCMS aggregation Period (required)
-  ## The period must be multiples of 60s and the minimum for AliyunCMS metrics
-  ## is 1 minute (60s). However not all metrics are made available to the
-  ## one minute period. Some are collected at 3 minute, 5 minute, or larger
-  ## intervals.
-  ## See: https://help.aliyun.com/document_detail/51936.html?spm=a2c4g.11186623.2.18.2bc1750eeOw1Pv
-  ## Note that if a period is configured that is smaller than the minimum for
-  ## a particular metric, that metric will not be returned by Aliyun's
-  ## OpenAPI and will not be collected by Telegraf.
-  period = "5m"
-
-  ## Collection Delay (required)
-  ## The delay must account for metrics availability via AliyunCMS API.
-  delay = "1m"
-
-  ## Recommended: use metric 'interval' that is a multiple of 'period'
-  ## to avoid gaps or overlap in pulled data
-  interval = "5m"
-
-  ## Metric Statistic Project (required)
-  project = "acs_slb_dashboard"
-
-  ## Maximum requests per second, default value is 200
-  ratelimit = 200
-
-  ## How often the discovery API call executed (default 1m)
-  #discovery_interval = "1m"
-
-  ## NOTE: Due to the way TOML is parsed, tables must be at the END of the
-  ## plugin definition, otherwise additional config options are read as part of
-  ## the table
-
-  ## Metrics to Pull
-  ## At least one metrics definition required
-  [[inputs.aliyuncms.metrics]]
-    ## Metrics names to be requested,
-    ## Description can be found here (per project):
-    ## https://help.aliyun.com/document_detail/28619.html?spm=a2c4g.11186623.6.690.1938ad41wg8QSq
-    names = ["InstanceActiveConnection", "InstanceNewConnection"]
-
-    ## Dimension filters for Metric (optional)
-    ## This allows to get additional metric dimension. If dimension is not
-    ## specified it can be returned or the data can be aggregated - it depends
-    ## on particular metric, you can find details here:
-    ##   https://help.aliyun.com/document_detail/28619.html?spm=a2c4g.11186623.6.690.1938ad41wg8QSq
-    ##
-    ## Note, that by default dimension filter includes the list of discovered
-    ## objects in scope (if discovery is enabled). Values specified here would
-    ## be added into the list of discovered objects. You can specify either
-    ## single dimension:
-    # dimensions = '{"instanceId": "p-example"}'
-
-    ## Or you can specify several dimensions at once:
-    # dimensions = '[{"instanceId": "p-example"},{"instanceId": "q-example"}]'
-
-    ## Tag Query Path
-    ## The following tags added by default:
-    ##   * regionId (if discovery enabled)
-    ##   * userId
-    ##   * instanceId
-    ## Enrichment tags, can be added from discovery (if supported)
-    ## Notation is
-    ##   <measurement_tag_name>:<JMES query path (https://jmespath.org/tutorial.html)>
-    ## To figure out which fields are available, consult the
-    ## Describe<ObjectType> API per project. For example, for SLB see:
-    ##   https://api.aliyun.com/#/?product=Slb&version=2014-05-15&api=DescribeLoadBalancers&params={}&tab=MOCK&lang=GO
-    # tag_query_path = [
-    #    "address:Address",
-    #    "name:LoadBalancerName",
-    #    "cluster_owner:Tags.Tag[?TagKey=='cs.cluster.name'].TagValue | [0]"
-    #    ]
-
-    ## Allow metrics without discovery data, if discovery is enabled.
-    ## If set to true, then metric without discovery data would be emitted, otherwise dropped.
-    ## This cane be of help, in case debugging dimension filters, or partial coverage of
-    ## discovery scope vs monitoring scope
-    # allow_dps_without_discovery = false
-

Requirements and Terminology

-

Plugin Configuration utilizes preset metric items references

-
    -
  • discovery_region must be a valid Aliyun -Region value
  • -
  • period must be a valid duration value
  • -
  • project must be a preset project value
  • -
  • names must be preset metric names
  • -
  • dimensions must be preset dimension values
  • -
-

Metrics

-

Each Aliyun CMS Project monitored records a measurement with fields for each -available Metric Statistic Project and Metrics are represented in snake -case

-
    -
  • aliyuncms_{project} -
      -
    • {metric}_average (metric Average value)
    • -
    • {metric}_minimum (metric Minimum value)
    • -
    • {metric}_maximum (metric Maximum value)
    • -
    • {metric}_value (metric Value value)
    • -
    -
  • -
-

Example Output

- - -
aliyuncms_acs_slb_dashboard,instanceId=p-example,regionId=cn-hangzhou,userId=1234567890 latency_average=0.004810798017284538,latency_maximum=0.1100282669067383,latency_minimum=0.0006084442138671875
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
-

Was this page helpful?

-
- - - -
-
-

Thank you for your feedback!

-
-
-
-
-
-
- - - - -
-
- - -
-
- - - - - - - - - - - - - - - - - - - - - - -
-
- -
- - - - - - - - - - - - - -
- - - -
- -
-
-
- -

New in InfluxDB 3.8

-
- -
-

Key enhancements in InfluxDB 3.8 and the InfluxDB 3 Explorer 1.6.

-

See the Blog Post

- -
- - -
-

InfluxDB 3.8 is now available for both Core and Enterprise, alongside the -1.6 release of the InfluxDB 3 Explorer UI. This release is focused on -operational maturity and making InfluxDB easier to deploy, manage, and run -reliably in production.

-

For more information, check out:

- - -
- - -
- -
-
-
- -

InfluxDB Docker latest tag changing to InfluxDB 3 Core

-
- -
- On May 27, 2026, the latest tag for InfluxDB Docker images will -point to InfluxDB 3 Core. To avoid unexpected upgrades, use specific version -tags in your Docker deployments. -
- - -
-

If using Docker to install and run InfluxDB, the latest tag will point to -InfluxDB 3 Core. To avoid unexpected upgrades, use specific version tags in -your Docker deployments. For example, if using Docker to run InfluxDB v2, -replace the latest version tag with a specific version tag in your Docker -pull command–for example:

- - -
docker pull influxdb:2
-
- - -
- -
- - - - - - - - - - - - - - - diff --git a/pr-preview/pr-6954/telegraf/v1/input-plugins/amd_rocm_smi/index.html b/pr-preview/pr-6954/telegraf/v1/input-plugins/amd_rocm_smi/index.html deleted file mode 100644 index 48b4bba0f..000000000 --- a/pr-preview/pr-6954/telegraf/v1/input-plugins/amd_rocm_smi/index.html +++ /dev/null @@ -1,4507 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -<nil> Documentation - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
- - - Documentation -
-
- -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
-

Select product

-
- -
- - -
-
-
- -
- - - - - -
- -
-
- -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- -
-
-
-

- - - - - - - - - - -
- - - - - -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

AMD ROCm System Management Interface (SMI) Input Plugin

-

This plugin gathers statistics including memory and GPU usage, temperatures -etc from AMD ROCm platform GPUs.

- -
- - -

The rocm-smi binary is required and needs to be installed on the -system.

-
-

Introduced in: Telegraf v1.20.0 -Tags: hardware, system -OS support: all

-

Global configuration options

-

Plugins support additional global and plugin configuration settings for tasks -such as modifying metrics, tags, and fields, creating aliases, and configuring -plugin ordering. See CONFIGURATION.md for more details.

-

Startup error behavior options

-

In addition to the plugin-specific and global configuration settings the plugin -supports options for specifying the behavior when experiencing startup errors -using the startup_error_behavior setting. Available values are:

-
    -
  • error: Telegraf with stop and exit in case of startup errors. This is the -default behavior.
  • -
  • ignore: Telegraf will ignore startup errors for this plugin and disables it -but continues processing for all other plugins.
  • -
  • retry: NOT AVAILABLE
  • -
-

Configuration

- - -
# Query statistics from AMD Graphics cards using rocm-smi binary
-[[inputs.amd_rocm_smi]]
-  ## Optional: path to rocm-smi binary, defaults to $PATH via exec.LookPath
-  # bin_path = "/opt/rocm/bin/rocm-smi"
-
-  ## Optional: timeout for GPU polling
-  # timeout = "5s"
-

Metrics

-
    -
  • measurement: amd_rocm_smi -
      -
    • -

      tags

      -
        -
      • name (entry name assigned by rocm-smi executable)
      • -
      • gpu_id (id of the GPU according to rocm-smi)
      • -
      • gpu_unique_id (unique id of the GPU)
      • -
      -
    • -
    • -

      fields

      -
        -
      • driver_version (integer)
      • -
      • fan_speed (integer)
      • -
      • memory_total (integer, B)
      • -
      • memory_used (integer, B)
      • -
      • memory_free (integer, B)
      • -
      • temperature_sensor_edge (float, Celsius)
      • -
      • temperature_sensor_junction (float, Celsius)
      • -
      • temperature_sensor_memory (float, Celsius)
      • -
      • utilization_gpu (integer, percentage)
      • -
      • utilization_memory (integer, percentage)
      • -
      • clocks_current_sm (integer, Mhz)
      • -
      • clocks_current_memory (integer, Mhz)
      • -
      • clocks_current_display (integer, Mhz)
      • -
      • clocks_current_fabric (integer, Mhz)
      • -
      • clocks_current_system (integer, Mhz)
      • -
      • power_draw (float, Watt)
      • -
      • card_series (string)
      • -
      • card_model (string)
      • -
      • card_vendor (string)
      • -
      -
    • -
    -
  • -
-

Troubleshooting

-

Check the full output by running rocm-smi binary manually.

-

Linux:

- - -
rocm-smi rocm-smi -o -l -m -M  -g -c -t -u -i -f -p -P -s -S -v --showreplaycount --showpids --showdriverversion --showmemvendor --showfwinfo --showproductname --showserial --showuniqueid --showbus --showpendingpages --showpagesinfo --showretiredpages --showunreservablepages --showmemuse --showvoltage --showtopo --showtopoweight --showtopohops --showtopotype --showtoponuma --showmeminfo all --json
-

Please include the output of this command if opening a GitHub issue, together -with ROCm version.

-

Example Output

- - -
amd_rocm_smi,gpu_id=0x6861,gpu_unique_id=0x2150e7d042a1124,host=ali47xl,name=card0 clocks_current_memory=167i,clocks_current_sm=852i,driver_version=51114i,fan_speed=14i,memory_free=17145282560i,memory_total=17163091968i,memory_used=17809408i,power_draw=7,temperature_sensor_edge=28,temperature_sensor_junction=29,temperature_sensor_memory=92,utilization_gpu=0i 1630572551000000000
-amd_rocm_smi,gpu_id=0x6861,gpu_unique_id=0x2150e7d042a1124,host=ali47xl,name=card0 clocks_current_memory=167i,clocks_current_sm=852i,driver_version=51114i,fan_speed=14i,memory_free=17145282560i,memory_total=17163091968i,memory_used=17809408i,power_draw=7,temperature_sensor_edge=29,temperature_sensor_junction=30,temperature_sensor_memory=91,utilization_gpu=0i 1630572701000000000
-amd_rocm_smi,gpu_id=0x6861,gpu_unique_id=0x2150e7d042a1124,host=ali47xl,name=card0 clocks_current_memory=167i,clocks_current_sm=852i,driver_version=51114i,fan_speed=14i,memory_free=17145282560i,memory_total=17163091968i,memory_used=17809408i,power_draw=7,temperature_sensor_edge=29,temperature_sensor_junction=29,temperature_sensor_memory=92,utilization_gpu=0i 1630572749000000000
-

Limitations and notices

-

Please notice that this plugin has been developed and tested on a limited number -of versions and small set of GPUs. Currently the latest ROCm version tested is -4.3.0. Notice that depending on the device and driver versions the amount of -information provided by rocm-smi can vary so that some fields would start/stop -appearing in the metrics upon updates. The rocm-smi JSON output is not -perfectly homogeneous and is possibly changing in the future, hence parsing and -unmarshalling can start failing upon updating ROCm.

-

Inspired by the current state of the art of the nvidia-smi plugin.

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
-

Was this page helpful?

-
- - - -
-
-

Thank you for your feedback!

-
-
-
-
-
-
- - - - -
-
- - -
-
- - - - - - - - - - - - - - - - - - - - - - -
-
- -
- - - - - - - - - - - - - -
- - - -
- -
-
-
- -

New in InfluxDB 3.8

-
- -
-

Key enhancements in InfluxDB 3.8 and the InfluxDB 3 Explorer 1.6.

-

See the Blog Post

- -
- - -
-

InfluxDB 3.8 is now available for both Core and Enterprise, alongside the -1.6 release of the InfluxDB 3 Explorer UI. This release is focused on -operational maturity and making InfluxDB easier to deploy, manage, and run -reliably in production.

-

For more information, check out:

- - -
- - -
- -
-
-
- -

InfluxDB Docker latest tag changing to InfluxDB 3 Core

-
- -
- On May 27, 2026, the latest tag for InfluxDB Docker images will -point to InfluxDB 3 Core. To avoid unexpected upgrades, use specific version -tags in your Docker deployments. -
- - -
-

If using Docker to install and run InfluxDB, the latest tag will point to -InfluxDB 3 Core. To avoid unexpected upgrades, use specific version tags in -your Docker deployments. For example, if using Docker to run InfluxDB v2, -replace the latest version tag with a specific version tag in your Docker -pull command–for example:

- - -
docker pull influxdb:2
-
- - -
- -
- - - - - - - - - - - - - - - diff --git a/pr-preview/pr-6954/telegraf/v1/input-plugins/amqp_consumer/index.html b/pr-preview/pr-6954/telegraf/v1/input-plugins/amqp_consumer/index.html deleted file mode 100644 index 3bb7b7f2a..000000000 --- a/pr-preview/pr-6954/telegraf/v1/input-plugins/amqp_consumer/index.html +++ /dev/null @@ -1,4568 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -<nil> Documentation - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
- - - Documentation -
-
- -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
-

Select product

-
- -
- - -
-
-
- -
- - - - - -
- -
-
- -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- -
-
-
-

- - - - - - - - - - -
- - - - - -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

AMQP Consumer Input Plugin

-

This plugin consumes messages from an Advanced Message Queuing Protocol v0.9.1 -broker. A prominent implementation of this protocol is RabbitMQ.

-

Metrics are read from a topic exchange using the configured queue and binding -key. The message payloads must be formatted in one of the supported -data formats.

-

For an introduction check the AMQP concepts page and the -RabbitMQ getting started guide.

-

Introduced in: Telegraf v1.3.0 -Tags: messaging -OS support: all

-

Service Input

-

This plugin is a service input. Normal plugins gather metrics determined by the -interval setting. Service plugins start a service to listen and wait for -metrics or events to occur. Service plugins have two key differences from -normal plugins:

-
    -
  1. The global or plugin specific interval setting may not apply
  2. -
  3. The CLI options of --test, --test-wait, and --once may not produce -output for this plugin
  4. -
-

Global configuration options

-

Plugins support additional global and plugin configuration settings for tasks -such as modifying metrics, tags, and fields, creating aliases, and configuring -plugin ordering. See CONFIGURATION.md for more details.

-

Startup error behavior options

-

In addition to the plugin-specific and global configuration settings the plugin -supports options for specifying the behavior when experiencing startup errors -using the startup_error_behavior setting. Available values are:

-
    -
  • error: Telegraf with stop and exit in case of startup errors. This is the -default behavior.
  • -
  • ignore: Telegraf will ignore startup errors for this plugin and disables it -but continues processing for all other plugins.
  • -
  • retry: Telegraf will try to startup the plugin in every gather or write -cycle in case of startup errors. The plugin is disabled until -the startup succeeds.
  • -
  • probe: Telegraf will probe the plugin’s function (if possible) and disables -the plugin in case probing fails. If the plugin does not support -probing, Telegraf will behave as if ignore was set instead.
  • -
-

Secret-store support

-

This plugin supports secrets from secret-stores for the username and -password option. -See the secret-store documentation for more details on how -to use them.

-

Configuration

- - -
# AMQP consumer plugin
-[[inputs.amqp_consumer]]
-  ## Brokers to consume from.  If multiple brokers are specified a random broker
-  ## will be selected anytime a connection is established.  This can be
-  ## helpful for load balancing when not using a dedicated load balancer.
-  brokers = ["amqp://localhost:5672/influxdb"]
-
-  ## Authentication credentials for the PLAIN auth_method.
-  # username = ""
-  # password = ""
-
-  ## Name of the exchange to declare.  If unset, no exchange will be declared.
-  exchange = "telegraf"
-
-  ## Exchange type; common types are "direct", "fanout", "topic", "header", "x-consistent-hash".
-  # exchange_type = "topic"
-
-  ## If true, exchange will be passively declared.
-  # exchange_passive = false
-
-  ## Exchange durability can be either "transient" or "durable".
-  # exchange_durability = "durable"
-
-  ## Additional exchange arguments.
-  # exchange_arguments = { }
-  # exchange_arguments = {"hash_property" = "timestamp"}
-
-  ## AMQP queue name.
-  queue = "telegraf"
-
-  ## AMQP queue durability can be "transient" or "durable".
-  queue_durability = "durable"
-
-  ## If true, queue will be passively declared.
-  # queue_passive = false
-
-  ## Additional arguments when consuming from Queue
-  # queue_consume_arguments = { }
-  # queue_consume_arguments = {"x-stream-offset" = "first"}
-
-  ## Additional queue arguments.
-  # queue_arguments = { }
-  # queue_arguments = {"x-max-length" = 100}
-
-  ## A binding between the exchange and queue using this binding key is
-  ## created.  If unset, no binding is created.
-  binding_key = "#"
-
-  ## Maximum number of messages server should give to the worker.
-  # prefetch_count = 50
-
-  ## Max undelivered messages
-  ## This plugin uses tracking metrics, which ensure messages are read to
-  ## outputs before acknowledging them to the original broker to ensure data
-  ## is not lost. This option sets the maximum messages to read from the
-  ## broker that have not been written by an output.
-  ##
-  ## This value needs to be picked with awareness of the agent's
-  ## metric_batch_size value as well. Setting max undelivered messages too high
-  ## can result in a constant stream of data batches to the output. While
-  ## setting it too low may never flush the broker's messages.
-  # max_undelivered_messages = 1000
-
-  ## Timeout for establishing the connection to a broker
-  # timeout = "30s"
-
-  ## Auth method. PLAIN and EXTERNAL are supported
-  ## Using EXTERNAL requires enabling the rabbitmq_auth_mechanism_ssl plugin as
-  ## described here: https://www.rabbitmq.com/plugins.html
-  # auth_method = "PLAIN"
-
-  ## Optional TLS Config
-  # tls_ca = "/etc/telegraf/ca.pem"
-  # tls_cert = "/etc/telegraf/cert.pem"
-  # tls_key = "/etc/telegraf/key.pem"
-  ## Use TLS but skip chain & host verification
-  # insecure_skip_verify = false
-
-  ## Content encoding for message payloads, can be set to
-  ## "gzip", "identity" or "auto"
-  ## - Use "gzip" to decode gzip
-  ## - Use "identity" to apply no encoding
-  ## - Use "auto" determine the encoding using the ContentEncoding header
-  # content_encoding = "identity"
-
-  ## Maximum size of decoded message.
-  ## Acceptable units are B, KiB, KB, MiB, MB...
-  ## Without quotes and units, interpreted as size in bytes.
-  # max_decompression_size = "500MB"
-
-  ## Data format to consume.
-  ## Each data format has its own unique set of configuration options, read
-  ## more about them here:
-  ## https://github.com/influxdata/telegraf/blob/master/docs/DATA_FORMATS_INPUT.md
-  data_format = "influx"
-

Message acknowledgement behavior

-

This plugin tracks metrics to report the delivery state to the broker.

-

Messages are acknowledged (ACK) in the broker if they were successfully -parsed and delivered to all corresponding output sinks.

-

Messages are not acknowledged (NACK) if parsing of the messages fails and no -metrics were created. In this case requeueing is disabled so messages will not -be sent out to any other queue. The message will then be discarded or sent to a -dead-letter exchange depending on the server configuration. See -RabitMQ documentation for more details.

-

Messages are rejected (REJECT) if the messages were parsed correctly but -could not be delivered e.g. due to output-service outages. Requeueing is -disabled in this case and messages will be discarded by the server. See -RabitMQ documentation for more details.

-

Metrics

-

The format of metrics produced by this plugin depends on the content and -data format of received messages.

-

Example Output

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
-

Was this page helpful?

-
- - - -
-
-

Thank you for your feedback!

-
-
-
-
-
-
- - - - -
-
- - -
-
- - - - - - - - - - - - - - - - - - - - - - -
-
- -
- - - - - - - - - - - - - -
- - - -
- -
-
-
- -

New in InfluxDB 3.8

-
- -
-

Key enhancements in InfluxDB 3.8 and the InfluxDB 3 Explorer 1.6.

-

See the Blog Post

- -
- - -
-

InfluxDB 3.8 is now available for both Core and Enterprise, alongside the -1.6 release of the InfluxDB 3 Explorer UI. This release is focused on -operational maturity and making InfluxDB easier to deploy, manage, and run -reliably in production.

-

For more information, check out:

- - -
- - -
- -
-
-
- -

InfluxDB Docker latest tag changing to InfluxDB 3 Core

-
- -
- On May 27, 2026, the latest tag for InfluxDB Docker images will -point to InfluxDB 3 Core. To avoid unexpected upgrades, use specific version -tags in your Docker deployments. -
- - -
-

If using Docker to install and run InfluxDB, the latest tag will point to -InfluxDB 3 Core. To avoid unexpected upgrades, use specific version tags in -your Docker deployments. For example, if using Docker to run InfluxDB v2, -replace the latest version tag with a specific version tag in your Docker -pull command–for example:

- - -
docker pull influxdb:2
-
- - -
- -
- - - - - - - - - - - - - - - diff --git a/pr-preview/pr-6954/telegraf/v1/input-plugins/apache/index.html b/pr-preview/pr-6954/telegraf/v1/input-plugins/apache/index.html deleted file mode 100644 index fba841021..000000000 --- a/pr-preview/pr-6954/telegraf/v1/input-plugins/apache/index.html +++ /dev/null @@ -1,4506 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -<nil> Documentation - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
- - - Documentation -
-
- -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
-

Select product

-
- -
- - -
-
-
- -
- - - - - -
- -
-
- -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- -
-
-
-

- - - - - - - - - - -
- - - - - -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Apache Input Plugin

-

This plugin collects performance information from Apache HTTP Servers -using the mod_status module. Typically, this module is -configured to expose a page at the /server-status?auto endpoint the server.

-

The ExtendedStatus option must be enabled in order to collect -all available fields. For information about configuration of your server check -the module documentation.

-

Introduced in: Telegraf v1.8.0 -Tags: server, web -OS support: all

-

Global configuration options

-

Plugins support additional global and plugin configuration settings for tasks -such as modifying metrics, tags, and fields, creating aliases, and configuring -plugin ordering. See CONFIGURATION.md for more details.

-

Configuration

- - -
# Read Apache status information (mod_status)
-[[inputs.apache]]
-  ## An array of URLs to gather from, must be directed at the machine
-  ## readable version of the mod_status page including the auto query string.
-  ## Default is "http://localhost/server-status?auto".
-  urls = ["http://localhost/server-status?auto"]
-
-  ## Credentials for basic HTTP authentication.
-  # username = "myuser"
-  # password = "mypassword"
-
-  ## Maximum time to receive response.
-  # response_timeout = "5s"
-
-  ## Optional TLS Config
-  # tls_ca = "/etc/telegraf/ca.pem"
-  # tls_cert = "/etc/telegraf/cert.pem"
-  # tls_key = "/etc/telegraf/key.pem"
-  ## Use TLS but skip chain & host verification
-  # insecure_skip_verify = false
-

Metrics

-
    -
  • apache -
      -
    • BusyWorkers (float)
    • -
    • BytesPerReq (float)
    • -
    • BytesPerSec (float)
    • -
    • ConnsAsyncClosing (float)
    • -
    • ConnsAsyncKeepAlive (float)
    • -
    • ConnsAsyncWriting (float)
    • -
    • ConnsTotal (float)
    • -
    • CPUChildrenSystem (float)
    • -
    • CPUChildrenUser (float)
    • -
    • CPULoad (float)
    • -
    • CPUSystem (float)
    • -
    • CPUUser (float)
    • -
    • IdleWorkers (float)
    • -
    • Load1 (float)
    • -
    • Load5 (float)
    • -
    • Load15 (float)
    • -
    • ParentServerConfigGeneration (float)
    • -
    • ParentServerMPMGeneration (float)
    • -
    • ReqPerSec (float)
    • -
    • ServerUptimeSeconds (float)
    • -
    • TotalAccesses (float)
    • -
    • TotalkBytes (float)
    • -
    • Uptime (float)
    • -
    -
  • -
-

The following fields are collected from the Scoreboard, and represent the -number of requests in the given state:

-
    -
  • apache -
      -
    • scboard_closing (float)
    • -
    • scboard_dnslookup (float)
    • -
    • scboard_finishing (float)
    • -
    • scboard_idle_cleanup (float)
    • -
    • scboard_keepalive (float)
    • -
    • scboard_logging (float)
    • -
    • scboard_open (float)
    • -
    • scboard_reading (float)
    • -
    • scboard_sending (float)
    • -
    • scboard_starting (float)
    • -
    • scboard_waiting (float)
    • -
    -
  • -
-

Tags

-
    -
  • All measurements have the following tags: -
      -
    • port
    • -
    • server
    • -
    -
  • -
-

Example Output

- - -
apache,port=80,server=debian-stretch-apache BusyWorkers=1,BytesPerReq=0,BytesPerSec=0,CPUChildrenSystem=0,CPUChildrenUser=0,CPULoad=0.00995025,CPUSystem=0.01,CPUUser=0.01,ConnsAsyncClosing=0,ConnsAsyncKeepAlive=0,ConnsAsyncWriting=0,ConnsTotal=0,IdleWorkers=49,Load1=0.01,Load15=0,Load5=0,ParentServerConfigGeneration=3,ParentServerMPMGeneration=2,ReqPerSec=0.00497512,ServerUptimeSeconds=201,TotalAccesses=1,TotalkBytes=0,Uptime=201,scboard_closing=0,scboard_dnslookup=0,scboard_finishing=0,scboard_idle_cleanup=0,scboard_keepalive=0,scboard_logging=0,scboard_open=100,scboard_reading=0,scboard_sending=1,scboard_starting=0,scboard_waiting=49 1502489900000000000
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
-

Was this page helpful?

-
- - - -
-
-

Thank you for your feedback!

-
-
-
-
-
-
- - - - -
-
- - -
-
- - - - - - - - - - - - - - - - - - - - - - -
-
- -
- - - - - - - - - - - - - -
- - - -
- -
-
-
- -

New in InfluxDB 3.8

-
- -
-

Key enhancements in InfluxDB 3.8 and the InfluxDB 3 Explorer 1.6.

-

See the Blog Post

- -
- - -
-

InfluxDB 3.8 is now available for both Core and Enterprise, alongside the -1.6 release of the InfluxDB 3 Explorer UI. This release is focused on -operational maturity and making InfluxDB easier to deploy, manage, and run -reliably in production.

-

For more information, check out:

- - -
- - -
- -
-
-
- -

InfluxDB Docker latest tag changing to InfluxDB 3 Core

-
- -
- On May 27, 2026, the latest tag for InfluxDB Docker images will -point to InfluxDB 3 Core. To avoid unexpected upgrades, use specific version -tags in your Docker deployments. -
- - -
-

If using Docker to install and run InfluxDB, the latest tag will point to -InfluxDB 3 Core. To avoid unexpected upgrades, use specific version tags in -your Docker deployments. For example, if using Docker to run InfluxDB v2, -replace the latest version tag with a specific version tag in your Docker -pull command–for example:

- - -
docker pull influxdb:2
-
- - -
- -
- - - - - - - - - - - - - - - diff --git a/pr-preview/pr-6954/telegraf/v1/input-plugins/apcupsd/index.html b/pr-preview/pr-6954/telegraf/v1/input-plugins/apcupsd/index.html deleted file mode 100644 index f3e36930f..000000000 --- a/pr-preview/pr-6954/telegraf/v1/input-plugins/apcupsd/index.html +++ /dev/null @@ -1,4470 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -<nil> Documentation - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
- - - Documentation -
-
- -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
-

Select product

-
- -
- - -
-
-
- -
- - - - - -
- -
-
- -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- -
-
-
-

- - - - - - - - - - -
- - - - - -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

APC UPSD Input Plugin

-

This plugin gathers data from one or more apcupsd daemon over -the NIS network protocol. To query a server, the daemon must be running and be -accessible.

-

Introduced in: Telegraf v1.12.0 -Tags: hardware, server -OS support: all

-

Global configuration options

-

Plugins support additional global and plugin configuration settings for tasks -such as modifying metrics, tags, and fields, creating aliases, and configuring -plugin ordering. See CONFIGURATION.md for more details.

-

Configuration

- - -
# Monitor APC UPSes connected to apcupsd
-[[inputs.apcupsd]]
-  # A list of running apcupsd server to connect to.
-  # If not provided will default to tcp://127.0.0.1:3551
-  servers = ["tcp://127.0.0.1:3551"]
-
-  ## Timeout for dialing server.
-  timeout = "5s"
-

Metrics

-
    -
  • apcupsd -
      -
    • tags: -
        -
      • serial
      • -
      • ups_name
      • -
      • status (string representing the set status_flags)
      • -
      • model
      • -
      -
    • -
    • fields: -
        -
      • status_flags (status-bits)
      • -
      • input_voltage
      • -
      • load_percent
      • -
      • battery_charge_percent
      • -
      • time_left_ns
      • -
      • output_voltage
      • -
      • internal_temp
      • -
      • battery_voltage
      • -
      • input_frequency
      • -
      • time_on_battery_ns
      • -
      • cumulative_time_on_battery_ns
      • -
      • nominal_input_voltage
      • -
      • nominal_battery_voltage
      • -
      • nominal_power
      • -
      • firmware
      • -
      • battery_date
      • -
      • last_transfer
      • -
      • number_transfers
      • -
      -
    • -
    -
  • -
-

Example Output

- - -
apcupsd,serial=AS1231515,status=ONLINE,ups_name=name1 time_on_battery=0,load_percent=9.7,time_left_minutes=98,output_voltage=230.4,internal_temp=32.4,battery_voltage=27.4,input_frequency=50.2,input_voltage=230.4,battery_charge_percent=100,status_flags=8i 1490035922000000000
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
-

Was this page helpful?

-
- - - -
-
-

Thank you for your feedback!

-
-
-
-
-
-
- - - - -
-
- - -
-
- - - - - - - - - - - - - - - - - - - - - - -
-
- -
- - - - - - - - - - - - - -
- - - -
- -
-
-
- -

New in InfluxDB 3.8

-
- -
-

Key enhancements in InfluxDB 3.8 and the InfluxDB 3 Explorer 1.6.

-

See the Blog Post

- -
- - -
-

InfluxDB 3.8 is now available for both Core and Enterprise, alongside the -1.6 release of the InfluxDB 3 Explorer UI. This release is focused on -operational maturity and making InfluxDB easier to deploy, manage, and run -reliably in production.

-

For more information, check out:

- - -
- - -
- -
-
-
- -

InfluxDB Docker latest tag changing to InfluxDB 3 Core

-
- -
- On May 27, 2026, the latest tag for InfluxDB Docker images will -point to InfluxDB 3 Core. To avoid unexpected upgrades, use specific version -tags in your Docker deployments. -
- - -
-

If using Docker to install and run InfluxDB, the latest tag will point to -InfluxDB 3 Core. To avoid unexpected upgrades, use specific version tags in -your Docker deployments. For example, if using Docker to run InfluxDB v2, -replace the latest version tag with a specific version tag in your Docker -pull command–for example:

- - -
docker pull influxdb:2
-
- - -
- -
- - - - - - - - - - - - - - - diff --git a/pr-preview/pr-6954/telegraf/v1/input-plugins/aurora/index.html b/pr-preview/pr-6954/telegraf/v1/input-plugins/aurora/index.html deleted file mode 100644 index 59a8e4f7a..000000000 --- a/pr-preview/pr-6954/telegraf/v1/input-plugins/aurora/index.html +++ /dev/null @@ -1,4478 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -<nil> Documentation - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
- - - Documentation -
-
- -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
-

Select product

-
- -
- - -
-
-
- -
- - - - - -
- -
-
- -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- -
-
-
-

- - - - - - - - - - -
- - - - - -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Apache Aurora Input Plugin

-

This plugin gathers metrics from Apache Aurora schedulers. For -monitoring recommendations check the Monitoring your Aurora cluster -article.

-

Introduced in: Telegraf v1.7.0 -Tags: applications, server -OS support: all

-

Global configuration options

-

Plugins support additional global and plugin configuration settings for tasks -such as modifying metrics, tags, and fields, creating aliases, and configuring -plugin ordering. See CONFIGURATION.md for more details.

-

Configuration

- - -
# Gather metrics from Apache Aurora schedulers
-[[inputs.aurora]]
-  ## Schedulers are the base addresses of your Aurora Schedulers
-  schedulers = ["http://127.0.0.1:8081"]
-
-  ## Set of role types to collect metrics from.
-  ##
-  ## The scheduler roles are checked each interval by contacting the
-  ## scheduler nodes; zookeeper is not contacted.
-  # roles = ["leader", "follower"]
-
-  ## Timeout is the max time for total network operations.
-  # timeout = "5s"
-
-  ## Username and password are sent using HTTP Basic Auth.
-  # username = "username"
-  # password = "pa$$word"
-
-  ## Optional TLS Config
-  # tls_ca = "/etc/telegraf/ca.pem"
-  # tls_cert = "/etc/telegraf/cert.pem"
-  # tls_key = "/etc/telegraf/key.pem"
-  ## Use TLS but skip chain & host verification
-  # insecure_skip_verify = false
-

Metrics

-
    -
  • aurora -
      -
    • tags: -
        -
      • scheduler (URL of scheduler)
      • -
      • role (leader or follower)
      • -
      -
    • -
    • fields: -
        -
      • Numeric metrics are collected from the /vars endpoint; string fields -are not gathered.
      • -
      -
    • -
    -
  • -
-

Troubleshooting

-

Check the Scheduler role, the leader will return a 200 status:

- - -
curl -v http://127.0.0.1:8081/leaderhealth
-

Get available metrics:

- - -
curl http://127.0.0.1:8081/vars
-

Example Output

-

The example output below has been trimmed.

- - -
aurora,role=leader,scheduler=http://debian-stretch-aurora-coordinator-3.virt:8081 CronBatchWorker_batch_locked_events=0i,CronBatchWorker_batch_locked_events_per_sec=0,CronBatchWorker_batch_locked_nanos_per_event=0,CronBatchWorker_batch_locked_nanos_total=0i,CronBatchWorker_batch_locked_nanos_total_per_sec=0,CronBatchWorker_batch_unlocked_events=0i,CronBatchWorker_batch_unlocked_events_per_sec=0,CronBatchWorker_batch_unlocked_nanos_per_event=0,CronBatchWorker_batch_unlocked_nanos_total=0i,CronBatchWorker_batch_unlocked_nanos_total_per_sec=0,CronBatchWorker_batches_processed=0i,CronBatchWorker_items_processed=0i,CronBatchWorker_last_processed_batch_size=0i,CronBatchWorker_queue_size=0i,TaskEventBatchWorker_batch_locked_events=0i,TaskEventBatchWorker_batch_locked_events_per_sec=0,TaskEventBatchWorker_batch_locked_nanos_per_event=0,TaskEventBatchWorker_batch_locked_nanos_total=0i,TaskEventBatchWorker_batch_locked_nanos_total_per_sec=0,TaskEventBatchWorker_batch_unlocked_events=0i,TaskEventBatchWorker_batch_unlocked_events_per_sec=0,TaskEventBatchWorker_batch_unlocked_nanos_per_event=0,TaskEventBatchWorker_batch_unlocked_nanos_total=0i,TaskEventBatchWorker_batch_unlocked_nanos_total_per_sec=0,TaskEventBatchWorker_batches_processed=0i,TaskEventBatchWorker_items_processed=0i,TaskEventBatchWorker_last_processed_batch_size=0i,TaskEventBatchWorker_queue_size=0i,TaskGroupBatchWorker_batch_locked_events=0i,TaskGroupBatchWorker_batch_locked_events_per_sec=0,TaskGroupBatchWorker_batch_locked_nanos_per_event=0,TaskGroupBatchWorker_batch_locked_nanos_total=0i,TaskGroupBatchWorker_batch_locked_nanos_total_per_sec=0,TaskGroupBatchWorker_batch_unlocked_events=0i,TaskGroupBatchWorker_batch_unlocked_events_per_sec=0,TaskGroupBatchWorker_batch_unlocked_nanos_per_event=0,TaskGroupBatchWorker_batch_unlocked_nanos_total=0i,TaskGroupBatchWorker_batch_unlocked_nanos_total_per_sec=0,TaskGroupBatchWorker_batches_processed=0i,TaskGroupBatchWorker_items_processed=0i,TaskGroupBatchWorker_last_processed_batch_size=0i,TaskGroupBatchWorker_queue_size=0i,assigner_launch_failures=0i,async_executor_uncaught_exceptions=0i,async_tasks_completed=1i,cron_job_collisions=0i,cron_job_concurrent_runs=0i,cron_job_launch_failures=0i,cron_job_misfires=0i,cron_job_parse_failures=0i,cron_job_triggers=0i,cron_jobs_loaded=1i,empty_slots_dedicated_large=0i,empty_slots_dedicated_medium=0i,empty_slots_dedicated_revocable_large=0i,empty_slots_dedicated_revocable_medium=0i,empty_slots_dedicated_revocable_small=0i,empty_slots_dedicated_revocable_xlarge=0i,empty_slots_dedicated_small=0i,empty_slots_dedicated_xlarge=0i,empty_slots_large=0i,empty_slots_medium=0i,empty_slots_revocable_large=0i,empty_slots_revocable_medium=0i,empty_slots_revocable_small=0i,empty_slots_revocable_xlarge=0i,empty_slots_small=0i,empty_slots_xlarge=0i,event_bus_dead_events=0i,event_bus_exceptions=1i,framework_registered=1i,globally_banned_offers_size=0i,http_200_responses_events=55i,http_200_responses_events_per_sec=0,http_200_responses_nanos_per_event=0,http_200_responses_nanos_total=310416694i,http_200_responses_nanos_total_per_sec=0,job_update_delete_errors=0i,job_update_recovery_errors=0i,job_update_state_change_errors=0i,job_update_store_delete_all_events=1i,job_update_store_delete_all_events_per_sec=0,job_update_store_delete_all_nanos_per_event=0,job_update_store_delete_all_nanos_total=1227254i,job_update_store_delete_all_nanos_total_per_sec=0,job_update_store_fetch_details_query_events=74i,job_update_store_fetch_details_query_events_per_sec=0,job_update_store_fetch_details_query_nanos_per_event=0,job_update_store_fetch_details_query_nanos_total=24643149i,job_update_store_fetch_details_query_nanos_total_per_sec=0,job_update_store_prune_history_events=59i,job_update_store_prune_history_events_per_sec=0,job_update_store_prune_history_nanos_per_event=0,job_update_store_prune_history_nanos_total=262868218i,job_update_store_prune_history_nanos_total_per_sec=0,job_updates_pruned=0i,jvm_available_processors=2i,jvm_class_loaded_count=6707i,jvm_class_total_loaded_count=6732i,jvm_class_unloaded_count=25i,jvm_gc_PS_MarkSweep_collection_count=2i,jvm_gc_PS_MarkSweep_collection_time_ms=223i,jvm_gc_PS_Scavenge_collection_count=27i,jvm_gc_PS_Scavenge_collection_time_ms=1691i,jvm_gc_collection_count=29i,jvm_gc_collection_time_ms=1914i,jvm_memory_free_mb=65i,jvm_memory_heap_mb_committed=157i,jvm_memory_heap_mb_max=446i,jvm_memory_heap_mb_used=91i,jvm_memory_max_mb=446i,jvm_memory_mb_total=157i,jvm_memory_non_heap_mb_committed=50i,jvm_memory_non_heap_mb_max=0i,jvm_memory_non_heap_mb_used=49i,jvm_threads_active=47i,jvm_threads_daemon=28i,jvm_threads_peak=48i,jvm_threads_started=62i,jvm_time_ms=1526530686927i,jvm_uptime_secs=79947i,log_entry_serialize_events=16i,log_entry_serialize_events_per_sec=0,log_entry_serialize_nanos_per_event=0,log_entry_serialize_nanos_total=4815321i,log_entry_serialize_nanos_total_per_sec=0,log_manager_append_events=16i,log_manager_append_events_per_sec=0,log_manager_append_nanos_per_event=0,log_manager_append_nanos_total=506453428i,log_manager_append_nanos_total_per_sec=0,log_manager_deflate_events=14i,log_manager_deflate_events_per_sec=0,log_manager_deflate_nanos_per_event=0,log_manager_deflate_nanos_total=21010565i,log_manager_deflate_nanos_total_per_sec=0 1526530687000000000
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
-

Was this page helpful?

-
- - - -
-
-

Thank you for your feedback!

-
-
-
-
-
-
- - - - -
-
- - -
-
- - - - - - - - - - - - - - - - - - - - - - -
-
- -
- - - - - - - - - - - - - -
- - - -
- -
-
-
- -

New in InfluxDB 3.8

-
- -
-

Key enhancements in InfluxDB 3.8 and the InfluxDB 3 Explorer 1.6.

-

See the Blog Post

- -
- - -
-

InfluxDB 3.8 is now available for both Core and Enterprise, alongside the -1.6 release of the InfluxDB 3 Explorer UI. This release is focused on -operational maturity and making InfluxDB easier to deploy, manage, and run -reliably in production.

-

For more information, check out:

- - -
- - -
- -
-
-
- -

InfluxDB Docker latest tag changing to InfluxDB 3 Core

-
- -
- On May 27, 2026, the latest tag for InfluxDB Docker images will -point to InfluxDB 3 Core. To avoid unexpected upgrades, use specific version -tags in your Docker deployments. -
- - -
-

If using Docker to install and run InfluxDB, the latest tag will point to -InfluxDB 3 Core. To avoid unexpected upgrades, use specific version tags in -your Docker deployments. For example, if using Docker to run InfluxDB v2, -replace the latest version tag with a specific version tag in your Docker -pull command–for example:

- - -
docker pull influxdb:2
-
- - -
- -
- - - - - - - - - - - - - - - diff --git a/pr-preview/pr-6954/telegraf/v1/input-plugins/azure_monitor/index.html b/pr-preview/pr-6954/telegraf/v1/input-plugins/azure_monitor/index.html deleted file mode 100644 index 8bbccc319..000000000 --- a/pr-preview/pr-6954/telegraf/v1/input-plugins/azure_monitor/index.html +++ /dev/null @@ -1,4572 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -<nil> Documentation - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
- - - Documentation -
-
- -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
-

Select product

-
- -
- - -
-
-
- -
- - - - - -
- -
-
- -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- -
-
-
-

- - - - - - - - - - -
- - - - - -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Azure Monitor Input Plugin

-

This plugin gathers metrics of Azure resources using the -Azure Monitor API. The plugin requires a client_id, -client_secret and tenant_id for authentication via access token. The -subscription_id is required for accessing Azure resources.

-

Check the supported metrics page for available resource -types and their metrics.

- -
- - -

The Azure API has a read limit of 12,000 requests per hour. Please make sure -you don’t exceed this limit with the total number of metrics you are in the -configured interval.

-
-

Introduced in: Telegraf v1.25.0 -Tags: cloud -OS support: all

-

Property Locations

-

The subscription_id can be found under Overview > Essentials in the Azure -portal for your application or service.

-

The client_id and client_secret can be obtained by registering an -application under Azure Active Directory.

-

The tenant_id can be found under Azure Active Directory > Properties.

-

The resource target resource_id can be found under -Overview > Essentials > JSON View in the Azure portal for your -application or service.

-

The cloud_option defines the optional value for the API endpoints in case you -are using the solution to get the metrics from the Azure Sovereign Cloud -shipment e.g. AzureChina, AzureGovernment or AzurePublic. -The default value is AzurePublic

-

Usage

-

Use resource_targets to collect metrics from specific resources using -resource id.

-

Use resource_group_targets to collect metrics from resources under the -resource group with resource type.

-

Use subscription_targets to collect metrics from resources under the -subscription with resource type.

-

Global configuration options

-

Plugins support additional global and plugin configuration settings for tasks -such as modifying metrics, tags, and fields, creating aliases, and configuring -plugin ordering. See CONFIGURATION.md for more details.

-

Configuration

- - -
# Gather Azure resources metrics from Azure Monitor API
-[[inputs.azure_monitor]]
-  # can be found under Overview->Essentials in the Azure portal for your application/service
-  subscription_id = "<<SUBSCRIPTION_ID>>"
-  # can be obtained by registering an application under Azure Active Directory
-  client_id = "<<CLIENT_ID>>"
-  # can be obtained by registering an application under Azure Active Directory.
-  # If not specified Default Azure Credentials chain will be attempted:
-  # - Environment credentials (AZURE_*)
-  # - Workload Identity in Kubernetes cluster
-  # - Managed Identity
-  # - Azure CLI auth
-  # - Developer Azure CLI auth
-  client_secret = "<<CLIENT_SECRET>>"
-  # can be found under Azure Active Directory->Properties
-  tenant_id = "<<TENANT_ID>>"
-  # Define the optional Azure cloud option e.g. AzureChina, AzureGovernment or AzurePublic. The default is AzurePublic.
-  # cloud_option = "AzurePublic"
-
-  # resource target #1 to collect metrics from
-  [[inputs.azure_monitor.resource_target]]
-    # can be found under Overview->Essentials->JSON View in the Azure portal for your application/service
-    # must start with 'resourceGroups/...' ('/subscriptions/xxxxxxxx-xxxx-xxxx-xxx-xxxxxxxxxxxx'
-    # must be removed from the beginning of Resource ID property value)
-    resource_id = "<<RESOURCE_ID>>"
-    # the metric names to collect
-    # leave the array empty to use all metrics available to this resource
-    metrics = [ "<<METRIC>>", "<<METRIC>>" ]
-    # metrics aggregation type value to collect
-    # can be 'Total', 'Count', 'Average', 'Minimum', 'Maximum'
-    # leave the array empty to collect all aggregation types values for each metric
-    aggregations = [ "<<AGGREGATION>>", "<<AGGREGATION>>" ]
-
-  # resource target #2 to collect metrics from
-  [[inputs.azure_monitor.resource_target]]
-    resource_id = "<<RESOURCE_ID>>"
-    metrics = [ "<<METRIC>>", "<<METRIC>>" ]
-    aggregations = [ "<<AGGREGATION>>", "<<AGGREGATION>>" ]
-
-  # resource group target #1 to collect metrics from resources under it with resource type
-  [[inputs.azure_monitor.resource_group_target]]
-    # the resource group name
-    resource_group = "<<RESOURCE_GROUP_NAME>>"
-
-    # defines the resources to collect metrics from
-    [[inputs.azure_monitor.resource_group_target.resource]]
-      # the resource type
-      resource_type = "<<RESOURCE_TYPE>>"
-      metrics = [ "<<METRIC>>", "<<METRIC>>" ]
-      aggregations = [ "<<AGGREGATION>>", "<<AGGREGATION>>" ]
-
-    # defines the resources to collect metrics from
-    [[inputs.azure_monitor.resource_group_target.resource]]
-      resource_type = "<<RESOURCE_TYPE>>"
-      metrics = [ "<<METRIC>>", "<<METRIC>>" ]
-      aggregations = [ "<<AGGREGATION>>", "<<AGGREGATION>>" ]
-
-  # resource group target #2 to collect metrics from resources under it with resource type
-  [[inputs.azure_monitor.resource_group_target]]
-    resource_group = "<<RESOURCE_GROUP_NAME>>"
-
-    [[inputs.azure_monitor.resource_group_target.resource]]
-      resource_type = "<<RESOURCE_TYPE>>"
-      metrics = [ "<<METRIC>>", "<<METRIC>>" ]
-      aggregations = [ "<<AGGREGATION>>", "<<AGGREGATION>>" ]
-
-  # subscription target #1 to collect metrics from resources under it with resource type
-  [[inputs.azure_monitor.subscription_target]]
-    resource_type = "<<RESOURCE_TYPE>>"
-    metrics = [ "<<METRIC>>", "<<METRIC>>" ]
-    aggregations = [ "<<AGGREGATION>>", "<<AGGREGATION>>" ]
-
-  # subscription target #2 to collect metrics from resources under it with resource type
-  [[inputs.azure_monitor.subscription_target]]
-    resource_type = "<<RESOURCE_TYPE>>"
-    metrics = [ "<<METRIC>>", "<<METRIC>>" ]
-    aggregations = [ "<<AGGREGATION>>", "<<AGGREGATION>>" ]
-

Metrics

-
    -
  • azure_monitor_«RESOURCE_NAMESPACE»_«METRIC_NAME» -
      -
    • fields: -
        -
      • total (float64)
      • -
      • count (float64)
      • -
      • average (float64)
      • -
      • minimum (float64)
      • -
      • maximum (float64)
      • -
      -
    • -
    • tags: -
        -
      • namespace
      • -
      • resource_group
      • -
      • resource_name
      • -
      • subscription_id
      • -
      • resource_region
      • -
      • unit
      • -
      -
    • -
    -
  • -
-

Example Output

- - -
azure_monitor_microsoft_storage_storageaccounts_used_capacity,host=Azure-MBP,namespace=Microsoft.Storage/storageAccounts,resource_group=azure-rg,resource_name=azuresa,resource_region=eastus,subscription_id=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx,unit=Bytes average=9065573,maximum=9065573,minimum=9065573,timeStamp="2021-11-08T09:52:00Z",total=9065573 1636368744000000000
-azure_monitor_microsoft_storage_storageaccounts_transactions,host=Azure-MBP,namespace=Microsoft.Storage/storageAccounts,resource_group=azure-rg,resource_name=azuresa,resource_region=eastus,subscription_id=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx,unit=Count average=1,count=6,maximum=1,minimum=0,timeStamp="2021-11-08T09:52:00Z",total=6 1636368744000000000
-azure_monitor_microsoft_storage_storageaccounts_ingress,host=Azure-MBP,namespace=Microsoft.Storage/storageAccounts,resource_group=azure-rg,resource_name=azuresa,resource_region=eastus,subscription_id=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx,unit=Bytes average=5822.333333333333,count=6,maximum=5833,minimum=0,timeStamp="2021-11-08T09:52:00Z",total=34934 1636368744000000000
-azure_monitor_microsoft_storage_storageaccounts_egress,host=Azure-MBP,namespace=Microsoft.Storage/storageAccounts,resource_group=azure-rg,resource_name=azuresa,resource_region=eastus,subscription_id=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx,unit=Bytes average=840.1666666666666,count=6,maximum=841,minimum=0,timeStamp="2021-11-08T09:52:00Z",total=5041 1636368744000000000
-azure_monitor_microsoft_storage_storageaccounts_success_server_latency,host=Azure-MBP,namespace=Microsoft.Storage/storageAccounts,resource_group=azure-rg,resource_name=azuresa,resource_region=eastus,subscription_id=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx,unit=MilliSeconds average=12.833333333333334,count=6,maximum=30,minimum=8,timeStamp="2021-11-08T09:52:00Z",total=77 1636368744000000000
-azure_monitor_microsoft_storage_storageaccounts_success_e2e_latency,host=Azure-MBP,namespace=Microsoft.Storage/storageAccounts,resource_group=azure-rg,resource_name=azuresa,resource_region=eastus,subscription_id=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx,unit=MilliSeconds average=12.833333333333334,count=6,maximum=30,minimum=8,timeStamp="2021-11-08T09:52:00Z",total=77 1636368744000000000
-azure_monitor_microsoft_storage_storageaccounts_availability,host=Azure-MBP,namespace=Microsoft.Storage/storageAccounts,resource_group=azure-rg,resource_name=azuresa,resource_region=eastus,subscription_id=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx,unit=Percent average=100,count=6,maximum=100,minimum=100,timeStamp="2021-11-08T09:52:00Z",total=600 1636368744000000000
-azure_monitor_microsoft_storage_storageaccounts_used_capacity,host=Azure-MBP,namespace=Microsoft.Storage/storageAccounts,resource_group=azure-rg,resource_name=azuresa,resource_region=eastus,subscription_id=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx,unit=Bytes average=9065573,maximum=9065573,minimum=9065573,timeStamp="2021-11-08T09:52:00Z",total=9065573 1636368745000000000
-azure_monitor_microsoft_storage_storageaccounts_transactions,host=Azure-MBP,namespace=Microsoft.Storage/storageAccounts,resource_group=azure-rg,resource_name=azuresa,resource_region=eastus,subscription_id=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx,unit=Count average=1,count=6,maximum=1,minimum=0,timeStamp="2021-11-08T09:52:00Z",total=6 1636368745000000000
-azure_monitor_microsoft_storage_storageaccounts_ingress,host=Azure-MBP,namespace=Microsoft.Storage/storageAccounts,resource_group=azure-rg,resource_name=azuresa,resource_region=eastus,subscription_id=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx,unit=Bytes average=5822.333333333333,count=6,maximum=5833,minimum=0,timeStamp="2021-11-08T09:52:00Z",total=34934 1636368745000000000
-azure_monitor_microsoft_storage_storageaccounts_egress,host=Azure-MBP,namespace=Microsoft.Storage/storageAccounts,resource_group=azure-rg,resource_name=azuresa,resource_region=eastus,subscription_id=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx,unit=Bytes average=840.1666666666666,count=6,maximum=841,minimum=0,timeStamp="2021-11-08T09:52:00Z",total=5041 1636368745000000000
-azure_monitor_microsoft_storage_storageaccounts_success_server_latency,host=Azure-MBP,namespace=Microsoft.Storage/storageAccounts,resource_group=azure-rg,resource_name=azuresa,resource_region=eastus,subscription_id=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx,unit=MilliSeconds average=12.833333333333334,count=6,maximum=30,minimum=8,timeStamp="2021-11-08T09:52:00Z",total=77 1636368745000000000
-azure_monitor_microsoft_storage_storageaccounts_success_e2e_latency,host=Azure-MBP,namespace=Microsoft.Storage/storageAccounts,resource_group=azure-rg,resource_name=azuresa,resource_region=eastus,subscription_id=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx,unit=MilliSeconds average=12.833333333333334,count=6,maximum=30,minimum=8,timeStamp="2021-11-08T09:52:00Z",total=77 1636368745000000000
-azure_monitor_microsoft_storage_storageaccounts_availability,host=Azure-MBP,namespace=Microsoft.Storage/storageAccounts,resource_group=azure-rg,resource_name=azuresa,resource_region=eastus,subscription_id=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx,unit=Percent average=100,count=6,maximum=100,minimum=100,timeStamp="2021-11-08T09:52:00Z",total=600 1636368745000000000
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
-

Was this page helpful?

-
- - - -
-
-

Thank you for your feedback!

-
-
-
-
-
-
- - - - -
-
- - -
-
- - - - - - - - - - - - - - - - - - - - - - -
-
- -
- - - - - - - - - - - - - -
- - - -
- -
-
-
- -

New in InfluxDB 3.8

-
- -
-

Key enhancements in InfluxDB 3.8 and the InfluxDB 3 Explorer 1.6.

-

See the Blog Post

- -
- - -
-

InfluxDB 3.8 is now available for both Core and Enterprise, alongside the -1.6 release of the InfluxDB 3 Explorer UI. This release is focused on -operational maturity and making InfluxDB easier to deploy, manage, and run -reliably in production.

-

For more information, check out:

- - -
- - -
- -
-
-
- -

InfluxDB Docker latest tag changing to InfluxDB 3 Core

-
- -
- On May 27, 2026, the latest tag for InfluxDB Docker images will -point to InfluxDB 3 Core. To avoid unexpected upgrades, use specific version -tags in your Docker deployments. -
- - -
-

If using Docker to install and run InfluxDB, the latest tag will point to -InfluxDB 3 Core. To avoid unexpected upgrades, use specific version tags in -your Docker deployments. For example, if using Docker to run InfluxDB v2, -replace the latest version tag with a specific version tag in your Docker -pull command–for example:

- - -
docker pull influxdb:2
-
- - -
- -
- - - - - - - - - - - - - - - diff --git a/pr-preview/pr-6954/telegraf/v1/input-plugins/azure_storage_queue/index.html b/pr-preview/pr-6954/telegraf/v1/input-plugins/azure_storage_queue/index.html deleted file mode 100644 index 6c1f0aa83..000000000 --- a/pr-preview/pr-6954/telegraf/v1/input-plugins/azure_storage_queue/index.html +++ /dev/null @@ -1,4454 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -<nil> Documentation - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
- - - Documentation -
-
- -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
-

Select product

-
- -
- - -
-
-
- -
- - - - - -
- -
-
- -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- -
-
-
-

- - - - - - - - - - -
- - - - - -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Azure Queue Storage Input Plugin

-

This plugin gathers queue sizes from the Azure Queue Storage -service, storing a large numbers of messages.

-

Introduced in: Telegraf v1.13.0 -Tags: cloud -OS support: all

-

Global configuration options

-

Plugins support additional global and plugin configuration settings for tasks -such as modifying metrics, tags, and fields, creating aliases, and configuring -plugin ordering. See CONFIGURATION.md for more details.

-

Configuration

- - -
# Gather Azure Storage Queue metrics
-[[inputs.azure_storage_queue]]
-  ## Azure Storage Account name and shared access key (required)
-  account_name = "mystorageaccount"
-  account_key = "storageaccountaccesskey"
-
-  ## Disable peeking age of oldest message (faster)
-  # peek_oldest_message_age = true
-

Metrics

-
    -
  • azure_storage_queues -
      -
    • tags: -
        -
      • queue
      • -
      • account
      • -
      -
    • -
    • fields: -
        -
      • size (integer, count)
      • -
      • oldest_message_age_ns (integer, nanoseconds) Age of message at the head -of the queue. Requires peek_oldest_message_age to be configured -to true.
      • -
      -
    • -
    -
  • -
-

Example Output

- - -
azure_storage_queues,queue=myqueue,account=mystorageaccount oldest_message_age=799714900i,size=7i 1565970503000000000
-azure_storage_queues,queue=myemptyqueue,account=mystorageaccount size=0i 1565970502000000000
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
-

Was this page helpful?

-
- - - -
-
-

Thank you for your feedback!

-
-
-
-
-
-
- - - - -
-
- - -
-
- - - - - - - - - - - - - - - - - - - - - - -
-
- -
- - - - - - - - - - - - - -
- - - -
- -
-
-
- -

New in InfluxDB 3.8

-
- -
-

Key enhancements in InfluxDB 3.8 and the InfluxDB 3 Explorer 1.6.

-

See the Blog Post

- -
- - -
-

InfluxDB 3.8 is now available for both Core and Enterprise, alongside the -1.6 release of the InfluxDB 3 Explorer UI. This release is focused on -operational maturity and making InfluxDB easier to deploy, manage, and run -reliably in production.

-

For more information, check out:

- - -
- - -
- -
-
-
- -

InfluxDB Docker latest tag changing to InfluxDB 3 Core

-
- -
- On May 27, 2026, the latest tag for InfluxDB Docker images will -point to InfluxDB 3 Core. To avoid unexpected upgrades, use specific version -tags in your Docker deployments. -
- - -
-

If using Docker to install and run InfluxDB, the latest tag will point to -InfluxDB 3 Core. To avoid unexpected upgrades, use specific version tags in -your Docker deployments. For example, if using Docker to run InfluxDB v2, -replace the latest version tag with a specific version tag in your Docker -pull command–for example:

- - -
docker pull influxdb:2
-
- - -
- -
- - - - - - - - - - - - - - - diff --git a/pr-preview/pr-6954/telegraf/v1/input-plugins/bcache/index.html b/pr-preview/pr-6954/telegraf/v1/input-plugins/bcache/index.html deleted file mode 100644 index 29f665bb7..000000000 --- a/pr-preview/pr-6954/telegraf/v1/input-plugins/bcache/index.html +++ /dev/null @@ -1,4458 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -<nil> Documentation - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
- - - Documentation -
-
- -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
-

Select product

-
- -
- - -
-
-
- -
- - - - - -
- -
-
- -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- -
-
-
-

- - - - - - - - - - -
- - - - - -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Bcache Input Plugin

-

This plugin gathers statistics for the block layer cache -from the stats_total directory and dirty_data file.

-

Introduced in: Telegraf v0.2.0 -Tags: system -OS support: linux

-

Global configuration options

-

Plugins support additional global and plugin configuration settings for tasks -such as modifying metrics, tags, and fields, creating aliases, and configuring -plugin ordering. See CONFIGURATION.md for more details.

-

Configuration

- - -
# Read metrics of bcache from stats_total and dirty_data
-# This plugin ONLY supports Linux
-[[inputs.bcache]]
-  ## Bcache sets path
-  ## If not specified, then default is:
-  bcachePath = "/sys/fs/bcache"
-
-  ## By default, Telegraf gather stats for all bcache devices
-  ## Setting devices will restrict the stats to the specified
-  ## bcache devices.
-  bcacheDevs = ["bcache0"]
-

Metrics

-

Tags:

-
    -
  • backing_dev device backed by the cache
  • -
  • bcache_dev device used for caching
  • -
-

Fields:

-
    -
  • dirty_data: Amount of dirty data for this backing device in the cache. -Continuously updated unlike the cache set’s version, but may be slightly off
  • -
  • bypassed: Amount of IO (both reads and writes) that has bypassed the cache
  • -
  • cache_bypass_hits: Hits for IO that is intended to skip the cache
  • -
  • cache_bypass_misses: Misses for IO that is intended to skip the cache
  • -
  • cache_hits: Hits per individual IO as seen by bcache sees them; a -partial hit is counted as a miss.
  • -
  • cache_misses: Misses per individual IO as seen by bcache sees them; a -partial hit is counted as a miss.
  • -
  • cache_hit_ratio: Hit to miss ratio
  • -
  • cache_miss_collisions: Instances where data was going to be inserted into -cache from a miss, but raced with a write and data was already present -(usually zero since the synchronization for cache misses was rewritten)
  • -
  • cache_readaheads: Count of times readahead occurred.
  • -
-

Example Output

- - -
bcache,backing_dev="md10",bcache_dev="bcache0" dirty_data=11639194i,bypassed=5167704440832i,cache_bypass_hits=146270986i,cache_bypass_misses=0i,cache_hit_ratio=90i,cache_hits=511941651i,cache_miss_collisions=157678i,cache_misses=50647396i,cache_readaheads=0i
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
-

Was this page helpful?

-
- - - -
-
-

Thank you for your feedback!

-
-
-
-
-
-
- - - - -
-
- - -
-
- - - - - - - - - - - - - - - - - - - - - - -
-
- -
- - - - - - - - - - - - - -
- - - -
- -
-
-
- -

New in InfluxDB 3.8

-
- -
-

Key enhancements in InfluxDB 3.8 and the InfluxDB 3 Explorer 1.6.

-

See the Blog Post

- -
- - -
-

InfluxDB 3.8 is now available for both Core and Enterprise, alongside the -1.6 release of the InfluxDB 3 Explorer UI. This release is focused on -operational maturity and making InfluxDB easier to deploy, manage, and run -reliably in production.

-

For more information, check out:

- - -
- - -
- -
-
-
- -

InfluxDB Docker latest tag changing to InfluxDB 3 Core

-
- -
- On May 27, 2026, the latest tag for InfluxDB Docker images will -point to InfluxDB 3 Core. To avoid unexpected upgrades, use specific version -tags in your Docker deployments. -
- - -
-

If using Docker to install and run InfluxDB, the latest tag will point to -InfluxDB 3 Core. To avoid unexpected upgrades, use specific version tags in -your Docker deployments. For example, if using Docker to run InfluxDB v2, -replace the latest version tag with a specific version tag in your Docker -pull command–for example:

- - -
docker pull influxdb:2
-
- - -
- -
- - - - - - - - - - - - - - - diff --git a/pr-preview/pr-6954/telegraf/v1/input-plugins/beanstalkd/index.html b/pr-preview/pr-6954/telegraf/v1/input-plugins/beanstalkd/index.html deleted file mode 100644 index c4bd604a7..000000000 --- a/pr-preview/pr-6954/telegraf/v1/input-plugins/beanstalkd/index.html +++ /dev/null @@ -1,4523 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -<nil> Documentation - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
- - - Documentation -
-
- -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
-

Select product

-
- -
- - -
-
-
- -
- - - - - -
- -
-
- -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- -
-
-
-

- - - - - - - - - - -
- - - - - -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Beanstalkd Input Plugin

-

This plugin collects server statistics as well as tube statistics from a -Beanstalkd work queue as reported by the stats and stats-tube -server commands.

-

Introduced in: Telegraf v1.8.0 -Tags: messaging -OS support: all

-

Global configuration options

-

Plugins support additional global and plugin configuration settings for tasks -such as modifying metrics, tags, and fields, creating aliases, and configuring -plugin ordering. See CONFIGURATION.md for more details.

-

Configuration

- - -
# Collects Beanstalkd server and tubes stats
-[[inputs.beanstalkd]]
-  ## Server to collect data from
-  server = "localhost:11300"
-
-  ## List of tubes to gather stats about.
-  ## If no tubes specified then data gathered for each tube on server reported by list-tubes command
-  tubes = ["notifications"]
-

Metrics

-

Please see the Beanstalk protocol doc for a detailed explanation of -stats and stats-tube server commands output.

-

beanstalkd_overview – statistical information about the system as a whole

-
    -
  • fields -
      -
    • cmd_delete
    • -
    • cmd_pause_tube
    • -
    • current_jobs_buried
    • -
    • current_jobs_delayed
    • -
    • current_jobs_ready
    • -
    • current_jobs_reserved
    • -
    • current_jobs_urgent
    • -
    • current_using
    • -
    • current_waiting
    • -
    • current_watching
    • -
    • pause
    • -
    • pause_time_left
    • -
    • total_jobs
    • -
    -
  • -
  • tags -
      -
    • name
    • -
    • server (address taken from config)
    • -
    -
  • -
-

beanstalkd_tube – statistical information about the specified tube

-
    -
  • fields -
      -
    • binlog_current_index
    • -
    • binlog_max_size
    • -
    • binlog_oldest_index
    • -
    • binlog_records_migrated
    • -
    • binlog_records_written
    • -
    • cmd_bury
    • -
    • cmd_delete
    • -
    • cmd_ignore
    • -
    • cmd_kick
    • -
    • cmd_list_tube_used
    • -
    • cmd_list_tubes
    • -
    • cmd_list_tubes_watched
    • -
    • cmd_pause_tube
    • -
    • cmd_peek
    • -
    • cmd_peek_buried
    • -
    • cmd_peek_delayed
    • -
    • cmd_peek_ready
    • -
    • cmd_put
    • -
    • cmd_release
    • -
    • cmd_reserve
    • -
    • cmd_reserve_with_timeout
    • -
    • cmd_stats
    • -
    • cmd_stats_job
    • -
    • cmd_stats_tube
    • -
    • cmd_touch
    • -
    • cmd_use
    • -
    • cmd_watch
    • -
    • current_connections
    • -
    • current_jobs_buried
    • -
    • current_jobs_delayed
    • -
    • current_jobs_ready
    • -
    • current_jobs_reserved
    • -
    • current_jobs_urgent
    • -
    • current_producers
    • -
    • current_tubes
    • -
    • current_waiting
    • -
    • current_workers
    • -
    • job_timeouts
    • -
    • max_job_size
    • -
    • pid
    • -
    • rusage_stime
    • -
    • rusage_utime
    • -
    • total_connections
    • -
    • total_jobs
    • -
    • uptime
    • -
    -
  • -
  • tags -
      -
    • hostname
    • -
    • id
    • -
    • server (address taken from config)
    • -
    • version
    • -
    -
  • -
-

Example Output

- - -
beanstalkd_overview,host=server.local,hostname=a2ab22ed12e0,id=232485800aa11b24,server=localhost:11300,version=1.10 cmd_stats_tube=29482i,current_jobs_delayed=0i,current_jobs_urgent=6i,cmd_kick=0i,cmd_stats=7378i,cmd_stats_job=0i,current_waiting=0i,max_job_size=65535i,pid=6i,cmd_bury=0i,cmd_reserve_with_timeout=0i,cmd_touch=0i,current_connections=1i,current_jobs_ready=6i,current_producers=0i,cmd_delete=0i,cmd_list_tubes=7369i,cmd_peek_ready=0i,cmd_put=6i,cmd_use=3i,cmd_watch=0i,current_jobs_reserved=0i,rusage_stime=6.07,cmd_list_tubes_watched=0i,cmd_pause_tube=0i,total_jobs=6i,binlog_records_migrated=0i,cmd_list_tube_used=0i,cmd_peek_delayed=0i,cmd_release=0i,current_jobs_buried=0i,job_timeouts=0i,binlog_current_index=0i,binlog_max_size=10485760i,total_connections=7378i,cmd_peek_buried=0i,cmd_reserve=0i,current_tubes=4i,binlog_records_written=0i,cmd_peek=0i,rusage_utime=1.13,uptime=7099i,binlog_oldest_index=0i,current_workers=0i,cmd_ignore=0i 1528801650000000000
-beanstalkd_tube,host=server.local,name=notifications,server=localhost:11300 pause_time_left=0i,current_jobs_buried=0i,current_jobs_delayed=0i,current_jobs_reserved=0i,current_using=0i,current_waiting=0i,pause=0i,total_jobs=3i,cmd_delete=0i,cmd_pause_tube=0i,current_jobs_ready=3i,current_jobs_urgent=3i,current_watching=0i 1528801650000000000
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
-

Was this page helpful?

-
- - - -
-
-

Thank you for your feedback!

-
-
-
-
-
-
- - - - -
-
- - -
-
- - - - - - - - - - - - - - - - - - - - - - -
-
- -
- - - - - - - - - - - - - -
- - - -
- -
-
-
- -

New in InfluxDB 3.8

-
- -
-

Key enhancements in InfluxDB 3.8 and the InfluxDB 3 Explorer 1.6.

-

See the Blog Post

- -
- - -
-

InfluxDB 3.8 is now available for both Core and Enterprise, alongside the -1.6 release of the InfluxDB 3 Explorer UI. This release is focused on -operational maturity and making InfluxDB easier to deploy, manage, and run -reliably in production.

-

For more information, check out:

- - -
- - -
- -
-
-
- -

InfluxDB Docker latest tag changing to InfluxDB 3 Core

-
- -
- On May 27, 2026, the latest tag for InfluxDB Docker images will -point to InfluxDB 3 Core. To avoid unexpected upgrades, use specific version -tags in your Docker deployments. -
- - -
-

If using Docker to install and run InfluxDB, the latest tag will point to -InfluxDB 3 Core. To avoid unexpected upgrades, use specific version tags in -your Docker deployments. For example, if using Docker to run InfluxDB v2, -replace the latest version tag with a specific version tag in your Docker -pull command–for example:

- - -
docker pull influxdb:2
-
- - -
- -
- - - - - - - - - - - - - - - diff --git a/pr-preview/pr-6954/telegraf/v1/input-plugins/beat/index.html b/pr-preview/pr-6954/telegraf/v1/input-plugins/beat/index.html deleted file mode 100644 index 72ae2775e..000000000 --- a/pr-preview/pr-6954/telegraf/v1/input-plugins/beat/index.html +++ /dev/null @@ -1,4591 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -<nil> Documentation - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
- - - Documentation -
-
- -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
-

Select product

-
- -
- - -
-
-
- -
- - - - - -
- -
-
- -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- -
-
-
-

- - - - - - - - - - -
- - - - - -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Beat Input Plugin

-

This plugin will collect metrics from a Beats instances. It is known -to work with Filebeat and Kafkabeat.

-

Introduced in: Telegraf v1.18.0 -Tags: applications -OS support: all

-

Global configuration options

-

Plugins support additional global and plugin configuration settings for tasks -such as modifying metrics, tags, and fields, creating aliases, and configuring -plugin ordering. See CONFIGURATION.md for more details.

-

Configuration

- - -
# Read metrics exposed by Beat
-[[inputs.beat]]
-  ## An URL from which to read Beat-formatted JSON
-  ## Default is "http://127.0.0.1:5066".
-  url = "http://127.0.0.1:5066"
-
-  ## Enable collection of the listed stats
-  ## An empty list means collect all. Available options are currently
-  ## "beat", "libbeat", "system" and "filebeat".
-  # include = ["beat", "libbeat", "filebeat"]
-
-  ## HTTP method
-  # method = "GET"
-
-  ## Optional HTTP headers
-  # headers = {"X-Special-Header" = "Special-Value"}
-
-  ## Override HTTP "Host" header
-  # host_header = "logstash.example.com"
-
-  ## Timeout for HTTP requests
-  # timeout = "5s"
-
-  ## Optional HTTP Basic Auth credentials
-  # username = "username"
-  # password = "pa$$word"
-
-  ## Optional TLS Config
-  # tls_ca = "/etc/telegraf/ca.pem"
-  # tls_cert = "/etc/telegraf/cert.pem"
-  # tls_key = "/etc/telegraf/key.pem"
-  ## Use TLS but skip chain & host verification
-  # insecure_skip_verify = false
-

Metrics

-
    -
  • -

    beat

    -
      -
    • Fields: -
        -
      • cpu_system_ticks
      • -
      • cpu_system_time_ms
      • -
      • cpu_total_ticks
      • -
      • cpu_total_time_ms
      • -
      • cpu_total_value
      • -
      • cpu_user_ticks
      • -
      • cpu_user_time_ms
      • -
      • info_uptime_ms
      • -
      • memstats_gc_next
      • -
      • memstats_memory_alloc
      • -
      • memstats_memory_total
      • -
      • memstats_rss
      • -
      -
    • -
    • Tags: -
        -
      • beat_beat
      • -
      • beat_host
      • -
      • beat_id
      • -
      • beat_name
      • -
      • beat_version
      • -
      -
    • -
    -
  • -
  • -

    beat_filebeat

    -
      -
    • Fields: -
        -
      • events_active
      • -
      • events_added
      • -
      • events_done
      • -
      • harvester_closed
      • -
      • harvester_open_files
      • -
      • harvester_running
      • -
      • harvester_skipped
      • -
      • harvester_started
      • -
      • input_log_files_renamed
      • -
      • input_log_files_truncated
      • -
      -
    • -
    • Tags: -
        -
      • beat_beat
      • -
      • beat_host
      • -
      • beat_id
      • -
      • beat_name
      • -
      • beat_version
      • -
      -
    • -
    -
  • -
  • -

    beat_libbeat

    -
      -
    • Fields: -
        -
      • config_module_running
      • -
      • config_module_starts
      • -
      • config_module_stops
      • -
      • config_reloads
      • -
      • output_events_acked
      • -
      • output_events_active
      • -
      • output_events_batches
      • -
      • output_events_dropped
      • -
      • output_events_duplicates
      • -
      • output_events_failed
      • -
      • output_events_total
      • -
      • output_type
      • -
      • output_read_bytes
      • -
      • output_read_errors
      • -
      • output_write_bytes
      • -
      • output_write_errors
      • -
      • outputs_kafka_bytes_read
      • -
      • outputs_kafka_bytes_write
      • -
      • pipeline_clients
      • -
      • pipeline_events_active
      • -
      • pipeline_events_dropped
      • -
      • pipeline_events_failed
      • -
      • pipeline_events_filtered
      • -
      • pipeline_events_published
      • -
      • pipeline_events_retry
      • -
      • pipeline_events_total
      • -
      • pipeline_queue_acked
      • -
      -
    • -
    • Tags: -
        -
      • beat_beat
      • -
      • beat_host
      • -
      • beat_id
      • -
      • beat_name
      • -
      • beat_version
      • -
      -
    • -
    -
  • -
  • -

    beat_system

    -
      -
    • Field: -
        -
      • cpu_cores
      • -
      • load_1
      • -
      • load_15
      • -
      • load_5
      • -
      • load_norm_1
      • -
      • load_norm_15
      • -
      • load_norm_5
      • -
      -
    • -
    • Tags: -
        -
      • beat_beat
      • -
      • beat_host
      • -
      • beat_id
      • -
      • beat_name
      • -
      • beat_version
      • -
      -
    • -
    -
  • -
-

Example Output

- - -
beat,beat_beat=filebeat,beat_host=node-6,beat_id=9c1c8697-acb4-4df0-987d-28197814f788,beat_name=node-6-test,beat_version=6.4.2,host=node-6 cpu_system_ticks=656750,cpu_system_time_ms=656750,cpu_total_ticks=5461190,cpu_total_time_ms=5461198,cpu_total_value=5461190,cpu_user_ticks=4804440,cpu_user_time_ms=4804448,info_uptime_ms=342634196,memstats_gc_next=20199584,memstats_memory_alloc=12547424,memstats_memory_total=486296424792,memstats_rss=72552448 1540316047000000000
-beat_libbeat,beat_beat=filebeat,beat_host=node-6,beat_id=9c1c8697-acb4-4df0-987d-28197814f788,beat_name=node-6-test,beat_version=6.4.2,host=node-6 config_module_running=0,config_module_starts=0,config_module_stops=0,config_reloads=0,output_events_acked=192404,output_events_active=0,output_events_batches=1607,output_events_dropped=0,output_events_duplicates=0,output_events_failed=0,output_events_total=192404,output_read_bytes=0,output_read_errors=0,output_write_bytes=0,output_write_errors=0,outputs_kafka_bytes_read=1118528,outputs_kafka_bytes_write=48002014,pipeline_clients=1,pipeline_events_active=0,pipeline_events_dropped=0,pipeline_events_failed=0,pipeline_events_filtered=11496,pipeline_events_published=192404,pipeline_events_retry=14,pipeline_events_total=203900,pipeline_queue_acked=192404 1540316047000000000
-beat_system,beat_beat=filebeat,beat_host=node-6,beat_id=9c1c8697-acb4-4df0-987d-28197814f788,beat_name=node-6-test,beat_version=6.4.2,host=node-6 cpu_cores=32,load_1=46.08,load_15=49.82,load_5=47.88,load_norm_1=1.44,load_norm_15=1.5569,load_norm_5=1.4963 1540316047000000000
-beat_filebeat,beat_beat=filebeat,beat_host=node-6,beat_id=9c1c8697-acb4-4df0-987d-28197814f788,beat_name=node-6-test,beat_version=6.4.2,host=node-6 events_active=0,events_added=3223,events_done=3223,harvester_closed=0,harvester_open_files=0,harvester_running=0,harvester_skipped=0,harvester_started=0,input_log_files_renamed=0,input_log_files_truncated=0 1540320286000000000
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
-

Was this page helpful?

-
- - - -
-
-

Thank you for your feedback!

-
-
-
-
-
-
- - - - -
-
- - -
-
- - - - - - - - - - - - - - - - - - - - - - -
-
- -
- - - - - - - - - - - - - -
- - - -
- -
-
-
- -

New in InfluxDB 3.8

-
- -
-

Key enhancements in InfluxDB 3.8 and the InfluxDB 3 Explorer 1.6.

-

See the Blog Post

- -
- - -
-

InfluxDB 3.8 is now available for both Core and Enterprise, alongside the -1.6 release of the InfluxDB 3 Explorer UI. This release is focused on -operational maturity and making InfluxDB easier to deploy, manage, and run -reliably in production.

-

For more information, check out:

- - -
- - -
- -
-
-
- -

InfluxDB Docker latest tag changing to InfluxDB 3 Core

-
- -
- On May 27, 2026, the latest tag for InfluxDB Docker images will -point to InfluxDB 3 Core. To avoid unexpected upgrades, use specific version -tags in your Docker deployments. -
- - -
-

If using Docker to install and run InfluxDB, the latest tag will point to -InfluxDB 3 Core. To avoid unexpected upgrades, use specific version tags in -your Docker deployments. For example, if using Docker to run InfluxDB v2, -replace the latest version tag with a specific version tag in your Docker -pull command–for example:

- - -
docker pull influxdb:2
-
- - -
- -
- - - - - - - - - - - - - - - diff --git a/pr-preview/pr-6954/telegraf/v1/input-plugins/bind/index.html b/pr-preview/pr-6954/telegraf/v1/input-plugins/bind/index.html deleted file mode 100644 index 173571680..000000000 --- a/pr-preview/pr-6954/telegraf/v1/input-plugins/bind/index.html +++ /dev/null @@ -1,4573 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -<nil> Documentation - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
- - - Documentation -
-
- -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
-

Select product

-
- -
- - -
-
-
- -
- - - - - -
- -
-
- -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- -
-
-
-

- - - - - - - - - - -
- - - - - -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

BIND 9 Nameserver Input Plugin

-

This plugin collects metrics from BIND 9 nameservers using the XML or -JSON endpoint.

-

For XML, version 2 statistics (BIND 9.6 to 9.9) and version 3 statistics -(BIND 9.9+) are supported. Version 3 statistics are the default and only XML -format in BIND 9.10+.

- -
- - -

For BIND 9.9 to support version 3 statistics, it must be built with the ---enable-newstats compile flag, and the statistics must be specifically -requested via the correct URL.

-
-

For JSON, version 1 statistics (BIND 9.10+) are supported. As of writing, some -distros still do not enable support for JSON statistics in their BIND packages.

-

Introduced in: Telegraf v1.11.0 -Tags: server -OS support: all

-

Global configuration options

-

Plugins support additional global and plugin configuration settings for tasks -such as modifying metrics, tags, and fields, creating aliases, and configuring -plugin ordering. See CONFIGURATION.md for more details.

-

Configuration

- - -
# Read BIND nameserver XML statistics
-[[inputs.bind]]
-  ## An array of BIND XML statistics URI to gather stats.
-  ## Default is "http://localhost:8053/xml/v3".
-  # urls = ["http://localhost:8053/xml/v3"]
-  # gather_memory_contexts = false
-  # gather_views = false
-
-  ## Report xml v3 counters as integers instead of unsigned for backward
-  ## compatibility. Set this to false as soon as possible!
-  ## Values are clipped if exceeding the integer range.
-  # report_counters_as_int = true
-
-  ## Timeout for http requests made by bind nameserver
-  # timeout = "4s"
-
    -
  • urls []string: List of BIND statistics channel URLs to collect from. -Do not include a trailing slash in the URL. -Default is http://localhost:8053/xml/v3.
  • -
  • gather_memory_contexts bool: Report per-context memory statistics.
  • -
  • gather_views bool: Report per-view query statistics.
  • -
  • timeout Timeout for http requests made by bind (example: “4s”).
  • -
-

The following table summarizes the URL formats which should be used, -depending on your BIND version and configured statistics channel.

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
BIND VersionStatistics FormatExample URL
9.6 - 9.8XML v2http://localhost:8053
9.9XML v2http://localhost:8053/xml/v2
9.9+XML v3http://localhost:8053/xml/v3
9.10+JSON v1http://localhost:8053/json/v1
-

Configuration of BIND Daemon

-

Add the following to your named.conf if running Telegraf on the same host -as the BIND daemon:

- - -
statistics-channels {
-    inet 127.0.0.1 port 8053;
-};
-

Alternatively, specify a wildcard address (e.g., 0.0.0.0) or specific -IP address of an interface to configure the BIND daemon to listen on that -address. Note that you should secure the statistics channel with an ACL if -it is publicly reachable. Consult the BIND Administrator Reference Manual -for more information.

-

Metrics

-
    -
  • bind_counter -
      -
    • tags: -
        -
      • url
      • -
      • source
      • -
      • port
      • -
      • type
      • -
      • view (optional)
      • -
      -
    • -
    • fields -
        -
      • dynamic, record type name (multiple)
      • -
      -
    • -
    -
  • -
  • bind_memory -
      -
    • tags: -
        -
      • url
      • -
      • source
      • -
      • port
      • -
      -
    • -
    • fields -
        -
      • total_use
      • -
      • in_use
      • -
      • block_size
      • -
      • context_size
      • -
      • lost
      • -
      -
    • -
    -
  • -
  • bind_memory_context -
      -
    • tags: -
        -
      • url
      • -
      • source
      • -
      • port
      • -
      • id
      • -
      • name
      • -
      -
    • -
    • fields -
        -
      • total
      • -
      • in_use
      • -
      -
    • -
    -
  • -
-

Example Output

-

Here is example output of this plugin:

- - -
bind_memory,host=LAP,port=8053,source=localhost,url=localhost:8053 block_size=12058624i,context_size=4575056i,in_use=4113717i,lost=0i,total_use=16663252i 1554276619000000000
-bind_counter,host=LAP,port=8053,source=localhost,type=opcode,url=localhost:8053 IQUERY=0i,NOTIFY=0i,QUERY=9i,STATUS=0i,UPDATE=0i 1554276619000000000
-bind_counter,host=LAP,port=8053,source=localhost,type=rcode,url=localhost:8053 17=0i,18=0i,19=0i,20=0i,21=0i,22=0i,BADCOOKIE=0i,BADVERS=0i,FORMERR=0i,NOERROR=7i,NOTAUTH=0i,NOTIMP=0i,NOTZONE=0i,NXDOMAIN=0i,NXRRSET=0i,REFUSED=0i,RESERVED11=0i,RESERVED12=0i,RESERVED13=0i,RESERVED14=0i,RESERVED15=0i,SERVFAIL=2i,YXDOMAIN=0i,YXRRSET=0i 1554276619000000000
-bind_counter,host=LAP,port=8053,source=localhost,type=qtype,url=localhost:8053 A=1i,ANY=1i,NS=1i,PTR=5i,SOA=1i 1554276619000000000
-bind_counter,host=LAP,port=8053,source=localhost,type=nsstat,url=localhost:8053 AuthQryRej=0i,CookieBadSize=0i,CookieBadTime=0i,CookieIn=9i,CookieMatch=0i,CookieNew=9i,CookieNoMatch=0i,DNS64=0i,ECSOpt=0i,ExpireOpt=0i,KeyTagOpt=0i,NSIDOpt=0i,OtherOpt=0i,QryAuthAns=7i,QryBADCOOKIE=0i,QryDropped=0i,QryDuplicate=0i,QryFORMERR=0i,QryFailure=0i,QryNXDOMAIN=0i,QryNXRedir=0i,QryNXRedirRLookup=0i,QryNoauthAns=0i,QryNxrrset=1i,QryRecursion=2i,QryReferral=0i,QrySERVFAIL=2i,QrySuccess=6i,QryTCP=1i,QryUDP=8i,RPZRewrites=0i,RateDropped=0i,RateSlipped=0i,RecQryRej=0i,RecursClients=0i,ReqBadEDNSVer=0i,ReqBadSIG=0i,ReqEdns0=9i,ReqSIG0=0i,ReqTCP=1i,ReqTSIG=0i,Requestv4=9i,Requestv6=0i,RespEDNS0=9i,RespSIG0=0i,RespTSIG=0i,Response=9i,TruncatedResp=0i,UpdateBadPrereq=0i,UpdateDone=0i,UpdateFail=0i,UpdateFwdFail=0i,UpdateRej=0i,UpdateReqFwd=0i,UpdateRespFwd=0i,XfrRej=0i,XfrReqDone=0i 1554276619000000000
-bind_counter,host=LAP,port=8053,source=localhost,type=zonestat,url=localhost:8053 AXFRReqv4=0i,AXFRReqv6=0i,IXFRReqv4=0i,IXFRReqv6=0i,NotifyInv4=0i,NotifyInv6=0i,NotifyOutv4=0i,NotifyOutv6=0i,NotifyRej=0i,SOAOutv4=0i,SOAOutv6=0i,XfrFail=0i,XfrSuccess=0i 1554276619000000000
-bind_counter,host=LAP,port=8053,source=localhost,type=sockstat,url=localhost:8053 FDWatchClose=0i,FDwatchConn=0i,FDwatchConnFail=0i,FDwatchRecvErr=0i,FDwatchSendErr=0i,FdwatchBindFail=0i,RawActive=1i,RawClose=0i,RawOpen=1i,RawOpenFail=0i,RawRecvErr=0i,TCP4Accept=6i,TCP4AcceptFail=0i,TCP4Active=9i,TCP4BindFail=0i,TCP4Close=5i,TCP4Conn=0i,TCP4ConnFail=0i,TCP4Open=8i,TCP4OpenFail=0i,TCP4RecvErr=0i,TCP4SendErr=0i,TCP6Accept=0i,TCP6AcceptFail=0i,TCP6Active=2i,TCP6BindFail=0i,TCP6Close=0i,TCP6Conn=0i,TCP6ConnFail=0i,TCP6Open=2i,TCP6OpenFail=0i,TCP6RecvErr=0i,TCP6SendErr=0i,UDP4Active=18i,UDP4BindFail=14i,UDP4Close=14i,UDP4Conn=0i,UDP4ConnFail=0i,UDP4Open=32i,UDP4OpenFail=0i,UDP4RecvErr=0i,UDP4SendErr=0i,UDP6Active=3i,UDP6BindFail=0i,UDP6Close=6i,UDP6Conn=0i,UDP6ConnFail=6i,UDP6Open=9i,UDP6OpenFail=0i,UDP6RecvErr=0i,UDP6SendErr=0i,UnixAccept=0i,UnixAcceptFail=0i,UnixActive=0i,UnixBindFail=0i,UnixClose=0i,UnixConn=0i,UnixConnFail=0i,UnixOpen=0i,UnixOpenFail=0i,UnixRecvErr=0i,UnixSendErr=0i 1554276619000000000
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
-

Was this page helpful?

-
- - - -
-
-

Thank you for your feedback!

-
-
-
-
-
-
- - - - -
-
- - -
-
- - - - - - - - - - - - - - - - - - - - - - -
-
- -
- - - - - - - - - - - - - -
- - - -
- -
-
-
- -

New in InfluxDB 3.8

-
- -
-

Key enhancements in InfluxDB 3.8 and the InfluxDB 3 Explorer 1.6.

-

See the Blog Post

- -
- - -
-

InfluxDB 3.8 is now available for both Core and Enterprise, alongside the -1.6 release of the InfluxDB 3 Explorer UI. This release is focused on -operational maturity and making InfluxDB easier to deploy, manage, and run -reliably in production.

-

For more information, check out:

- - -
- - -
- -
-
-
- -

InfluxDB Docker latest tag changing to InfluxDB 3 Core

-
- -
- On May 27, 2026, the latest tag for InfluxDB Docker images will -point to InfluxDB 3 Core. To avoid unexpected upgrades, use specific version -tags in your Docker deployments. -
- - -
-

If using Docker to install and run InfluxDB, the latest tag will point to -InfluxDB 3 Core. To avoid unexpected upgrades, use specific version tags in -your Docker deployments. For example, if using Docker to run InfluxDB v2, -replace the latest version tag with a specific version tag in your Docker -pull command–for example:

- - -
docker pull influxdb:2
-
- - -
- -
- - - - - - - - - - - - - - - diff --git a/pr-preview/pr-6954/telegraf/v1/input-plugins/bond/index.html b/pr-preview/pr-6954/telegraf/v1/input-plugins/bond/index.html deleted file mode 100644 index d3aa5942f..000000000 --- a/pr-preview/pr-6954/telegraf/v1/input-plugins/bond/index.html +++ /dev/null @@ -1,4523 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -<nil> Documentation - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
- - - Documentation -
-
- -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
-

Select product

-
- -
- - -
-
-
- -
- - - - - -
- -
-
- -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- -
-
-
-

- - - - - - - - - - -
- - - - - -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Bond Input Plugin

-

This plugin collects metrics for both the network bond interface as well as its -slave interfaces using /proc/net/bonding/* files.

-

Introduced in: Telegraf v1.5.0 -Tags: system -OS support: all

-

Global configuration options

-

Plugins support additional global and plugin configuration settings for tasks -such as modifying metrics, tags, and fields, creating aliases, and configuring -plugin ordering. See CONFIGURATION.md for more details.

-

Configuration

- - -
# Collect bond interface status, slaves statuses and failures count
-[[inputs.bond]]
-  ## Sets 'proc' directory path
-  ## If not specified, then default is /proc
-  # host_proc = "/proc"
-
-  ## Sets 'sys' directory path
-  ## If not specified, then default is /sys
-  # host_sys = "/sys"
-
-  ## By default, telegraf gather stats for all bond interfaces
-  ## Setting interfaces will restrict the stats to the specified
-  ## bond interfaces.
-  # bond_interfaces = ["bond0"]
-
-  ## Tries to collect additional bond details from /sys/class/net/{bond}
-  ## currently only useful for LACP (mode 4) bonds
-  # collect_sys_details = false
-

Metrics

-
    -
  • -

    bond

    -
      -
    • tags: -
        -
      • bond: name of the bond
      • -
      -
    • -
    • fields: -
        -
      • active_slave: currently active slave interface for active-backup mode
      • -
      • status: status of the interface (0: down , 1: up)
      • -
      -
    • -
    -
  • -
  • -

    bond_slave

    -
      -
    • tags: -
        -
      • bond: name of the bond
      • -
      • interface: name of the network interface
      • -
      -
    • -
    • fields: -
        -
      • failures: amount of failures for bond’s slave interface
      • -
      • status: status of the interface (0: down , 1: up)
      • -
      • count: number of slaves attached to bond
      • -
      • actor_churned (for LACP bonds): count for local end of LACP bond flapped
      • -
      • partner_churned (for LACP bonds): count for remote end of LACP bond flapped
      • -
      • total_churned (for LACP bonds): full count of all churn events
      • -
      -
    • -
    -
  • -
  • -

    bond_sys

    -
      -
    • tags: -
        -
      • bond: name of the bond
      • -
      • mode: name of the bonding mode
      • -
      -
    • -
    • fields: -
        -
      • slave_count: number of slaves
      • -
      • ad_port_count: number of ports
      • -
      -
    • -
    -
  • -
-

Example Output

-

Configuration:

- - -
[[inputs.bond]]
-  ## Sets 'proc' directory path
-  ## If not specified, then default is /proc
-  host_proc = "/proc"
-
-  ## By default, telegraf gather stats for all bond interfaces
-  ## Setting interfaces will restrict the stats to the specified
-  ## bond interfaces.
-  bond_interfaces = ["bond0", "bond1"]
-

Run:

- - -
telegraf --config telegraf.conf --input-filter bond --test
-

Output:

- - -
bond,bond=bond1,host=local active_slave="eth0",status=1i 1509704525000000000
-bond_slave,bond=bond1,interface=eth0,host=local status=1i,failures=0i 1509704525000000000
-bond_slave,host=local,bond=bond1,interface=eth1 status=1i,failures=0i 1509704525000000000
-bond_slave,host=local,bond=bond1 count=2i 1509704525000000000
-bond,bond=bond0,host=isvetlov-mac.local status=1i 1509704525000000000
-bond_slave,bond=bond0,interface=eth1,host=local status=1i,failures=0i 1509704525000000000
-bond_slave,bond=bond0,interface=eth2,host=local status=1i,failures=0i 1509704525000000000
-bond_slave,bond=bond0,host=local count=2i 1509704525000000000
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
-

Was this page helpful?

-
- - - -
-
-

Thank you for your feedback!

-
-
-
-
-
-
- - - - -
-
- - -
-
- - - - - - - - - - - - - - - - - - - - - - -
-
- -
- - - - - - - - - - - - - -
- - - -
- -
-
-
- -

New in InfluxDB 3.8

-
- -
-

Key enhancements in InfluxDB 3.8 and the InfluxDB 3 Explorer 1.6.

-

See the Blog Post

- -
- - -
-

InfluxDB 3.8 is now available for both Core and Enterprise, alongside the -1.6 release of the InfluxDB 3 Explorer UI. This release is focused on -operational maturity and making InfluxDB easier to deploy, manage, and run -reliably in production.

-

For more information, check out:

- - -
- - -
- -
-
-
- -

InfluxDB Docker latest tag changing to InfluxDB 3 Core

-
- -
- On May 27, 2026, the latest tag for InfluxDB Docker images will -point to InfluxDB 3 Core. To avoid unexpected upgrades, use specific version -tags in your Docker deployments. -
- - -
-

If using Docker to install and run InfluxDB, the latest tag will point to -InfluxDB 3 Core. To avoid unexpected upgrades, use specific version tags in -your Docker deployments. For example, if using Docker to run InfluxDB v2, -replace the latest version tag with a specific version tag in your Docker -pull command–for example:

- - -
docker pull influxdb:2
-
- - -
- -
- - - - - - - - - - - - - - - diff --git a/pr-preview/pr-6954/telegraf/v1/input-plugins/burrow/index.html b/pr-preview/pr-6954/telegraf/v1/input-plugins/burrow/index.html deleted file mode 100644 index 6b3feafeb..000000000 --- a/pr-preview/pr-6954/telegraf/v1/input-plugins/burrow/index.html +++ /dev/null @@ -1,4537 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -<nil> Documentation - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
- - - Documentation -
-
- -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
-

Select product

-
- -
- - -
-
-
- -
- - - - - -
- -
-
- -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- -
-
-
-

- - - - - - - - - - -
- - - - - -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Burrow Input Plugin

-

This plugin collect Kafka topic, consumer and partition status from the -Burrow - Kafka Consumer Lag Checking companion via HTTP API. -Burrow v1.x versions are supported.

-

Introduced in: Telegraf v1.7.0 -Tags: messaging -OS support: all

-

Global configuration options

-

Plugins support additional global and plugin configuration settings for tasks -such as modifying metrics, tags, and fields, creating aliases, and configuring -plugin ordering. See CONFIGURATION.md for more details.

-

Configuration

- - -
# Collect Kafka topics and consumers status from Burrow HTTP API.
-[[inputs.burrow]]
-  ## Burrow API endpoints in format "schema://host:port".
-  ## Default is "http://localhost:8000".
-  servers = ["http://localhost:8000"]
-
-  ## Override Burrow API prefix.
-  ## Useful when Burrow is behind reverse-proxy.
-  # api_prefix = "/v3/kafka"
-
-  ## Maximum time to receive response.
-  # response_timeout = "5s"
-
-  ## Limit per-server concurrent connections.
-  ## Useful in case of large number of topics or consumer groups.
-  # concurrent_connections = 20
-
-  ## Filter clusters, default is no filtering.
-  ## Values can be specified as glob patterns.
-  # clusters_include = []
-  # clusters_exclude = []
-
-  ## Filter consumer groups, default is no filtering.
-  ## Values can be specified as glob patterns.
-  # groups_include = []
-  # groups_exclude = []
-
-  ## Filter topics, default is no filtering.
-  ## Values can be specified as glob patterns.
-  # topics_include = []
-  # topics_exclude = []
-
-  ## Credentials for basic HTTP authentication.
-  # username = ""
-  # password = ""
-
-  ## Optional SSL config
-  # ssl_ca = "/etc/telegraf/ca.pem"
-  # ssl_cert = "/etc/telegraf/cert.pem"
-  # ssl_key = "/etc/telegraf/key.pem"
-  # insecure_skip_verify = false
-

Group/Partition Status mappings

-
    -
  • OK = 1
  • -
  • NOT_FOUND = 2
  • -
  • WARN = 3
  • -
  • ERR = 4
  • -
  • STOP = 5
  • -
  • STALL = 6
  • -
- -
-

unknown value will be mapped to 0

- -
-

Metrics

-

Fields

-
    -
  • -

    burrow_group (one event per each consumer group)

    -
      -
    • status (string, see Partition Status mappings)
    • -
    • status_code (int, 1..6, see Partition status mappings)
    • -
    • partition_count (int, number of partitions)
    • -
    • offset (int64, total offset of all partitions)
    • -
    • total_lag (int64, totallag)
    • -
    • lag (int64, maxlag.current_lag || 0)
    • -
    • timestamp (int64, end.timestamp)
    • -
    -
  • -
  • -

    burrow_partition (one event per each topic partition)

    -
      -
    • status (string, see Partition Status mappings)
    • -
    • status_code (int, 1..6, see Partition status mappings)
    • -
    • lag (int64, current_lag || 0)
    • -
    • offset (int64, end.timestamp)
    • -
    • timestamp (int64, end.timestamp)
    • -
    -
  • -
  • -

    burrow_topic (one event per topic offset)

    -
      -
    • offset (int64)
    • -
    -
  • -
-

Tags

-
    -
  • -

    burrow_group

    -
      -
    • cluster (string)
    • -
    • group (string)
    • -
    -
  • -
  • -

    burrow_partition

    -
      -
    • cluster (string)
    • -
    • group (string)
    • -
    • topic (string)
    • -
    • partition (int)
    • -
    • owner (string)
    • -
    -
  • -
  • -

    burrow_topic

    -
      -
    • cluster (string)
    • -
    • topic (string)
    • -
    • partition (int)
    • -
    -
  • -
-

Example Output

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
-

Was this page helpful?

-
- - - -
-
-

Thank you for your feedback!

-
-
-
-
-
-
- - - - -
-
- - -
-
- - - - - - - - - - - - - - - - - - - - - - -
-
- -
- - - - - - - - - - - - - -
- - - -
- -
-
-
- -

New in InfluxDB 3.8

-
- -
-

Key enhancements in InfluxDB 3.8 and the InfluxDB 3 Explorer 1.6.

-

See the Blog Post

- -
- - -
-

InfluxDB 3.8 is now available for both Core and Enterprise, alongside the -1.6 release of the InfluxDB 3 Explorer UI. This release is focused on -operational maturity and making InfluxDB easier to deploy, manage, and run -reliably in production.

-

For more information, check out:

- - -
- - -
- -
-
-
- -

InfluxDB Docker latest tag changing to InfluxDB 3 Core

-
- -
- On May 27, 2026, the latest tag for InfluxDB Docker images will -point to InfluxDB 3 Core. To avoid unexpected upgrades, use specific version -tags in your Docker deployments. -
- - -
-

If using Docker to install and run InfluxDB, the latest tag will point to -InfluxDB 3 Core. To avoid unexpected upgrades, use specific version tags in -your Docker deployments. For example, if using Docker to run InfluxDB v2, -replace the latest version tag with a specific version tag in your Docker -pull command–for example:

- - -
docker pull influxdb:2
-
- - -
- -
- - - - - - - - - - - - - - - diff --git a/pr-preview/pr-6954/telegraf/v1/input-plugins/ceph/index.html b/pr-preview/pr-6954/telegraf/v1/input-plugins/ceph/index.html deleted file mode 100644 index be004abfa..000000000 --- a/pr-preview/pr-6954/telegraf/v1/input-plugins/ceph/index.html +++ /dev/null @@ -1,4944 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -<nil> Documentation - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
- - - Documentation -
-
- -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
-

Select product

-
- -
- - -
-
-
- -
- - - - - -
- -
-
- -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- -
-
-
-

- - - - - - - - - - -
- - - - - -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Ceph Storage Input Plugin

-

This plugin collects performance metrics from MON and OSD nodes in a -Ceph storage cluster. Support for Telegraf has been introduced in the -v13.x Mimic release where data is sent to a socket (see -their documnetation).

-

Introduced in: Telegraf v0.13.1 -Tags: system -OS support: all

-

Global configuration options

-

Plugins support additional global and plugin configuration settings for tasks -such as modifying metrics, tags, and fields, creating aliases, and configuring -plugin ordering. See CONFIGURATION.md for more details.

-

Configuration

- - -
# Collects performance metrics from the MON, OSD, MDS and RGW nodes
-# in a Ceph storage cluster.
-[[inputs.ceph]]
-  ## This is the recommended interval to poll. Too frequent and you
-  ## will lose data points due to timeouts during rebalancing and recovery
-  interval = '1m'
-
-  ## All configuration values are optional, defaults are shown below
-
-  ## location of ceph binary
-  ceph_binary = "/usr/bin/ceph"
-
-  ## directory in which to look for socket files
-  socket_dir = "/var/run/ceph"
-
-  ## prefix of MON and OSD socket files, used to determine socket type
-  mon_prefix = "ceph-mon"
-  osd_prefix = "ceph-osd"
-  mds_prefix = "ceph-mds"
-  rgw_prefix = "ceph-client"
-
-  ## suffix used to identify socket files
-  socket_suffix = "asok"
-
-  ## Ceph user to authenticate as, ceph will search for the corresponding
-  ## keyring e.g. client.admin.keyring in /etc/ceph, or the explicit path
-  ## defined in the client section of ceph.conf for example:
-  ##
-  ##     [client.telegraf]
-  ##         keyring = /etc/ceph/client.telegraf.keyring
-  ##
-  ## Consult the ceph documentation for more detail on keyring generation.
-  ceph_user = "client.admin"
-
-  ## Ceph configuration to use to locate the cluster
-  ceph_config = "/etc/ceph/ceph.conf"
-
-  ## Whether to gather statistics via the admin socket
-  gather_admin_socket_stats = true
-
-  ## Whether to gather statistics via ceph commands, requires ceph_user
-  ## and ceph_config to be specified
-  gather_cluster_stats = false
-

Admin Socket Stats

-

This gatherer works by scanning the configured SocketDir for OSD, MON, MDS -and RGW socket files. When it finds a MON socket, it runs

- - -
ceph --admin-daemon $file perfcounters_dump
-

For OSDs it runs

- - -
ceph --admin-daemon $file perf dump
-

The resulting JSON is parsed and grouped into collections, based on -top-level key. Top-level keys are used as collection tags, and all -sub-keys are flattened. For example:

- - -
 {
-   "paxos": {
-     "refresh": 9363435,
-     "refresh_latency": {
-       "avgcount": 9363435,
-       "sum": 5378.794002000
-     }
-   }
- }
-

Would be parsed into the following metrics, all of which would be tagged -with collection=paxos:

-
    -
  • refresh = 9363435
  • -
  • refresh_latency.avgcount: 9363435
  • -
  • refresh_latency.sum: 5378.794002000
  • -
-

Cluster Stats

-

This gatherer works by invoking ceph commands against the cluster thus only -requires the ceph client, valid ceph configuration and an access key to -function (the ceph_config and ceph_user configuration variables work in -conjunction to specify these prerequisites). It may be run on any server you -wish which has access to the cluster. The currently supported commands are:

-
    -
  • ceph status
  • -
  • ceph df
  • -
  • ceph osd pool stats
  • -
-

Metrics

-

Admin Socket

-

All fields are collected under the ceph measurement and stored as -float64s. For a full list of fields, see the sample perf dumps in ceph_test.go.

-

All admin measurements will have the following tags:

-
    -
  • type: either ‘osd’, ‘mon’, ‘mds’ or ‘rgw’ to indicate the queried node type
  • -
  • id: a unique string identifier, parsed from the socket file name for the node
  • -
  • collection: the top-level key under which these fields were reported. -Possible values are: -
      -
    • for MON nodes: -
        -
      • cluster
      • -
      • leveldb
      • -
      • mon
      • -
      • paxos
      • -
      • throttle-mon_client_bytes
      • -
      • throttle-mon_daemon_bytes
      • -
      • throttle-msgr_dispatch_throttler-mon
      • -
      -
    • -
    • for OSD nodes: -
        -
      • WBThrottle
      • -
      • filestore
      • -
      • leveldb
      • -
      • mutex-FileJournal::completions_lock
      • -
      • mutex-FileJournal::finisher_lock
      • -
      • mutex-FileJournal::write_lock
      • -
      • mutex-FileJournal::writeq_lock
      • -
      • mutex-JOS::ApplyManager::apply_lock
      • -
      • mutex-JOS::ApplyManager::com_lock
      • -
      • mutex-JOS::SubmitManager::lock
      • -
      • mutex-WBThrottle::lock
      • -
      • objecter
      • -
      • osd
      • -
      • recoverystate_perf
      • -
      • throttle-filestore_bytes
      • -
      • throttle-filestore_ops
      • -
      • throttle-msgr_dispatch_throttler-client
      • -
      • throttle-msgr_dispatch_throttler-cluster
      • -
      • throttle-msgr_dispatch_throttler-hb_back_server
      • -
      • throttle-msgr_dispatch_throttler-hb_front_serve
      • -
      • throttle-msgr_dispatch_throttler-hbclient
      • -
      • throttle-msgr_dispatch_throttler-ms_objecter
      • -
      • throttle-objecter_bytes
      • -
      • throttle-objecter_ops
      • -
      • throttle-osd_client_bytes
      • -
      • throttle-osd_client_messages
      • -
      -
    • -
    • for MDS nodes: -
        -
      • AsyncMessenger::Worker-0
      • -
      • AsyncMessenger::Worker-1
      • -
      • AsyncMessenger::Worker-2
      • -
      • finisher-PurgeQueue
      • -
      • mds
      • -
      • mds_cache
      • -
      • mds_log
      • -
      • mds_mem
      • -
      • mds_server
      • -
      • mds_sessions
      • -
      • objecter
      • -
      • purge_queue
      • -
      • throttle-msgr_dispatch_throttler-mds
      • -
      • throttle-objecter_bytes
      • -
      • throttle-objecter_ops
      • -
      • throttle-write_buf_throttle
      • -
      -
    • -
    • for RGW nodes: -
        -
      • AsyncMessenger::Worker-0
      • -
      • AsyncMessenger::Worker-1
      • -
      • AsyncMessenger::Worker-2
      • -
      • cct
      • -
      • finisher-radosclient
      • -
      • mempool
      • -
      • objecter
      • -
      • rgw
      • -
      • simple-throttler
      • -
      • throttle-msgr_dispatch_throttler-radosclient
      • -
      • throttle-objecter_bytes
      • -
      • throttle-objecter_ops
      • -
      • throttle-rgw_async_rados_ops
      • -
      -
    • -
    -
  • -
-

Cluster

-
    -
  • -

    ceph_fsmap

    -
      -
    • fields: -
        -
      • up (float)
      • -
      • in (float)
      • -
      • max (float)
      • -
      • up_standby (float)
      • -
      -
    • -
    -
  • -
  • -

    ceph_health

    -
      -
    • fields: -
        -
      • status (string)
      • -
      • status_code (int)
      • -
      • overall_status (string, exists only in ceph <15)
      • -
      -
    • -
    -
  • -
  • -

    ceph_monmap

    -
      -
    • fields: -
        -
      • num_mons (float)
      • -
      -
    • -
    -
  • -
  • -

    ceph_osdmap

    -
      -
    • fields: -
        -
      • epoch (float)
      • -
      • full (bool, exists only in ceph <15)
      • -
      • nearfull (bool, exists only in ceph <15)
      • -
      • num_in_osds (float)
      • -
      • num_osds (float)
      • -
      • num_remapped_pgs (float)
      • -
      • num_up_osds (float)
      • -
      -
    • -
    -
  • -
  • -

    ceph_pgmap

    -
      -
    • fields: -
        -
      • bytes_avail (float)
      • -
      • bytes_total (float)
      • -
      • bytes_used (float)
      • -
      • data_bytes (float)
      • -
      • degraded_objects (float)
      • -
      • degraded_ratio (float)
      • -
      • degraded_total (float)
      • -
      • inactive_pgs_ratio (float)
      • -
      • num_bytes_recovered (float)
      • -
      • num_keys_recovered (float)
      • -
      • num_objects (float)
      • -
      • num_objects_recovered (float)
      • -
      • num_pgs (float)
      • -
      • num_pools (float)
      • -
      • op_per_sec (float, exists only in ceph <10)
      • -
      • read_bytes_sec (float)
      • -
      • read_op_per_sec (float)
      • -
      • recovering_bytes_per_sec (float)
      • -
      • recovering_keys_per_sec (float)
      • -
      • recovering_objects_per_sec (float)
      • -
      • version (float)
      • -
      • write_bytes_sec (float)
      • -
      • write_op_per_sec (float)
      • -
      -
    • -
    -
  • -
  • -

    ceph_pgmap_state

    -
      -
    • tags: -
        -
      • state
      • -
      -
    • -
    • fields: -
        -
      • count (float)
      • -
      -
    • -
    -
  • -
  • -

    ceph_usage

    -
      -
    • fields: -
        -
      • num_osd (float)
      • -
      • num_per_pool_omap_osds (float)
      • -
      • num_per_pool_osds (float)
      • -
      • total_avail (float, exists only in ceph <0.84)
      • -
      • total_avail_bytes (float)
      • -
      • total_bytes (float)
      • -
      • total_space (float, exists only in ceph <0.84)
      • -
      • total_used (float, exists only in ceph <0.84)
      • -
      • total_used_bytes (float)
      • -
      • total_used_raw_bytes (float)
      • -
      • total_used_raw_ratio (float)
      • -
      -
    • -
    -
  • -
  • -

    ceph_deviceclass_usage

    -
      -
    • tags: -
        -
      • class
      • -
      -
    • -
    • fields: -
        -
      • total_avail_bytes (float)
      • -
      • total_bytes (float)
      • -
      • total_used_bytes (float)
      • -
      • total_used_raw_bytes (float)
      • -
      • total_used_raw_ratio (float)
      • -
      -
    • -
    -
  • -
  • -

    ceph_pool_usage

    -
      -
    • tags: -
        -
      • name
      • -
      -
    • -
    • fields: -
        -
      • bytes_used (float)
      • -
      • kb_used (float)
      • -
      • max_avail (float)
      • -
      • objects (float)
      • -
      • percent_used (float)
      • -
      • stored (float)
      • -
      -
    • -
    -
  • -
  • -

    ceph_pool_stats

    -
      -
    • tags: -
        -
      • name
      • -
      -
    • -
    • fields: -
        -
      • degraded_objects (float)
      • -
      • degraded_ratio (float)
      • -
      • degraded_total (float)
      • -
      • num_bytes_recovered (float)
      • -
      • num_keys_recovered (float)
      • -
      • num_objects_recovered (float)
      • -
      • op_per_sec (float, exists only in ceph <10)
      • -
      • read_bytes_sec (float)
      • -
      • read_op_per_sec (float)
      • -
      • recovering_bytes_per_sec (float)
      • -
      • recovering_keys_per_sec (float)
      • -
      • recovering_objects_per_sec (float)
      • -
      • write_bytes_sec (float)
      • -
      • write_op_per_sec (float)
      • -
      -
    • -
    -
  • -
-

Example Output

-

Below is an example of a cluster stats:

- - -
ceph_fsmap,host=ceph in=1,max=1,up=1,up_standby=2 1646782035000000000
-ceph_health,host=ceph status="HEALTH_OK",status_code=2 1646782035000000000
-ceph_monmap,host=ceph num_mons=3 1646782035000000000
-ceph_osdmap,host=ceph epoch=10560,num_in_osds=6,num_osds=6,num_remapped_pgs=0,num_up_osds=6 1646782035000000000
-ceph_pgmap,host=ceph bytes_avail=7863124942848,bytes_total=14882929901568,bytes_used=7019804958720,data_bytes=2411111520818,degraded_objects=0,degraded_ratio=0,degraded_total=0,inactive_pgs_ratio=0,num_bytes_recovered=0,num_keys_recovered=0,num_objects=973030,num_objects_recovered=0,num_pgs=233,num_pools=6,read_bytes_sec=7334,read_op_per_sec=2,recovering_bytes_per_sec=0,recovering_keys_per_sec=0,recovering_objects_per_sec=0,version=0,write_bytes_sec=13113085,write_op_per_sec=355 1646782035000000000
-ceph_pgmap_state,host=ceph,state=active+clean count=233 1646782035000000000
-ceph_usage,host=ceph num_osds=6,num_per_pool_omap_osds=6,num_per_pool_osds=6,total_avail_bytes=7863124942848,total_bytes=14882929901568,total_used_bytes=7019804958720,total_used_raw_bytes=7019804958720,total_used_raw_ratio=0.47166821360588074 1646782035000000000
-ceph_deviceclass_usage,class=hdd,host=ceph total_avail_bytes=6078650843136,total_bytes=12002349023232,total_used_bytes=5923698180096,total_used_raw_bytes=5923698180096,total_used_raw_ratio=0.49354490637779236 1646782035000000000
-ceph_deviceclass_usage,class=ssd,host=ceph total_avail_bytes=1784474099712,total_bytes=2880580878336,total_used_bytes=1096106778624,total_used_raw_bytes=1096106778624,total_used_raw_ratio=0.3805158734321594 1646782035000000000
-ceph_pool_usage,host=ceph,name=Foo bytes_used=2019483848658,kb_used=1972152196,max_avail=1826022621184,objects=161029,percent_used=0.26935243606567383,stored=672915064134 1646782035000000000
-ceph_pool_usage,host=ceph,name=Bar_metadata bytes_used=4370899787,kb_used=4268457,max_avail=546501918720,objects=89702,percent_used=0.002658897778019309,stored=1456936576 1646782035000000000
-ceph_pool_usage,host=ceph,name=Bar_data bytes_used=3893328740352,kb_used=3802078848,max_avail=1826022621184,objects=518396,percent_used=0.41544806957244873,stored=1292214337536 1646782035000000000
-ceph_pool_usage,host=ceph,name=device_health_metrics bytes_used=85289044,kb_used=83291,max_avail=3396406870016,objects=9,percent_used=0.000012555617104226258,stored=42644520 1646782035000000000
-ceph_pool_usage,host=ceph,name=Foo_Fast bytes_used=597511814461,kb_used=583507632,max_avail=546501918720,objects=67014,percent_used=0.2671019732952118,stored=199093853972 1646782035000000000
-ceph_pool_usage,host=ceph,name=Bar_data_fast bytes_used=490009280512,kb_used=478524688,max_avail=546501918720,objects=136880,percent_used=0.23010368645191193,stored=163047325696 1646782035000000000
-ceph_pool_stats,host=ceph,name=Foo degraded_objects=0,degraded_ratio=0,degraded_total=0,num_bytes_recovered=0,num_keys_recovered=0,num_objects_recovered=0,read_bytes_sec=0,read_op_per_sec=0,recovering_bytes_per_sec=0,recovering_keys_per_sec=0,recovering_objects_per_sec=0,write_bytes_sec=27720,write_op_per_sec=4 1646782036000000000
-ceph_pool_stats,host=ceph,name=Bar_metadata degraded_objects=0,degraded_ratio=0,degraded_total=0,num_bytes_recovered=0,num_keys_recovered=0,num_objects_recovered=0,read_bytes_sec=9638,read_op_per_sec=3,recovering_bytes_per_sec=0,recovering_keys_per_sec=0,recovering_objects_per_sec=0,write_bytes_sec=11802778,write_op_per_sec=60 1646782036000000000
-ceph_pool_stats,host=ceph,name=Bar_data degraded_objects=0,degraded_ratio=0,degraded_total=0,num_bytes_recovered=0,num_keys_recovered=0,num_objects_recovered=0,read_bytes_sec=0,read_op_per_sec=0,recovering_bytes_per_sec=0,recovering_keys_per_sec=0,recovering_objects_per_sec=0,write_bytes_sec=0,write_op_per_sec=104 1646782036000000000
-ceph_pool_stats,host=ceph,name=device_health_metrics degraded_objects=0,degraded_ratio=0,degraded_total=0,num_bytes_recovered=0,num_keys_recovered=0,num_objects_recovered=0,read_bytes_sec=0,read_op_per_sec=0,recovering_bytes_per_sec=0,recovering_keys_per_sec=0,recovering_objects_per_sec=0,write_bytes_sec=0,write_op_per_sec=0 1646782036000000000
-ceph_pool_stats,host=ceph,name=Foo_Fast degraded_objects=0,degraded_ratio=0,degraded_total=0,num_bytes_recovered=0,num_keys_recovered=0,num_objects_recovered=0,read_bytes_sec=0,read_op_per_sec=0,recovering_bytes_per_sec=0,recovering_keys_per_sec=0,recovering_objects_per_sec=0,write_bytes_sec=11173,write_op_per_sec=1 1646782036000000000
-ceph_pool_stats,host=ceph,name=Bar_data_fast degraded_objects=0,degraded_ratio=0,degraded_total=0,num_bytes_recovered=0,num_keys_recovered=0,num_objects_recovered=0,read_bytes_sec=0,read_op_per_sec=0,recovering_bytes_per_sec=0,recovering_keys_per_sec=0,recovering_objects_per_sec=0,write_bytes_sec=2155404,write_op_per_sec=262 1646782036000000000
-

Below is an example of admin socket stats:

- - -
ceph,collection=cct,host=stefanmon1,id=stefanmon1,type=monitor total_workers=0,unhealthy_workers=0 1587117563000000000
-ceph,collection=mempool,host=stefanmon1,id=stefanmon1,type=monitor bloom_filter_bytes=0,bloom_filter_items=0,bluefs_bytes=0,bluefs_items=0,bluestore_alloc_bytes=0,bluestore_alloc_items=0,bluestore_cache_data_bytes=0,bluestore_cache_data_items=0,bluestore_cache_onode_bytes=0,bluestore_cache_onode_items=0,bluestore_cache_other_bytes=0,bluestore_cache_other_items=0,bluestore_fsck_bytes=0,bluestore_fsck_items=0,bluestore_txc_bytes=0,bluestore_txc_items=0,bluestore_writing_bytes=0,bluestore_writing_deferred_bytes=0,bluestore_writing_deferred_items=0,bluestore_writing_items=0,buffer_anon_bytes=719152,buffer_anon_items=192,buffer_meta_bytes=352,buffer_meta_items=4,mds_co_bytes=0,mds_co_items=0,osd_bytes=0,osd_items=0,osd_mapbl_bytes=0,osd_mapbl_items=0,osd_pglog_bytes=0,osd_pglog_items=0,osdmap_bytes=15872,osdmap_items=138,osdmap_mapping_bytes=63112,osdmap_mapping_items=7626,pgmap_bytes=38680,pgmap_items=477,unittest_1_bytes=0,unittest_1_items=0,unittest_2_bytes=0,unittest_2_items=0 1587117563000000000
-ceph,collection=throttle-mon_client_bytes,host=stefanmon1,id=stefanmon1,type=monitor get=1041157,get_or_fail_fail=0,get_or_fail_success=1041157,get_started=0,get_sum=64928901,max=104857600,put=1041157,put_sum=64928901,take=0,take_sum=0,val=0,wait.avgcount=0,wait.avgtime=0,wait.sum=0 1587117563000000000
-ceph,collection=throttle-msgr_dispatch_throttler-mon,host=stefanmon1,id=stefanmon1,type=monitor get=12695426,get_or_fail_fail=0,get_or_fail_success=12695426,get_started=0,get_sum=42542216884,max=104857600,put=12695426,put_sum=42542216884,take=0,take_sum=0,val=0,wait.avgcount=0,wait.avgtime=0,wait.sum=0 1587117563000000000
-ceph,collection=finisher-mon_finisher,host=stefanmon1,id=stefanmon1,type=monitor complete_latency.avgcount=0,complete_latency.avgtime=0,complete_latency.sum=0,queue_len=0 1587117563000000000
-ceph,collection=finisher-monstore,host=stefanmon1,id=stefanmon1,type=monitor complete_latency.avgcount=1609831,complete_latency.avgtime=0.015857621,complete_latency.sum=25528.09131035,queue_len=0 1587117563000000000
-ceph,collection=mon,host=stefanmon1,id=stefanmon1,type=monitor election_call=25,election_lose=0,election_win=22,num_elections=94,num_sessions=3,session_add=174679,session_rm=439316,session_trim=137 1587117563000000000
-ceph,collection=throttle-mon_daemon_bytes,host=stefanmon1,id=stefanmon1,type=monitor get=72697,get_or_fail_fail=0,get_or_fail_success=72697,get_started=0,get_sum=32261199,max=419430400,put=72697,put_sum=32261199,take=0,take_sum=0,val=0,wait.avgcount=0,wait.avgtime=0,wait.sum=0 1587117563000000000
-ceph,collection=rocksdb,host=stefanmon1,id=stefanmon1,type=monitor compact=1,compact_queue_len=0,compact_queue_merge=1,compact_range=19126,get=62449211,get_latency.avgcount=62449211,get_latency.avgtime=0.000022216,get_latency.sum=1387.371811726,rocksdb_write_delay_time.avgcount=0,rocksdb_write_delay_time.avgtime=0,rocksdb_write_delay_time.sum=0,rocksdb_write_memtable_time.avgcount=0,rocksdb_write_memtable_time.avgtime=0,rocksdb_write_memtable_time.sum=0,rocksdb_write_pre_and_post_time.avgcount=0,rocksdb_write_pre_and_post_time.avgtime=0,rocksdb_write_pre_and_post_time.sum=0,rocksdb_write_wal_time.avgcount=0,rocksdb_write_wal_time.avgtime=0,rocksdb_write_wal_time.sum=0,submit_latency.avgcount=0,submit_latency.avgtime=0,submit_latency.sum=0,submit_sync_latency.avgcount=3219961,submit_sync_latency.avgtime=0.007532173,submit_sync_latency.sum=24253.303584224,submit_transaction=0,submit_transaction_sync=3219961 1587117563000000000
-ceph,collection=AsyncMessenger::Worker-0,host=stefanmon1,id=stefanmon1,type=monitor msgr_active_connections=148317,msgr_created_connections=162806,msgr_recv_bytes=11557888328,msgr_recv_messages=5113369,msgr_running_fast_dispatch_time=0,msgr_running_recv_time=868.377161686,msgr_running_send_time=1626.525392721,msgr_running_total_time=4222.235694322,msgr_send_bytes=91516226816,msgr_send_messages=6973706 1587117563000000000
-ceph,collection=AsyncMessenger::Worker-2,host=stefanmon1,id=stefanmon1,type=monitor msgr_active_connections=146396,msgr_created_connections=159788,msgr_recv_bytes=2162802496,msgr_recv_messages=689168,msgr_running_fast_dispatch_time=0,msgr_running_recv_time=164.148550562,msgr_running_send_time=153.462890368,msgr_running_total_time=644.188791379,msgr_send_bytes=7422484152,msgr_send_messages=749381 1587117563000000000
-ceph,collection=cluster,host=stefanmon1,id=stefanmon1,type=monitor num_bytes=5055,num_mon=3,num_mon_quorum=3,num_object=245,num_object_degraded=0,num_object_misplaced=0,num_object_unfound=0,num_osd=9,num_osd_in=8,num_osd_up=8,num_pg=504,num_pg_active=504,num_pg_active_clean=504,num_pg_peering=0,num_pool=17,osd_bytes=858959904768,osd_bytes_avail=849889787904,osd_bytes_used=9070116864,osd_epoch=203 1587117563000000000
-ceph,collection=paxos,host=stefanmon1,id=stefanmon1,type=monitor accept_timeout=1,begin=1609847,begin_bytes.avgcount=1609847,begin_bytes.sum=41408662074,begin_keys.avgcount=1609847,begin_keys.sum=4829541,begin_latency.avgcount=1609847,begin_latency.avgtime=0.007213392,begin_latency.sum=11612.457661116,collect=0,collect_bytes.avgcount=0,collect_bytes.sum=0,collect_keys.avgcount=0,collect_keys.sum=0,collect_latency.avgcount=0,collect_latency.avgtime=0,collect_latency.sum=0,collect_timeout=1,collect_uncommitted=17,commit=1609831,commit_bytes.avgcount=1609831,commit_bytes.sum=41087428442,commit_keys.avgcount=1609831,commit_keys.sum=11637931,commit_latency.avgcount=1609831,commit_latency.avgtime=0.006236333,commit_latency.sum=10039.442388355,lease_ack_timeout=0,lease_timeout=0,new_pn=33,new_pn_latency.avgcount=33,new_pn_latency.avgtime=3.844272773,new_pn_latency.sum=126.86100151,refresh=1609856,refresh_latency.avgcount=1609856,refresh_latency.avgtime=0.005900486,refresh_latency.sum=9498.932866761,restart=109,share_state=2,share_state_bytes.avgcount=2,share_state_bytes.sum=39612,share_state_keys.avgcount=2,share_state_keys.sum=2,start_leader=22,start_peon=0,store_state=14,store_state_bytes.avgcount=14,store_state_bytes.sum=51908281,store_state_keys.avgcount=14,store_state_keys.sum=7016,store_state_latency.avgcount=14,store_state_latency.avgtime=11.668377665,store_state_latency.sum=163.357287311 1587117563000000000
-ceph,collection=throttle-msgr_dispatch_throttler-mon-mgrc,host=stefanmon1,id=stefanmon1,type=monitor get=13225,get_or_fail_fail=0,get_or_fail_success=13225,get_started=0,get_sum=158700,max=104857600,put=13225,put_sum=158700,take=0,take_sum=0,val=0,wait.avgcount=0,wait.avgtime=0,wait.sum=0 1587117563000000000
-ceph,collection=AsyncMessenger::Worker-1,host=stefanmon1,id=stefanmon1,type=monitor msgr_active_connections=147680,msgr_created_connections=162374,msgr_recv_bytes=29781706740,msgr_recv_messages=7170733,msgr_running_fast_dispatch_time=0,msgr_running_recv_time=1728.559151358,msgr_running_send_time=2086.681244508,msgr_running_total_time=6084.532916585,msgr_send_bytes=94062125718,msgr_send_messages=9161564 1587117563000000000
-ceph,collection=throttle-msgr_dispatch_throttler-cluster,host=stefanosd1,id=0,type=osd get=281745,get_or_fail_fail=0,get_or_fail_success=281745,get_started=0,get_sum=446024457,max=104857600,put=281745,put_sum=446024457,take=0,take_sum=0,val=0,wait.avgcount=0,wait.avgtime=0,wait.sum=0 1587117698000000000
-ceph,collection=throttle-bluestore_throttle_bytes,host=stefanosd1,id=0,type=osd get=275707,get_or_fail_fail=0,get_or_fail_success=0,get_started=275707,get_sum=185073179842,max=67108864,put=268870,put_sum=185073179842,take=0,take_sum=0,val=0,wait.avgcount=0,wait.avgtime=0,wait.sum=0 1587117698000000000
-ceph,collection=throttle-msgr_dispatch_throttler-hb_front_server,host=stefanosd1,id=0,type=osd get=2606982,get_or_fail_fail=0,get_or_fail_success=2606982,get_started=0,get_sum=5224391928,max=104857600,put=2606982,put_sum=5224391928,take=0,take_sum=0,val=0,wait.avgcount=0,wait.avgtime=0,wait.sum=0 1587117698000000000
-ceph,collection=rocksdb,host=stefanosd1,id=0,type=osd compact=0,compact_queue_len=0,compact_queue_merge=0,compact_range=0,get=1570,get_latency.avgcount=1570,get_latency.avgtime=0.000051233,get_latency.sum=0.080436788,rocksdb_write_delay_time.avgcount=0,rocksdb_write_delay_time.avgtime=0,rocksdb_write_delay_time.sum=0,rocksdb_write_memtable_time.avgcount=0,rocksdb_write_memtable_time.avgtime=0,rocksdb_write_memtable_time.sum=0,rocksdb_write_pre_and_post_time.avgcount=0,rocksdb_write_pre_and_post_time.avgtime=0,rocksdb_write_pre_and_post_time.sum=0,rocksdb_write_wal_time.avgcount=0,rocksdb_write_wal_time.avgtime=0,rocksdb_write_wal_time.sum=0,submit_latency.avgcount=275707,submit_latency.avgtime=0.000174936,submit_latency.sum=48.231345334,submit_sync_latency.avgcount=268870,submit_sync_latency.avgtime=0.006097313,submit_sync_latency.sum=1639.384555624,submit_transaction=275707,submit_transaction_sync=268870 1587117698000000000
-ceph,collection=throttle-msgr_dispatch_throttler-hb_back_server,host=stefanosd1,id=0,type=osd get=2606982,get_or_fail_fail=0,get_or_fail_success=2606982,get_started=0,get_sum=5224391928,max=104857600,put=2606982,put_sum=5224391928,take=0,take_sum=0,val=0,wait.avgcount=0,wait.avgtime=0,wait.sum=0 1587117698000000000
-ceph,collection=throttle-objecter_bytes,host=stefanosd1,id=0,type=osd get=0,get_or_fail_fail=0,get_or_fail_success=0,get_started=0,get_sum=0,max=104857600,put=0,put_sum=0,take=0,take_sum=0,val=0,wait.avgcount=0,wait.avgtime=0,wait.sum=0 1587117698000000000
-ceph,collection=throttle-msgr_dispatch_throttler-hb_back_client,host=stefanosd1,id=0,type=osd get=2610285,get_or_fail_fail=0,get_or_fail_success=2610285,get_started=0,get_sum=5231011140,max=104857600,put=2610285,put_sum=5231011140,take=0,take_sum=0,val=0,wait.avgcount=0,wait.avgtime=0,wait.sum=0 1587117698000000000
-ceph,collection=AsyncMessenger::Worker-1,host=stefanosd1,id=0,type=osd msgr_active_connections=2093,msgr_created_connections=29142,msgr_recv_bytes=7214238199,msgr_recv_messages=3928206,msgr_running_fast_dispatch_time=171.289615064,msgr_running_recv_time=278.531155966,msgr_running_send_time=489.482588813,msgr_running_total_time=1134.004853662,msgr_send_bytes=9814725232,msgr_send_messages=3814927 1587117698000000000
-ceph,collection=throttle-msgr_dispatch_throttler-client,host=stefanosd1,id=0,type=osd get=488206,get_or_fail_fail=0,get_or_fail_success=488206,get_started=0,get_sum=104085134,max=104857600,put=488206,put_sum=104085134,take=0,take_sum=0,val=0,wait.avgcount=0,wait.avgtime=0,wait.sum=0 1587117698000000000
-ceph,collection=finisher-defered_finisher,host=stefanosd1,id=0,type=osd complete_latency.avgcount=0,complete_latency.avgtime=0,complete_latency.sum=0,queue_len=0 1587117698000000000
-ceph,collection=recoverystate_perf,host=stefanosd1,id=0,type=osd activating_latency.avgcount=87,activating_latency.avgtime=0.114348341,activating_latency.sum=9.948305683,active_latency.avgcount=25,active_latency.avgtime=1790.961574431,active_latency.sum=44774.039360795,backfilling_latency.avgcount=0,backfilling_latency.avgtime=0,backfilling_latency.sum=0,clean_latency.avgcount=25,clean_latency.avgtime=1790.830827794,clean_latency.sum=44770.770694867,down_latency.avgcount=0,down_latency.avgtime=0,down_latency.sum=0,getinfo_latency.avgcount=141,getinfo_latency.avgtime=0.446233476,getinfo_latency.sum=62.918920183,getlog_latency.avgcount=87,getlog_latency.avgtime=0.007708069,getlog_latency.sum=0.670602073,getmissing_latency.avgcount=87,getmissing_latency.avgtime=0.000077594,getmissing_latency.sum=0.006750701,incomplete_latency.avgcount=0,incomplete_latency.avgtime=0,incomplete_latency.sum=0,initial_latency.avgcount=166,initial_latency.avgtime=0.001313715,initial_latency.sum=0.218076764,notbackfilling_latency.avgcount=0,notbackfilling_latency.avgtime=0,notbackfilling_latency.sum=0,notrecovering_latency.avgcount=0,notrecovering_latency.avgtime=0,notrecovering_latency.sum=0,peering_latency.avgcount=141,peering_latency.avgtime=0.948324273,peering_latency.sum=133.713722563,primary_latency.avgcount=79,primary_latency.avgtime=567.706192991,primary_latency.sum=44848.78924634,recovered_latency.avgcount=87,recovered_latency.avgtime=0.000378284,recovered_latency.sum=0.032910791,recovering_latency.avgcount=2,recovering_latency.avgtime=0.338242008,recovering_latency.sum=0.676484017,replicaactive_latency.avgcount=23,replicaactive_latency.avgtime=1790.893991295,replicaactive_latency.sum=41190.561799786,repnotrecovering_latency.avgcount=25,repnotrecovering_latency.avgtime=1647.627024984,repnotrecovering_latency.sum=41190.675624616,reprecovering_latency.avgcount=2,reprecovering_latency.avgtime=0.311884638,reprecovering_latency.sum=0.623769276,repwaitbackfillreserved_latency.avgcount=0,repwaitbackfillreserved_latency.avgtime=0,repwaitbackfillreserved_latency.sum=0,repwaitrecoveryreserved_latency.avgcount=2,repwaitrecoveryreserved_latency.avgtime=0.000462873,repwaitrecoveryreserved_latency.sum=0.000925746,reset_latency.avgcount=372,reset_latency.avgtime=0.125056393,reset_latency.sum=46.520978537,start_latency.avgcount=372,start_latency.avgtime=0.000109397,start_latency.sum=0.040695881,started_latency.avgcount=206,started_latency.avgtime=418.299777245,started_latency.sum=86169.754112641,stray_latency.avgcount=231,stray_latency.avgtime=0.98203205,stray_latency.sum=226.849403565,waitactingchange_latency.avgcount=0,waitactingchange_latency.avgtime=0,waitactingchange_latency.sum=0,waitlocalbackfillreserved_latency.avgcount=0,waitlocalbackfillreserved_latency.avgtime=0,waitlocalbackfillreserved_latency.sum=0,waitlocalrecoveryreserved_latency.avgcount=2,waitlocalrecoveryreserved_latency.avgtime=0.002802377,waitlocalrecoveryreserved_latency.sum=0.005604755,waitremotebackfillreserved_latency.avgcount=0,waitremotebackfillreserved_latency.avgtime=0,waitremotebackfillreserved_latency.sum=0,waitremoterecoveryreserved_latency.avgcount=2,waitremoterecoveryreserved_latency.avgtime=0.012855439,waitremoterecoveryreserved_latency.sum=0.025710878,waitupthru_latency.avgcount=87,waitupthru_latency.avgtime=0.805727895,waitupthru_latency.sum=70.09832695 1587117698000000000
-ceph,collection=cct,host=stefanosd1,id=0,type=osd total_workers=6,unhealthy_workers=0 1587117698000000000
-ceph,collection=throttle-msgr_dispatch_throttler-hb_front_client,host=stefanosd1,id=0,type=osd get=2610285,get_or_fail_fail=0,get_or_fail_success=2610285,get_started=0,get_sum=5231011140,max=104857600,put=2610285,put_sum=5231011140,take=0,take_sum=0,val=0,wait.avgcount=0,wait.avgtime=0,wait.sum=0 1587117698000000000
-ceph,collection=bluefs,host=stefanosd1,id=0,type=osd bytes_written_slow=0,bytes_written_sst=9018781,bytes_written_wal=831081573,db_total_bytes=4294967296,db_used_bytes=434110464,files_written_sst=3,files_written_wal=2,gift_bytes=0,log_bytes=134291456,log_compactions=1,logged_bytes=1101668352,max_bytes_db=1234173952,max_bytes_slow=0,max_bytes_wal=0,num_files=11,reclaim_bytes=0,slow_total_bytes=0,slow_used_bytes=0,wal_total_bytes=0,wal_used_bytes=0 1587117698000000000
-ceph,collection=mempool,host=stefanosd1,id=0,type=osd bloom_filter_bytes=0,bloom_filter_items=0,bluefs_bytes=10600,bluefs_items=458,bluestore_alloc_bytes=230288,bluestore_alloc_items=28786,bluestore_cache_data_bytes=622592,bluestore_cache_data_items=43,bluestore_cache_onode_bytes=249280,bluestore_cache_onode_items=380,bluestore_cache_other_bytes=192678,bluestore_cache_other_items=20199,bluestore_fsck_bytes=0,bluestore_fsck_items=0,bluestore_txc_bytes=8272,bluestore_txc_items=11,bluestore_writing_bytes=0,bluestore_writing_deferred_bytes=670130,bluestore_writing_deferred_items=176,bluestore_writing_items=0,buffer_anon_bytes=2412465,buffer_anon_items=297,buffer_meta_bytes=5896,buffer_meta_items=67,mds_co_bytes=0,mds_co_items=0,osd_bytes=2124800,osd_items=166,osd_mapbl_bytes=155152,osd_mapbl_items=10,osd_pglog_bytes=3214704,osd_pglog_items=6288,osdmap_bytes=710892,osdmap_items=4426,osdmap_mapping_bytes=0,osdmap_mapping_items=0,pgmap_bytes=0,pgmap_items=0,unittest_1_bytes=0,unittest_1_items=0,unittest_2_bytes=0,unittest_2_items=0 1587117698000000000
-ceph,collection=osd,host=stefanosd1,id=0,type=osd agent_evict=0,agent_flush=0,agent_skip=0,agent_wake=0,cached_crc=0,cached_crc_adjusted=0,copyfrom=0,heartbeat_to_peers=7,loadavg=11,map_message_epoch_dups=21,map_message_epochs=40,map_messages=31,messages_delayed_for_map=0,missed_crc=0,numpg=166,numpg_primary=62,numpg_removing=0,numpg_replica=104,numpg_stray=0,object_ctx_cache_hit=476529,object_ctx_cache_total=476536,op=476525,op_before_dequeue_op_lat.avgcount=755708,op_before_dequeue_op_lat.avgtime=0.000205759,op_before_dequeue_op_lat.sum=155.493843473,op_before_queue_op_lat.avgcount=755702,op_before_queue_op_lat.avgtime=0.000047877,op_before_queue_op_lat.sum=36.181069552,op_cache_hit=0,op_in_bytes=0,op_latency.avgcount=476525,op_latency.avgtime=0.000365956,op_latency.sum=174.387387878,op_out_bytes=10882,op_prepare_latency.avgcount=476527,op_prepare_latency.avgtime=0.000205307,op_prepare_latency.sum=97.834380034,op_process_latency.avgcount=476525,op_process_latency.avgtime=0.000139616,op_process_latency.sum=66.530847665,op_r=476521,op_r_latency.avgcount=476521,op_r_latency.avgtime=0.00036559,op_r_latency.sum=174.21148267,op_r_out_bytes=10882,op_r_prepare_latency.avgcount=476523,op_r_prepare_latency.avgtime=0.000205302,op_r_prepare_latency.sum=97.831473175,op_r_process_latency.avgcount=476521,op_r_process_latency.avgtime=0.000139396,op_r_process_latency.sum=66.425498624,op_rw=2,op_rw_in_bytes=0,op_rw_latency.avgcount=2,op_rw_latency.avgtime=0.048818975,op_rw_latency.sum=0.097637951,op_rw_out_bytes=0,op_rw_prepare_latency.avgcount=2,op_rw_prepare_latency.avgtime=0.000467887,op_rw_prepare_latency.sum=0.000935775,op_rw_process_latency.avgcount=2,op_rw_process_latency.avgtime=0.013741256,op_rw_process_latency.sum=0.027482512,op_w=2,op_w_in_bytes=0,op_w_latency.avgcount=2,op_w_latency.avgtime=0.039133628,op_w_latency.sum=0.078267257,op_w_prepare_latency.avgcount=2,op_w_prepare_latency.avgtime=0.000985542,op_w_prepare_latency.sum=0.001971084,op_w_process_latency.avgcount=2,op_w_process_latency.avgtime=0.038933264,op_w_process_latency.sum=0.077866529,op_wip=0,osd_map_bl_cache_hit=22,osd_map_bl_cache_miss=40,osd_map_cache_hit=4570,osd_map_cache_miss=15,osd_map_cache_miss_low=0,osd_map_cache_miss_low_avg.avgcount=0,osd_map_cache_miss_low_avg.sum=0,osd_pg_biginfo=2050,osd_pg_fastinfo=265780,osd_pg_info=274542,osd_tier_flush_lat.avgcount=0,osd_tier_flush_lat.avgtime=0,osd_tier_flush_lat.sum=0,osd_tier_promote_lat.avgcount=0,osd_tier_promote_lat.avgtime=0,osd_tier_promote_lat.sum=0,osd_tier_r_lat.avgcount=0,osd_tier_r_lat.avgtime=0,osd_tier_r_lat.sum=0,pull=0,push=2,push_out_bytes=10,recovery_bytes=10,recovery_ops=2,stat_bytes=107369988096,stat_bytes_avail=106271539200,stat_bytes_used=1098448896,subop=253554,subop_in_bytes=168644225,subop_latency.avgcount=253554,subop_latency.avgtime=0.0073036,subop_latency.sum=1851.857230388,subop_pull=0,subop_pull_latency.avgcount=0,subop_pull_latency.avgtime=0,subop_pull_latency.sum=0,subop_push=0,subop_push_in_bytes=0,subop_push_latency.avgcount=0,subop_push_latency.avgtime=0,subop_push_latency.sum=0,subop_w=253554,subop_w_in_bytes=168644225,subop_w_latency.avgcount=253554,subop_w_latency.avgtime=0.0073036,subop_w_latency.sum=1851.857230388,tier_clean=0,tier_delay=0,tier_dirty=0,tier_evict=0,tier_flush=0,tier_flush_fail=0,tier_promote=0,tier_proxy_read=0,tier_proxy_write=0,tier_try_flush=0,tier_try_flush_fail=0,tier_whiteout=0 1587117698000000000
-ceph,collection=throttle-msgr_dispatch_throttler-ms_objecter,host=stefanosd1,id=0,type=osd get=0,get_or_fail_fail=0,get_or_fail_success=0,get_started=0,get_sum=0,max=104857600,put=0,put_sum=0,take=0,take_sum=0,val=0,wait.avgcount=0,wait.avgtime=0,wait.sum=0 1587117698000000000
-ceph,collection=AsyncMessenger::Worker-2,host=stefanosd1,id=0,type=osd msgr_active_connections=2055,msgr_created_connections=27411,msgr_recv_bytes=6431950009,msgr_recv_messages=3552443,msgr_running_fast_dispatch_time=162.271664213,msgr_running_recv_time=254.307853033,msgr_running_send_time=503.037285799,msgr_running_total_time=1130.21070681,msgr_send_bytes=10865436237,msgr_send_messages=3523374 1587117698000000000
-ceph,collection=bluestore,host=stefanosd1,id=0,type=osd bluestore_allocated=24641536,bluestore_blob_split=0,bluestore_blobs=88,bluestore_buffer_bytes=622592,bluestore_buffer_hit_bytes=160578,bluestore_buffer_miss_bytes=540236,bluestore_buffers=43,bluestore_compressed=0,bluestore_compressed_allocated=0,bluestore_compressed_original=0,bluestore_extent_compress=0,bluestore_extents=88,bluestore_fragmentation_micros=1,bluestore_gc_merged=0,bluestore_onode_hits=532102,bluestore_onode_misses=388,bluestore_onode_reshard=0,bluestore_onode_shard_hits=0,bluestore_onode_shard_misses=0,bluestore_onodes=380,bluestore_read_eio=0,bluestore_reads_with_retries=0,bluestore_stored=1987856,bluestore_txc=275707,bluestore_write_big=0,bluestore_write_big_blobs=0,bluestore_write_big_bytes=0,bluestore_write_small=60,bluestore_write_small_bytes=343843,bluestore_write_small_deferred=22,bluestore_write_small_new=38,bluestore_write_small_pre_read=22,bluestore_write_small_unused=0,commit_lat.avgcount=275707,commit_lat.avgtime=0.00699778,commit_lat.sum=1929.337103334,compress_lat.avgcount=0,compress_lat.avgtime=0,compress_lat.sum=0,compress_rejected_count=0,compress_success_count=0,csum_lat.avgcount=67,csum_lat.avgtime=0.000032601,csum_lat.sum=0.002184323,decompress_lat.avgcount=0,decompress_lat.avgtime=0,decompress_lat.sum=0,deferred_write_bytes=0,deferred_write_ops=0,kv_commit_lat.avgcount=268870,kv_commit_lat.avgtime=0.006365428,kv_commit_lat.sum=1711.472749866,kv_final_lat.avgcount=268867,kv_final_lat.avgtime=0.000043227,kv_final_lat.sum=11.622427109,kv_flush_lat.avgcount=268870,kv_flush_lat.avgtime=0.000000223,kv_flush_lat.sum=0.060141588,kv_sync_lat.avgcount=268870,kv_sync_lat.avgtime=0.006365652,kv_sync_lat.sum=1711.532891454,omap_lower_bound_lat.avgcount=2,omap_lower_bound_lat.avgtime=0.000006524,omap_lower_bound_lat.sum=0.000013048,omap_next_lat.avgcount=6704,omap_next_lat.avgtime=0.000004721,omap_next_lat.sum=0.031654097,omap_seek_to_first_lat.avgcount=323,omap_seek_to_first_lat.avgtime=0.00000522,omap_seek_to_first_lat.sum=0.00168614,omap_upper_bound_lat.avgcount=4,omap_upper_bound_lat.avgtime=0.000013086,omap_upper_bound_lat.sum=0.000052344,read_lat.avgcount=227,read_lat.avgtime=0.000699457,read_lat.sum=0.158776879,read_onode_meta_lat.avgcount=311,read_onode_meta_lat.avgtime=0.000072207,read_onode_meta_lat.sum=0.022456667,read_wait_aio_lat.avgcount=84,read_wait_aio_lat.avgtime=0.001556141,read_wait_aio_lat.sum=0.130715885,state_aio_wait_lat.avgcount=275707,state_aio_wait_lat.avgtime=0.000000345,state_aio_wait_lat.sum=0.095246457,state_deferred_aio_wait_lat.avgcount=0,state_deferred_aio_wait_lat.avgtime=0,state_deferred_aio_wait_lat.sum=0,state_deferred_cleanup_lat.avgcount=0,state_deferred_cleanup_lat.avgtime=0,state_deferred_cleanup_lat.sum=0,state_deferred_queued_lat.avgcount=0,state_deferred_queued_lat.avgtime=0,state_deferred_queued_lat.sum=0,state_done_lat.avgcount=275696,state_done_lat.avgtime=0.00000286,state_done_lat.sum=0.788700007,state_finishing_lat.avgcount=275696,state_finishing_lat.avgtime=0.000000302,state_finishing_lat.sum=0.083437168,state_io_done_lat.avgcount=275707,state_io_done_lat.avgtime=0.000001041,state_io_done_lat.sum=0.287025147,state_kv_commiting_lat.avgcount=275707,state_kv_commiting_lat.avgtime=0.006424459,state_kv_commiting_lat.sum=1771.268407864,state_kv_done_lat.avgcount=275707,state_kv_done_lat.avgtime=0.000001627,state_kv_done_lat.sum=0.448805853,state_kv_queued_lat.avgcount=275707,state_kv_queued_lat.avgtime=0.000488565,state_kv_queued_lat.sum=134.7009424,state_prepare_lat.avgcount=275707,state_prepare_lat.avgtime=0.000082464,state_prepare_lat.sum=22.736065534,submit_lat.avgcount=275707,submit_lat.avgtime=0.000120236,submit_lat.sum=33.149934412,throttle_lat.avgcount=275707,throttle_lat.avgtime=0.000001571,throttle_lat.sum=0.433185935,write_pad_bytes=151773,write_penalty_read_ops=0 1587117698000000000
-ceph,collection=finisher-objecter-finisher-0,host=stefanosd1,id=0,type=osd complete_latency.avgcount=0,complete_latency.avgtime=0,complete_latency.sum=0,queue_len=0 1587117698000000000
-ceph,collection=objecter,host=stefanosd1,id=0,type=osd command_active=0,command_resend=0,command_send=0,linger_active=0,linger_ping=0,linger_resend=0,linger_send=0,map_epoch=203,map_full=0,map_inc=19,omap_del=0,omap_rd=0,omap_wr=0,op=0,op_active=0,op_laggy=0,op_pg=0,op_r=0,op_reply=0,op_resend=0,op_rmw=0,op_send=0,op_send_bytes=0,op_w=0,osd_laggy=0,osd_session_close=0,osd_session_open=0,osd_sessions=0,osdop_append=0,osdop_call=0,osdop_clonerange=0,osdop_cmpxattr=0,osdop_create=0,osdop_delete=0,osdop_getxattr=0,osdop_mapext=0,osdop_notify=0,osdop_other=0,osdop_pgls=0,osdop_pgls_filter=0,osdop_read=0,osdop_resetxattrs=0,osdop_rmxattr=0,osdop_setxattr=0,osdop_sparse_read=0,osdop_src_cmpxattr=0,osdop_stat=0,osdop_truncate=0,osdop_watch=0,osdop_write=0,osdop_writefull=0,osdop_writesame=0,osdop_zero=0,poolop_active=0,poolop_resend=0,poolop_send=0,poolstat_active=0,poolstat_resend=0,poolstat_send=0,statfs_active=0,statfs_resend=0,statfs_send=0 1587117698000000000
-ceph,collection=finisher-commit_finisher,host=stefanosd1,id=0,type=osd complete_latency.avgcount=11,complete_latency.avgtime=0.003447516,complete_latency.sum=0.037922681,queue_len=0 1587117698000000000
-ceph,collection=throttle-objecter_ops,host=stefanosd1,id=0,type=osd get=0,get_or_fail_fail=0,get_or_fail_success=0,get_started=0,get_sum=0,max=1024,put=0,put_sum=0,take=0,take_sum=0,val=0,wait.avgcount=0,wait.avgtime=0,wait.sum=0 1587117698000000000
-ceph,collection=AsyncMessenger::Worker-0,host=stefanosd1,id=0,type=osd msgr_active_connections=2128,msgr_created_connections=33685,msgr_recv_bytes=8679123051,msgr_recv_messages=4200356,msgr_running_fast_dispatch_time=151.889337454,msgr_running_recv_time=297.632294886,msgr_running_send_time=599.20020523,msgr_running_total_time=1321.361931202,msgr_send_bytes=11716202897,msgr_send_messages=4347418 1587117698000000000
-ceph,collection=throttle-osd_client_bytes,host=stefanosd1,id=0,type=osd get=476554,get_or_fail_fail=0,get_or_fail_success=476554,get_started=0,get_sum=103413728,max=524288000,put=476587,put_sum=103413728,take=0,take_sum=0,val=0,wait.avgcount=0,wait.avgtime=0,wait.sum=0 1587117698000000000
-ceph,collection=throttle-bluestore_throttle_deferred_bytes,host=stefanosd1,id=0,type=osd get=11,get_or_fail_fail=0,get_or_fail_success=11,get_started=0,get_sum=7723117,max=201326592,put=0,put_sum=0,take=0,take_sum=0,val=7723117,wait.avgcount=0,wait.avgtime=0,wait.sum=0 1587117698000000000
-ceph,collection=throttle-msgr_dispatch_throttler-cluster,host=stefanosd1,id=1,type=osd get=860895,get_or_fail_fail=0,get_or_fail_success=860895,get_started=0,get_sum=596482256,max=104857600,put=860895,put_sum=596482256,take=0,take_sum=0,val=0,wait.avgcount=0,wait.avgtime=0,wait.sum=0 1587117698000000000
-ceph,collection=throttle-objecter_ops,host=stefanosd1,id=1,type=osd get=0,get_or_fail_fail=0,get_or_fail_success=0,get_started=0,get_sum=0,max=1024,put=0,put_sum=0,take=0,take_sum=0,val=0,wait.avgcount=0,wait.avgtime=0,wait.sum=0 1587117698000000000
-ceph,collection=throttle-objecter_bytes,host=stefanosd1,id=1,type=osd get=0,get_or_fail_fail=0,get_or_fail_success=0,get_started=0,get_sum=0,max=104857600,put=0,put_sum=0,take=0,take_sum=0,val=0,wait.avgcount=0,wait.avgtime=0,wait.sum=0 1587117698000000000
-ceph,collection=finisher-defered_finisher,host=stefanosd1,id=1,type=osd complete_latency.avgcount=0,complete_latency.avgtime=0,complete_latency.sum=0,queue_len=0 1587117698000000000
-ceph,collection=osd,host=stefanosd1,id=1,type=osd agent_evict=0,agent_flush=0,agent_skip=0,agent_wake=0,cached_crc=0,cached_crc_adjusted=0,copyfrom=0,heartbeat_to_peers=7,loadavg=11,map_message_epoch_dups=29,map_message_epochs=50,map_messages=39,messages_delayed_for_map=0,missed_crc=0,numpg=188,numpg_primary=71,numpg_removing=0,numpg_replica=117,numpg_stray=0,object_ctx_cache_hit=1349777,object_ctx_cache_total=2934118,op=1319230,op_before_dequeue_op_lat.avgcount=3792053,op_before_dequeue_op_lat.avgtime=0.000405802,op_before_dequeue_op_lat.sum=1538.826381623,op_before_queue_op_lat.avgcount=3778690,op_before_queue_op_lat.avgtime=0.000033273,op_before_queue_op_lat.sum=125.731131596,op_cache_hit=0,op_in_bytes=0,op_latency.avgcount=1319230,op_latency.avgtime=0.002858138,op_latency.sum=3770.541581676,op_out_bytes=1789210,op_prepare_latency.avgcount=1336472,op_prepare_latency.avgtime=0.000279458,op_prepare_latency.sum=373.488913339,op_process_latency.avgcount=1319230,op_process_latency.avgtime=0.002666408,op_process_latency.sum=3517.606407526,op_r=1075394,op_r_latency.avgcount=1075394,op_r_latency.avgtime=0.000303779,op_r_latency.sum=326.682443032,op_r_out_bytes=1789210,op_r_prepare_latency.avgcount=1075394,op_r_prepare_latency.avgtime=0.000171228,op_r_prepare_latency.sum=184.138580631,op_r_process_latency.avgcount=1075394,op_r_process_latency.avgtime=0.00011609,op_r_process_latency.sum=124.842894319,op_rw=243832,op_rw_in_bytes=0,op_rw_latency.avgcount=243832,op_rw_latency.avgtime=0.014123636,op_rw_latency.sum=3443.79445124,op_rw_out_bytes=0,op_rw_prepare_latency.avgcount=261072,op_rw_prepare_latency.avgtime=0.000725265,op_rw_prepare_latency.sum=189.346543463,op_rw_process_latency.avgcount=243832,op_rw_process_latency.avgtime=0.013914089,op_rw_process_latency.sum=3392.700241086,op_w=4,op_w_in_bytes=0,op_w_latency.avgcount=4,op_w_latency.avgtime=0.016171851,op_w_latency.sum=0.064687404,op_w_prepare_latency.avgcount=6,op_w_prepare_latency.avgtime=0.00063154,op_w_prepare_latency.sum=0.003789245,op_w_process_latency.avgcount=4,op_w_process_latency.avgtime=0.01581803,op_w_process_latency.sum=0.063272121,op_wip=0,osd_map_bl_cache_hit=36,osd_map_bl_cache_miss=40,osd_map_cache_hit=5404,osd_map_cache_miss=14,osd_map_cache_miss_low=0,osd_map_cache_miss_low_avg.avgcount=0,osd_map_cache_miss_low_avg.sum=0,osd_pg_biginfo=2333,osd_pg_fastinfo=576157,osd_pg_info=591751,osd_tier_flush_lat.avgcount=0,osd_tier_flush_lat.avgtime=0,osd_tier_flush_lat.sum=0,osd_tier_promote_lat.avgcount=0,osd_tier_promote_lat.avgtime=0,osd_tier_promote_lat.sum=0,osd_tier_r_lat.avgcount=0,osd_tier_r_lat.avgtime=0,osd_tier_r_lat.sum=0,pull=0,push=22,push_out_bytes=0,recovery_bytes=0,recovery_ops=21,stat_bytes=107369988096,stat_bytes_avail=106271997952,stat_bytes_used=1097990144,subop=306946,subop_in_bytes=204236742,subop_latency.avgcount=306946,subop_latency.avgtime=0.006744881,subop_latency.sum=2070.314452989,subop_pull=0,subop_pull_latency.avgcount=0,subop_pull_latency.avgtime=0,subop_pull_latency.sum=0,subop_push=0,subop_push_in_bytes=0,subop_push_latency.avgcount=0,subop_push_latency.avgtime=0,subop_push_latency.sum=0,subop_w=306946,subop_w_in_bytes=204236742,subop_w_latency.avgcount=306946,subop_w_latency.avgtime=0.006744881,subop_w_latency.sum=2070.314452989,tier_clean=0,tier_delay=0,tier_dirty=8,tier_evict=0,tier_flush=0,tier_flush_fail=0,tier_promote=0,tier_proxy_read=0,tier_proxy_write=0,tier_try_flush=0,tier_try_flush_fail=0,tier_whiteout=0 1587117698000000000
-ceph,collection=objecter,host=stefanosd1,id=1,type=osd command_active=0,command_resend=0,command_send=0,linger_active=0,linger_ping=0,linger_resend=0,linger_send=0,map_epoch=203,map_full=0,map_inc=19,omap_del=0,omap_rd=0,omap_wr=0,op=0,op_active=0,op_laggy=0,op_pg=0,op_r=0,op_reply=0,op_resend=0,op_rmw=0,op_send=0,op_send_bytes=0,op_w=0,osd_laggy=0,osd_session_close=0,osd_session_open=0,osd_sessions=0,osdop_append=0,osdop_call=0,osdop_clonerange=0,osdop_cmpxattr=0,osdop_create=0,osdop_delete=0,osdop_getxattr=0,osdop_mapext=0,osdop_notify=0,osdop_other=0,osdop_pgls=0,osdop_pgls_filter=0,osdop_read=0,osdop_resetxattrs=0,osdop_rmxattr=0,osdop_setxattr=0,osdop_sparse_read=0,osdop_src_cmpxattr=0,osdop_stat=0,osdop_truncate=0,osdop_watch=0,osdop_write=0,osdop_writefull=0,osdop_writesame=0,osdop_zero=0,poolop_active=0,poolop_resend=0,poolop_send=0,poolstat_active=0,poolstat_resend=0,poolstat_send=0,statfs_active=0,statfs_resend=0,statfs_send=0 1587117698000000000
-ceph,collection=AsyncMessenger::Worker-0,host=stefanosd1,id=1,type=osd msgr_active_connections=1356,msgr_created_connections=12290,msgr_recv_bytes=8577187219,msgr_recv_messages=6387040,msgr_running_fast_dispatch_time=475.903632306,msgr_running_recv_time=425.937196699,msgr_running_send_time=783.676217521,msgr_running_total_time=1989.242459076,msgr_send_bytes=12583034449,msgr_send_messages=6074344 1587117698000000000
-ceph,collection=bluestore,host=stefanosd1,id=1,type=osd bluestore_allocated=24182784,bluestore_blob_split=0,bluestore_blobs=88,bluestore_buffer_bytes=614400,bluestore_buffer_hit_bytes=142047,bluestore_buffer_miss_bytes=541480,bluestore_buffers=41,bluestore_compressed=0,bluestore_compressed_allocated=0,bluestore_compressed_original=0,bluestore_extent_compress=0,bluestore_extents=88,bluestore_fragmentation_micros=1,bluestore_gc_merged=0,bluestore_onode_hits=1403948,bluestore_onode_misses=1584732,bluestore_onode_reshard=0,bluestore_onode_shard_hits=0,bluestore_onode_shard_misses=0,bluestore_onodes=459,bluestore_read_eio=0,bluestore_reads_with_retries=0,bluestore_stored=1985647,bluestore_txc=593150,bluestore_write_big=0,bluestore_write_big_blobs=0,bluestore_write_big_bytes=0,bluestore_write_small=58,bluestore_write_small_bytes=343091,bluestore_write_small_deferred=20,bluestore_write_small_new=38,bluestore_write_small_pre_read=20,bluestore_write_small_unused=0,commit_lat.avgcount=593150,commit_lat.avgtime=0.006514834,commit_lat.sum=3864.274280733,compress_lat.avgcount=0,compress_lat.avgtime=0,compress_lat.sum=0,compress_rejected_count=0,compress_success_count=0,csum_lat.avgcount=60,csum_lat.avgtime=0.000028258,csum_lat.sum=0.001695512,decompress_lat.avgcount=0,decompress_lat.avgtime=0,decompress_lat.sum=0,deferred_write_bytes=0,deferred_write_ops=0,kv_commit_lat.avgcount=578129,kv_commit_lat.avgtime=0.00570707,kv_commit_lat.sum=3299.423186928,kv_final_lat.avgcount=578124,kv_final_lat.avgtime=0.000042752,kv_final_lat.sum=24.716171934,kv_flush_lat.avgcount=578129,kv_flush_lat.avgtime=0.000000209,kv_flush_lat.sum=0.121169044,kv_sync_lat.avgcount=578129,kv_sync_lat.avgtime=0.00570728,kv_sync_lat.sum=3299.544355972,omap_lower_bound_lat.avgcount=22,omap_lower_bound_lat.avgtime=0.000005979,omap_lower_bound_lat.sum=0.000131539,omap_next_lat.avgcount=13248,omap_next_lat.avgtime=0.000004836,omap_next_lat.sum=0.064077797,omap_seek_to_first_lat.avgcount=525,omap_seek_to_first_lat.avgtime=0.000004906,omap_seek_to_first_lat.sum=0.002575786,omap_upper_bound_lat.avgcount=0,omap_upper_bound_lat.avgtime=0,omap_upper_bound_lat.sum=0,read_lat.avgcount=406,read_lat.avgtime=0.000383254,read_lat.sum=0.155601529,read_onode_meta_lat.avgcount=483,read_onode_meta_lat.avgtime=0.000008805,read_onode_meta_lat.sum=0.004252832,read_wait_aio_lat.avgcount=77,read_wait_aio_lat.avgtime=0.001907361,read_wait_aio_lat.sum=0.146866799,state_aio_wait_lat.avgcount=593150,state_aio_wait_lat.avgtime=0.000000388,state_aio_wait_lat.sum=0.230498048,state_deferred_aio_wait_lat.avgcount=0,state_deferred_aio_wait_lat.avgtime=0,state_deferred_aio_wait_lat.sum=0,state_deferred_cleanup_lat.avgcount=0,state_deferred_cleanup_lat.avgtime=0,state_deferred_cleanup_lat.sum=0,state_deferred_queued_lat.avgcount=0,state_deferred_queued_lat.avgtime=0,state_deferred_queued_lat.sum=0,state_done_lat.avgcount=593140,state_done_lat.avgtime=0.000003048,state_done_lat.sum=1.80789161,state_finishing_lat.avgcount=593140,state_finishing_lat.avgtime=0.000000325,state_finishing_lat.sum=0.192952339,state_io_done_lat.avgcount=593150,state_io_done_lat.avgtime=0.000001202,state_io_done_lat.sum=0.713333116,state_kv_commiting_lat.avgcount=593150,state_kv_commiting_lat.avgtime=0.005788541,state_kv_commiting_lat.sum=3433.473378536,state_kv_done_lat.avgcount=593150,state_kv_done_lat.avgtime=0.000001472,state_kv_done_lat.sum=0.873559611,state_kv_queued_lat.avgcount=593150,state_kv_queued_lat.avgtime=0.000634215,state_kv_queued_lat.sum=376.18491577,state_prepare_lat.avgcount=593150,state_prepare_lat.avgtime=0.000089694,state_prepare_lat.sum=53.202464675,submit_lat.avgcount=593150,submit_lat.avgtime=0.000127856,submit_lat.sum=75.83816759,throttle_lat.avgcount=593150,throttle_lat.avgtime=0.000001726,throttle_lat.sum=1.023832181,write_pad_bytes=144333,write_penalty_read_ops=0 1587117698000000000
-ceph,collection=throttle-osd_client_bytes,host=stefanosd1,id=1,type=osd get=2920772,get_or_fail_fail=0,get_or_fail_success=2920772,get_started=0,get_sum=739935873,max=524288000,put=4888498,put_sum=739935873,take=0,take_sum=0,val=0,wait.avgcount=0,wait.avgtime=0,wait.sum=0 1587117698000000000
-ceph,collection=throttle-msgr_dispatch_throttler-hb_front_client,host=stefanosd1,id=1,type=osd get=2605442,get_or_fail_fail=0,get_or_fail_success=2605442,get_started=0,get_sum=5221305768,max=104857600,put=2605442,put_sum=5221305768,take=0,take_sum=0,val=0,wait.avgcount=0,wait.avgtime=0,wait.sum=0 1587117698000000000
-ceph,collection=AsyncMessenger::Worker-2,host=stefanosd1,id=1,type=osd msgr_active_connections=1375,msgr_created_connections=12689,msgr_recv_bytes=6393440855,msgr_recv_messages=3260458,msgr_running_fast_dispatch_time=120.622437418,msgr_running_recv_time=225.24709441,msgr_running_send_time=499.150587343,msgr_running_total_time=1043.340296846,msgr_send_bytes=11134862571,msgr_send_messages=3450760 1587117698000000000
-ceph,collection=bluefs,host=stefanosd1,id=1,type=osd bytes_written_slow=0,bytes_written_sst=19824993,bytes_written_wal=1788507023,db_total_bytes=4294967296,db_used_bytes=522190848,files_written_sst=4,files_written_wal=2,gift_bytes=0,log_bytes=1056768,log_compactions=2,logged_bytes=1933271040,max_bytes_db=1483735040,max_bytes_slow=0,max_bytes_wal=0,num_files=12,reclaim_bytes=0,slow_total_bytes=0,slow_used_bytes=0,wal_total_bytes=0,wal_used_bytes=0 1587117698000000000
-ceph,collection=throttle-msgr_dispatch_throttler-hb_back_client,host=stefanosd1,id=1,type=osd get=2605442,get_or_fail_fail=0,get_or_fail_success=2605442,get_started=0,get_sum=5221305768,max=104857600,put=2605442,put_sum=5221305768,take=0,take_sum=0,val=0,wait.avgcount=0,wait.avgtime=0,wait.sum=0 1587117698000000000
-ceph,collection=throttle-bluestore_throttle_deferred_bytes,host=stefanosd1,id=1,type=osd get=10,get_or_fail_fail=0,get_or_fail_success=10,get_started=0,get_sum=7052009,max=201326592,put=0,put_sum=0,take=0,take_sum=0,val=7052009,wait.avgcount=0,wait.avgtime=0,wait.sum=0 1587117698000000000
-ceph,collection=rocksdb,host=stefanosd1,id=1,type=osd compact=0,compact_queue_len=0,compact_queue_merge=0,compact_range=0,get=1586061,get_latency.avgcount=1586061,get_latency.avgtime=0.000083009,get_latency.sum=131.658296684,rocksdb_write_delay_time.avgcount=0,rocksdb_write_delay_time.avgtime=0,rocksdb_write_delay_time.sum=0,rocksdb_write_memtable_time.avgcount=0,rocksdb_write_memtable_time.avgtime=0,rocksdb_write_memtable_time.sum=0,rocksdb_write_pre_and_post_time.avgcount=0,rocksdb_write_pre_and_post_time.avgtime=0,rocksdb_write_pre_and_post_time.sum=0,rocksdb_write_wal_time.avgcount=0,rocksdb_write_wal_time.avgtime=0,rocksdb_write_wal_time.sum=0,submit_latency.avgcount=593150,submit_latency.avgtime=0.000172072,submit_latency.sum=102.064900673,submit_sync_latency.avgcount=578129,submit_sync_latency.avgtime=0.005447017,submit_sync_latency.sum=3149.078822012,submit_transaction=593150,submit_transaction_sync=578129 1587117698000000000
-ceph,collection=throttle-msgr_dispatch_throttler-hb_back_server,host=stefanosd1,id=1,type=osd get=2607669,get_or_fail_fail=0,get_or_fail_success=2607669,get_started=0,get_sum=5225768676,max=104857600,put=2607669,put_sum=5225768676,take=0,take_sum=0,val=0,wait.avgcount=0,wait.avgtime=0,wait.sum=0 1587117698000000000
-ceph,collection=recoverystate_perf,host=stefanosd1,id=1,type=osd activating_latency.avgcount=104,activating_latency.avgtime=0.071646485,activating_latency.sum=7.451234493,active_latency.avgcount=33,active_latency.avgtime=1734.369034268,active_latency.sum=57234.178130859,backfilling_latency.avgcount=1,backfilling_latency.avgtime=2.598401698,backfilling_latency.sum=2.598401698,clean_latency.avgcount=33,clean_latency.avgtime=1734.213467342,clean_latency.sum=57229.044422292,down_latency.avgcount=0,down_latency.avgtime=0,down_latency.sum=0,getinfo_latency.avgcount=167,getinfo_latency.avgtime=0.373444627,getinfo_latency.sum=62.365252849,getlog_latency.avgcount=105,getlog_latency.avgtime=0.003575062,getlog_latency.sum=0.375381569,getmissing_latency.avgcount=104,getmissing_latency.avgtime=0.000157091,getmissing_latency.sum=0.016337565,incomplete_latency.avgcount=0,incomplete_latency.avgtime=0,incomplete_latency.sum=0,initial_latency.avgcount=188,initial_latency.avgtime=0.001833512,initial_latency.sum=0.344700343,notbackfilling_latency.avgcount=0,notbackfilling_latency.avgtime=0,notbackfilling_latency.sum=0,notrecovering_latency.avgcount=0,notrecovering_latency.avgtime=0,notrecovering_latency.sum=0,peering_latency.avgcount=167,peering_latency.avgtime=1.501818082,peering_latency.sum=250.803619796,primary_latency.avgcount=97,primary_latency.avgtime=591.344286378,primary_latency.sum=57360.395778762,recovered_latency.avgcount=104,recovered_latency.avgtime=0.000291138,recovered_latency.sum=0.030278433,recovering_latency.avgcount=2,recovering_latency.avgtime=0.142378096,recovering_latency.sum=0.284756192,replicaactive_latency.avgcount=32,replicaactive_latency.avgtime=1788.474901442,replicaactive_latency.sum=57231.196846165,repnotrecovering_latency.avgcount=34,repnotrecovering_latency.avgtime=1683.273587087,repnotrecovering_latency.sum=57231.301960987,reprecovering_latency.avgcount=2,reprecovering_latency.avgtime=0.418094818,reprecovering_latency.sum=0.836189637,repwaitbackfillreserved_latency.avgcount=0,repwaitbackfillreserved_latency.avgtime=0,repwaitbackfillreserved_latency.sum=0,repwaitrecoveryreserved_latency.avgcount=2,repwaitrecoveryreserved_latency.avgtime=0.000588413,repwaitrecoveryreserved_latency.sum=0.001176827,reset_latency.avgcount=433,reset_latency.avgtime=0.15669689,reset_latency.sum=67.849753631,start_latency.avgcount=433,start_latency.avgtime=0.000412707,start_latency.sum=0.178702508,started_latency.avgcount=245,started_latency.avgtime=468.419544137,started_latency.sum=114762.788313581,stray_latency.avgcount=266,stray_latency.avgtime=1.489291271,stray_latency.sum=396.151478238,waitactingchange_latency.avgcount=1,waitactingchange_latency.avgtime=0.982689906,waitactingchange_latency.sum=0.982689906,waitlocalbackfillreserved_latency.avgcount=1,waitlocalbackfillreserved_latency.avgtime=0.000542092,waitlocalbackfillreserved_latency.sum=0.000542092,waitlocalrecoveryreserved_latency.avgcount=2,waitlocalrecoveryreserved_latency.avgtime=0.00391669,waitlocalrecoveryreserved_latency.sum=0.007833381,waitremotebackfillreserved_latency.avgcount=1,waitremotebackfillreserved_latency.avgtime=0.003110409,waitremotebackfillreserved_latency.sum=0.003110409,waitremoterecoveryreserved_latency.avgcount=2,waitremoterecoveryreserved_latency.avgtime=0.012229338,waitremoterecoveryreserved_latency.sum=0.024458677,waitupthru_latency.avgcount=104,waitupthru_latency.avgtime=1.807608905,waitupthru_latency.sum=187.991326197 1587117698000000000
-ceph,collection=AsyncMessenger::Worker-1,host=stefanosd1,id=1,type=osd msgr_active_connections=1289,msgr_created_connections=9469,msgr_recv_bytes=8348149800,msgr_recv_messages=5048791,msgr_running_fast_dispatch_time=313.754567889,msgr_running_recv_time=372.054833029,msgr_running_send_time=694.900405016,msgr_running_total_time=1656.294769387,msgr_send_bytes=11550148208,msgr_send_messages=5175962 1587117698000000000
-ceph,collection=throttle-bluestore_throttle_bytes,host=stefanosd1,id=1,type=osd get=593150,get_or_fail_fail=0,get_or_fail_success=0,get_started=593150,get_sum=398147414260,max=67108864,put=578129,put_sum=398147414260,take=0,take_sum=0,val=0,wait.avgcount=29,wait.avgtime=0.000972655,wait.sum=0.028207005 1587117698000000000
-ceph,collection=throttle-msgr_dispatch_throttler-ms_objecter,host=stefanosd1,id=1,type=osd get=0,get_or_fail_fail=0,get_or_fail_success=0,get_started=0,get_sum=0,max=104857600,put=0,put_sum=0,take=0,take_sum=0,val=0,wait.avgcount=0,wait.avgtime=0,wait.sum=0 1587117698000000000
-ceph,collection=cct,host=stefanosd1,id=1,type=osd total_workers=6,unhealthy_workers=0 1587117698000000000
-ceph,collection=mempool,host=stefanosd1,id=1,type=osd bloom_filter_bytes=0,bloom_filter_items=0,bluefs_bytes=13064,bluefs_items=593,bluestore_alloc_bytes=230288,bluestore_alloc_items=28786,bluestore_cache_data_bytes=614400,bluestore_cache_data_items=41,bluestore_cache_onode_bytes=301104,bluestore_cache_onode_items=459,bluestore_cache_other_bytes=230945,bluestore_cache_other_items=26119,bluestore_fsck_bytes=0,bluestore_fsck_items=0,bluestore_txc_bytes=7520,bluestore_txc_items=10,bluestore_writing_bytes=0,bluestore_writing_deferred_bytes=657768,bluestore_writing_deferred_items=172,bluestore_writing_items=0,buffer_anon_bytes=2328515,buffer_anon_items=271,buffer_meta_bytes=5808,buffer_meta_items=66,mds_co_bytes=0,mds_co_items=0,osd_bytes=2406400,osd_items=188,osd_mapbl_bytes=139623,osd_mapbl_items=9,osd_pglog_bytes=6768784,osd_pglog_items=18179,osdmap_bytes=710892,osdmap_items=4426,osdmap_mapping_bytes=0,osdmap_mapping_items=0,pgmap_bytes=0,pgmap_items=0,unittest_1_bytes=0,unittest_1_items=0,unittest_2_bytes=0,unittest_2_items=0 1587117698000000000
-ceph,collection=throttle-msgr_dispatch_throttler-client,host=stefanosd1,id=1,type=osd get=2932513,get_or_fail_fail=0,get_or_fail_success=2932513,get_started=0,get_sum=740620215,max=104857600,put=2932513,put_sum=740620215,take=0,take_sum=0,val=0,wait.avgcount=0,wait.avgtime=0,wait.sum=0 1587117698000000000
-ceph,collection=throttle-msgr_dispatch_throttler-hb_front_server,host=stefanosd1,id=1,type=osd get=2607669,get_or_fail_fail=0,get_or_fail_success=2607669,get_started=0,get_sum=5225768676,max=104857600,put=2607669,put_sum=5225768676,take=0,take_sum=0,val=0,wait.avgcount=0,wait.avgtime=0,wait.sum=0 1587117698000000000
-ceph,collection=finisher-commit_finisher,host=stefanosd1,id=1,type=osd complete_latency.avgcount=10,complete_latency.avgtime=0.002884646,complete_latency.sum=0.028846469,queue_len=0 1587117698000000000
-ceph,collection=finisher-objecter-finisher-0,host=stefanosd1,id=1,type=osd complete_latency.avgcount=0,complete_latency.avgtime=0,complete_latency.sum=0,queue_len=0 1587117698000000000
-ceph,collection=throttle-objecter_bytes,host=stefanosd1,id=2,type=osd get=0,get_or_fail_fail=0,get_or_fail_success=0,get_started=0,get_sum=0,max=104857600,put=0,put_sum=0,take=0,take_sum=0,val=0,wait.avgcount=0,wait.avgtime=0,wait.sum=0 1587117698000000000
-ceph,collection=finisher-commit_finisher,host=stefanosd1,id=2,type=osd complete_latency.avgcount=11,complete_latency.avgtime=0.002714416,complete_latency.sum=0.029858583,queue_len=0 1587117698000000000
-ceph,collection=finisher-defered_finisher,host=stefanosd1,id=2,type=osd complete_latency.avgcount=0,complete_latency.avgtime=0,complete_latency.sum=0,queue_len=0 1587117698000000000
-ceph,collection=objecter,host=stefanosd1,id=2,type=osd command_active=0,command_resend=0,command_send=0,linger_active=0,linger_ping=0,linger_resend=0,linger_send=0,map_epoch=203,map_full=0,map_inc=19,omap_del=0,omap_rd=0,omap_wr=0,op=0,op_active=0,op_laggy=0,op_pg=0,op_r=0,op_reply=0,op_resend=0,op_rmw=0,op_send=0,op_send_bytes=0,op_w=0,osd_laggy=0,osd_session_close=0,osd_session_open=0,osd_sessions=0,osdop_append=0,osdop_call=0,osdop_clonerange=0,osdop_cmpxattr=0,osdop_create=0,osdop_delete=0,osdop_getxattr=0,osdop_mapext=0,osdop_notify=0,osdop_other=0,osdop_pgls=0,osdop_pgls_filter=0,osdop_read=0,osdop_resetxattrs=0,osdop_rmxattr=0,osdop_setxattr=0,osdop_sparse_read=0,osdop_src_cmpxattr=0,osdop_stat=0,osdop_truncate=0,osdop_watch=0,osdop_write=0,osdop_writefull=0,osdop_writesame=0,osdop_zero=0,poolop_active=0,poolop_resend=0,poolop_send=0,poolstat_active=0,poolstat_resend=0,poolstat_send=0,statfs_active=0,statfs_resend=0,statfs_send=0 1587117698000000000
-ceph,collection=throttle-msgr_dispatch_throttler-hb_back_client,host=stefanosd1,id=2,type=osd get=2607136,get_or_fail_fail=0,get_or_fail_success=2607136,get_started=0,get_sum=5224700544,max=104857600,put=2607136,put_sum=5224700544,take=0,take_sum=0,val=0,wait.avgcount=0,wait.avgtime=0,wait.sum=0 1587117698000000000
-ceph,collection=mempool,host=stefanosd1,id=2,type=osd bloom_filter_bytes=0,bloom_filter_items=0,bluefs_bytes=11624,bluefs_items=522,bluestore_alloc_bytes=230288,bluestore_alloc_items=28786,bluestore_cache_data_bytes=614400,bluestore_cache_data_items=41,bluestore_cache_onode_bytes=228288,bluestore_cache_onode_items=348,bluestore_cache_other_bytes=174158,bluestore_cache_other_items=18527,bluestore_fsck_bytes=0,bluestore_fsck_items=0,bluestore_txc_bytes=8272,bluestore_txc_items=11,bluestore_writing_bytes=0,bluestore_writing_deferred_bytes=670130,bluestore_writing_deferred_items=176,bluestore_writing_items=0,buffer_anon_bytes=2311664,buffer_anon_items=244,buffer_meta_bytes=5456,buffer_meta_items=62,mds_co_bytes=0,mds_co_items=0,osd_bytes=1920000,osd_items=150,osd_mapbl_bytes=155152,osd_mapbl_items=10,osd_pglog_bytes=3393520,osd_pglog_items=9128,osdmap_bytes=710892,osdmap_items=4426,osdmap_mapping_bytes=0,osdmap_mapping_items=0,pgmap_bytes=0,pgmap_items=0,unittest_1_bytes=0,unittest_1_items=0,unittest_2_bytes=0,unittest_2_items=0 1587117698000000000
-ceph,collection=osd,host=stefanosd1,id=2,type=osd agent_evict=0,agent_flush=0,agent_skip=0,agent_wake=0,cached_crc=0,cached_crc_adjusted=0,copyfrom=0,heartbeat_to_peers=7,loadavg=11,map_message_epoch_dups=37,map_message_epochs=56,map_messages=37,messages_delayed_for_map=0,missed_crc=0,numpg=150,numpg_primary=59,numpg_removing=0,numpg_replica=91,numpg_stray=0,object_ctx_cache_hit=705923,object_ctx_cache_total=705951,op=690584,op_before_dequeue_op_lat.avgcount=1155697,op_before_dequeue_op_lat.avgtime=0.000217926,op_before_dequeue_op_lat.sum=251.856487141,op_before_queue_op_lat.avgcount=1148445,op_before_queue_op_lat.avgtime=0.000039696,op_before_queue_op_lat.sum=45.589516462,op_cache_hit=0,op_in_bytes=0,op_latency.avgcount=690584,op_latency.avgtime=0.002488685,op_latency.sum=1718.646504654,op_out_bytes=1026000,op_prepare_latency.avgcount=698700,op_prepare_latency.avgtime=0.000300375,op_prepare_latency.sum=209.872029659,op_process_latency.avgcount=690584,op_process_latency.avgtime=0.00230742,op_process_latency.sum=1593.46739165,op_r=548020,op_r_latency.avgcount=548020,op_r_latency.avgtime=0.000298287,op_r_latency.sum=163.467760649,op_r_out_bytes=1026000,op_r_prepare_latency.avgcount=548020,op_r_prepare_latency.avgtime=0.000186359,op_r_prepare_latency.sum=102.128629183,op_r_process_latency.avgcount=548020,op_r_process_latency.avgtime=0.00012716,op_r_process_latency.sum=69.686468884,op_rw=142562,op_rw_in_bytes=0,op_rw_latency.avgcount=142562,op_rw_latency.avgtime=0.010908597,op_rw_latency.sum=1555.151525732,op_rw_out_bytes=0,op_rw_prepare_latency.avgcount=150678,op_rw_prepare_latency.avgtime=0.000715043,op_rw_prepare_latency.sum=107.741399304,op_rw_process_latency.avgcount=142562,op_rw_process_latency.avgtime=0.01068836,op_rw_process_latency.sum=1523.754107887,op_w=2,op_w_in_bytes=0,op_w_latency.avgcount=2,op_w_latency.avgtime=0.013609136,op_w_latency.sum=0.027218273,op_w_prepare_latency.avgcount=2,op_w_prepare_latency.avgtime=0.001000586,op_w_prepare_latency.sum=0.002001172,op_w_process_latency.avgcount=2,op_w_process_latency.avgtime=0.013407439,op_w_process_latency.sum=0.026814879,op_wip=0,osd_map_bl_cache_hit=15,osd_map_bl_cache_miss=41,osd_map_cache_hit=4241,osd_map_cache_miss=14,osd_map_cache_miss_low=0,osd_map_cache_miss_low_avg.avgcount=0,osd_map_cache_miss_low_avg.sum=0,osd_pg_biginfo=1824,osd_pg_fastinfo=285998,osd_pg_info=294869,osd_tier_flush_lat.avgcount=0,osd_tier_flush_lat.avgtime=0,osd_tier_flush_lat.sum=0,osd_tier_promote_lat.avgcount=0,osd_tier_promote_lat.avgtime=0,osd_tier_promote_lat.sum=0,osd_tier_r_lat.avgcount=0,osd_tier_r_lat.avgtime=0,osd_tier_r_lat.sum=0,pull=0,push=1,push_out_bytes=0,recovery_bytes=0,recovery_ops=0,stat_bytes=107369988096,stat_bytes_avail=106271932416,stat_bytes_used=1098055680,subop=134165,subop_in_bytes=89501237,subop_latency.avgcount=134165,subop_latency.avgtime=0.007313523,subop_latency.sum=981.218888627,subop_pull=0,subop_pull_latency.avgcount=0,subop_pull_latency.avgtime=0,subop_pull_latency.sum=0,subop_push=0,subop_push_in_bytes=0,subop_push_latency.avgcount=0,subop_push_latency.avgtime=0,subop_push_latency.sum=0,subop_w=134165,subop_w_in_bytes=89501237,subop_w_latency.avgcount=134165,subop_w_latency.avgtime=0.007313523,subop_w_latency.sum=981.218888627,tier_clean=0,tier_delay=0,tier_dirty=4,tier_evict=0,tier_flush=0,tier_flush_fail=0,tier_promote=0,tier_proxy_read=0,tier_proxy_write=0,tier_try_flush=0,tier_try_flush_fail=0,tier_whiteout=0 1587117698000000000
-ceph,collection=AsyncMessenger::Worker-1,host=stefanosd1,id=2,type=osd msgr_active_connections=746,msgr_created_connections=15212,msgr_recv_bytes=8633229006,msgr_recv_messages=4284202,msgr_running_fast_dispatch_time=153.820479102,msgr_running_recv_time=282.031655658,msgr_running_send_time=585.444749736,msgr_running_total_time=1231.431789242,msgr_send_bytes=11962769351,msgr_send_messages=4440622 1587117698000000000
-ceph,collection=throttle-msgr_dispatch_throttler-ms_objecter,host=stefanosd1,id=2,type=osd get=0,get_or_fail_fail=0,get_or_fail_success=0,get_started=0,get_sum=0,max=104857600,put=0,put_sum=0,take=0,take_sum=0,val=0,wait.avgcount=0,wait.avgtime=0,wait.sum=0 1587117698000000000
-ceph,collection=throttle-msgr_dispatch_throttler-hb_front_client,host=stefanosd1,id=2,type=osd get=2607136,get_or_fail_fail=0,get_or_fail_success=2607136,get_started=0,get_sum=5224700544,max=104857600,put=2607136,put_sum=5224700544,take=0,take_sum=0,val=0,wait.avgcount=0,wait.avgtime=0,wait.sum=0 1587117698000000000
-ceph,collection=bluefs,host=stefanosd1,id=2,type=osd bytes_written_slow=0,bytes_written_sst=9065815,bytes_written_wal=901884611,db_total_bytes=4294967296,db_used_bytes=546308096,files_written_sst=3,files_written_wal=2,gift_bytes=0,log_bytes=225726464,log_compactions=1,logged_bytes=1195945984,max_bytes_db=1234173952,max_bytes_slow=0,max_bytes_wal=0,num_files=11,reclaim_bytes=0,slow_total_bytes=0,slow_used_bytes=0,wal_total_bytes=0,wal_used_bytes=0 1587117698000000000
-ceph,collection=recoverystate_perf,host=stefanosd1,id=2,type=osd activating_latency.avgcount=88,activating_latency.avgtime=0.086149065,activating_latency.sum=7.581117751,active_latency.avgcount=29,active_latency.avgtime=1790.849396082,active_latency.sum=51934.632486379,backfilling_latency.avgcount=0,backfilling_latency.avgtime=0,backfilling_latency.sum=0,clean_latency.avgcount=29,clean_latency.avgtime=1790.754765195,clean_latency.sum=51931.888190683,down_latency.avgcount=0,down_latency.avgtime=0,down_latency.sum=0,getinfo_latency.avgcount=134,getinfo_latency.avgtime=0.427567953,getinfo_latency.sum=57.294105786,getlog_latency.avgcount=88,getlog_latency.avgtime=0.011810192,getlog_latency.sum=1.03929697,getmissing_latency.avgcount=88,getmissing_latency.avgtime=0.000104598,getmissing_latency.sum=0.009204673,incomplete_latency.avgcount=0,incomplete_latency.avgtime=0,incomplete_latency.sum=0,initial_latency.avgcount=150,initial_latency.avgtime=0.001251361,initial_latency.sum=0.187704197,notbackfilling_latency.avgcount=0,notbackfilling_latency.avgtime=0,notbackfilling_latency.sum=0,notrecovering_latency.avgcount=0,notrecovering_latency.avgtime=0,notrecovering_latency.sum=0,peering_latency.avgcount=134,peering_latency.avgtime=0.998405763,peering_latency.sum=133.786372331,primary_latency.avgcount=75,primary_latency.avgtime=693.473306562,primary_latency.sum=52010.497992212,recovered_latency.avgcount=88,recovered_latency.avgtime=0.000609715,recovered_latency.sum=0.053654964,recovering_latency.avgcount=1,recovering_latency.avgtime=0.100713031,recovering_latency.sum=0.100713031,replicaactive_latency.avgcount=21,replicaactive_latency.avgtime=1790.852354921,replicaactive_latency.sum=37607.89945336,repnotrecovering_latency.avgcount=21,repnotrecovering_latency.avgtime=1790.852315529,repnotrecovering_latency.sum=37607.898626121,reprecovering_latency.avgcount=0,reprecovering_latency.avgtime=0,reprecovering_latency.sum=0,repwaitbackfillreserved_latency.avgcount=0,repwaitbackfillreserved_latency.avgtime=0,repwaitbackfillreserved_latency.sum=0,repwaitrecoveryreserved_latency.avgcount=0,repwaitrecoveryreserved_latency.avgtime=0,repwaitrecoveryreserved_latency.sum=0,reset_latency.avgcount=346,reset_latency.avgtime=0.126826803,reset_latency.sum=43.882073917,start_latency.avgcount=346,start_latency.avgtime=0.000233277,start_latency.sum=0.080713962,started_latency.avgcount=196,started_latency.avgtime=457.885378797,started_latency.sum=89745.534244237,stray_latency.avgcount=212,stray_latency.avgtime=1.013774396,stray_latency.sum=214.920172121,waitactingchange_latency.avgcount=0,waitactingchange_latency.avgtime=0,waitactingchange_latency.sum=0,waitlocalbackfillreserved_latency.avgcount=0,waitlocalbackfillreserved_latency.avgtime=0,waitlocalbackfillreserved_latency.sum=0,waitlocalrecoveryreserved_latency.avgcount=1,waitlocalrecoveryreserved_latency.avgtime=0.001572379,waitlocalrecoveryreserved_latency.sum=0.001572379,waitremotebackfillreserved_latency.avgcount=0,waitremotebackfillreserved_latency.avgtime=0,waitremotebackfillreserved_latency.sum=0,waitremoterecoveryreserved_latency.avgcount=1,waitremoterecoveryreserved_latency.avgtime=0.012729633,waitremoterecoveryreserved_latency.sum=0.012729633,waitupthru_latency.avgcount=88,waitupthru_latency.avgtime=0.857137729,waitupthru_latency.sum=75.428120205 1587117698000000000
-ceph,collection=throttle-objecter_ops,host=stefanosd1,id=2,type=osd get=0,get_or_fail_fail=0,get_or_fail_success=0,get_started=0,get_sum=0,max=1024,put=0,put_sum=0,take=0,take_sum=0,val=0,wait.avgcount=0,wait.avgtime=0,wait.sum=0 1587117698000000000
-ceph,collection=bluestore,host=stefanosd1,id=2,type=osd bluestore_allocated=24248320,bluestore_blob_split=0,bluestore_blobs=83,bluestore_buffer_bytes=614400,bluestore_buffer_hit_bytes=161362,bluestore_buffer_miss_bytes=534799,bluestore_buffers=41,bluestore_compressed=0,bluestore_compressed_allocated=0,bluestore_compressed_original=0,bluestore_extent_compress=0,bluestore_extents=83,bluestore_fragmentation_micros=1,bluestore_gc_merged=0,bluestore_onode_hits=723852,bluestore_onode_misses=364,bluestore_onode_reshard=0,bluestore_onode_shard_hits=0,bluestore_onode_shard_misses=0,bluestore_onodes=348,bluestore_read_eio=0,bluestore_reads_with_retries=0,bluestore_stored=1984402,bluestore_txc=295997,bluestore_write_big=0,bluestore_write_big_blobs=0,bluestore_write_big_bytes=0,bluestore_write_small=60,bluestore_write_small_bytes=343843,bluestore_write_small_deferred=22,bluestore_write_small_new=38,bluestore_write_small_pre_read=22,bluestore_write_small_unused=0,commit_lat.avgcount=295997,commit_lat.avgtime=0.006994931,commit_lat.sum=2070.478673619,compress_lat.avgcount=0,compress_lat.avgtime=0,compress_lat.sum=0,compress_rejected_count=0,compress_success_count=0,csum_lat.avgcount=47,csum_lat.avgtime=0.000034434,csum_lat.sum=0.001618423,decompress_lat.avgcount=0,decompress_lat.avgtime=0,decompress_lat.sum=0,deferred_write_bytes=0,deferred_write_ops=0,kv_commit_lat.avgcount=291889,kv_commit_lat.avgtime=0.006347015,kv_commit_lat.sum=1852.624108527,kv_final_lat.avgcount=291885,kv_final_lat.avgtime=0.00004358,kv_final_lat.sum=12.720529751,kv_flush_lat.avgcount=291889,kv_flush_lat.avgtime=0.000000211,kv_flush_lat.sum=0.061636079,kv_sync_lat.avgcount=291889,kv_sync_lat.avgtime=0.006347227,kv_sync_lat.sum=1852.685744606,omap_lower_bound_lat.avgcount=1,omap_lower_bound_lat.avgtime=0.000004482,omap_lower_bound_lat.sum=0.000004482,omap_next_lat.avgcount=6933,omap_next_lat.avgtime=0.000003956,omap_next_lat.sum=0.027427456,omap_seek_to_first_lat.avgcount=309,omap_seek_to_first_lat.avgtime=0.000005879,omap_seek_to_first_lat.sum=0.001816658,omap_upper_bound_lat.avgcount=0,omap_upper_bound_lat.avgtime=0,omap_upper_bound_lat.sum=0,read_lat.avgcount=229,read_lat.avgtime=0.000394981,read_lat.sum=0.090450704,read_onode_meta_lat.avgcount=295,read_onode_meta_lat.avgtime=0.000016832,read_onode_meta_lat.sum=0.004965516,read_wait_aio_lat.avgcount=66,read_wait_aio_lat.avgtime=0.001237841,read_wait_aio_lat.sum=0.081697561,state_aio_wait_lat.avgcount=295997,state_aio_wait_lat.avgtime=0.000000357,state_aio_wait_lat.sum=0.105827433,state_deferred_aio_wait_lat.avgcount=0,state_deferred_aio_wait_lat.avgtime=0,state_deferred_aio_wait_lat.sum=0,state_deferred_cleanup_lat.avgcount=0,state_deferred_cleanup_lat.avgtime=0,state_deferred_cleanup_lat.sum=0,state_deferred_queued_lat.avgcount=0,state_deferred_queued_lat.avgtime=0,state_deferred_queued_lat.sum=0,state_done_lat.avgcount=295986,state_done_lat.avgtime=0.000003017,state_done_lat.sum=0.893199127,state_finishing_lat.avgcount=295986,state_finishing_lat.avgtime=0.000000306,state_finishing_lat.sum=0.090792683,state_io_done_lat.avgcount=295997,state_io_done_lat.avgtime=0.000001066,state_io_done_lat.sum=0.315577655,state_kv_commiting_lat.avgcount=295997,state_kv_commiting_lat.avgtime=0.006423586,state_kv_commiting_lat.sum=1901.362268572,state_kv_done_lat.avgcount=295997,state_kv_done_lat.avgtime=0.00000155,state_kv_done_lat.sum=0.458963064,state_kv_queued_lat.avgcount=295997,state_kv_queued_lat.avgtime=0.000477234,state_kv_queued_lat.sum=141.260101773,state_prepare_lat.avgcount=295997,state_prepare_lat.avgtime=0.000091806,state_prepare_lat.sum=27.174436583,submit_lat.avgcount=295997,submit_lat.avgtime=0.000135729,submit_lat.sum=40.17557682,throttle_lat.avgcount=295997,throttle_lat.avgtime=0.000002734,throttle_lat.sum=0.809479837,write_pad_bytes=151773,write_penalty_read_ops=0 1587117698000000000
-ceph,collection=throttle-bluestore_throttle_bytes,host=stefanosd1,id=2,type=osd get=295997,get_or_fail_fail=0,get_or_fail_success=0,get_started=295997,get_sum=198686579299,max=67108864,put=291889,put_sum=198686579299,take=0,take_sum=0,val=0,wait.avgcount=83,wait.avgtime=0.003670612,wait.sum=0.304660858 1587117698000000000
-ceph,collection=throttle-msgr_dispatch_throttler-cluster,host=stefanosd1,id=2,type=osd get=452060,get_or_fail_fail=0,get_or_fail_success=452060,get_started=0,get_sum=269934345,max=104857600,put=452060,put_sum=269934345,take=0,take_sum=0,val=0,wait.avgcount=0,wait.avgtime=0,wait.sum=0 1587117698000000000
-ceph,collection=throttle-bluestore_throttle_deferred_bytes,host=stefanosd1,id=2,type=osd get=11,get_or_fail_fail=0,get_or_fail_success=11,get_started=0,get_sum=7723117,max=201326592,put=0,put_sum=0,take=0,take_sum=0,val=7723117,wait.avgcount=0,wait.avgtime=0,wait.sum=0 1587117698000000000
-ceph,collection=throttle-msgr_dispatch_throttler-hb_front_server,host=stefanosd1,id=2,type=osd get=2607433,get_or_fail_fail=0,get_or_fail_success=2607433,get_started=0,get_sum=5225295732,max=104857600,put=2607433,put_sum=5225295732,take=0,take_sum=0,val=0,wait.avgcount=0,wait.avgtime=0,wait.sum=0 1587117698000000000
-ceph,collection=finisher-objecter-finisher-0,host=stefanosd1,id=2,type=osd complete_latency.avgcount=0,complete_latency.avgtime=0,complete_latency.sum=0,queue_len=0 1587117698000000000
-ceph,collection=cct,host=stefanosd1,id=2,type=osd total_workers=6,unhealthy_workers=0 1587117698000000000
-ceph,collection=AsyncMessenger::Worker-2,host=stefanosd1,id=2,type=osd msgr_active_connections=670,msgr_created_connections=13455,msgr_recv_bytes=6334605563,msgr_recv_messages=3287843,msgr_running_fast_dispatch_time=137.016615819,msgr_running_recv_time=240.687997039,msgr_running_send_time=471.710658466,msgr_running_total_time=1034.029109337,msgr_send_bytes=9753423475,msgr_send_messages=3439611 1587117698000000000
-ceph,collection=throttle-msgr_dispatch_throttler-client,host=stefanosd1,id=2,type=osd get=710355,get_or_fail_fail=0,get_or_fail_success=710355,get_started=0,get_sum=166306283,max=104857600,put=710355,put_sum=166306283,take=0,take_sum=0,val=0,wait.avgcount=0,wait.avgtime=0,wait.sum=0 1587117698000000000
-ceph,collection=throttle-msgr_dispatch_throttler-hb_back_server,host=stefanosd1,id=2,type=osd get=2607433,get_or_fail_fail=0,get_or_fail_success=2607433,get_started=0,get_sum=5225295732,max=104857600,put=2607433,put_sum=5225295732,take=0,take_sum=0,val=0,wait.avgcount=0,wait.avgtime=0,wait.sum=0 1587117698000000000
-ceph,collection=AsyncMessenger::Worker-0,host=stefanosd1,id=2,type=osd msgr_active_connections=705,msgr_created_connections=17953,msgr_recv_bytes=7261438733,msgr_recv_messages=4496034,msgr_running_fast_dispatch_time=254.716476808,msgr_running_recv_time=272.196741555,msgr_running_send_time=571.102924903,msgr_running_total_time=1338.461077493,msgr_send_bytes=10772250508,msgr_send_messages=4192781 1587117698000000000
-ceph,collection=rocksdb,host=stefanosd1,id=2,type=osd compact=0,compact_queue_len=0,compact_queue_merge=0,compact_range=0,get=1424,get_latency.avgcount=1424,get_latency.avgtime=0.000030752,get_latency.sum=0.043792142,rocksdb_write_delay_time.avgcount=0,rocksdb_write_delay_time.avgtime=0,rocksdb_write_delay_time.sum=0,rocksdb_write_memtable_time.avgcount=0,rocksdb_write_memtable_time.avgtime=0,rocksdb_write_memtable_time.sum=0,rocksdb_write_pre_and_post_time.avgcount=0,rocksdb_write_pre_and_post_time.avgtime=0,rocksdb_write_pre_and_post_time.sum=0,rocksdb_write_wal_time.avgcount=0,rocksdb_write_wal_time.avgtime=0,rocksdb_write_wal_time.sum=0,submit_latency.avgcount=295997,submit_latency.avgtime=0.000173137,submit_latency.sum=51.248072285,submit_sync_latency.avgcount=291889,submit_sync_latency.avgtime=0.006094397,submit_sync_latency.sum=1778.887521449,submit_transaction=295997,submit_transaction_sync=291889 1587117698000000000
-ceph,collection=throttle-osd_client_bytes,host=stefanosd1,id=2,type=osd get=698701,get_or_fail_fail=0,get_or_fail_success=698701,get_started=0,get_sum=165630172,max=524288000,put=920880,put_sum=165630172,take=0,take_sum=0,val=0,wait.avgcount=0,wait.avgtime=0,wait.sum=0 1587117698000000000
-ceph,collection=mds_sessions,host=stefanmds1,id=stefanmds1,type=mds average_load=0,avg_session_uptime=0,session_add=0,session_count=0,session_remove=0,sessions_open=0,sessions_stale=0,total_load=0 1587117476000000000
-ceph,collection=mempool,host=stefanmds1,id=stefanmds1,type=mds bloom_filter_bytes=0,bloom_filter_items=0,bluefs_bytes=0,bluefs_items=0,bluestore_alloc_bytes=0,bluestore_alloc_items=0,bluestore_cache_data_bytes=0,bluestore_cache_data_items=0,bluestore_cache_onode_bytes=0,bluestore_cache_onode_items=0,bluestore_cache_other_bytes=0,bluestore_cache_other_items=0,bluestore_fsck_bytes=0,bluestore_fsck_items=0,bluestore_txc_bytes=0,bluestore_txc_items=0,bluestore_writing_bytes=0,bluestore_writing_deferred_bytes=0,bluestore_writing_deferred_items=0,bluestore_writing_items=0,buffer_anon_bytes=132069,buffer_anon_items=82,buffer_meta_bytes=0,buffer_meta_items=0,mds_co_bytes=44208,mds_co_items=154,osd_bytes=0,osd_items=0,osd_mapbl_bytes=0,osd_mapbl_items=0,osd_pglog_bytes=0,osd_pglog_items=0,osdmap_bytes=16952,osdmap_items=139,osdmap_mapping_bytes=0,osdmap_mapping_items=0,pgmap_bytes=0,pgmap_items=0,unittest_1_bytes=0,unittest_1_items=0,unittest_2_bytes=0,unittest_2_items=0 1587117476000000000
-ceph,collection=objecter,host=stefanmds1,id=stefanmds1,type=mds command_active=0,command_resend=0,command_send=0,linger_active=0,linger_ping=0,linger_resend=0,linger_send=0,map_epoch=203,map_full=0,map_inc=1,omap_del=0,omap_rd=28,omap_wr=1,op=33,op_active=0,op_laggy=0,op_pg=0,op_r=26,op_reply=33,op_resend=2,op_rmw=0,op_send=35,op_send_bytes=364,op_w=7,osd_laggy=0,osd_session_close=91462,osd_session_open=91468,osd_sessions=6,osdop_append=0,osdop_call=0,osdop_clonerange=0,osdop_cmpxattr=0,osdop_create=0,osdop_delete=5,osdop_getxattr=14,osdop_mapext=0,osdop_notify=0,osdop_other=0,osdop_pgls=0,osdop_pgls_filter=0,osdop_read=8,osdop_resetxattrs=0,osdop_rmxattr=0,osdop_setxattr=0,osdop_sparse_read=0,osdop_src_cmpxattr=0,osdop_stat=2,osdop_truncate=0,osdop_watch=0,osdop_write=0,osdop_writefull=0,osdop_writesame=0,osdop_zero=1,poolop_active=0,poolop_resend=0,poolop_send=0,poolstat_active=0,poolstat_resend=0,poolstat_send=0,statfs_active=0,statfs_resend=0,statfs_send=0 1587117476000000000
-ceph,collection=cct,host=stefanmds1,id=stefanmds1,type=mds total_workers=1,unhealthy_workers=0 1587117476000000000
-ceph,collection=mds_server,host=stefanmds1,id=stefanmds1,type=mds cap_revoke_eviction=0,dispatch_client_request=0,dispatch_server_request=0,handle_client_request=0,handle_client_session=0,handle_slave_request=0,req_create_latency.avgcount=0,req_create_latency.avgtime=0,req_create_latency.sum=0,req_getattr_latency.avgcount=0,req_getattr_latency.avgtime=0,req_getattr_latency.sum=0,req_getfilelock_latency.avgcount=0,req_getfilelock_latency.avgtime=0,req_getfilelock_latency.sum=0,req_link_latency.avgcount=0,req_link_latency.avgtime=0,req_link_latency.sum=0,req_lookup_latency.avgcount=0,req_lookup_latency.avgtime=0,req_lookup_latency.sum=0,req_lookuphash_latency.avgcount=0,req_lookuphash_latency.avgtime=0,req_lookuphash_latency.sum=0,req_lookupino_latency.avgcount=0,req_lookupino_latency.avgtime=0,req_lookupino_latency.sum=0,req_lookupname_latency.avgcount=0,req_lookupname_latency.avgtime=0,req_lookupname_latency.sum=0,req_lookupparent_latency.avgcount=0,req_lookupparent_latency.avgtime=0,req_lookupparent_latency.sum=0,req_lookupsnap_latency.avgcount=0,req_lookupsnap_latency.avgtime=0,req_lookupsnap_latency.sum=0,req_lssnap_latency.avgcount=0,req_lssnap_latency.avgtime=0,req_lssnap_latency.sum=0,req_mkdir_latency.avgcount=0,req_mkdir_latency.avgtime=0,req_mkdir_latency.sum=0,req_mknod_latency.avgcount=0,req_mknod_latency.avgtime=0,req_mknod_latency.sum=0,req_mksnap_latency.avgcount=0,req_mksnap_latency.avgtime=0,req_mksnap_latency.sum=0,req_open_latency.avgcount=0,req_open_latency.avgtime=0,req_open_latency.sum=0,req_readdir_latency.avgcount=0,req_readdir_latency.avgtime=0,req_readdir_latency.sum=0,req_rename_latency.avgcount=0,req_rename_latency.avgtime=0,req_rename_latency.sum=0,req_renamesnap_latency.avgcount=0,req_renamesnap_latency.avgtime=0,req_renamesnap_latency.sum=0,req_rmdir_latency.avgcount=0,req_rmdir_latency.avgtime=0,req_rmdir_latency.sum=0,req_rmsnap_latency.avgcount=0,req_rmsnap_latency.avgtime=0,req_rmsnap_latency.sum=0,req_rmxattr_latency.avgcount=0,req_rmxattr_latency.avgtime=0,req_rmxattr_latency.sum=0,req_setattr_latency.avgcount=0,req_setattr_latency.avgtime=0,req_setattr_latency.sum=0,req_setdirlayout_latency.avgcount=0,req_setdirlayout_latency.avgtime=0,req_setdirlayout_latency.sum=0,req_setfilelock_latency.avgcount=0,req_setfilelock_latency.avgtime=0,req_setfilelock_latency.sum=0,req_setlayout_latency.avgcount=0,req_setlayout_latency.avgtime=0,req_setlayout_latency.sum=0,req_setxattr_latency.avgcount=0,req_setxattr_latency.avgtime=0,req_setxattr_latency.sum=0,req_symlink_latency.avgcount=0,req_symlink_latency.avgtime=0,req_symlink_latency.sum=0,req_unlink_latency.avgcount=0,req_unlink_latency.avgtime=0,req_unlink_latency.sum=0 1587117476000000000
-ceph,collection=AsyncMessenger::Worker-2,host=stefanmds1,id=stefanmds1,type=mds msgr_active_connections=84,msgr_created_connections=68511,msgr_recv_bytes=238078,msgr_recv_messages=2655,msgr_running_fast_dispatch_time=0.004247777,msgr_running_recv_time=25.369012545,msgr_running_send_time=3.743427461,msgr_running_total_time=130.277111559,msgr_send_bytes=172767043,msgr_send_messages=18172 1587117476000000000
-ceph,collection=mds_log,host=stefanmds1,id=stefanmds1,type=mds ev=0,evadd=0,evex=0,evexd=0,evexg=0,evtrm=0,expos=4194304,jlat.avgcount=0,jlat.avgtime=0,jlat.sum=0,rdpos=4194304,replayed=1,seg=1,segadd=0,segex=0,segexd=0,segexg=0,segtrm=0,wrpos=0 1587117476000000000
-ceph,collection=AsyncMessenger::Worker-0,host=stefanmds1,id=stefanmds1,type=mds msgr_active_connections=595,msgr_created_connections=943825,msgr_recv_bytes=78618003,msgr_recv_messages=914080,msgr_running_fast_dispatch_time=0.001544386,msgr_running_recv_time=459.627068807,msgr_running_send_time=469.337032316,msgr_running_total_time=2744.084305898,msgr_send_bytes=61684163658,msgr_send_messages=1858008 1587117476000000000
-ceph,collection=throttle-msgr_dispatch_throttler-mds,host=stefanmds1,id=stefanmds1,type=mds get=1216458,get_or_fail_fail=0,get_or_fail_success=1216458,get_started=0,get_sum=51976882,max=104857600,put=1216458,put_sum=51976882,take=0,take_sum=0,val=0,wait.avgcount=0,wait.avgtime=0,wait.sum=0 1587117476000000000
-ceph,collection=AsyncMessenger::Worker-1,host=stefanmds1,id=stefanmds1,type=mds msgr_active_connections=226,msgr_created_connections=42679,msgr_recv_bytes=63140151,msgr_recv_messages=299727,msgr_running_fast_dispatch_time=26.316138629,msgr_running_recv_time=36.969916165,msgr_running_send_time=70.457421128,msgr_running_total_time=226.230019936,msgr_send_bytes=193154464,msgr_send_messages=310481 1587117476000000000
-ceph,collection=mds,host=stefanmds1,id=stefanmds1,type=mds caps=0,dir_commit=0,dir_fetch=12,dir_merge=0,dir_split=0,exported=0,exported_inodes=0,forward=0,imported=0,imported_inodes=0,inode_max=2147483647,inodes=10,inodes_bottom=3,inodes_expired=0,inodes_pin_tail=0,inodes_pinned=10,inodes_top=7,inodes_with_caps=0,load_cent=0,openino_backtrace_fetch=0,openino_dir_fetch=0,openino_peer_discover=0,q=0,reply=0,reply_latency.avgcount=0,reply_latency.avgtime=0,reply_latency.sum=0,request=0,subtrees=2,traverse=0,traverse_dir_fetch=0,traverse_discover=0,traverse_forward=0,traverse_hit=0,traverse_lock=0,traverse_remote_ino=0 1587117476000000000
-ceph,collection=purge_queue,host=stefanmds1,id=stefanmds1,type=mds pq_executed=0,pq_executing=0,pq_executing_ops=0 1587117476000000000
-ceph,collection=throttle-write_buf_throttle,host=stefanmds1,id=stefanmds1,type=mds get=0,get_or_fail_fail=0,get_or_fail_success=0,get_started=0,get_sum=0,max=3758096384,put=0,put_sum=0,take=0,take_sum=0,val=0,wait.avgcount=0,wait.avgtime=0,wait.sum=0 1587117476000000000
-ceph,collection=throttle-write_buf_throttle-0x5624e9377f40,host=stefanmds1,id=stefanmds1,type=mds get=0,get_or_fail_fail=0,get_or_fail_success=0,get_started=0,get_sum=0,max=3758096384,put=0,put_sum=0,take=0,take_sum=0,val=0,wait.avgcount=0,wait.avgtime=0,wait.sum=0 1587117476000000000
-ceph,collection=mds_cache,host=stefanmds1,id=stefanmds1,type=mds ireq_enqueue_scrub=0,ireq_exportdir=0,ireq_flush=0,ireq_fragmentdir=0,ireq_fragstats=0,ireq_inodestats=0,num_recovering_enqueued=0,num_recovering_prioritized=0,num_recovering_processing=0,num_strays=0,num_strays_delayed=0,num_strays_enqueuing=0,recovery_completed=0,recovery_started=0,strays_created=0,strays_enqueued=0,strays_migrated=0,strays_reintegrated=0 1587117476000000000
-ceph,collection=throttle-objecter_bytes,host=stefanmds1,id=stefanmds1,type=mds get=0,get_or_fail_fail=0,get_or_fail_success=0,get_started=0,get_sum=0,max=104857600,put=16,put_sum=1016,take=33,take_sum=1016,val=0,wait.avgcount=0,wait.avgtime=0,wait.sum=0 1587117476000000000
-ceph,collection=throttle-objecter_ops,host=stefanmds1,id=stefanmds1,type=mds get=0,get_or_fail_fail=0,get_or_fail_success=0,get_started=0,get_sum=0,max=1024,put=33,put_sum=33,take=33,take_sum=33,val=0,wait.avgcount=0,wait.avgtime=0,wait.sum=0 1587117476000000000
-ceph,collection=mds_mem,host=stefanmds1,id=stefanmds1,type=mds cap=0,cap+=0,cap-=0,dir=12,dir+=12,dir-=0,dn=10,dn+=10,dn-=0,heap=322284,ino=13,ino+=13,ino-=0,rss=76032 1587117476000000000
-ceph,collection=finisher-PurgeQueue,host=stefanmds1,id=stefanmds1,type=mds complete_latency.avgcount=4,complete_latency.avgtime=0.000176985,complete_latency.sum=0.000707941,queue_len=0 1587117476000000000
-ceph,collection=cct,host=stefanrgw1,id=rgw.stefanrgw1.4219.94113851143184,type=rgw total_workers=0,unhealthy_workers=0 1587117156000000000
-ceph,collection=throttle-objecter_bytes,host=stefanrgw1,id=rgw.stefanrgw1.4219.94113851143184,type=rgw get=791732,get_or_fail_fail=0,get_or_fail_success=791732,get_started=0,get_sum=0,max=104857600,put=0,put_sum=0,take=0,take_sum=0,val=0,wait.avgcount=0,wait.avgtime=0,wait.sum=0 1587117156000000000
-ceph,collection=rgw,host=stefanrgw1,id=rgw.stefanrgw1.4219.94113851143184,type=rgw cache_hit=0,cache_miss=791706,failed_req=0,get=0,get_b=0,get_initial_lat.avgcount=0,get_initial_lat.avgtime=0,get_initial_lat.sum=0,keystone_token_cache_hit=0,keystone_token_cache_miss=0,pubsub_event_lost=0,pubsub_event_triggered=0,pubsub_events=0,pubsub_push_failed=0,pubsub_push_ok=0,pubsub_push_pending=0,pubsub_store_fail=0,pubsub_store_ok=0,put=0,put_b=0,put_initial_lat.avgcount=0,put_initial_lat.avgtime=0,put_initial_lat.sum=0,qactive=0,qlen=0,req=791705 1587117156000000000
-ceph,collection=throttle-msgr_dispatch_throttler-radosclient,host=stefanrgw1,id=rgw.stefanrgw1.4219.94113851143184,type=rgw get=2697988,get_or_fail_fail=0,get_or_fail_success=2697988,get_started=0,get_sum=444563051,max=104857600,put=2697988,put_sum=444563051,take=0,take_sum=0,val=0,wait.avgcount=0,wait.avgtime=0,wait.sum=0 1587117156000000000
-ceph,collection=finisher-radosclient,host=stefanrgw1,id=rgw.stefanrgw1.4219.94113851143184,type=rgw complete_latency.avgcount=2,complete_latency.avgtime=0.003530161,complete_latency.sum=0.007060323,queue_len=0 1587117156000000000
-ceph,collection=throttle-rgw_async_rados_ops,host=stefanrgw1,id=rgw.stefanrgw1.4219.94113851143184,type=rgw get=0,get_or_fail_fail=0,get_or_fail_success=0,get_started=0,get_sum=0,max=64,put=0,put_sum=0,take=0,take_sum=0,val=0,wait.avgcount=0,wait.avgtime=0,wait.sum=0 1587117156000000000
-ceph,collection=throttle-objecter_ops,host=stefanrgw1,id=rgw.stefanrgw1.4219.94113851143184,type=rgw get=791732,get_or_fail_fail=0,get_or_fail_success=791732,get_started=0,get_sum=791732,max=24576,put=791732,put_sum=791732,take=0,take_sum=0,val=0,wait.avgcount=0,wait.avgtime=0,wait.sum=0 1587117156000000000
-ceph,collection=throttle-objecter_bytes-0x5598969981c0,host=stefanrgw1,id=rgw.stefanrgw1.4219.94113851143184,type=rgw get=1637900,get_or_fail_fail=0,get_or_fail_success=1637900,get_started=0,get_sum=0,max=104857600,put=0,put_sum=0,take=0,take_sum=0,val=0,wait.avgcount=0,wait.avgtime=0,wait.sum=0 1587117156000000000
-ceph,collection=objecter,host=stefanrgw1,id=rgw.stefanrgw1.4219.94113851143184,type=rgw command_active=0,command_resend=0,command_send=0,linger_active=8,linger_ping=1905736,linger_resend=4,linger_send=13,map_epoch=203,map_full=0,map_inc=17,omap_del=0,omap_rd=0,omap_wr=0,op=2697488,op_active=0,op_laggy=0,op_pg=0,op_r=791730,op_reply=2697476,op_resend=1,op_rmw=0,op_send=2697490,op_send_bytes=362,op_w=1905758,osd_laggy=5,osd_session_close=59558,osd_session_open=59566,osd_sessions=8,osdop_append=0,osdop_call=1,osdop_clonerange=0,osdop_cmpxattr=0,osdop_create=8,osdop_delete=0,osdop_getxattr=0,osdop_mapext=0,osdop_notify=0,osdop_other=791714,osdop_pgls=0,osdop_pgls_filter=0,osdop_read=16,osdop_resetxattrs=0,osdop_rmxattr=0,osdop_setxattr=0,osdop_sparse_read=0,osdop_src_cmpxattr=0,osdop_stat=791706,osdop_truncate=0,osdop_watch=1905750,osdop_write=0,osdop_writefull=0,osdop_writesame=0,osdop_zero=0,poolop_active=0,poolop_resend=0,poolop_send=0,poolstat_active=0,poolstat_resend=0,poolstat_send=0,statfs_active=0,statfs_resend=0,statfs_send=0 1587117156000000000
-ceph,collection=AsyncMessenger::Worker-2,host=stefanrgw1,id=rgw.stefanrgw1.4219.94113851143184,type=rgw msgr_active_connections=11,msgr_created_connections=59839,msgr_recv_bytes=342697143,msgr_recv_messages=1441603,msgr_running_fast_dispatch_time=161.807937536,msgr_running_recv_time=118.174064257,msgr_running_send_time=207.679154333,msgr_running_total_time=698.527662129,msgr_send_bytes=530785909,msgr_send_messages=1679950 1587117156000000000
-ceph,collection=mempool,host=stefanrgw1,id=rgw.stefanrgw1.4219.94113851143184,type=rgw bloom_filter_bytes=0,bloom_filter_items=0,bluefs_bytes=0,bluefs_items=0,bluestore_alloc_bytes=0,bluestore_alloc_items=0,bluestore_cache_data_bytes=0,bluestore_cache_data_items=0,bluestore_cache_onode_bytes=0,bluestore_cache_onode_items=0,bluestore_cache_other_bytes=0,bluestore_cache_other_items=0,bluestore_fsck_bytes=0,bluestore_fsck_items=0,bluestore_txc_bytes=0,bluestore_txc_items=0,bluestore_writing_bytes=0,bluestore_writing_deferred_bytes=0,bluestore_writing_deferred_items=0,bluestore_writing_items=0,buffer_anon_bytes=225471,buffer_anon_items=163,buffer_meta_bytes=0,buffer_meta_items=0,mds_co_bytes=0,mds_co_items=0,osd_bytes=0,osd_items=0,osd_mapbl_bytes=0,osd_mapbl_items=0,osd_pglog_bytes=0,osd_pglog_items=0,osdmap_bytes=33904,osdmap_items=278,osdmap_mapping_bytes=0,osdmap_mapping_items=0,pgmap_bytes=0,pgmap_items=0,unittest_1_bytes=0,unittest_1_items=0,unittest_2_bytes=0,unittest_2_items=0 1587117156000000000
-ceph,collection=throttle-msgr_dispatch_throttler-radosclient-0x559896998120,host=stefanrgw1,id=rgw.stefanrgw1.4219.94113851143184,type=rgw get=1652935,get_or_fail_fail=0,get_or_fail_success=1652935,get_started=0,get_sum=276333029,max=104857600,put=1652935,put_sum=276333029,take=0,take_sum=0,val=0,wait.avgcount=0,wait.avgtime=0,wait.sum=0 1587117156000000000
-ceph,collection=AsyncMessenger::Worker-1,host=stefanrgw1,id=rgw.stefanrgw1.4219.94113851143184,type=rgw msgr_active_connections=17,msgr_created_connections=84859,msgr_recv_bytes=211170759,msgr_recv_messages=922646,msgr_running_fast_dispatch_time=31.487443762,msgr_running_recv_time=83.190789333,msgr_running_send_time=174.670510496,msgr_running_total_time=484.22086275,msgr_send_bytes=1322113179,msgr_send_messages=1636839 1587117156000000000
-ceph,collection=finisher-radosclient-0x559896998080,host=stefanrgw1,id=rgw.stefanrgw1.4219.94113851143184,type=rgw complete_latency.avgcount=0,complete_latency.avgtime=0,complete_latency.sum=0,queue_len=0 1587117156000000000
-ceph,collection=throttle-objecter_ops-0x559896997b80,host=stefanrgw1,id=rgw.stefanrgw1.4219.94113851143184,type=rgw get=1637900,get_or_fail_fail=0,get_or_fail_success=1637900,get_started=0,get_sum=1637900,max=24576,put=1637900,put_sum=1637900,take=0,take_sum=0,val=0,wait.avgcount=0,wait.avgtime=0,wait.sum=0 1587117156000000000
-ceph,collection=AsyncMessenger::Worker-0,host=stefanrgw1,id=rgw.stefanrgw1.4219.94113851143184,type=rgw msgr_active_connections=18,msgr_created_connections=74757,msgr_recv_bytes=489001094,msgr_recv_messages=1986686,msgr_running_fast_dispatch_time=168.60950961,msgr_running_recv_time=142.903031533,msgr_running_send_time=267.911165712,msgr_running_total_time=824.885614951,msgr_send_bytes=707973504,msgr_send_messages=2463727 1587117156000000000
-ceph,collection=objecter-0x559896997720,host=stefanrgw1,id=rgw.stefanrgw1.4219.94113851143184,type=rgw command_active=0,command_resend=0,command_send=0,linger_active=0,linger_ping=0,linger_resend=0,linger_send=0,map_epoch=203,map_full=0,map_inc=8,omap_del=0,omap_rd=0,omap_wr=0,op=1637998,op_active=0,op_laggy=0,op_pg=0,op_r=1062803,op_reply=1637998,op_resend=15,op_rmw=0,op_send=1638013,op_send_bytes=63321099,op_w=575195,osd_laggy=0,osd_session_close=125555,osd_session_open=125563,osd_sessions=8,osdop_append=0,osdop_call=1637886,osdop_clonerange=0,osdop_cmpxattr=0,osdop_create=0,osdop_delete=0,osdop_getxattr=0,osdop_mapext=0,osdop_notify=0,osdop_other=112,osdop_pgls=0,osdop_pgls_filter=0,osdop_read=0,osdop_resetxattrs=0,osdop_rmxattr=0,osdop_setxattr=0,osdop_sparse_read=0,osdop_src_cmpxattr=0,osdop_stat=0,osdop_truncate=0,osdop_watch=0,osdop_write=0,osdop_writefull=0,osdop_writesame=0,osdop_zero=0,poolop_active=0,poolop_resend=0,poolop_send=0,poolstat_active=0,poolstat_resend=0,poolstat_send=0,statfs_active=0,statfs_resend=0,statfs_send=0 1587117156000000000
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
-

Was this page helpful?

-
- - - -
-
-

Thank you for your feedback!

-
-
-
-
-
-
- - - - -
-
- - -
-
- - - - - - - - - - - - - - - - - - - - - - -
-
- -
- - - - - - - - - - - - - -
- - - -
- -
-
-
- -

New in InfluxDB 3.8

-
- -
-

Key enhancements in InfluxDB 3.8 and the InfluxDB 3 Explorer 1.6.

-

See the Blog Post

- -
- - -
-

InfluxDB 3.8 is now available for both Core and Enterprise, alongside the -1.6 release of the InfluxDB 3 Explorer UI. This release is focused on -operational maturity and making InfluxDB easier to deploy, manage, and run -reliably in production.

-

For more information, check out:

- - -
- - -
- -
-
-
- -

InfluxDB Docker latest tag changing to InfluxDB 3 Core

-
- -
- On May 27, 2026, the latest tag for InfluxDB Docker images will -point to InfluxDB 3 Core. To avoid unexpected upgrades, use specific version -tags in your Docker deployments. -
- - -
-

If using Docker to install and run InfluxDB, the latest tag will point to -InfluxDB 3 Core. To avoid unexpected upgrades, use specific version tags in -your Docker deployments. For example, if using Docker to run InfluxDB v2, -replace the latest version tag with a specific version tag in your Docker -pull command–for example:

- - -
docker pull influxdb:2
-
- - -
- -
- - - - - - - - - - - - - - - diff --git a/pr-preview/pr-6954/telegraf/v1/input-plugins/cgroup/index.html b/pr-preview/pr-6954/telegraf/v1/input-plugins/cgroup/index.html deleted file mode 100644 index 97656a728..000000000 --- a/pr-preview/pr-6954/telegraf/v1/input-plugins/cgroup/index.html +++ /dev/null @@ -1,4463 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -<nil> Documentation - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
- - - Documentation -
-
- -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
-

Select product

-
- -
- - -
-
-
- -
- - - - - -
- -
-
- -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- -
-
-
-

- - - - - - - - - - -
- - - - - -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Control Group Input Plugin

-

This plugin gathers statistics per control group (cgroup).

- -
- - -

Consider restricting paths to the set of cgroups you are interested in if you -have a large number of cgroups, to avoid cardinality issues.

-
-

The plugin supports the single value format in the form

- - -
VAL\n
-

the new line separated values format in the form

- - -
VAL0\n
-VAL1\n
-

the space separated values format in the form

- - -
VAL0 VAL1 ...\n
-

and the space separated keys and value, separated by new line format in the -form

- - -
KEY0 ... VAL0\n
-KEY1 ... VAL1\n
-

Introduced in: Telegraf v1.0.0 -Tags: system -OS support: linux

-

Global configuration options

-

Plugins support additional global and plugin configuration settings for tasks -such as modifying metrics, tags, and fields, creating aliases, and configuring -plugin ordering. See CONFIGURATION.md for more details.

-

Configuration

- - -
# Read specific statistics per cgroup
-# This plugin ONLY supports Linux
-[[inputs.cgroup]]
-  ## Directories in which to look for files, globs are supported.
-  ## Consider restricting paths to the set of cgroups you really
-  ## want to monitor if you have a large number of cgroups, to avoid
-  ## any cardinality issues.
-  # paths = [
-  #   "/sys/fs/cgroup/memory",
-  #   "/sys/fs/cgroup/memory/child1",
-  #   "/sys/fs/cgroup/memory/child2/*",
-  # ]
-  ## cgroup stat fields, as file names, globs are supported.
-  ## these file names are appended to each path from above.
-  # files = ["memory.*usage*", "memory.limit_in_bytes"]
-

Metrics

-

All measurements have the path tag.

-

Example Output

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
-

Was this page helpful?

-
- - - -
-
-

Thank you for your feedback!

-
-
-
-
-
-
- - - - -
-
- - -
-
- - - - - - - - - - - - - - - - - - - - - - -
-
- -
- - - - - - - - - - - - - -
- - - -
- -
-
-
- -

New in InfluxDB 3.8

-
- -
-

Key enhancements in InfluxDB 3.8 and the InfluxDB 3 Explorer 1.6.

-

See the Blog Post

- -
- - -
-

InfluxDB 3.8 is now available for both Core and Enterprise, alongside the -1.6 release of the InfluxDB 3 Explorer UI. This release is focused on -operational maturity and making InfluxDB easier to deploy, manage, and run -reliably in production.

-

For more information, check out:

- - -
- - -
- -
-
-
- -

InfluxDB Docker latest tag changing to InfluxDB 3 Core

-
- -
- On May 27, 2026, the latest tag for InfluxDB Docker images will -point to InfluxDB 3 Core. To avoid unexpected upgrades, use specific version -tags in your Docker deployments. -
- - -
-

If using Docker to install and run InfluxDB, the latest tag will point to -InfluxDB 3 Core. To avoid unexpected upgrades, use specific version tags in -your Docker deployments. For example, if using Docker to run InfluxDB v2, -replace the latest version tag with a specific version tag in your Docker -pull command–for example:

- - -
docker pull influxdb:2
-
- - -
- -
- - - - - - - - - - - - - - - diff --git a/pr-preview/pr-6954/telegraf/v1/input-plugins/chrony/index.html b/pr-preview/pr-6954/telegraf/v1/input-plugins/chrony/index.html deleted file mode 100644 index 2f485a4c3..000000000 --- a/pr-preview/pr-6954/telegraf/v1/input-plugins/chrony/index.html +++ /dev/null @@ -1,4485 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -<nil> Documentation - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
- - - Documentation -
-
- -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
-

Select product

-
- -
- - -
-
-
- -
- - - - - -
- -
-
- -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- -
-
-
-

- - - - - - - - - - -
- - - - - -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

chrony Input Plugin

-

This plugin queries metrics from a chrony NTP server. For details on -the meaning of the gathered fields please check the chronyc manual.

-

Introduced in: Telegraf v0.13.1 -Tags: system -OS support: all

-

Global configuration options

-

Plugins support additional global and plugin configuration settings for tasks -such as modifying metrics, tags, and fields, creating aliases, and configuring -plugin ordering. See CONFIGURATION.md for more details.

-

Configuration

- - -
# Get standard chrony metrics.
-[[inputs.chrony]]
-  ## Server address of chronyd with address scheme
-  ## If empty or not set, the plugin will mimic the behavior of chronyc and
-  ## check "unixgram:///run/chrony/chronyd.sock", "udp://127.0.0.1:323"
-  ## and "udp://[::1]:323".
-  # server = ""
-
-  ## Timeout for establishing the connection
-  # timeout = "5s"
-
-  ## Try to resolve received addresses to host-names via DNS lookups
-  ## Disabled by default to avoid DNS queries especially for slow DNS servers.
-  # dns_lookup = false
-
-  ## Metrics to query named according to chronyc commands
-  ## Available settings are:
-  ##   activity    -- number of peers online or offline
-  ##   tracking    -- information about system's clock performance
-  ##   serverstats -- chronyd server statistics
-  ##   sources     -- extended information about peers
-  ##   sourcestats -- statistics on peers
-  # metrics = ["tracking"]
-
-  ## Socket group & permissions
-  ## If the user requests collecting metrics via unix socket, then it is created
-  ## with the following group and permissions.
-  # socket_group = "chrony"
-  # socket_perms = "0660"
-

Local socket permissions

-

To use the unix socket, telegraf must be able to talk to it. Please ensure that -the telegraf user is a member of the chrony group or telegraf won’t be able to -use the socket!

-

The unix socket is needed in order to use the serverstats metrics. All other -metrics can be gathered using the udp connection.

-

Metrics

-
    -
  • chrony -
      -
    • system_time (float, seconds)
    • -
    • last_offset (float, seconds)
    • -
    • rms_offset (float, seconds)
    • -
    • frequency (float, ppm)
    • -
    • residual_freq (float, ppm)
    • -
    • skew (float, ppm)
    • -
    • root_delay (float, seconds)
    • -
    • root_dispersion (float, seconds)
    • -
    • update_interval (float, seconds)
    • -
    -
  • -
-

Tags

-
    -
  • All measurements have the following tags: -
      -
    • reference_id
    • -
    • stratum
    • -
    • leap_status
    • -
    -
  • -
-

Example Output

- - -
chrony,leap_status=not\ synchronized,reference_id=A29FC87B,stratum=3 frequency=-16.000999450683594,last_offset=0.000012651000361074694,residual_freq=0,rms_offset=0.000025576999178156257,root_delay=0.0016550000291317701,root_dispersion=0.00330700003542006,skew=0.006000000052154064,system_time=0.000020389999917824753,update_interval=507.1999816894531 1706271167571675297
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
-

Was this page helpful?

-
- - - -
-
-

Thank you for your feedback!

-
-
-
-
-
-
- - - - -
-
- - -
-
- - - - - - - - - - - - - - - - - - - - - - -
-
- -
- - - - - - - - - - - - - -
- - - -
- -
-
-
- -

New in InfluxDB 3.8

-
- -
-

Key enhancements in InfluxDB 3.8 and the InfluxDB 3 Explorer 1.6.

-

See the Blog Post

- -
- - -
-

InfluxDB 3.8 is now available for both Core and Enterprise, alongside the -1.6 release of the InfluxDB 3 Explorer UI. This release is focused on -operational maturity and making InfluxDB easier to deploy, manage, and run -reliably in production.

-

For more information, check out:

- - -
- - -
- -
-
-
- -

InfluxDB Docker latest tag changing to InfluxDB 3 Core

-
- -
- On May 27, 2026, the latest tag for InfluxDB Docker images will -point to InfluxDB 3 Core. To avoid unexpected upgrades, use specific version -tags in your Docker deployments. -
- - -
-

If using Docker to install and run InfluxDB, the latest tag will point to -InfluxDB 3 Core. To avoid unexpected upgrades, use specific version tags in -your Docker deployments. For example, if using Docker to run InfluxDB v2, -replace the latest version tag with a specific version tag in your Docker -pull command–for example:

- - -
docker pull influxdb:2
-
- - -
- -
- - - - - - - - - - - - - - - diff --git a/pr-preview/pr-6954/telegraf/v1/input-plugins/cisco_telemetry_mdt/index.html b/pr-preview/pr-6954/telegraf/v1/input-plugins/cisco_telemetry_mdt/index.html deleted file mode 100644 index 0895dbbc4..000000000 --- a/pr-preview/pr-6954/telegraf/v1/input-plugins/cisco_telemetry_mdt/index.html +++ /dev/null @@ -1,4553 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -<nil> Documentation - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
- - - Documentation -
-
- -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
-

Select product

-
- -
- - -
-
-
- -
- - - - - -
- -
-
- -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- -
-
-
-

- - - - - - - - - - -
- - - - - -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Cisco Model-Driven Telemetry (MDT) Input Plugin

-

This plugin consumes Cisco model-driven telemetry (MDT) data from -Cisco IOS XR, IOS XE and NX-OS platforms via TCP or GRPC. GRPC-based transport -can utilize TLS for authentication and encryption. Telemetry data is expected to -be GPB-KV (self-describing-gpb) encoded.

-

The GRPC dialout transport is supported on various IOS XR (64-bit) 6.1.x and -later, IOS XE 16.10 and later, as well as NX-OS 7.x and later platforms. The -TCP dialout transport is supported on IOS XR (32-bit and 64-bit) 6.1.x and -later.

-

Introduced in: Telegraf v1.11.0 -Tags: applications -OS support: all

-

Service Input

-

This plugin is a service input. Normal plugins gather metrics determined by the -interval setting. Service plugins start a service to listen and wait for -metrics or events to occur. Service plugins have two key differences from -normal plugins:

-
    -
  1. The global or plugin specific interval setting may not apply
  2. -
  3. The CLI options of --test, --test-wait, and --once may not produce -output for this plugin
  4. -
-

Global configuration options

-

Plugins support additional global and plugin configuration settings for tasks -such as modifying metrics, tags, and fields, creating aliases, and configuring -plugin ordering. See CONFIGURATION.md for more details.

-

Configuration

- - -
# Cisco model-driven telemetry (MDT) input plugin for IOS XR, IOS XE and NX-OS platforms
-[[inputs.cisco_telemetry_mdt]]
- ## Telemetry transport can be "tcp" or "grpc".  TLS is only supported when
- ## using the grpc transport.
- transport = "grpc"
-
- ## Address and port to host telemetry listener
- service_address = ":57000"
-
- ## Grpc Maximum Message Size, default is 4MB, increase the size. This is
- ## stored as a uint32, and limited to 4294967295.
- max_msg_size = 4000000
-
- ## Enable TLS; grpc transport only.
- # tls_cert = "/etc/telegraf/cert.pem"
- # tls_key = "/etc/telegraf/key.pem"
-
- ## Enable TLS client authentication and define allowed CA certificates; grpc
- ##  transport only.
- # tls_allowed_cacerts = ["/etc/telegraf/clientca.pem"]
-
- ## Define (for certain nested telemetry measurements with embedded tags) which fields are tags
- # embedded_tags = ["Cisco-IOS-XR-qos-ma-oper:qos/interface-table/interface/input/service-policy-names/service-policy-instance/statistics/class-stats/class-name"]
-
- ## Include the delete field in every telemetry message.
- # include_delete_field = false
-
- ## Specify custom name for incoming MDT source field.
- # source_field_name = "mdt_source"
-
- ## Define aliases to map telemetry encoding paths to simple measurement names
- [inputs.cisco_telemetry_mdt.aliases]
-   ifstats = "ietf-interfaces:interfaces-state/interface/statistics"
- ## Define Property Xformation, please refer README and https://pubhub.devnetcloud.com/media/dme-docs-9-3-3/docs/appendix/ for Model details.
- [inputs.cisco_telemetry_mdt.dmes]
-#    Global Property Xformation.
-#    prop1 = "uint64 to int"
-#    prop2 = "uint64 to string"
-#    prop3 = "string to uint64"
-#    prop4 = "string to int64"
-#    prop5 = "string to float64"
-#    auto-prop-xfrom = "auto-float-xfrom" #Xform any property which is string, and has float number to type float64
-#    Per Path property xformation, Name is telemetry configuration under sensor-group, path configuration "WORD         Distinguished Name"
-#    Per Path configuration is better as it avoid property collision issue of types.
-#    dnpath = '{"Name": "show ip route summary","prop": [{"Key": "routes","Value": "string"}, {"Key": "best-paths","Value": "string"}]}'
-#    dnpath2 = '{"Name": "show processes cpu","prop": [{"Key": "kernel_percent","Value": "float"}, {"Key": "idle_percent","Value": "float"}, {"Key": "process","Value": "string"}, {"Key": "user_percent","Value": "float"}, {"Key": "onesec","Value": "float"}]}'
-#    dnpath3 = '{"Name": "show processes memory physical","prop": [{"Key": "processname","Value": "string"}]}'
-
- ## Additional GRPC connection settings.
- [inputs.cisco_telemetry_mdt.grpc_enforcement_policy]
-  ## GRPC permit keepalives without calls, set to true if your clients are
-  ## sending pings without calls in-flight. This can sometimes happen on IOS-XE
-  ## devices where the GRPC connection is left open but subscriptions have been
-  ## removed, and adding subsequent subscriptions does not keep a stable session.
-  # permit_keepalive_without_calls = false
-
-  ## GRPC minimum timeout between successive pings, decreasing this value may
-  ## help if this plugin is closing connections with ENHANCE_YOUR_CALM (too_many_pings).
-  # keepalive_minimum_time = "5m"
-

Metrics

-

Metrics are named by the encoding path that generated the data, or by the alias -if the inputs.cisco_telemetry_mdt.aliases config section is defined. -Metric fields are dependent on the device type and path.

-

Tags included in all metrics:

-
    -
  • source
  • -
  • path
  • -
  • subscription
  • -
-

Additional tags (such as interface_name) may be included depending on the path.

-

Example Output

- - -
ifstats,path=ietf-interfaces:interfaces-state/interface/statistics,host=linux,name=GigabitEthernet2,source=csr1kv,subscription=101 in-unicast-pkts=27i,in-multicast-pkts=0i,discontinuity-time="2019-05-23T07:40:23.000362+00:00",in-octets=5233i,in-errors=0i,out-multicast-pkts=0i,out-discards=0i,in-broadcast-pkts=0i,in-discards=0i,in-unknown-protos=0i,out-unicast-pkts=0i,out-broadcast-pkts=0i,out-octets=0i,out-errors=0i 1559150462624000000
-ifstats,path=ietf-interfaces:interfaces-state/interface/statistics,host=linux,name=GigabitEthernet1,source=csr1kv,subscription=101 in-octets=3394770806i,in-broadcast-pkts=0i,in-multicast-pkts=0i,out-broadcast-pkts=0i,in-unknown-protos=0i,out-octets=350212i,in-unicast-pkts=9477273i,in-discards=0i,out-unicast-pkts=2726i,out-discards=0i,discontinuity-time="2019-05-23T07:40:23.000363+00:00",in-errors=30i,out-multicast-pkts=0i,out-errors=0i 1559150462624000000
-

NX-OS Configuration Example

- - -
Requirement      DATA-SOURCE   Configuration
------------------------------------------
-Environment      DME           path sys/ch query-condition query-target=subtree&target-subtree-class=eqptPsuSlot,eqptFtSlot,eqptSupCSlot,eqptPsu,eqptFt,eqptSensor,eqptLCSlot
-                 DME           path sys/ch depth 5  (Another configuration option)
-Environment      NXAPI         show environment power
-                 NXAPI         show environment fan
-                 NXAPI         show environment temperature
-Interface Stats  DME           path sys/intf query-condition query-target=subtree&target-subtree-class=rmonIfIn,rmonIfOut,rmonIfHCIn,rmonIfHCOut,rmonEtherStats
-Interface State  DME           path sys/intf depth unbounded query-condition query-target=subtree&target-subtree-class=l1PhysIf,pcAggrIf,l3EncRtdIf,l3LbRtdIf,ethpmPhysIf
-VPC              DME           path sys/vpc query-condition query-target=subtree&target-subtree-class=vpcDom,vpcIf
-Resources cpu    DME           path sys/procsys query-condition query-target=subtree&target-subtree-class=procSystem,procSysCore,procSysCpuSummary,procSysCpu,procIdle,procIrq,procKernel,procNice,procSoftirq,procTotal,procUser,procWait,procSysCpuHistory,procSysLoad
-Resources Mem    DME           path sys/procsys/sysmem/sysmemused
-                               path sys/procsys/sysmem/sysmemusage
-                               path sys/procsys/sysmem/sysmemfree
-Per Process cpu  DME           path sys/proc depth unbounded query-condition rsp-foreign-subtree=ephemeral
-vxlan(svi stats) DME           path sys/bd query-condition query-target=subtree&target-subtree-class=l2VlanStats
-BGP              DME           path sys/bgp query-condition query-target=subtree&target-subtree-class=bgpDom,bgpPeer,bgpPeerAf,bgpDomAf,bgpPeerAfEntry,bgpOperRtctrlL3,bgpOperRttP,bgpOperRttEntry,bgpOperAfCtrl
-mac dynamic      DME           path sys/mac query-condition query-target=subtree&target-subtree-class=l2MacAddressTable
-bfd              DME           path sys/bfd/inst depth unbounded
-lldp             DME           path sys/lldp depth unbounded
-urib             DME           path sys/urib depth unbounded query-condition rsp-foreign-subtree=ephemeral
-u6rib            DME           path sys/u6rib depth unbounded query-condition rsp-foreign-subtree=ephemeral
-multicast flow   DME           path sys/mca/show/flows depth unbounded
-multicast stats  DME           path sys/mca/show/stats depth unbounded
-multicast igmp   NXAPI         show ip igmp groups vrf all
-multicast igmp   NXAPI         show ip igmp interface vrf all
-multicast igmp   NXAPI         show ip igmp snooping
-multicast igmp   NXAPI         show ip igmp snooping groups
-multicast igmp   NXAPI         show ip igmp snooping groups detail
-multicast igmp   NXAPI         show ip igmp snooping groups summary
-multicast igmp   NXAPI         show ip igmp snooping mrouter
-multicast igmp   NXAPI         show ip igmp snooping statistics
-multicast pim    NXAPI         show ip pim interface vrf all
-multicast pim    NXAPI         show ip pim neighbor vrf all
-multicast pim    NXAPI         show ip pim route vrf all
-multicast pim    NXAPI         show ip pim rp vrf all
-multicast pim    NXAPI         show ip pim statistics vrf all
-multicast pim    NXAPI         show ip pim vrf all
-microburst       NATIVE        path microburst
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
-

Was this page helpful?

-
- - - -
-
-

Thank you for your feedback!

-
-
-
-
-
-
- - - - -
-
- - -
-
- - - - - - - - - - - - - - - - - - - - - - -
-
- -
- - - - - - - - - - - - - -
- - - -
- -
-
-
- -

New in InfluxDB 3.8

-
- -
-

Key enhancements in InfluxDB 3.8 and the InfluxDB 3 Explorer 1.6.

-

See the Blog Post

- -
- - -
-

InfluxDB 3.8 is now available for both Core and Enterprise, alongside the -1.6 release of the InfluxDB 3 Explorer UI. This release is focused on -operational maturity and making InfluxDB easier to deploy, manage, and run -reliably in production.

-

For more information, check out:

- - -
- - -
- -
-
-
- -

InfluxDB Docker latest tag changing to InfluxDB 3 Core

-
- -
- On May 27, 2026, the latest tag for InfluxDB Docker images will -point to InfluxDB 3 Core. To avoid unexpected upgrades, use specific version -tags in your Docker deployments. -
- - -
-

If using Docker to install and run InfluxDB, the latest tag will point to -InfluxDB 3 Core. To avoid unexpected upgrades, use specific version tags in -your Docker deployments. For example, if using Docker to run InfluxDB v2, -replace the latest version tag with a specific version tag in your Docker -pull command–for example:

- - -
docker pull influxdb:2
-
- - -
- -
- - - - - - - - - - - - - - - diff --git a/pr-preview/pr-6954/telegraf/v1/input-plugins/clickhouse/index.html b/pr-preview/pr-6954/telegraf/v1/input-plugins/clickhouse/index.html deleted file mode 100644 index 4f0f04f05..000000000 --- a/pr-preview/pr-6954/telegraf/v1/input-plugins/clickhouse/index.html +++ /dev/null @@ -1,4731 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -<nil> Documentation - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
- - - Documentation -
-
- -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
-

Select product

-
- -
- - -
-
-
- -
- - - - - -
- -
-
- -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- -
-
-
-

- - - - - - - - - - -
- - - - - -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

ClickHouse Input Plugin

-

This plugin gathers statistics data from a ClickHouse server. -Users on Clickhouse Cloud will not see the Zookeeper metrics as they may not -have permissions to query those tables.

-

Introduced in: Telegraf v1.14.0 -Tags: server -OS support: all

-

Global configuration options

-

Plugins support additional global and plugin configuration settings for tasks -such as modifying metrics, tags, and fields, creating aliases, and configuring -plugin ordering. See CONFIGURATION.md for more details.

-

Configuration

- - -
# Read metrics from one or many ClickHouse servers
-[[inputs.clickhouse]]
-  ## Username for authorization on ClickHouse server
-  username = "default"
-
-  ## Password for authorization on ClickHouse server
-  # password = ""
-
-  ## HTTP(s) timeout while getting metrics values
-  ## The timeout includes connection time, any redirects, and reading the
-  ## response body.
-  # timeout = 5s
-
-  ## List of servers for metrics scraping
-  ## metrics scrape via HTTP(s) clickhouse interface
-  ## https://clickhouse.tech/docs/en/interfaces/http/
-  servers = ["http://127.0.0.1:8123"]
-
-  ## Server Variant
-  ## When set to "managed", some queries are excluded from being run. This is
-  ## useful for instances hosted in ClickHouse Cloud where certain tables are
-  ## not available.
-  # variant = "self-hosted"
-
-  ## If "auto_discovery"" is "true" plugin tries to connect to all servers
-  ## available in the cluster with using same "user:password" described in
-  ## "user" and "password" parameters and get this server hostname list from
-  ## "system.clusters" table. See
-  ## - https://clickhouse.tech/docs/en/operations/system_tables/#system-clusters
-  ## - https://clickhouse.tech/docs/en/operations/server_settings/settings/#server_settings_remote_servers
-  ## - https://clickhouse.tech/docs/en/operations/table_engines/distributed/
-  ## - https://clickhouse.tech/docs/en/operations/table_engines/replication/#creating-replicated-tables
-  # auto_discovery = true
-
-  ## Filter cluster names in "system.clusters" when "auto_discovery" is "true"
-  ## when this filter present then "WHERE cluster IN (...)" filter will apply
-  ## please use only full cluster names here, regexp and glob filters is not
-  ## allowed for "/etc/clickhouse-server/config.d/remote.xml"
-  ## <yandex>
-  ##  <remote_servers>
-  ##    <my-own-cluster>
-  ##        <shard>
-  ##          <replica><host>clickhouse-ru-1.local</host><port>9000</port></replica>
-  ##          <replica><host>clickhouse-ru-2.local</host><port>9000</port></replica>
-  ##        </shard>
-  ##        <shard>
-  ##          <replica><host>clickhouse-eu-1.local</host><port>9000</port></replica>
-  ##          <replica><host>clickhouse-eu-2.local</host><port>9000</port></replica>
-  ##        </shard>
-  ##    </my-own-cluster>
-  ##  </remote_servers>
-  ##
-  ## </yandex>
-  ##
-  ## example: cluster_include = ["my-own-cluster"]
-  # cluster_include = []
-
-  ## Filter cluster names in "system.clusters" when "auto_discovery" is
-  ## "true" when this filter present then "WHERE cluster NOT IN (...)"
-  ## filter will apply
-  ##    example: cluster_exclude = ["my-internal-not-discovered-cluster"]
-  # cluster_exclude = []
-
-  ## Optional TLS Config
-  # tls_ca = "/etc/telegraf/ca.pem"
-  # tls_cert = "/etc/telegraf/cert.pem"
-  # tls_key = "/etc/telegraf/key.pem"
-  ## Use TLS but skip chain & host verification
-  # insecure_skip_verify = false
-

Metrics

-
    -
  • -

    clickhouse_events (see system.events for details)

    -
      -
    • tags: -
        -
      • source (ClickHouse server hostname)
      • -
      • cluster (Name of the cluster [optional])
      • -
      • shard_num (Shard number in the cluster [optional])
      • -
      -
    • -
    • fields: - -
    • -
    -
  • -
  • -

    clickhouse_metrics (see system.metrics for details)

    -
      -
    • tags: -
        -
      • source (ClickHouse server hostname)
      • -
      • cluster (Name of the cluster [optional])
      • -
      • shard_num (Shard number in the cluster [optional])
      • -
      -
    • -
    • fields: - -
    • -
    -
  • -
  • -

    clickhouse_asynchronous_metrics (see system.asynchronous_metrics -for details)

    -
      -
    • tags: -
        -
      • source (ClickHouse server hostname)
      • -
      • cluster (Name of the cluster [optional])
      • -
      • shard_num (Shard number in the cluster [optional])
      • -
      -
    • -
    • fields: - -
    • -
    -
  • -
  • -

    clickhouse_tables

    -
      -
    • tags: -
        -
      • source (ClickHouse server hostname)
      • -
      • table
      • -
      • database
      • -
      • cluster (Name of the cluster [optional])
      • -
      • shard_num (Shard number in the cluster [optional])
      • -
      -
    • -
    • fields: -
        -
      • bytes
      • -
      • parts
      • -
      • rows
      • -
      -
    • -
    -
  • -
  • -

    clickhouse_zookeeper (see system.zookeeper for details)

    -
      -
    • tags: -
        -
      • source (ClickHouse server hostname)
      • -
      • cluster (Name of the cluster [optional])
      • -
      • shard_num (Shard number in the cluster [optional])
      • -
      -
    • -
    • fields: -
        -
      • root_nodes (count of node where path=/)
      • -
      -
    • -
    -
  • -
  • -

    clickhouse_replication_queue (see system.replication_queue for details)

    -
      -
    • tags: -
        -
      • source (ClickHouse server hostname)
      • -
      • cluster (Name of the cluster [optional])
      • -
      • shard_num (Shard number in the cluster [optional])
      • -
      -
    • -
    • fields: -
        -
      • too_many_tries_replicas (count of replicas which have num_tries > 1)
      • -
      -
    • -
    -
  • -
  • -

    clickhouse_detached_parts (see system.detached_parts for details)

    -
      -
    • tags: -
        -
      • source (ClickHouse server hostname)
      • -
      • cluster (Name of the cluster [optional])
      • -
      • shard_num (Shard number in the cluster [optional])
      • -
      -
    • -
    • fields: - -
    • -
    -
  • -
  • -

    clickhouse_dictionaries (see system.dictionaries for details)

    -
      -
    • tags: -
        -
      • source (ClickHouse server hostname)
      • -
      • cluster (Name of the cluster [optional])
      • -
      • shard_num (Shard number in the cluster [optional])
      • -
      • dict_origin (xml Filename when dictionary created from *_dictionary.xml, -database.table when dictionary created from DDL)
      • -
      -
    • -
    • fields: -
        -
      • is_loaded (0 - when dictionary data not successful load, 1 - when -dictionary data loading fail
      • -
      • bytes_allocated (bytes allocated in RAM after a dictionary loaded)
      • -
      -
    • -
    -
  • -
  • -

    clickhouse_mutations (see system.mutations for details)

    -
      -
    • tags: -
        -
      • source (ClickHouse server hostname)
      • -
      • cluster (Name of the cluster [optional])
      • -
      • shard_num (Shard number in the cluster [optional])
      • -
      -
    • -
    • fields: -
        -
      • running - gauge which show how much mutation doesn’t complete now
      • -
      • failed - counter which show total failed mutations from first -clickhouse-server run
      • -
      • completed - counter which show total successful finished mutations -from first clickhouse-server run
      • -
      -
    • -
    -
  • -
  • -

    clickhouse_disks (see system.disks for details)

    -
      -
    • tags: -
        -
      • source (ClickHouse server hostname)
      • -
      • cluster (Name of the cluster [optional])
      • -
      • shard_num (Shard number in the cluster [optional])
      • -
      • name (disk name in storage configuration)
      • -
      • path (path to disk)
      • -
      -
    • -
    • fields: -
        -
      • free_space_percent - 0-100, gauge which show current percent of -free disk space bytes relative to total disk space bytes
      • -
      • keep_free_space_percent - 0-100, gauge which show current percent -of required keep free disk bytes relative to total disk space bytes
      • -
      -
    • -
    -
  • -
  • -

    clickhouse_processes (see system.processes for details)

    -
      -
    • tags: -
        -
      • source (ClickHouse server hostname)
      • -
      • cluster (Name of the cluster [optional])
      • -
      • shard_num (Shard number in the cluster [optional])
      • -
      -
    • -
    • fields: -
        -
      • percentile_50 - float gauge which show 50% percentile (quantile 0.5) for -elapsed field of running processes
      • -
      • percentile_90 - float gauge which show 90% percentile (quantile 0.9) for -elapsed field of running processes
      • -
      • longest_running - float gauge which show maximum value for elapsed -field of running processes
      • -
      -
    • -
    -
  • -
  • -

    clickhouse_text_log (see system.text_log for details)

    -
      -
    • tags: -
        -
      • source (ClickHouse server hostname)
      • -
      • cluster (Name of the cluster [optional])
      • -
      • shard_num (Shard number in the cluster [optional])
      • -
      • level (message level, only messages with level less or equal Notice are -collected)
      • -
      -
    • -
    • fields: -
        -
      • messages_last_10_min - gauge which show how many messages collected
      • -
      -
    • -
    -
  • -
-

Example Output

- - -
clickhouse_events,cluster=test_cluster_two_shards_localhost,host=kshvakov,source=localhost,shard_num=1 read_compressed_bytes=212i,arena_alloc_chunks=35i,function_execute=85i,merge_tree_data_writer_rows=3i,rw_lock_acquired_read_locks=421i,file_open=46i,io_buffer_alloc_bytes=86451985i,inserted_bytes=196i,regexp_created=3i,real_time_microseconds=116832i,query=23i,network_receive_elapsed_microseconds=268i,merge_tree_data_writer_compressed_bytes=1080i,arena_alloc_bytes=212992i,disk_write_elapsed_microseconds=556i,inserted_rows=3i,compressed_read_buffer_bytes=81i,read_buffer_from_file_descriptor_read_bytes=148i,write_buffer_from_file_descriptor_write=47i,merge_tree_data_writer_blocks=3i,soft_page_faults=896i,hard_page_faults=7i,select_query=21i,merge_tree_data_writer_uncompressed_bytes=196i,merge_tree_data_writer_blocks_already_sorted=3i,user_time_microseconds=40196i,compressed_read_buffer_blocks=5i,write_buffer_from_file_descriptor_write_bytes=3246i,io_buffer_allocs=296i,created_write_buffer_ordinary=12i,disk_read_elapsed_microseconds=59347044i,network_send_elapsed_microseconds=1538i,context_lock=1040i,insert_query=1i,system_time_microseconds=14582i,read_buffer_from_file_descriptor_read=3i 1569421000000000000
-clickhouse_asynchronous_metrics,cluster=test_cluster_two_shards_localhost,host=kshvakov,source=localhost,shard_num=1 jemalloc.metadata_thp=0i,replicas_max_relative_delay=0i,jemalloc.mapped=1803177984i,jemalloc.allocated=1724839256i,jemalloc.background_thread.run_interval=0i,jemalloc.background_thread.num_threads=0i,uncompressed_cache_cells=0i,replicas_max_absolute_delay=0i,mark_cache_bytes=0i,compiled_expression_cache_count=0i,replicas_sum_queue_size=0i,number_of_tables=35i,replicas_max_merges_in_queue=0i,replicas_max_inserts_in_queue=0i,replicas_sum_merges_in_queue=0i,replicas_max_queue_size=0i,mark_cache_files=0i,jemalloc.background_thread.num_runs=0i,jemalloc.active=1726210048i,uptime=158i,jemalloc.retained=380481536i,replicas_sum_inserts_in_queue=0i,uncompressed_cache_bytes=0i,number_of_databases=2i,jemalloc.metadata=9207704i,max_part_count_for_partition=1i,jemalloc.resident=1742442496i 1569421000000000000
-clickhouse_metrics,cluster=test_cluster_two_shards_localhost,host=kshvakov,source=localhost,shard_num=1 replicated_send=0i,write=0i,ephemeral_node=0i,zoo_keeper_request=0i,distributed_files_to_insert=0i,replicated_fetch=0i,background_schedule_pool_task=0i,interserver_connection=0i,leader_replica=0i,delayed_inserts=0i,global_thread_active=41i,merge=0i,readonly_replica=0i,memory_tracking_in_background_schedule_pool=0i,memory_tracking_for_merges=0i,zoo_keeper_session=0i,context_lock_wait=0i,storage_buffer_bytes=0i,background_pool_task=0i,send_external_tables=0i,zoo_keeper_watch=0i,part_mutation=0i,disk_space_reserved_for_merge=0i,distributed_send=0i,version_integer=19014003i,local_thread=0i,replicated_checks=0i,memory_tracking=0i,memory_tracking_in_background_processing_pool=0i,leader_election=0i,revision=54425i,open_file_for_read=0i,open_file_for_write=0i,storage_buffer_rows=0i,rw_lock_waiting_readers=0i,rw_lock_waiting_writers=0i,rw_lock_active_writers=0i,local_thread_active=0i,query_preempted=0i,tcp_connection=1i,http_connection=1i,read=2i,query_thread=0i,dict_cache_requests=0i,rw_lock_active_readers=1i,global_thread=43i,query=1i 1569421000000000000
-clickhouse_tables,cluster=test_cluster_two_shards_localhost,database=system,host=kshvakov,source=localhost,shard_num=1,table=trace_log bytes=754i,parts=1i,rows=1i 1569421000000000000
-clickhouse_tables,cluster=test_cluster_two_shards_localhost,database=default,host=kshvakov,source=localhost,shard_num=1,table=example bytes=326i,parts=2i,rows=2i 1569421000000000000
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
-

Was this page helpful?

-
- - - -
-
-

Thank you for your feedback!

-
-
-
-
-
-
- - - - -
-
- - -
-
- - - - - - - - - - - - - - - - - - - - - - -
-
- -
- - - - - - - - - - - - - -
- - - -
- -
-
-
- -

New in InfluxDB 3.8

-
- -
-

Key enhancements in InfluxDB 3.8 and the InfluxDB 3 Explorer 1.6.

-

See the Blog Post

- -
- - -
-

InfluxDB 3.8 is now available for both Core and Enterprise, alongside the -1.6 release of the InfluxDB 3 Explorer UI. This release is focused on -operational maturity and making InfluxDB easier to deploy, manage, and run -reliably in production.

-

For more information, check out:

- - -
- - -
- -
-
-
- -

InfluxDB Docker latest tag changing to InfluxDB 3 Core

-
- -
- On May 27, 2026, the latest tag for InfluxDB Docker images will -point to InfluxDB 3 Core. To avoid unexpected upgrades, use specific version -tags in your Docker deployments. -
- - -
-

If using Docker to install and run InfluxDB, the latest tag will point to -InfluxDB 3 Core. To avoid unexpected upgrades, use specific version tags in -your Docker deployments. For example, if using Docker to run InfluxDB v2, -replace the latest version tag with a specific version tag in your Docker -pull command–for example:

- - -
docker pull influxdb:2
-
- - -
- -
- - - - - - - - - - - - - - - diff --git a/pr-preview/pr-6954/telegraf/v1/input-plugins/cloud_pubsub/index.html b/pr-preview/pr-6954/telegraf/v1/input-plugins/cloud_pubsub/index.html deleted file mode 100644 index 5ec2b3b87..000000000 --- a/pr-preview/pr-6954/telegraf/v1/input-plugins/cloud_pubsub/index.html +++ /dev/null @@ -1,4523 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -<nil> Documentation - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
- - - Documentation -
-
- -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
-

Select product

-
- -
- - -
-
-
- -
- - - - - -
- -
-
- -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- -
-
-
-

- - - - - - - - - - -
- - - - - -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Google Cloud PubSub Input Plugin

-

This plugin consumes messages from the Google Cloud PubSub service -and creates metrics using one of the supported data formats.

-

Introduced in: Telegraf v1.10.0 -Tags: cloud, messaging -OS support: all

-

Service Input

-

This plugin is a service input. Normal plugins gather metrics determined by the -interval setting. Service plugins start a service to listen and wait for -metrics or events to occur. Service plugins have two key differences from -normal plugins:

-
    -
  1. The global or plugin specific interval setting may not apply
  2. -
  3. The CLI options of --test, --test-wait, and --once may not produce -output for this plugin
  4. -
-

Global configuration options

-

Plugins support additional global and plugin configuration settings for tasks -such as modifying metrics, tags, and fields, creating aliases, and configuring -plugin ordering. See CONFIGURATION.md for more details.

-

Configuration

- - -
# Read metrics from Google PubSub
-[[inputs.cloud_pubsub]]
-  ## Required. Name of Google Cloud Platform (GCP) Project that owns
-  ## the given PubSub subscription.
-  project = "my-project"
-
-  ## Required. Name of PubSub subscription to ingest metrics from.
-  subscription = "my-subscription"
-
-  ## Required. Data format to consume.
-  ## Each data format has its own unique set of configuration options.
-  ## Read more about them here:
-  ## https://github.com/influxdata/telegraf/blob/master/docs/DATA_FORMATS_INPUT.md
-  data_format = "influx"
-
-  ## Optional. Filepath for GCP credentials JSON file to authorize calls to
-  ## PubSub APIs. If not set explicitly, Telegraf will attempt to use
-  ## Application Default Credentials, which is preferred.
-  # credentials_file = "path/to/my/creds.json"
-
-  ## Optional. Number of seconds to wait before attempting to restart the
-  ## PubSub subscription receiver after an unexpected error.
-  ## If the streaming pull for a PubSub Subscription fails (receiver),
-  ## the agent attempts to restart receiving messages after this many seconds.
-  # retry_delay_seconds = 5
-
-  ## Optional. Maximum byte length of a message to consume.
-  ## Larger messages are dropped with an error. If less than 0 or unspecified,
-  ## treated as no limit.
-  # max_message_len = 1000000
-
-  ## Max undelivered messages
-  ## This plugin uses tracking metrics, which ensure messages are read to
-  ## outputs before acknowledging them to the original broker to ensure data
-  ## is not lost. This option sets the maximum messages to read from the
-  ## broker that have not been written by an output.
-  ##
-  ## This value needs to be picked with awareness of the agent's
-  ## metric_batch_size value as well. Setting max undelivered messages too high
-  ## can result in a constant stream of data batches to the output. While
-  ## setting it too low may never flush the broker's messages.
-  # max_undelivered_messages = 1000
-
-  ## The following are optional Subscription ReceiveSettings in PubSub.
-  ## Read more about these values:
-  ## https://godoc.org/cloud.google.com/go/pubsub/v2#ReceiveSettings
-
-  ## Optional. Maximum number of seconds for which a PubSub subscription
-  ## should auto-extend the PubSub ACK deadline for each message. If less than
-  ## 0, auto-extension is disabled.
-  # max_extension = 0
-
-  ## Optional. Maximum number of unprocessed messages in PubSub
-  ## (unacknowledged but not yet expired in PubSub).
-  ## A value of 0 is treated as the default PubSub value.
-  ## Negative values will be treated as unlimited.
-  # max_outstanding_messages = 0
-
-  ## Optional. Maximum size in bytes of unprocessed messages in PubSub
-  ## (unacknowledged but not yet expired in PubSub).
-  ## A value of 0 is treated as the default PubSub value.
-  ## Negative values will be treated as unlimited.
-  # max_outstanding_bytes = 0
-
-  ## Optional. Max number of goroutines a PubSub Subscription receiver can spawn
-  ## to pull messages from PubSub concurrently. This limit applies to each
-  ## subscription separately and is treated as the PubSub default if less than
-  ## 1. Note this setting does not limit the number of messages that can be
-  ## processed concurrently (use "max_outstanding_messages" instead).
-  # max_receiver_go_routines = 0
-
-  ## Optional. If true, Telegraf will attempt to base64 decode the
-  ## PubSub message data before parsing. Many GCP services that
-  ## output JSON to Google PubSub base64-encode the JSON payload.
-  # base64_data = false
-
-  ## Content encoding for message payloads, can be set to "gzip" or
-  ## "identity" to apply no encoding.
-  # content_encoding = "identity"
-
-  ## If content encoding is not "identity", sets the maximum allowed size, 
-  ## in bytes, for a message payload when it's decompressed. Can be increased 
-  ## for larger payloads or reduced to protect against decompression bombs.
-  ## Acceptable units are B, KiB, KB, MiB, MB...
-  # max_decompression_size = "500MB"
-

Multiple Subscriptions and Topics

-

This plugin assumes you have already created a PULL subscription for a given -PubSub topic. To learn how to do so, see how to create a subscription.

-

Each plugin agent can listen to one subscription at a time, so you will -need to run multiple instances of the plugin to pull messages from multiple -subscriptions/topics.

-

Metrics

-

Example Output

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
-

Was this page helpful?

-
- - - -
-
-

Thank you for your feedback!

-
-
-
-
-
-
- - - - -
-
- - -
-
- - - - - - - - - - - - - - - - - - - - - - -
-
- -
- - - - - - - - - - - - - -
- - - -
- -
-
-
- -

New in InfluxDB 3.8

-
- -
-

Key enhancements in InfluxDB 3.8 and the InfluxDB 3 Explorer 1.6.

-

See the Blog Post

- -
- - -
-

InfluxDB 3.8 is now available for both Core and Enterprise, alongside the -1.6 release of the InfluxDB 3 Explorer UI. This release is focused on -operational maturity and making InfluxDB easier to deploy, manage, and run -reliably in production.

-

For more information, check out:

- - -
- - -
- -
-
-
- -

InfluxDB Docker latest tag changing to InfluxDB 3 Core

-
- -
- On May 27, 2026, the latest tag for InfluxDB Docker images will -point to InfluxDB 3 Core. To avoid unexpected upgrades, use specific version -tags in your Docker deployments. -
- - -
-

If using Docker to install and run InfluxDB, the latest tag will point to -InfluxDB 3 Core. To avoid unexpected upgrades, use specific version tags in -your Docker deployments. For example, if using Docker to run InfluxDB v2, -replace the latest version tag with a specific version tag in your Docker -pull command–for example:

- - -
docker pull influxdb:2
-
- - -
- -
- - - - - - - - - - - - - - - diff --git a/pr-preview/pr-6954/telegraf/v1/input-plugins/cloud_pubsub_push/index.html b/pr-preview/pr-6954/telegraf/v1/input-plugins/cloud_pubsub_push/index.html deleted file mode 100644 index 0d03c7363..000000000 --- a/pr-preview/pr-6954/telegraf/v1/input-plugins/cloud_pubsub_push/index.html +++ /dev/null @@ -1,4493 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -<nil> Documentation - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
- - - Documentation -
-
- -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
-

Select product

-
- -
- - -
-
-
- -
- - - - - -
- -
-
- -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- -
-
-
-

- - - - - - - - - - -
- - - - - -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Google Cloud PubSub Push Input Plugin

-

This plugin listens for messages sent via an HTTP POST from -Google Cloud PubSub and expects messages in Google’s Pub/Sub -JSON format. The plugin allows Telegraf to serve as an endpoint of push -service.

-

Google’s PubSub service will only send over HTTPS/TLS so this plugin must be -behind a valid proxy or must be configured to use TLS by setting the tls_cert -and tls_key accordingly.

-

Enable mutually authenticated TLS and authorize client connections by signing -certificate authority by including a list of allowed CA certificate file names -in tls_allowed_cacerts.

-

Introduced in: Telegraf v1.10.0 -Tags: cloud, messaging -OS support: all

-

Service Input

-

This plugin is a service input. Normal plugins gather metrics determined by the -interval setting. Service plugins start a service to listen and wait for -metrics or events to occur. Service plugins have two key differences from -normal plugins:

-
    -
  1. The global or plugin specific interval setting may not apply
  2. -
  3. The CLI options of --test, --test-wait, and --once may not produce -output for this plugin
  4. -
-

Global configuration options

-

Plugins support additional global and plugin configuration settings for tasks -such as modifying metrics, tags, and fields, creating aliases, and configuring -plugin ordering. See CONFIGURATION.md for more details.

-

Configuration

- - -
# Google Cloud Pub/Sub Push HTTP listener
-[[inputs.cloud_pubsub_push]]
-  ## Address and port to host HTTP listener on
-  service_address = ":8080"
-
-  ## Application secret to verify messages originate from Cloud Pub/Sub
-  # token = ""
-
-  ## Path to listen to.
-  # path = "/"
-
-  ## Maximum duration before timing out read of the request
-  # read_timeout = "10s"
-  ## Maximum duration before timing out write of the response. This should be
-  ## set to a value large enough that you can send at least 'metric_batch_size'
-  ## number of messages within the duration.
-  # write_timeout = "10s"
-
-  ## Maximum allowed http request body size in bytes.
-  ## 0 means to use the default of 524,288,00 bytes (500 mebibytes)
-  # max_body_size = "500MB"
-
-  ## Whether to add the pubsub metadata, such as message attributes and
-  ## subscription as a tag.
-  # add_meta = false
-
-  ## Max undelivered messages
-  ## This plugin uses tracking metrics, which ensure messages are read to
-  ## outputs before acknowledging them to the original broker to ensure data
-  ## is not lost. This option sets the maximum messages to read from the
-  ## broker that have not been written by an output.
-  ##
-  ## This value needs to be picked with awareness of the agent's
-  ## metric_batch_size value as well. Setting max undelivered messages too high
-  ## can result in a constant stream of data batches to the output. While
-  ## setting it too low may never flush the broker's messages.
-  # max_undelivered_messages = 1000
-
-  ## Set one or more allowed client CA certificate file names to
-  ## enable mutually authenticated TLS connections
-  # tls_allowed_cacerts = ["/etc/telegraf/clientca.pem"]
-
-  ## Add service certificate and key
-  # tls_cert = "/etc/telegraf/cert.pem"
-  # tls_key = "/etc/telegraf/key.pem"
-
-  ## Data format to consume.
-  ## Each data format has its own unique set of configuration options, read
-  ## more about them here:
-  ## https://github.com/influxdata/telegraf/blob/master/docs/DATA_FORMATS_INPUT.md
-  data_format = "influx"
-

This plugin assumes you have already created a PUSH subscription for a given -PubSub topic.

-

Metrics

-

Example Output

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
-

Was this page helpful?

-
- - - -
-
-

Thank you for your feedback!

-
-
-
-
-
-
- - - - -
-
- - -
-
- - - - - - - - - - - - - - - - - - - - - - -
-
- -
- - - - - - - - - - - - - -
- - - -
- -
-
-
- -

New in InfluxDB 3.8

-
- -
-

Key enhancements in InfluxDB 3.8 and the InfluxDB 3 Explorer 1.6.

-

See the Blog Post

- -
- - -
-

InfluxDB 3.8 is now available for both Core and Enterprise, alongside the -1.6 release of the InfluxDB 3 Explorer UI. This release is focused on -operational maturity and making InfluxDB easier to deploy, manage, and run -reliably in production.

-

For more information, check out:

- - -
- - -
- -
-
-
- -

InfluxDB Docker latest tag changing to InfluxDB 3 Core

-
- -
- On May 27, 2026, the latest tag for InfluxDB Docker images will -point to InfluxDB 3 Core. To avoid unexpected upgrades, use specific version -tags in your Docker deployments. -
- - -
-

If using Docker to install and run InfluxDB, the latest tag will point to -InfluxDB 3 Core. To avoid unexpected upgrades, use specific version tags in -your Docker deployments. For example, if using Docker to run InfluxDB v2, -replace the latest version tag with a specific version tag in your Docker -pull command–for example:

- - -
docker pull influxdb:2
-
- - -
- -
- - - - - - - - - - - - - - - diff --git a/pr-preview/pr-6954/telegraf/v1/input-plugins/cloudwatch/index.html b/pr-preview/pr-6954/telegraf/v1/input-plugins/cloudwatch/index.html deleted file mode 100644 index cb4701d53..000000000 --- a/pr-preview/pr-6954/telegraf/v1/input-plugins/cloudwatch/index.html +++ /dev/null @@ -1,4722 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -<nil> Documentation - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
- - - Documentation -
-
- -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
-

Select product

-
- -
- - -
-
-
- -
- - - - - -
- -
-
- -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- -
-
-
-

- - - - - - - - - - -
- - - - - -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Amazon CloudWatch Statistics Input Plugin

-

This plugin will gather metric statistics from Amazon CloudWatch.

-

Introduced in: Telegraf v0.12.1 -Tags: cloud -OS support: all

-

Amazon Authentication

-

This plugin uses a credential chain for Authentication with the CloudWatch -API endpoint. In the following order the plugin will attempt to authenticate.

-
    -
  1. Assumed credentials via STS if role_arn attribute is specified -(source credentials are evaluated from subsequent rules)
  2. -
  3. Explicit credentials from access_key, secret_key, and token attributes
  4. -
  5. Shared profile from profile attribute
  6. -
  7. Environment Variables
  8. -
  9. Shared Credentials
  10. -
  11. EC2 Instance Profile
  12. -
-

Global configuration options

-

Plugins support additional global and plugin configuration settings for tasks -such as modifying metrics, tags, and fields, creating aliases, and configuring -plugin ordering. See CONFIGURATION.md for more details.

-

Configuration

- - -
# Pull Metric Statistics from Amazon CloudWatch
-[[inputs.cloudwatch]]
-  ## Amazon Region
-  region = "us-east-1"
-
-  ## Amazon Credentials
-  ## Credentials are loaded in the following order
-  ## 1) Web identity provider credentials via STS if role_arn and
-  ##    web_identity_token_file are specified
-  ## 2) Assumed credentials via STS if role_arn is specified
-  ## 3) explicit credentials from 'access_key' and 'secret_key'
-  ## 4) shared profile from 'profile'
-  ## 5) environment variables
-  ## 6) shared credentials file
-  ## 7) EC2 Instance Profile
-  # access_key = ""
-  # secret_key = ""
-  # token = ""
-  # role_arn = ""
-  # web_identity_token_file = ""
-  # role_session_name = ""
-  # profile = ""
-  # shared_credential_file = ""
-
-  ## If you are using CloudWatch cross-account observability, you can
-  ## set IncludeLinkedAccounts to true in a monitoring account
-  ## and collect metrics from the linked source accounts
-  # include_linked_accounts = false
-
-  ## Endpoint to make request against, the correct endpoint is automatically
-  ## determined and this option should only be set if you wish to override the
-  ## default.
-  ##   ex: endpoint_url = "http://localhost:8000"
-  # endpoint_url = ""
-
-  ## Set http_proxy
-  # use_system_proxy = false
-  # http_proxy_url = "http://localhost:8888"
-
-  ## The minimum period for Cloudwatch metrics is 1 minute (60s). However not
-  ## all metrics are made available to the 1 minute period. Some are collected
-  ## at 3 minute, 5 minute, or larger intervals.
-  ## See https://aws.amazon.com/cloudwatch/faqs/#monitoring.
-  ## Note that if a period is configured that is smaller than the minimum for a
-  ## particular metric, that metric will not be returned by the Cloudwatch API
-  ## and will not be collected by Telegraf.
-  #
-  ## Requested CloudWatch aggregation Period (required)
-  ## Must be a multiple of 60s.
-  period = "5m"
-
-  ## Collection Delay (required)
-  ## Must account for metrics availability via CloudWatch API
-  delay = "5m"
-
-  ## Recommended: use metric 'interval' that is a multiple of 'period' to avoid
-  ## gaps or overlap in pulled data
-  interval = "5m"
-
-  ## Recommended if "delay" and "period" are both within 3 hours of request
-  ## time. Invalid values will be ignored. Recently Active feature will only
-  ## poll for CloudWatch ListMetrics values that occurred within the last 3h.
-  ## If enabled, it will reduce total API usage of the CloudWatch ListMetrics
-  ## API and require less memory to retain.
-  ## Do not enable if "period" or "delay" is longer than 3 hours, as it will
-  ## not return data more than 3 hours old.
-  ## See https://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/API_ListMetrics.html
-  # recently_active = "PT3H"
-
-  ## Configure the TTL for the internal cache of metrics.
-  # cache_ttl = "1h"
-
-  ## Metric Statistic Namespaces, wildcards are allowed
-  # namespaces = ["*"]
-
-  ## Metric Format
-  ## This determines the format of the produces metrics. 'sparse', the default
-  ## will produce a unique field for each statistic. 'dense' will report all
-  ## statistics will be in a field called value and have a metric_name tag
-  ## defining the name of the statistic. See the plugin README for examples.
-  # metric_format = "sparse"
-
-  ## Maximum requests per second. Note that the global default AWS rate limit
-  ## is 50 reqs/sec, so if you define multiple namespaces, these should add up
-  ## to a maximum of 50.
-  ## See http://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/cloudwatch_limits.html
-  # ratelimit = 25
-
-  ## Timeout for http requests made by the cloudwatch client.
-  # timeout = "5s"
-
-  ## Batch Size
-  ## The size of each batch to send requests to Cloudwatch. 500 is the
-  ## suggested largest size. If a request gets to large (413 errors), consider
-  ## reducing this amount.
-  # batch_size = 500
-
-  ## Namespace-wide statistic filters. These allow fewer queries to be made to
-  ## cloudwatch.
-  # statistic_include = ["average", "sum", "minimum", "maximum", sample_count"]
-  # statistic_exclude = []
-
-  ## Metrics to Pull
-  ## Defaults to all Metrics in Namespace if nothing is provided
-  ## Refreshes Namespace available metrics every 1h
-  #[[inputs.cloudwatch.metrics]]
-  #  names = ["Latency", "RequestCount"]
-  #
-  #  ## Statistic filters for Metric.  These allow for retrieving specific
-  #  ## statistics for an individual metric.
-  #  # statistic_include = ["average", "sum", "minimum", "maximum", sample_count"]
-  #  # statistic_exclude = []
-  #
-  #  ## Dimension filters for Metric.
-  #  ## All dimensions defined for the metric names must be specified in order
-  #  ## to retrieve the metric statistics.
-  #  ## 'value' has wildcard / 'glob' matching support such as 'p-*'.
-  #  [[inputs.cloudwatch.metrics.dimensions]]
-  #    name = "LoadBalancerName"
-  #    value = "p-example"
-

Please note, the namespace option is deprecated in favor of the namespaces -list option.

-

Requirements and Terminology

-

Plugin Configuration utilizes CloudWatch concepts and access -pattern to allow monitoring of any CloudWatch Metric.

-
    -
  • region must be a valid AWS region value
  • -
  • period must be a valid CloudWatch period value
  • -
  • namespaces must be a list of valid CloudWatch namespace value(s)
  • -
  • names must be valid CloudWatch metric names
  • -
  • dimensions must be valid CloudWatch dimension name/value pairs
  • -
-

Omitting or specifying a value of '*' for a dimension value configures all -available metrics that contain a dimension with the specified name to be -retrieved. If specifying >1 dimension, then the metric must contain all the -configured dimensions where the value of the wildcard dimension is ignored.

-

Example:

- - -
[[inputs.cloudwatch]]
-  period = "1m"
-  interval = "5m"
-
-  [[inputs.cloudwatch.metrics]]
-    names = ["Latency"]
-
-    ## Dimension filters for Metric (optional)
-    [[inputs.cloudwatch.metrics.dimensions]]
-      name = "LoadBalancerName"
-      value = "p-example"
-
-    [[inputs.cloudwatch.metrics.dimensions]]
-      name = "AvailabilityZone"
-      value = "*"
-

If the following ELBs are available:

-
    -
  • name: p-example, availabilityZone: us-east-1a
  • -
  • name: p-example, availabilityZone: us-east-1b
  • -
  • name: q-example, availabilityZone: us-east-1a
  • -
  • name: q-example, availabilityZone: us-east-1b
  • -
-

Then 2 metrics will be output:

-
    -
  • name: p-example, availabilityZone: us-east-1a
  • -
  • name: p-example, availabilityZone: us-east-1b
  • -
-

If the AvailabilityZone wildcard dimension was omitted, then a single metric -(name: p-example) would be exported containing the aggregate values of the ELB -across availability zones.

-

To maximize efficiency and savings, consider making fewer requests by increasing -interval but keeping period at the duration you would like metrics to be -reported. The above example will request metrics from Cloudwatch every 5 minutes -but will output five metrics timestamped one minute apart.

-

Restrictions and Limitations

-
    -
  • CloudWatch metrics are not available instantly via the CloudWatch API. -You should adjust your collection delay to account for this lag in metrics -availability based on your monitoring subscription level
  • -
  • CloudWatch API usage incurs cost - see GetMetricData Pricing
  • -
-

Metrics

-

Each CloudWatch Namespace monitored records a measurement with fields for each -available Metric Statistic. Namespace and Metrics are represented in snake -case

-

Sparse Metrics

-

By default, metrics generated by this plugin are sparse. Use the metric_format -option to override this setting.

-

Sparse metrics produce a set of fields for every AWS Metric.

-
    -
  • cloudwatch_{namespace} -
      -
    • Fields -
        -
      • {metric}_sum (metric Sum value)
      • -
      • {metric}_average (metric Average value)
      • -
      • {metric}_minimum (metric Minimum value)
      • -
      • {metric}_maximum (metric Maximum value)
      • -
      • {metric}_sample_count (metric SampleCount value)
      • -
      -
    • -
    -
  • -
-

For example:

- - -
cloudwatch_aws_usage,class=None,resource=GetSecretValue,service=Secrets\ Manager,type=API call_count_maximum=1,call_count_minimum=1,call_count_sum=8,call_count_sample_count=8,call_count_average=1 1715097720000000000
-

Dense Metrics

-

Dense metrics are generated when metric_format is set to dense.

-

Dense metrics use the same fields over and over for every AWS Metric and -differentiate between AWS Metrics using a tag called metric_name with the AWS -Metric name:

-
    -
  • cloudwatch_{namespace} -
      -
    • Tags -
        -
      • metric_name (AWS Metric name)
      • -
      -
    • -
    • Fields -
        -
      • sum (metric Sum value)
      • -
      • average (metric Average value)
      • -
      • minimum (metric Minimum value)
      • -
      • maximum (metric Maximum value)
      • -
      • sample_count (metric SampleCount value)
      • -
      -
    • -
    -
  • -
-

For example:

- - -
cloudwatch_aws_usage,class=None,resource=GetSecretValue,service=Secrets\ Manager,metric_name=call_count,type=API sum=6,sample_count=6,average=1,maximum=1,minimum=1 1715097840000000000
-

Tags

-

Each measurement is tagged with the following identifiers to uniquely identify -the associated metric Tag Dimension names are represented in snake -case

-
    -
  • All measurements have the following tags: -
      -
    • region (CloudWatch Region)
    • -
    • {dimension-name} (Cloudwatch Dimension value - one per metric dimension)
    • -
    -
  • -
  • If include_linked_accounts is set to true then below tag is also provided: -
      -
    • account (The ID of the account where the metrics are located.)
    • -
    -
  • -
-

Troubleshooting

-

You can use the aws cli to get a list of available metrics and dimensions:

- - -
aws cloudwatch list-metrics --namespace AWS/EC2 --region us-east-1
-aws cloudwatch list-metrics --namespace AWS/EC2 --region us-east-1 --metric-name CPUCreditBalance
-

If the expected metrics are not returned, you can try getting them manually -for a short period of time:

- - -
aws cloudwatch get-metric-data \
-  --start-time 2018-07-01T00:00:00Z \
-  --end-time 2018-07-01T00:15:00Z \
-  --metric-data-queries '[
-  {
-    "Id": "avgCPUCreditBalance",
-    "MetricStat": {
-      "Metric": {
-        "Namespace": "AWS/EC2",
-        "MetricName": "CPUCreditBalance",
-        "Dimensions": [
-          {
-            "Name": "InstanceId",
-            "Value": "i-deadbeef"
-          }
-        ]
-      },
-      "Period": 300,
-      "Stat": "Average"
-    },
-    "Label": "avgCPUCreditBalance"
-  }
-]'
-

Example Output

-

See the discussion above about sparse vs dense metrics for more details.

- - -
cloudwatch_aws_elb,load_balancer_name=p-example,region=us-east-1 latency_average=0.004810798017284538,latency_maximum=0.1100282669067383,latency_minimum=0.0006084442138671875,latency_sample_count=4029,latency_sum=19.382705211639404 1459542420000000000
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
-

Was this page helpful?

-
- - - -
-
-

Thank you for your feedback!

-
-
-
-
-
-
- - - - -
-
- - -
-
- - - - - - - - - - - - - - - - - - - - - - -
-
- -
- - - - - - - - - - - - - -
- - - -
- -
-
-
- -

New in InfluxDB 3.8

-
- -
-

Key enhancements in InfluxDB 3.8 and the InfluxDB 3 Explorer 1.6.

-

See the Blog Post

- -
- - -
-

InfluxDB 3.8 is now available for both Core and Enterprise, alongside the -1.6 release of the InfluxDB 3 Explorer UI. This release is focused on -operational maturity and making InfluxDB easier to deploy, manage, and run -reliably in production.

-

For more information, check out:

- - -
- - -
- -
-
-
- -

InfluxDB Docker latest tag changing to InfluxDB 3 Core

-
- -
- On May 27, 2026, the latest tag for InfluxDB Docker images will -point to InfluxDB 3 Core. To avoid unexpected upgrades, use specific version -tags in your Docker deployments. -
- - -
-

If using Docker to install and run InfluxDB, the latest tag will point to -InfluxDB 3 Core. To avoid unexpected upgrades, use specific version tags in -your Docker deployments. For example, if using Docker to run InfluxDB v2, -replace the latest version tag with a specific version tag in your Docker -pull command–for example:

- - -
docker pull influxdb:2
-
- - -
- -
- - - - - - - - - - - - - - - diff --git a/pr-preview/pr-6954/telegraf/v1/input-plugins/cloudwatch_metric_streams/index.html b/pr-preview/pr-6954/telegraf/v1/input-plugins/cloudwatch_metric_streams/index.html deleted file mode 100644 index 32b08eee1..000000000 --- a/pr-preview/pr-6954/telegraf/v1/input-plugins/cloudwatch_metric_streams/index.html +++ /dev/null @@ -1,4560 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -<nil> Documentation - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
- - - Documentation -
-
- -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
-

Select product

-
- -
- - -
-
-
- -
- - - - - -
- -
-
- -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- -
-
-
-

- - - - - - - - - - -
- - - - - -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Amazon CloudWatch Metric Streams Input Plugin

-

This plugin listens for metrics sent via HTTP by -Cloudwatch metric streams implementing the required -response specifications.

- -
- - -

Using this plugin can incure costs, see the Metric Streams example in -CloudWatch pricing.

-
-

Introduced in: Telegraf v1.24.0 -Tags: cloud -OS support: all

-

Service Input

-

This plugin is a service input. Normal plugins gather metrics determined by the -interval setting. Service plugins start a service to listen and wait for -metrics or events to occur. Service plugins have two key differences from -normal plugins:

-
    -
  1. The global or plugin specific interval setting may not apply
  2. -
  3. The CLI options of --test, --test-wait, and --once may not produce -output for this plugin
  4. -
-

Global configuration options

-

Plugins support additional global and plugin configuration settings for tasks -such as modifying metrics, tags, and fields, creating aliases, and configuring -plugin ordering. See CONFIGURATION.md for more details.

-

Configuration

- - -
# AWS Metric Streams listener
-[[inputs.cloudwatch_metric_streams]]
-  ## Address and port to host HTTP listener on
-  service_address = ":443"
-
-  ## Paths to listen to.
-  # paths = ["/telegraf"]
-
-  ## maximum duration before timing out read of the request
-  # read_timeout = "10s"
-
-  ## maximum duration before timing out write of the response
-  # write_timeout = "10s"
-
-  ## Maximum allowed http request body size in bytes.
-  ## 0 means to use the default of 524,288,000 bytes (500 mebibytes)
-  # max_body_size = "500MB"
-
-  ## Optional access key for Firehose security.
-  # access_key = "test-key"
-
-  ## An optional flag to keep Metric Streams metrics compatible with
-  ## CloudWatch's API naming
-  # api_compatability = false
-
-  ## Set one or more allowed client CA certificate file names to
-  ## enable mutually authenticated TLS connections
-  # tls_allowed_cacerts = ["/etc/telegraf/clientca.pem"]
-
-  ## Add service certificate and key
-  # tls_cert = "/etc/telegraf/cert.pem"
-  # tls_key = "/etc/telegraf/key.pem"
-

Troubleshooting

-

The plugin has its own internal metrics for troubleshooting:

-
    -
  • Requests Received -
      -
    • The number of requests received by the listener.
    • -
    -
  • -
  • Writes Served -
      -
    • The number of writes served by the listener.
    • -
    -
  • -
  • Bad Requests -
      -
    • The number of bad requests, separated by the error code as a tag.
    • -
    -
  • -
  • Request Time -
      -
    • The duration of the request measured in ns.
    • -
    -
  • -
  • Age Max -
      -
    • The maximum age of a metric in this interval. This is useful for offsetting -any lag or latency measurements in a metrics pipeline that measures based -on the timestamp.
    • -
    -
  • -
  • Age Min -
      -
    • The minimum age of a metric in this interval.
    • -
    -
  • -
-

Specific errors will be logged and an error will be returned to AWS.

-

For additional help check the Firehose Troubleshooting -page.

-

Metrics

-

Metrics sent by AWS are Base64 encoded blocks of JSON data. -The JSON block below is the Base64 decoded data in the data -field of a record. -There can be multiple blocks of JSON for each data field -in each record and there can be multiple record fields in -a record.

-

The metric when decoded may look like this:

- - -
{
-    "metric_stream_name": "sandbox-dev-cloudwatch-metric-stream",
-    "account_id": "541737779709",
-    "region": "us-west-2",
-    "namespace": "AWS/EC2",
-    "metric_name": "CPUUtilization",
-    "dimensions": {
-        "InstanceId": "i-0efc7ghy09c123428"
-    },
-    "timestamp": 1651679580000,
-    "value": {
-        "max": 10.011666666666667,
-        "min": 10.011666666666667,
-        "sum": 10.011666666666667,
-        "count": 1
-    },
-    "unit": "Percent"
-}
-

Tags

-

All tags in the dimensions list are added as tags to the metric.

-

The account_id and region tag are added to each metric as well.

-

Measurements and Fields

-

The metric name is a combination of namespace and metric_name, -separated by _ and lowercased.

-

The fields are each aggregate in the value list.

-

These fields are optionally renamed to match the CloudWatch API for -easier transition from the API to Metric Streams. This relies on -setting the api_compatability flag in the configuration.

-

The timestamp applied is the timestamp from the metric, -typically 3-5 minutes older than the time processed due -to CloudWatch delays.

-

Example Output

-

Example output based on the above JSON & compatability flag is:

-

Standard Metric Streams format:

- - -
aws_ec2_cpuutilization,accountId=541737779709,region=us-west-2,InstanceId=i-0efc7ghy09c123428 max=10.011666666666667,min=10.011666666666667,sum=10.011666666666667,count=1 1651679580000
-

API Compatability format:

- - -
aws_ec2_cpuutilization,accountId=541737779709,region=us-west-2,InstanceId=i-0efc7ghy09c123428 maximum=10.011666666666667,minimum=10.011666666666667,sum=10.011666666666667,samplecount=1 1651679580000
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
-

Was this page helpful?

-
- - - -
-
-

Thank you for your feedback!

-
-
-
-
-
-
- - - - -
-
- - -
-
- - - - - - - - - - - - - - - - - - - - - - -
-
- -
- - - - - - - - - - - - - -
- - - -
- -
-
-
- -

New in InfluxDB 3.8

-
- -
-

Key enhancements in InfluxDB 3.8 and the InfluxDB 3 Explorer 1.6.

-

See the Blog Post

- -
- - -
-

InfluxDB 3.8 is now available for both Core and Enterprise, alongside the -1.6 release of the InfluxDB 3 Explorer UI. This release is focused on -operational maturity and making InfluxDB easier to deploy, manage, and run -reliably in production.

-

For more information, check out:

- - -
- - -
- -
-
-
- -

InfluxDB Docker latest tag changing to InfluxDB 3 Core

-
- -
- On May 27, 2026, the latest tag for InfluxDB Docker images will -point to InfluxDB 3 Core. To avoid unexpected upgrades, use specific version -tags in your Docker deployments. -
- - -
-

If using Docker to install and run InfluxDB, the latest tag will point to -InfluxDB 3 Core. To avoid unexpected upgrades, use specific version tags in -your Docker deployments. For example, if using Docker to run InfluxDB v2, -replace the latest version tag with a specific version tag in your Docker -pull command–for example:

- - -
docker pull influxdb:2
-
- - -
- -
- - - - - - - - - - - - - - - diff --git a/pr-preview/pr-6954/telegraf/v1/input-plugins/conntrack/index.html b/pr-preview/pr-6954/telegraf/v1/input-plugins/conntrack/index.html deleted file mode 100644 index 1e29f81e2..000000000 --- a/pr-preview/pr-6954/telegraf/v1/input-plugins/conntrack/index.html +++ /dev/null @@ -1,4498 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -<nil> Documentation - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
- - - Documentation -
-
- -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
-

Select product

-
- -
- - -
-
-
- -
- - - - - -
- -
-
- -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- -
-
-
-

- - - - - - - - - - -
- - - - - -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Netfilter Conntrack Input Plugin

-

This plugin collects metrics from Netfilter’s conntrack tools. -There are two collection mechanisms for this plugin:

-
    -
  1. Extracting information from /proc/net/stat/nf_conntrack files if the -collect option is set accordingly for finding CPU specific values.
  2. -
  3. Using specific files and directories by specifying the dirs option. At -runtime, conntrack exposes many of those connection statistics within -/proc/sys/net. Depending on your kernel version, these files can be found -in either /proc/sys/net/ipv4/netfilter or /proc/sys/net/netfilter and -will be prefixed with either ip or nf.
  4. -
-

In order to simplify configuration in a heterogeneous environment, a superset -of directory and filenames can be specified. Any locations that doesn’t exist -is ignored.

-

Introduced in: Telegraf v1.0.0 -Tags: system -OS support: linux

-

Global configuration options

-

Plugins support additional global and plugin configuration settings for tasks -such as modifying metrics, tags, and fields, creating aliases, and configuring -plugin ordering. See CONFIGURATION.md for more details.

-

Configuration

- - -
# Collects conntrack stats from the configured directories and files.
-# This plugin ONLY supports Linux
-[[inputs.conntrack]]
-  ## The following defaults would work with multiple versions of conntrack.
-  ## Note the nf_ and ip_ filename prefixes are mutually exclusive across
-  ## kernel versions, as are the directory locations.
-
-  ## Look through /proc/net/stat/nf_conntrack for these metrics
-  ## all - aggregated statistics
-  ## percpu - include detailed statistics with cpu tag
-  collect = ["all", "percpu"]
-
-  ## User-specified directories and files to look through
-  ## Directories to search within for the conntrack files above.
-  ## Missing directories will be ignored.
-  dirs = ["/proc/sys/net/ipv4/netfilter","/proc/sys/net/netfilter"]
-
-  ## Superset of filenames to look for within the conntrack dirs.
-  ## Missing files will be ignored.
-  files = ["ip_conntrack_count","ip_conntrack_max",
-          "nf_conntrack_count","nf_conntrack_max"]
-

Metrics

-

A detailed explanation of each fields can be found in -kernel documentation

-
    -
  • conntrack -
      -
    • ip_conntrack_count (int, count): The number of entries in the conntrack table
    • -
    • ip_conntrack_max (int, size): The max capacity of the conntrack table
    • -
    • ip_conntrack_buckets (int, size): The size of hash table.
    • -
    -
  • -
-

With collect = ["all"]:

-
    -
  • entries: The number of entries in the conntrack table
  • -
  • searched: The number of conntrack table lookups performed
  • -
  • found: The number of searched entries which were successful
  • -
  • new: The number of entries added which were not expected before
  • -
  • invalid: The number of packets seen which can not be tracked
  • -
  • ignore: The number of packets seen which are already connected to an entry
  • -
  • delete: The number of entries which were removed
  • -
  • delete_list: The number of entries which were put to dying list
  • -
  • insert: The number of entries inserted into the list
  • -
  • insert_failed: The number of insertion attempted but failed (duplicate entry)
  • -
  • drop: The number of packets dropped due to conntrack failure
  • -
  • early_drop: The number of dropped entries to make room for new ones, if -maxsize is reached
  • -
  • icmp_error: Subset of invalid. Packets that can’t be tracked due to error
  • -
  • expect_new: Entries added after an expectation was already present
  • -
  • expect_create: Expectations added
  • -
  • expect_delete: Expectations deleted
  • -
  • search_restart: Conntrack table lookups restarted due to hashtable resizes
  • -
-

Tags

-

With collect = ["percpu"] will include detailed statistics per CPU thread.

-

Without "percpu" the cpu tag will have all value.

-

Example Output

- - -
conntrack,host=myhost ip_conntrack_count=2,ip_conntrack_max=262144 1461620427667995735
-

with stats:

- - -
conntrack,cpu=all,host=localhost delete=0i,delete_list=0i,drop=2i,early_drop=0i,entries=5568i,expect_create=0i,expect_delete=0i,expect_new=0i,found=7i,icmp_error=1962i,ignore=2586413402i,insert=0i,insert_failed=2i,invalid=46853i,new=0i,search_restart=453336i,searched=0i 1615233542000000000
-conntrack,host=localhost ip_conntrack_count=464,ip_conntrack_max=262144 1615233542000000000
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
-

Was this page helpful?

-
- - - -
-
-

Thank you for your feedback!

-
-
-
-
-
-
- - - - -
-
- - -
-
- - - - - - - - - - - - - - - - - - - - - - -
-
- -
- - - - - - - - - - - - - -
- - - -
- -
-
-
- -

New in InfluxDB 3.8

-
- -
-

Key enhancements in InfluxDB 3.8 and the InfluxDB 3 Explorer 1.6.

-

See the Blog Post

- -
- - -
-

InfluxDB 3.8 is now available for both Core and Enterprise, alongside the -1.6 release of the InfluxDB 3 Explorer UI. This release is focused on -operational maturity and making InfluxDB easier to deploy, manage, and run -reliably in production.

-

For more information, check out:

- - -
- - -
- -
-
-
- -

InfluxDB Docker latest tag changing to InfluxDB 3 Core

-
- -
- On May 27, 2026, the latest tag for InfluxDB Docker images will -point to InfluxDB 3 Core. To avoid unexpected upgrades, use specific version -tags in your Docker deployments. -
- - -
-

If using Docker to install and run InfluxDB, the latest tag will point to -InfluxDB 3 Core. To avoid unexpected upgrades, use specific version tags in -your Docker deployments. For example, if using Docker to run InfluxDB v2, -replace the latest version tag with a specific version tag in your Docker -pull command–for example:

- - -
docker pull influxdb:2
-
- - -
- -
- - - - - - - - - - - - - - - diff --git a/pr-preview/pr-6954/telegraf/v1/input-plugins/consul/index.html b/pr-preview/pr-6954/telegraf/v1/input-plugins/consul/index.html deleted file mode 100644 index 43464a014..000000000 --- a/pr-preview/pr-6954/telegraf/v1/input-plugins/consul/index.html +++ /dev/null @@ -1,4517 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -<nil> Documentation - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
- - - Documentation -
-
- -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
-

Select product

-
- -
- - -
-
-
- -
- - - - - -
- -
-
- -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- -
-
-
-

- - - - - - - - - - -
- - - - - -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Hashicorp Consul Input Plugin

-

This plugin will collect statistics about all health checks registered in -Consul using the Consul API. The plugin will not report any -telemetry metrics but Consul can report those statistics using -the StatsD protocol if needed.

-

Introduced in: Telegraf v1.0.0 -Tags: server -OS support: all

-

Global configuration options

-

Plugins support additional global and plugin configuration settings for tasks -such as modifying metrics, tags, and fields, creating aliases, and configuring -plugin ordering. See CONFIGURATION.md for more details.

-

Configuration

- - -
# Gather health check statuses from services registered in Consul
-[[inputs.consul]]
-  ## Consul server address
-  # address = "localhost:8500"
-
-  ## URI scheme for the Consul server, one of "http", "https"
-  # scheme = "http"
-
-  ## Metric version controls the mapping from Consul metrics into
-  ## Telegraf metrics. Version 2 moved all fields with string values
-  ## to tags.
-  ##
-  ##   example: metric_version = 1; deprecated in 1.16
-  ##            metric_version = 2; recommended version
-  # metric_version = 1
-
-  ## ACL token used in every request
-  # token = ""
-
-  ## HTTP Basic Authentication username and password.
-  # username = ""
-  # password = ""
-
-  ## Data center to query the health checks from
-  # datacenter = ""
-
-  ## Optional TLS Config
-  # tls_ca = "/etc/telegraf/ca.pem"
-  # tls_cert = "/etc/telegraf/cert.pem"
-  # tls_key = "/etc/telegraf/key.pem"
-  ## Use TLS but skip chain & host verification
-  # insecure_skip_verify = true
-
-  ## Consul checks' tag splitting
-  # When tags are formatted like "key:value" with ":" as a delimiter then
-  # they will be split and reported as proper key:value in Telegraf
-  # tag_delimiter = ":"
-

Metrics

-

metric_version = 1

-
    -
  • consul_health_checks -
      -
    • tags: -
        -
      • node (node that check/service is registered on)
      • -
      • service_name
      • -
      • check_id
      • -
      -
    • -
    • fields: -
        -
      • check_name
      • -
      • service_id
      • -
      • status
      • -
      • passing (integer)
      • -
      • critical (integer)
      • -
      • warning (integer)
      • -
      -
    • -
    -
  • -
-

metric_version = 2

-
    -
  • consul_health_checks -
      -
    • tags: -
        -
      • node (node that check/service is registered on)
      • -
      • service_name
      • -
      • check_id
      • -
      • check_name
      • -
      • service_id
      • -
      • status
      • -
      -
    • -
    • fields: -
        -
      • passing (integer)
      • -
      • critical (integer)
      • -
      • warning (integer)
      • -
      -
    • -
    -
  • -
-

passing, critical, and warning are integer representations of the health -check state. A value of 1 represents that the status was the state of the -health check at this sample. status is string representation of the same -state.

-

Example Output

- - -
consul_health_checks,host=wolfpit,node=consul-server-node,check_id="serfHealth" check_name="Serf Health Status",service_id="",status="passing",passing=1i,critical=0i,warning=0i 1464698464486439902
-consul_health_checks,host=wolfpit,node=consul-server-node,service_name=www.example.com,check_id="service:www-example-com.test01" check_name="Service 'www.example.com' check",service_id="www-example-com.test01",status="critical",passing=0i,critical=1i,warning=0i 1464698464486519036
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
-

Was this page helpful?

-
- - - -
-
-

Thank you for your feedback!

-
-
-
-
-
-
- - - - -
-
- - -
-
- - - - - - - - - - - - - - - - - - - - - - -
-
- -
- - - - - - - - - - - - - -
- - - -
- -
-
-
- -

New in InfluxDB 3.8

-
- -
-

Key enhancements in InfluxDB 3.8 and the InfluxDB 3 Explorer 1.6.

-

See the Blog Post

- -
- - -
-

InfluxDB 3.8 is now available for both Core and Enterprise, alongside the -1.6 release of the InfluxDB 3 Explorer UI. This release is focused on -operational maturity and making InfluxDB easier to deploy, manage, and run -reliably in production.

-

For more information, check out:

- - -
- - -
- -
-
-
- -

InfluxDB Docker latest tag changing to InfluxDB 3 Core

-
- -
- On May 27, 2026, the latest tag for InfluxDB Docker images will -point to InfluxDB 3 Core. To avoid unexpected upgrades, use specific version -tags in your Docker deployments. -
- - -
-

If using Docker to install and run InfluxDB, the latest tag will point to -InfluxDB 3 Core. To avoid unexpected upgrades, use specific version tags in -your Docker deployments. For example, if using Docker to run InfluxDB v2, -replace the latest version tag with a specific version tag in your Docker -pull command–for example:

- - -
docker pull influxdb:2
-
- - -
- -
- - - - - - - - - - - - - - - diff --git a/pr-preview/pr-6954/telegraf/v1/input-plugins/consul_agent/index.html b/pr-preview/pr-6954/telegraf/v1/input-plugins/consul_agent/index.html deleted file mode 100644 index a5affb658..000000000 --- a/pr-preview/pr-6954/telegraf/v1/input-plugins/consul_agent/index.html +++ /dev/null @@ -1,4443 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -<nil> Documentation - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
- - - Documentation -
-
- -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
-

Select product

-
- -
- - -
-
-
- -
- - - - - -
- -
-
- -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- -
-
-
-

- - - - - - - - - - -
- - - - - -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Hashicorp Consul Agent Input Plugin

-

This plugin collects metrics from a Consul agent. Telegraf may be -present in every node and connect to the agent locally. Tested on Consul v1.10.

-

Introduced in: Telegraf v1.22.0 -Tags: server -OS support: all

-

Global configuration options

-

Plugins support additional global and plugin configuration settings for tasks -such as modifying metrics, tags, and fields, creating aliases, and configuring -plugin ordering. See CONFIGURATION.md for more details.

-

Configuration

- - -
# Read metrics from the Consul Agent API
-[[inputs.consul_agent]]
-  ## URL for the Consul agent
-  # url = "http://127.0.0.1:8500"
-
-  ## Use auth token for authorization.
-  ## If both are set, an error is thrown.
-  ## If both are empty, no token will be used.
-  # token_file = "/path/to/auth/token"
-  ## OR
-  # token = "a1234567-40c7-9048-7bae-378687048181"
-
-  ## Set timeout (default 5 seconds)
-  # timeout = "5s"
-
-  ## Optional TLS Config
-  # tls_ca = /path/to/cafile
-  # tls_cert = /path/to/certfile
-  # tls_key = /path/to/keyfile
-

Metrics

-

Consul collects various metrics. For every details, please have a look at -Consul’s documentation.

-

Example Output

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
-

Was this page helpful?

-
- - - -
-
-

Thank you for your feedback!

-
-
-
-
-
-
- - - - -
-
- - -
-
- - - - - - - - - - - - - - - - - - - - - - -
-
- -
- - - - - - - - - - - - - -
- - - -
- -
-
-
- -

New in InfluxDB 3.8

-
- -
-

Key enhancements in InfluxDB 3.8 and the InfluxDB 3 Explorer 1.6.

-

See the Blog Post

- -
- - -
-

InfluxDB 3.8 is now available for both Core and Enterprise, alongside the -1.6 release of the InfluxDB 3 Explorer UI. This release is focused on -operational maturity and making InfluxDB easier to deploy, manage, and run -reliably in production.

-

For more information, check out:

- - -
- - -
- -
-
-
- -

InfluxDB Docker latest tag changing to InfluxDB 3 Core

-
- -
- On May 27, 2026, the latest tag for InfluxDB Docker images will -point to InfluxDB 3 Core. To avoid unexpected upgrades, use specific version -tags in your Docker deployments. -
- - -
-

If using Docker to install and run InfluxDB, the latest tag will point to -InfluxDB 3 Core. To avoid unexpected upgrades, use specific version tags in -your Docker deployments. For example, if using Docker to run InfluxDB v2, -replace the latest version tag with a specific version tag in your Docker -pull command–for example:

- - -
docker pull influxdb:2
-
- - -
- -
- - - - - - - - - - - - - - - diff --git a/pr-preview/pr-6954/telegraf/v1/input-plugins/couchbase/index.html b/pr-preview/pr-6954/telegraf/v1/input-plugins/couchbase/index.html deleted file mode 100644 index 23d8237a4..000000000 --- a/pr-preview/pr-6954/telegraf/v1/input-plugins/couchbase/index.html +++ /dev/null @@ -1,4727 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -<nil> Documentation - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
- - - Documentation -
-
- -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
-

Select product

-
- -
- - -
-
-
- -
- - - - - -
- -
-
- -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- -
-
-
-

- - - - - - - - - - -
- - - - - -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Couchbase Input Plugin

-

This plugin collects metrics from Couchbase, a distributed NoSQL -database. Metrics are collected for each node, as well as detailed metrics for -each bucket, for a given couchbase server.

-

Introduced in: Telegraf v0.12.0 -Tags: server -OS support: all

-

Global configuration options

-

Plugins support additional global and plugin configuration settings for tasks -such as modifying metrics, tags, and fields, creating aliases, and configuring -plugin ordering. See CONFIGURATION.md for more details.

-

Configuration

- - -
# Read per-node and per-bucket metrics from Couchbase
-[[inputs.couchbase]]
-  ## specify servers via a url matching:
-  ##  [protocol://]()@address[:port]
-  ##  e.g.
-  ##    http://couchbase-0.example.com/
-  ##    http://admin:secret@couchbase-0.example.com:8091/
-  ##
-  ## If no servers are specified, then localhost is used as the host.
-  ## If no protocol is specified, HTTP is used.
-  ## If no port is specified, 8091 is used.
-  servers = ["http://localhost:8091"]
-
-  ## Filter bucket fields to include only here.
-  # bucket_stats_included = ["quota_percent_used", "ops_per_sec", "disk_fetches", "item_count", "disk_used", "data_used", "mem_used"]
-
-  ## Optional TLS Config
-  # tls_ca = "/etc/telegraf/ca.pem"
-  # tls_cert = "/etc/telegraf/cert.pem"
-  # tls_key = "/etc/telegraf/key.pem"
-  ## Use TLS but skip chain & host verification (defaults to false)
-  ## If set to false, tls_cert and tls_key are required
-  # insecure_skip_verify = false
-
-  ## Whether to collect cluster-wide bucket statistics
-  ## It is recommended to disable this in favor of node_stats
-  ## to get a better view of the cluster.
-  # cluster_bucket_stats = true
-
-  ## Whether to collect bucket stats for each individual node
-  # node_bucket_stats = false
-
-  ## List of additional stats to collect, choose from:
-  ##  * autofailover
-  # additional_stats = []
-

Metrics

-

couchbase_node

-

Tags:

-
    -
  • cluster: sanitized string from servers configuration field -e.g.: http://user:password@couchbase-0.example.com:8091/endpoint becomes -http://couchbase-0.example.com:8091/endpoint
  • -
  • hostname: Couchbase’s name for the node and port, e.g., 172.16.10.187:8091
  • -
-

Fields:

-
    -
  • memory_free (unit: bytes, example: 23181365248.0)
  • -
  • memory_total (unit: bytes, example: 64424656896.0)
  • -
-

couchbase_autofailover

-

Tags:

-
    -
  • cluster: sanitized string from servers configuration field -e.g.: http://user:password@couchbase-0.example.com:8091/endpoint becomes -http://couchbase-0.example.com:8091/endpoint
  • -
-

Fields:

-
    -
  • count (unit: int, example: 1)
  • -
  • enabled (unit: bool, example: true)
  • -
  • max_count (unit: int, example: 2)
  • -
  • timeout (unit: int, example: 72)
  • -
-

couchbase_bucket and couchbase_node_bucket

-

Tags:

-
    -
  • cluster: whatever you called it in servers in the configuration, -e.g. http://couchbase-0.example.com/
  • -
  • bucket: the name of the couchbase bucket, e.g., blastro-df
  • -
  • hostname: the hostname of the node the bucket metrics were collected -from, e.g. 172.16.10.187:8091 (only present in couchbase_node_bucket)
  • -
-

Default bucket fields:

-
    -
  • quota_percent_used (unit: percent, example: 68.85424936294555)
  • -
  • ops_per_sec (unit: count, example: 5686.789686789687)
  • -
  • disk_fetches (unit: count, example: 0.0)
  • -
  • item_count (unit: count, example: 943239752.0)
  • -
  • disk_used (unit: bytes, example: 409178772321.0)
  • -
  • data_used (unit: bytes, example: 212179309111.0)
  • -
  • mem_used (unit: bytes, example: 202156957464.0)
  • -
-

Additional fields that can be configured with the bucket_stats_included -option:

-
    -
  • couch_total_disk_size
  • -
  • couch_docs_fragmentation
  • -
  • couch_views_fragmentation
  • -
  • hit_ratio
  • -
  • ep_cache_miss_rate
  • -
  • ep_resident_items_rate
  • -
  • vb_avg_active_queue_age
  • -
  • vb_avg_replica_queue_age
  • -
  • vb_avg_pending_queue_age
  • -
  • vb_avg_total_queue_age
  • -
  • vb_active_resident_items_ratio
  • -
  • vb_replica_resident_items_ratio
  • -
  • vb_pending_resident_items_ratio
  • -
  • avg_disk_update_time
  • -
  • avg_disk_commit_time
  • -
  • avg_bg_wait_time
  • -
  • avg_active_timestamp_drift
  • -
  • avg_replica_timestamp_drift
  • -
  • ep_dcp_views+indexes_count
  • -
  • ep_dcp_views+indexes_items_remaining
  • -
  • ep_dcp_views+indexes_producer_count
  • -
  • ep_dcp_views+indexes_total_backlog_size
  • -
  • ep_dcp_views+indexes_items_sent
  • -
  • ep_dcp_views+indexes_total_bytes
  • -
  • ep_dcp_views+indexes_backoff
  • -
  • bg_wait_count
  • -
  • bg_wait_total
  • -
  • bytes_read
  • -
  • bytes_written
  • -
  • cas_badval
  • -
  • cas_hits
  • -
  • cas_misses
  • -
  • cmd_get
  • -
  • cmd_lookup
  • -
  • cmd_set
  • -
  • couch_docs_actual_disk_size
  • -
  • couch_docs_data_size
  • -
  • couch_docs_disk_size
  • -
  • couch_spatial_data_size
  • -
  • couch_spatial_disk_size
  • -
  • couch_spatial_ops
  • -
  • couch_views_actual_disk_size
  • -
  • couch_views_data_size
  • -
  • couch_views_disk_size
  • -
  • couch_views_ops
  • -
  • curr_connections
  • -
  • curr_items
  • -
  • curr_items_tot
  • -
  • decr_hits
  • -
  • decr_misses
  • -
  • delete_hits
  • -
  • delete_misses
  • -
  • disk_commit_count
  • -
  • disk_commit_total
  • -
  • disk_update_count
  • -
  • disk_update_total
  • -
  • disk_write_queue
  • -
  • ep_active_ahead_exceptions
  • -
  • ep_active_hlc_drift
  • -
  • ep_active_hlc_drift_count
  • -
  • ep_bg_fetched
  • -
  • ep_clock_cas_drift_threshold_exceeded
  • -
  • ep_data_read_failed
  • -
  • ep_data_write_failed
  • -
  • ep_dcp_2i_backoff
  • -
  • ep_dcp_2i_count
  • -
  • ep_dcp_2i_items_remaining
  • -
  • ep_dcp_2i_items_sent
  • -
  • ep_dcp_2i_producer_count
  • -
  • ep_dcp_2i_total_backlog_size
  • -
  • ep_dcp_2i_total_bytes
  • -
  • ep_dcp_cbas_backoff
  • -
  • ep_dcp_cbas_count
  • -
  • ep_dcp_cbas_items_remaining
  • -
  • ep_dcp_cbas_items_sent
  • -
  • ep_dcp_cbas_producer_count
  • -
  • ep_dcp_cbas_total_backlog_size
  • -
  • ep_dcp_cbas_total_bytes
  • -
  • ep_dcp_eventing_backoff
  • -
  • ep_dcp_eventing_count
  • -
  • ep_dcp_eventing_items_remaining
  • -
  • ep_dcp_eventing_items_sent
  • -
  • ep_dcp_eventing_producer_count
  • -
  • ep_dcp_eventing_total_backlog_size
  • -
  • ep_dcp_eventing_total_bytes
  • -
  • ep_dcp_fts_backoff
  • -
  • ep_dcp_fts_count
  • -
  • ep_dcp_fts_items_remaining
  • -
  • ep_dcp_fts_items_sent
  • -
  • ep_dcp_fts_producer_count
  • -
  • ep_dcp_fts_total_backlog_size
  • -
  • ep_dcp_fts_total_bytes
  • -
  • ep_dcp_other_backoff
  • -
  • ep_dcp_other_count
  • -
  • ep_dcp_other_items_remaining
  • -
  • ep_dcp_other_items_sent
  • -
  • ep_dcp_other_producer_count
  • -
  • ep_dcp_other_total_backlog_size
  • -
  • ep_dcp_other_total_bytes
  • -
  • ep_dcp_replica_backoff
  • -
  • ep_dcp_replica_count
  • -
  • ep_dcp_replica_items_remaining
  • -
  • ep_dcp_replica_items_sent
  • -
  • ep_dcp_replica_producer_count
  • -
  • ep_dcp_replica_total_backlog_size
  • -
  • ep_dcp_replica_total_bytes
  • -
  • ep_dcp_views_backoff
  • -
  • ep_dcp_views_count
  • -
  • ep_dcp_views_items_remaining
  • -
  • ep_dcp_views_items_sent
  • -
  • ep_dcp_views_producer_count
  • -
  • ep_dcp_views_total_backlog_size
  • -
  • ep_dcp_views_total_bytes
  • -
  • ep_dcp_xdcr_backoff
  • -
  • ep_dcp_xdcr_count
  • -
  • ep_dcp_xdcr_items_remaining
  • -
  • ep_dcp_xdcr_items_sent
  • -
  • ep_dcp_xdcr_producer_count
  • -
  • ep_dcp_xdcr_total_backlog_size
  • -
  • ep_dcp_xdcr_total_bytes
  • -
  • ep_diskqueue_drain
  • -
  • ep_diskqueue_fill
  • -
  • ep_diskqueue_items
  • -
  • ep_flusher_todo
  • -
  • ep_item_commit_failed
  • -
  • ep_kv_size
  • -
  • ep_max_size
  • -
  • ep_mem_high_wat
  • -
  • ep_mem_low_wat
  • -
  • ep_meta_data_memory
  • -
  • ep_num_non_resident
  • -
  • ep_num_ops_del_meta
  • -
  • ep_num_ops_del_ret_meta
  • -
  • ep_num_ops_get_meta
  • -
  • ep_num_ops_set_meta
  • -
  • ep_num_ops_set_ret_meta
  • -
  • ep_num_value_ejects
  • -
  • ep_oom_errors
  • -
  • ep_ops_create
  • -
  • ep_ops_update
  • -
  • ep_overhead
  • -
  • ep_queue_size
  • -
  • ep_replica_ahead_exceptions
  • -
  • ep_replica_hlc_drift
  • -
  • ep_replica_hlc_drift_count
  • -
  • ep_tmp_oom_errors
  • -
  • ep_vb_total
  • -
  • evictions
  • -
  • get_hits
  • -
  • get_misses
  • -
  • incr_hits
  • -
  • incr_misses
  • -
  • mem_used
  • -
  • misses
  • -
  • ops
  • -
  • timestamp
  • -
  • vb_active_eject
  • -
  • vb_active_itm_memory
  • -
  • vb_active_meta_data_memory
  • -
  • vb_active_num
  • -
  • vb_active_num_non_resident
  • -
  • vb_active_ops_create
  • -
  • vb_active_ops_update
  • -
  • vb_active_queue_age
  • -
  • vb_active_queue_drain
  • -
  • vb_active_queue_fill
  • -
  • vb_active_queue_size
  • -
  • vb_active_sync_write_aborted_count
  • -
  • vb_active_sync_write_accepted_count
  • -
  • vb_active_sync_write_committed_count
  • -
  • vb_pending_curr_items
  • -
  • vb_pending_eject
  • -
  • vb_pending_itm_memory
  • -
  • vb_pending_meta_data_memory
  • -
  • vb_pending_num
  • -
  • vb_pending_num_non_resident
  • -
  • vb_pending_ops_create
  • -
  • vb_pending_ops_update
  • -
  • vb_pending_queue_age
  • -
  • vb_pending_queue_drain
  • -
  • vb_pending_queue_fill
  • -
  • vb_pending_queue_size
  • -
  • vb_replica_curr_items
  • -
  • vb_replica_eject
  • -
  • vb_replica_itm_memory
  • -
  • vb_replica_meta_data_memory
  • -
  • vb_replica_num
  • -
  • vb_replica_num_non_resident
  • -
  • vb_replica_ops_create
  • -
  • vb_replica_ops_update
  • -
  • vb_replica_queue_age
  • -
  • vb_replica_queue_drain
  • -
  • vb_replica_queue_fill
  • -
  • vb_replica_queue_size
  • -
  • vb_total_queue_age
  • -
  • xdc_ops
  • -
  • allocstall
  • -
  • cpu_cores_available
  • -
  • cpu_irq_rate
  • -
  • cpu_stolen_rate
  • -
  • cpu_sys_rate
  • -
  • cpu_user_rate
  • -
  • cpu_utilization_rate
  • -
  • hibernated_requests
  • -
  • hibernated_waked
  • -
  • mem_actual_free
  • -
  • mem_actual_used
  • -
  • mem_free
  • -
  • mem_limit
  • -
  • mem_total
  • -
  • mem_used_sys
  • -
  • odp_report_failed
  • -
  • rest_requests
  • -
  • swap_total
  • -
  • swap_used
  • -
-

Example Output

- - -
couchbase_node,cluster=http://localhost:8091/,hostname=172.17.0.2:8091 memory_free=7705575424,memory_total=16558182400 1547829754000000000
-couchbase_bucket,bucket=beer-sample,cluster=http://localhost:8091/ quota_percent_used=27.09285736083984,ops_per_sec=0,disk_fetches=0,item_count=7303,disk_used=21662946,data_used=9325087,mem_used=28408920 1547829754000000000
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
-

Was this page helpful?

-
- - - -
-
-

Thank you for your feedback!

-
-
-
-
-
-
- - - - -
-
- - -
-
- - - - - - - - - - - - - - - - - - - - - - -
-
- -
- - - - - - - - - - - - - -
- - - -
- -
-
-
- -

New in InfluxDB 3.8

-
- -
-

Key enhancements in InfluxDB 3.8 and the InfluxDB 3 Explorer 1.6.

-

See the Blog Post

- -
- - -
-

InfluxDB 3.8 is now available for both Core and Enterprise, alongside the -1.6 release of the InfluxDB 3 Explorer UI. This release is focused on -operational maturity and making InfluxDB easier to deploy, manage, and run -reliably in production.

-

For more information, check out:

- - -
- - -
- -
-
-
- -

InfluxDB Docker latest tag changing to InfluxDB 3 Core

-
- -
- On May 27, 2026, the latest tag for InfluxDB Docker images will -point to InfluxDB 3 Core. To avoid unexpected upgrades, use specific version -tags in your Docker deployments. -
- - -
-

If using Docker to install and run InfluxDB, the latest tag will point to -InfluxDB 3 Core. To avoid unexpected upgrades, use specific version tags in -your Docker deployments. For example, if using Docker to run InfluxDB v2, -replace the latest version tag with a specific version tag in your Docker -pull command–for example:

- - -
docker pull influxdb:2
-
- - -
- -
- - - - - - - - - - - - - - - diff --git a/pr-preview/pr-6954/telegraf/v1/input-plugins/couchdb/index.html b/pr-preview/pr-6954/telegraf/v1/input-plugins/couchdb/index.html deleted file mode 100644 index 50ddd90aa..000000000 --- a/pr-preview/pr-6954/telegraf/v1/input-plugins/couchdb/index.html +++ /dev/null @@ -1,4486 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -<nil> Documentation - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
- - - Documentation -
-
- -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
-

Select product

-
- -
- - -
-
-
- -
- - - - - -
- -
-
- -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- -
-
-
-

- - - - - - - - - - -
- - - - - -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Apache CouchDB Input Plugin

-

This plugin gathers metrics from Apache CouchDB instances using the -stats endpoint.

-

Introduced in: Telegraf v0.10.3 -Tags: server -OS support: all

-

Global configuration options

-

Plugins support additional global and plugin configuration settings for tasks -such as modifying metrics, tags, and fields, creating aliases, and configuring -plugin ordering. See CONFIGURATION.md for more details.

-

Configuration

- - -
# Read CouchDB Stats from one or more servers
-[[inputs.couchdb]]
-  ## Works with CouchDB stats endpoints out of the box
-  ## Multiple Hosts from which to read CouchDB stats:
-  hosts = ["http://localhost:8086/_stats"]
-
-  ## Use HTTP Basic Authentication.
-  # basic_username = "telegraf"
-  # basic_password = "p@ssw0rd"
-

Metrics

-

Statistics specific to the internals of CouchDB:

-
    -
  • couchdb_auth_cache_misses
  • -
  • couchdb_database_writes
  • -
  • couchdb_open_databases
  • -
  • couchdb_auth_cache_hits
  • -
  • couchdb_request_time
  • -
  • couchdb_database_reads
  • -
  • couchdb_open_os_files
  • -
-

Statistics of HTTP requests by method:

-
    -
  • httpd_request_methods_put
  • -
  • httpd_request_methods_get
  • -
  • httpd_request_methods_copy
  • -
  • httpd_request_methods_delete
  • -
  • httpd_request_methods_post
  • -
  • httpd_request_methods_head
  • -
-

Statistics of HTTP requests by response code:

-
    -
  • httpd_status_codes_200
  • -
  • httpd_status_codes_201
  • -
  • httpd_status_codes_202
  • -
  • httpd_status_codes_301
  • -
  • httpd_status_codes_304
  • -
  • httpd_status_codes_400
  • -
  • httpd_status_codes_401
  • -
  • httpd_status_codes_403
  • -
  • httpd_status_codes_404
  • -
  • httpd_status_codes_405
  • -
  • httpd_status_codes_409
  • -
  • httpd_status_codes_412
  • -
  • httpd_status_codes_500
  • -
-

httpd statistics:

-
    -
  • httpd_clients_requesting_changes
  • -
  • httpd_temporary_view_reads
  • -
  • httpd_requests
  • -
  • httpd_bulk_requests
  • -
  • httpd_view_reads
  • -
-

Tags

-
    -
  • server (url of the couchdb _stats endpoint)
  • -
-

Example Output

-

Post Couchdb 2.0

- - -
couchdb,server=http://couchdb22:5984/_node/_local/_stats couchdb_auth_cache_hits_value=0,httpd_request_methods_delete_value=0,couchdb_auth_cache_misses_value=0,httpd_request_methods_get_value=42,httpd_status_codes_304_value=0,httpd_status_codes_400_value=0,httpd_request_methods_head_value=0,httpd_status_codes_201_value=0,couchdb_database_reads_value=0,httpd_request_methods_copy_value=0,couchdb_request_time_max=0,httpd_status_codes_200_value=42,httpd_status_codes_301_value=0,couchdb_open_os_files_value=2,httpd_request_methods_put_value=0,httpd_request_methods_post_value=0,httpd_status_codes_202_value=0,httpd_status_codes_403_value=0,httpd_status_codes_409_value=0,couchdb_database_writes_value=0,couchdb_request_time_min=0,httpd_status_codes_412_value=0,httpd_status_codes_500_value=0,httpd_status_codes_401_value=0,httpd_status_codes_404_value=0,httpd_status_codes_405_value=0,couchdb_open_databases_value=0 1536707179000000000
-

Pre Couchdb 2.0

- - -
couchdb,server=http://couchdb16:5984/_stats couchdb_request_time_sum=96,httpd_status_codes_200_sum=37,httpd_status_codes_200_min=0,httpd_requests_mean=0.005,httpd_requests_min=0,couchdb_request_time_stddev=3.833,couchdb_request_time_min=1,httpd_request_methods_get_stddev=0.073,httpd_request_methods_get_min=0,httpd_status_codes_200_mean=0.005,httpd_status_codes_200_max=1,httpd_requests_sum=37,couchdb_request_time_current=96,httpd_request_methods_get_sum=37,httpd_request_methods_get_mean=0.005,httpd_request_methods_get_max=1,httpd_status_codes_200_stddev=0.073,couchdb_request_time_mean=2.595,couchdb_request_time_max=25,httpd_request_methods_get_current=37,httpd_status_codes_200_current=37,httpd_requests_current=37,httpd_requests_stddev=0.073,httpd_requests_max=1 1536707179000000000
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
-

Was this page helpful?

-
- - - -
-
-

Thank you for your feedback!

-
-
-
-
-
-
- - - - -
-
- - -
-
- - - - - - - - - - - - - - - - - - - - - - -
-
- -
- - - - - - - - - - - - - -
- - - -
- -
-
-
- -

New in InfluxDB 3.8

-
- -
-

Key enhancements in InfluxDB 3.8 and the InfluxDB 3 Explorer 1.6.

-

See the Blog Post

- -
- - -
-

InfluxDB 3.8 is now available for both Core and Enterprise, alongside the -1.6 release of the InfluxDB 3 Explorer UI. This release is focused on -operational maturity and making InfluxDB easier to deploy, manage, and run -reliably in production.

-

For more information, check out:

- - -
- - -
- -
-
-
- -

InfluxDB Docker latest tag changing to InfluxDB 3 Core

-
- -
- On May 27, 2026, the latest tag for InfluxDB Docker images will -point to InfluxDB 3 Core. To avoid unexpected upgrades, use specific version -tags in your Docker deployments. -
- - -
-

If using Docker to install and run InfluxDB, the latest tag will point to -InfluxDB 3 Core. To avoid unexpected upgrades, use specific version tags in -your Docker deployments. For example, if using Docker to run InfluxDB v2, -replace the latest version tag with a specific version tag in your Docker -pull command–for example:

- - -
docker pull influxdb:2
-
- - -
- -
- - - - - - - - - - - - - - - diff --git a/pr-preview/pr-6954/telegraf/v1/input-plugins/cpu/index.html b/pr-preview/pr-6954/telegraf/v1/input-plugins/cpu/index.html deleted file mode 100644 index debc144eb..000000000 --- a/pr-preview/pr-6954/telegraf/v1/input-plugins/cpu/index.html +++ /dev/null @@ -1,4488 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -<nil> Documentation - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
- - - Documentation -
-
- -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
-

Select product

-
- -
- - -
-
-
- -
- - - - - -
- -
-
- -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- -
-
-
-

- - - - - - - - - - -
- - - - - -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

CPU Input Plugin

-

This plugin gathers metrics about the system’s CPUs.

-

Introduced in: Telegraf v0.1.5 -Tags: system -OS support: all

-

Global configuration options

-

Plugins support additional global and plugin configuration settings for tasks -such as modifying metrics, tags, and fields, creating aliases, and configuring -plugin ordering. See CONFIGURATION.md for more details.

-

Configuration

- - -
# Read metrics about cpu usage
-[[inputs.cpu]]
-  ## Whether to report per-cpu stats or not
-  percpu = true
-  ## Whether to report total system cpu stats or not
-  totalcpu = true
-  ## If true, collect raw CPU time metrics
-  collect_cpu_time = false
-  ## If true, compute and report the sum of all non-idle CPU states
-  ## NOTE: The resulting 'time_active' field INCLUDES 'iowait'!
-  report_active = false
-  ## If true and the info is available then add core_id and physical_id tags
-  core_tags = false
-

Metrics

-

On Linux, consult man proc for details on the meanings of these values.

-
    -
  • cpu -
      -
    • tags: -
        -
      • cpu (CPU ID or cpu-total)
      • -
      -
    • -
    • fields: -
        -
      • time_user (float)
      • -
      • time_system (float)
      • -
      • time_idle (float)
      • -
      • time_active (float)
      • -
      • time_nice (float)
      • -
      • time_iowait (float)
      • -
      • time_irq (float)
      • -
      • time_softirq (float)
      • -
      • time_steal (float)
      • -
      • time_guest (float)
      • -
      • time_guest_nice (float)
      • -
      • usage_user (float, percent)
      • -
      • usage_system (float, percent)
      • -
      • usage_idle (float, percent)
      • -
      • usage_active (float)
      • -
      • usage_nice (float, percent)
      • -
      • usage_iowait (float, percent)
      • -
      • usage_irq (float, percent)
      • -
      • usage_softirq (float, percent)
      • -
      • usage_steal (float, percent)
      • -
      • usage_guest (float, percent)
      • -
      • usage_guest_nice (float, percent)
      • -
      -
    • -
    -
  • -
-

Troubleshooting

-

On Linux systems the /proc/stat file is used to gather CPU times. -Percentages are based on the last 2 samples. -Tags core_id and physical_id are read from /proc/cpuinfo on Linux systems

-

Example Output

- - -
cpu,cpu=cpu0,host=loaner time_active=202224.15999999992,time_guest=30250.35,time_guest_nice=0,time_idle=1527035.04,time_iowait=1352,time_irq=0,time_nice=169.28,time_softirq=6281.4,time_steal=0,time_system=40097.14,time_user=154324.34 1568760922000000000
-cpu,cpu=cpu0,host=loaner usage_active=31.249999981810106,usage_guest=2.083333333080696,usage_guest_nice=0,usage_idle=68.7500000181899,usage_iowait=0,usage_irq=0,usage_nice=0,usage_softirq=0,usage_steal=0,usage_system=4.166666666161392,usage_user=25.000000002273737 1568760922000000000
-cpu,cpu=cpu1,host=loaner time_active=201890.02000000002,time_guest=30508.41,time_guest_nice=0,time_idle=264641.18,time_iowait=210.44,time_irq=0,time_nice=181.75,time_softirq=4537.88,time_steal=0,time_system=39480.7,time_user=157479.25 1568760922000000000
-cpu,cpu=cpu1,host=loaner usage_active=12.500000010610771,usage_guest=2.0833333328280585,usage_guest_nice=0,usage_idle=87.49999998938922,usage_iowait=0,usage_irq=0,usage_nice=0,usage_softirq=2.0833333332070145,usage_steal=0,usage_system=4.166666665656117,usage_user=4.166666666414029 1568760922000000000
-cpu,cpu=cpu2,host=loaner time_active=201382.78999999998,time_guest=30325.8,time_guest_nice=0,time_idle=264686.63,time_iowait=202.77,time_irq=0,time_nice=162.81,time_softirq=3378.34,time_steal=0,time_system=39270.59,time_user=158368.28 1568760922000000000
-cpu,cpu=cpu2,host=loaner usage_active=15.999999993480742,usage_guest=1.9999999999126885,usage_guest_nice=0,usage_idle=84.00000000651926,usage_iowait=0,usage_irq=0,usage_nice=0,usage_softirq=2.0000000002764864,usage_steal=0,usage_system=3.999999999825377,usage_user=7.999999998923158 1568760922000000000
-cpu,cpu=cpu3,host=loaner time_active=198953.51000000007,time_guest=30344.43,time_guest_nice=0,time_idle=265504.09,time_iowait=187.64,time_irq=0,time_nice=197.47,time_softirq=2301.47,time_steal=0,time_system=39313.73,time_user=156953.2 1568760922000000000
-cpu,cpu=cpu3,host=loaner usage_active=10.41666667424579,usage_guest=0,usage_guest_nice=0,usage_idle=89.58333332575421,usage_iowait=0,usage_irq=0,usage_nice=0,usage_softirq=0,usage_steal=0,usage_system=4.166666666666667,usage_user=6.249999998484175 1568760922000000000
-cpu,cpu=cpu-total,host=loaner time_active=804450.5299999998,time_guest=121429,time_guest_nice=0,time_idle=2321866.96,time_iowait=1952.86,time_irq=0,time_nice=711.32,time_softirq=16499.1,time_steal=0,time_system=158162.17,time_user=627125.08 1568760922000000000
-cpu,cpu=cpu-total,host=loaner usage_active=17.616580305880305,usage_guest=1.036269430422946,usage_guest_nice=0,usage_idle=82.3834196941197,usage_iowait=0,usage_irq=0,usage_nice=0,usage_softirq=1.0362694300459534,usage_steal=0,usage_system=4.145077721691784,usage_user=11.398963731636465 1568760922000000000
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
-

Was this page helpful?

-
- - - -
-
-

Thank you for your feedback!

-
-
-
-
-
-
- - - - -
-
- - -
-
- - - - - - - - - - - - - - - - - - - - - - -
-
- -
- - - - - - - - - - - - - -
- - - -
- -
-
-
- -

New in InfluxDB 3.8

-
- -
-

Key enhancements in InfluxDB 3.8 and the InfluxDB 3 Explorer 1.6.

-

See the Blog Post

- -
- - -
-

InfluxDB 3.8 is now available for both Core and Enterprise, alongside the -1.6 release of the InfluxDB 3 Explorer UI. This release is focused on -operational maturity and making InfluxDB easier to deploy, manage, and run -reliably in production.

-

For more information, check out:

- - -
- - -
- -
-
-
- -

InfluxDB Docker latest tag changing to InfluxDB 3 Core

-
- -
- On May 27, 2026, the latest tag for InfluxDB Docker images will -point to InfluxDB 3 Core. To avoid unexpected upgrades, use specific version -tags in your Docker deployments. -
- - -
-

If using Docker to install and run InfluxDB, the latest tag will point to -InfluxDB 3 Core. To avoid unexpected upgrades, use specific version tags in -your Docker deployments. For example, if using Docker to run InfluxDB v2, -replace the latest version tag with a specific version tag in your Docker -pull command–for example:

- - -
docker pull influxdb:2
-
- - -
- -
- - - - - - - - - - - - - - - diff --git a/pr-preview/pr-6954/telegraf/v1/input-plugins/csgo/index.html b/pr-preview/pr-6954/telegraf/v1/input-plugins/csgo/index.html deleted file mode 100644 index 60eeeac24..000000000 --- a/pr-preview/pr-6954/telegraf/v1/input-plugins/csgo/index.html +++ /dev/null @@ -1,4460 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -<nil> Documentation - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
- - - Documentation -
-
- -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
-

Select product

-
- -
- - -
-
-
- -
- - - - - -
- -
-
- -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- -
-
-
-

- - - - - - - - - - -
- - - - - -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Counter-Strike: Global Offensive (CSGO) Input Plugin

-

This plugin gather metrics from Counter-Strike: Global Offensive -servers.

-

Introduced in: Telegraf v1.18.0 -Tags: server -OS support: all

-

Global configuration options

-

Plugins support additional global and plugin configuration settings for tasks -such as modifying metrics, tags, and fields, creating aliases, and configuring -plugin ordering. See CONFIGURATION.md for more details.

-

Configuration

- - -
# Fetch metrics from a CSGO SRCDS
-[[inputs.csgo]]
-  ## Specify servers using the following format:
-  ##    servers = [
-  ##      ["ip1:port1", "rcon_password1"],
-  ##      ["ip2:port2", "rcon_password2"],
-  ##    ]
-  #
-  ## If no servers are specified, no data will be collected
-  servers = []
-

Metrics

-

The plugin retrieves the output of the stats command that is executed via -rcon.

-

If no servers are specified, no data will be collected

-
    -
  • csgo -
      -
    • tags: -
        -
      • host
      • -
      -
    • -
    • fields: -
        -
      • cpu (float)
      • -
      • net_in (float)
      • -
      • net_out (float)
      • -
      • uptime_minutes (float)
      • -
      • maps (float)
      • -
      • fps (float)
      • -
      • players (float)
      • -
      • sv_ms (float)
      • -
      • variance_ms (float)
      • -
      • tick_ms (float)
      • -
      -
    • -
    -
  • -
-

Example Output

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
-

Was this page helpful?

-
- - - -
-
-

Thank you for your feedback!

-
-
-
-
-
-
- - - - -
-
- - -
-
- - - - - - - - - - - - - - - - - - - - - - -
-
- -
- - - - - - - - - - - - - -
- - - -
- -
-
-
- -

New in InfluxDB 3.8

-
- -
-

Key enhancements in InfluxDB 3.8 and the InfluxDB 3 Explorer 1.6.

-

See the Blog Post

- -
- - -
-

InfluxDB 3.8 is now available for both Core and Enterprise, alongside the -1.6 release of the InfluxDB 3 Explorer UI. This release is focused on -operational maturity and making InfluxDB easier to deploy, manage, and run -reliably in production.

-

For more information, check out:

- - -
- - -
- -
-
-
- -

InfluxDB Docker latest tag changing to InfluxDB 3 Core

-
- -
- On May 27, 2026, the latest tag for InfluxDB Docker images will -point to InfluxDB 3 Core. To avoid unexpected upgrades, use specific version -tags in your Docker deployments. -
- - -
-

If using Docker to install and run InfluxDB, the latest tag will point to -InfluxDB 3 Core. To avoid unexpected upgrades, use specific version tags in -your Docker deployments. For example, if using Docker to run InfluxDB v2, -replace the latest version tag with a specific version tag in your Docker -pull command–for example:

- - -
docker pull influxdb:2
-
- - -
- -
- - - - - - - - - - - - - - - diff --git a/pr-preview/pr-6954/telegraf/v1/input-plugins/ctrlx_datalayer/index.html b/pr-preview/pr-6954/telegraf/v1/input-plugins/ctrlx_datalayer/index.html deleted file mode 100644 index 3a9d47500..000000000 --- a/pr-preview/pr-6954/telegraf/v1/input-plugins/ctrlx_datalayer/index.html +++ /dev/null @@ -1,4725 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -<nil> Documentation - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
- - - Documentation -
-
- -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
-

Select product

-
- -
- - -
-
-
- -
- - - - - -
- -
-
- -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- -
-
-
-

- - - - - - - - - - -
- - - - - -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Bosch Rexroth ctrlX Data Layer Input Plugin

-

This plugin gathers data from the ctrlX Data Layer a communication -middleware running on Bosch Rexroth’s ctrlX CORE devices. The -platform is used for professional automation applications like industrial -automation, building automation, robotics, IoT Gateways or as classical PLC.

-

Introduced in: Telegraf v1.27.0 -Tags: iot, messaging -OS support: all

-

Global configuration options

-

Plugins support additional global and plugin configuration settings for tasks -such as modifying metrics, tags, and fields, creating aliases, and configuring -plugin ordering. See CONFIGURATION.md for more details.

-

Configuration

- - -
# A ctrlX Data Layer server sent event input plugin
-[[inputs.ctrlx_datalayer]]
-   ## Hostname or IP address of the ctrlX CORE Data Layer server
-   ##  example: server = "localhost"        # Telegraf is running directly on the device
-   ##           server = "192.168.1.1"      # Connect to ctrlX CORE remote via IP
-   ##           server = "host.example.com" # Connect to ctrlX CORE remote via hostname
-   ##           server = "10.0.2.2:8443"    # Connect to ctrlX CORE Virtual from development environment
-   server = "localhost"
-
-   ## Authentication credentials
-   username = "boschrexroth"
-   password = "boschrexroth"
-
-   ## Use TLS but skip chain & host verification
-   # insecure_skip_verify = false
-
-   ## Timeout for HTTP requests. (default: "10s")
-   # timeout = "10s"
-
-
-   ## Create a ctrlX Data Layer subscription.
-   ## It is possible to define multiple subscriptions per host. Each subscription can have its own
-   ## sampling properties and a list of nodes to subscribe to.
-   ## All subscriptions share the same credentials.
-   [[inputs.ctrlx_datalayer.subscription]]
-      ## The name of the measurement. (default: "ctrlx")
-      measurement = "memory"
-
-      ## Configure the ctrlX Data Layer nodes which should be subscribed.
-      ## address - node address in ctrlX Data Layer (mandatory)
-      ## name    - field name to use in the output (optional, default: base name of address)
-      ## tags    - extra node tags to be added to the output metric (optional)
-      ## Note: 
-      ## Use either the inline notation or the bracketed notation, not both.
-      ## The tags property is only supported in bracketed notation due to toml parser restrictions
-      ## Examples:
-      ## Inline notation 
-      nodes=[
-         {name="available", address="framework/metrics/system/memavailable-mb"},
-         {name="used", address="framework/metrics/system/memused-mb"},
-      ]
-      ## Bracketed notation
-      # [[inputs.ctrlx_datalayer.subscription.nodes]]
-      #    name   ="available"
-      #    address="framework/metrics/system/memavailable-mb"
-      #    ## Define extra tags related to node to be added to the output metric (optional)
-      #    [inputs.ctrlx_datalayer.subscription.nodes.tags]
-      #       node_tag1="node_tag1"
-      #       node_tag2="node_tag2"
-      # [[inputs.ctrlx_datalayer.subscription.nodes]]
-      #    name   ="used"
-      #    address="framework/metrics/system/memused-mb"
-
-      ## The switch "output_json_string" enables output of the measurement as json. 
-      ## That way it can be used in in a subsequent processor plugin, e.g. "Starlark Processor Plugin".
-      # output_json_string = false
-
-      ## Define extra tags related to subscription to be added to the output metric (optional)
-      # [inputs.ctrlx_datalayer.subscription.tags]
-      #    subscription_tag1 = "subscription_tag1"
-      #    subscription_tag2 = "subscription_tag2"
-
-      ## The interval in which messages shall be sent by the ctrlX Data Layer to this plugin. (default: 1s)
-      ## Higher values reduce load on network by queuing samples on server side and sending as a single TCP packet.
-      # publish_interval = "1s"
-
-      ## The interval a "keepalive" message is sent if no change of data occurs. (default: 60s)
-      ## Only used internally to detect broken network connections.
-      # keep_alive_interval = "60s"
-
-      ## The interval an "error" message is sent if an error was received from a node. (default: 10s)
-      ## Higher values reduce load on output target and network in case of errors by limiting frequency of error messages.
-      # error_interval = "10s"
-
-      ## The interval that defines the fastest rate at which the node values should be sampled and values captured. (default: 1s)
-      ## The sampling frequency should be adjusted to the dynamics of the signal to be sampled.
-      ## Higher sampling frequencies increases load on ctrlX Data Layer.
-      ## The sampling frequency can be higher, than the publish interval. Captured samples are put in a queue and sent in publish interval.
-      ## Note: The minimum sampling interval can be overruled by a global setting in the ctrlX Data Layer configuration ('datalayer/subscriptions/settings').
-      # sampling_interval = "1s"
-
-      ## The requested size of the node value queue. (default: 10)
-      ## Relevant if more values are captured than can be sent.
-      # queue_size = 10
-
-      ## The behaviour of the queue if it is full. (default: "DiscardOldest")
-      ## Possible values: 
-      ## - "DiscardOldest"
-      ##   The oldest value gets deleted from the queue when it is full.
-      ## - "DiscardNewest"
-      ##   The newest value gets deleted from the queue when it is full.
-      # queue_behaviour = "DiscardOldest"
-
-      ## The filter when a new value will be sampled. (default: 0.0)
-      ## Calculation rule: If (abs(lastCapturedValue - newValue) > dead_band_value) capture(newValue).
-      # dead_band_value = 0.0
-
-      ## The conditions on which a sample should be captured and thus will be sent as a message. (default: "StatusValue")
-      ## Possible values:
-      ## - "Status"
-      ##   Capture the value only, when the state of the node changes from or to error state. Value changes are ignored.
-      ## - "StatusValue" 
-      ##   Capture when the value changes or the node changes from or to error state.
-      ##   See also 'dead_band_value' for what is considered as a value change.
-      ## - "StatusValueTimestamp": 
-      ##   Capture even if the value is the same, but the timestamp of the value is newer.
-      ##   Note: This might lead to high load on the network because every sample will be sent as a message
-      ##   even if the value of the node did not change.
-      # value_change = "StatusValue"
-      
-

Metrics

-

All measurements are tagged with the server address of the device and the -corresponding node address as defined in the ctrlX Data Layer.

-
    -
  • measurement name -
      -
    • tags: -
        -
      • source (ctrlX Data Layer server where the metrics are gathered from)
      • -
      • node (Address of the ctrlX Data Layer node)
      • -
      -
    • -
    • fields: -
        -
      • {name} (for nodes with simple data types)
      • -
      • {name}_{index}(for nodes with array data types)
      • -
      • {name}_{jsonflat.key} (for nodes with object data types)
      • -
      -
    • -
    -
  • -
-

Output Format

-

The switch “output_json_string” determines the format of the output metric.

-

Output default format

-

With the output default format

- - -
output_json_string=false
-

the output is formatted automatically as follows depending on the data type:

-
Simple data type
-

The value is passed ‘as it is’ to a metric with pattern:

- - -
{name}={value}
-

Simple data types of ctrlX Data Layer:

- - -
bool8,int8,uint8,int16,uint16,int32,uint32,int64,uint64,float,double,string,timestamp
-
Array data type
-

Every value in the array is passed to a metric with pattern:

- - -
{name}_{index}={value[index]}
-

example:

- - -
myarray=[1,2,3] -> myarray_1=1, myarray_2=2, myarray_3=3
-

Array data types of ctrlX Data Layer:

- - -
arbool8,arint8,aruint8,arint16,aruint16,arint32,aruint32,arint64,aruint64,arfloat,ardouble,arstring,artimestamp
-
Object data type (JSON)
-

Every value of the flattened json is passed to a metric with pattern:

- - -
{name}_{jsonflat.key}={jsonflat.value}
-

example:

- - -
myobj={"a":1,"b":2,"c":{"d": 3}} -> myobj_a=1, myobj_b=2, myobj_c_d=3
-

Output JSON format

-

With the output JSON format

- - -
output_json_string=true
-

the output is formatted as JSON string:

- - -
{name}="{value}"
-

examples:

- - -
input=true -> output="true"
- - -
input=[1,2,3] -> output="[1,2,3]"
- - -
input={"x":4720,"y":9440,"z":{"d": 14160}} -> output="{\"x\":4720,\"y\":9440,\"z\":14160}"
-

The JSON output string can be passed to a processor plugin for transformation -e.g. Parser Processor Plugin -or Starlark Processor Plugin

-

example:

- - -
[[inputs.ctrlx_datalayer.subscription]]
-   measurement = "osci"
-   nodes = [
-     {address="oscilloscope/instances/Osci_PLC/rec-values/allsignals"},
-   ]
-   output_json_string = true
-
-[[processors.starlark]]
-   namepass = [
-      'osci',
-   ]
-   script = "oscilloscope.star"
-

Troubleshooting

-

This plugin was contributed by -Bosch Rexroth. -For questions regarding ctrlX AUTOMATION and this plugin feel -free to check out and be part of the -ctrlX AUTOMATION Community -to get additional support or leave some ideas and feedback.

-

Also, join -InfluxData Community Slack or -InfluxData Community Page -if you have questions or comments for the telegraf engineering teams.

-

Example Output

-

The plugin handles simple, array and object (JSON) data types.

-

Example with simple data type

-

Configuration:

- - -
[[inputs.ctrlx_datalayer.subscription]]
-   measurement="memory"
-   [inputs.ctrlx_datalayer.subscription.tags]
-      sub_tag1="memory_tag1"
-      sub_tag2="memory_tag2"
-
-   [[inputs.ctrlx_datalayer.subscription.nodes]]
-      name   ="available"
-      address="framework/metrics/system/memavailable-mb"
-      [inputs.ctrlx_datalayer.subscription.nodes.tags]
-         node_tag1="memory_available_tag1"
-         node_tag2="memory_available_tag2"
-
-   [[inputs.ctrlx_datalayer.subscription.nodes]]
-      name   ="used"
-      address="framework/metrics/system/memused-mb"
-      [inputs.ctrlx_datalayer.subscription.nodes.tags]
-         node_tag1="memory_used_node_tag1"
-         node_tag2="memory_used_node_tag2"
-

Source:

- - -
"framework/metrics/system/memavailable-mb" : 365.93359375
-"framework/metrics/system/memused-mb" : 567.67578125
-

Metrics:

- - -
memory,source=192.168.1.1,host=host.example.com,node=framework/metrics/system/memavailable-mb,node_tag1=memory_available_tag1,node_tag2=memory_available_tag2,sub_tag1=memory2_tag1,sub_tag2=memory_tag2 available=365.93359375 1680093310249627400
-memory,source=192.168.1.1,host=host.example.com,node=framework/metrics/system/memused-mb,node_tag1=memory_used_node_tag1,node_tag2=memory_used_node_tag2,sub_tag1=memory2_tag1,sub_tag2=memory_tag2 used=567.67578125 1680093310249667600
-

Example with array data type

-

Configuration:

- - -
[[inputs.ctrlx_datalayer.subscription]]
-   measurement="array"
-   nodes=[
-      { name="ar_uint8", address="alldata/dynamic/array-of-uint8"},
-      { name="ar_bool8", address="alldata/dynamic/array-of-bool8"},
-   ]
-

Source:

- - -
"alldata/dynamic/array-of-bool8" : [true, false, true]
-"alldata/dynamic/array-of-uint8" : [0, 255]
-

Metrics:

- - -
array,source=192.168.1.1,host=host.example.com,node=alldata/dynamic/array-of-bool8 ar_bool8_0=true,ar_bool8_1=false,ar_bool8_2=true 1680095727347018800
-array,source=192.168.1.1,host=host.example.com,node=alldata/dynamic/array-of-uint8 ar_uint8_0=0,ar_uint8_1=255 1680095727347223300
-

Example with object data type (JSON)

-

Configuration:

- - -
[[inputs.ctrlx_datalayer.subscription]]
-   measurement="motion"
-   nodes=[
-      {name="linear", address="motion/axs/Axis_1/state/values/actual"},
-      {name="rotational", address="motion/axs/Axis_2/state/values/actual"},
-   ]
-

Source:

- - -
"motion/axs/Axis_1/state/values/actual" : {"actualPos":65.249329860957,"actualVel":5,"actualAcc":0,"actualTorque":0,"distLeft":0,"actualPosUnit":"mm","actualVelUnit":"mm/min","actualAccUnit":"m/s^2","actualTorqueUnit":"Nm","distLeftUnit":"mm"}
-"motion/axs/Axis_2/state/values/actual" : {"actualPos":120,"actualVel":0,"actualAcc":0,"actualTorque":0,"distLeft":0,"actualPosUnit":"deg","actualVelUnit":"rpm","actualAccUnit":"rad/s^2","actualTorqueUnit":"Nm","distLeftUnit":"deg"}
-

Metrics:

- - -
motion,source=192.168.1.1,host=host.example.com,node=motion/axs/Axis_1/state/values/actual linear_actualVel=5,linear_distLeftUnit="mm",linear_actualAcc=0,linear_distLeft=0,linear_actualPosUnit="mm",linear_actualAccUnit="m/s^2",linear_actualTorqueUnit="Nm",linear_actualPos=65.249329860957,linear_actualVelUnit="mm/min",linear_actualTorque=0 1680258290342523500
-motion,source=192.168.1.1,host=host.example.com,node=motion/axs/Axis_2/state/values/actual rotational_distLeft=0,rotational_actualVelUnit="rpm",rotational_actualAccUnit="rad/s^2",rotational_distLeftUnit="deg",rotational_actualPos=120,rotational_actualVel=0,rotational_actualAcc=0,rotational_actualPosUnit="deg",rotational_actualTorqueUnit="Nm",rotational_actualTorque=0 1680258290342538100
-

If output_json_string is set in the configuration:

- - -
  output_json_string = true
-

then the metrics will be generated like this:

- - -
motion,source=192.168.1.1,host=host.example.com,node=motion/axs/Axis_1/state/values/actual linear="{\"actualAcc\":0,\"actualAccUnit\":\"m/s^2\",\"actualPos\":65.249329860957,\"actualPosUnit\":\"mm\",\"actualTorque\":0,\"actualTorqueUnit\":\"Nm\",\"actualVel\":5,\"actualVelUnit\":\"mm/min\",\"distLeft\":0,\"distLeftUnit\":\"mm\"}" 1680258290342523500
-motion,source=192.168.1.1,host=host.example.com,node=motion/axs/Axis_2/state/values/actual rotational="{\"actualAcc\":0,\"actualAccUnit\":\"rad/s^2\",\"actualPos\":120,\"actualPosUnit\":\"deg\",\"actualTorque\":0,\"actualTorqueUnit\":\"Nm\",\"actualVel\":0,\"actualVelUnit\":\"rpm\",\"distLeft\":0,\"distLeftUnit\":\"deg\"}" 1680258290342538100
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
-

Was this page helpful?

-
- - - -
-
-

Thank you for your feedback!

-
-
-
-
-
-
- - - - -
-
- - -
-
- - - - - - - - - - - - - - - - - - - - - - -
-
- -
- - - - - - - - - - - - - -
- - - -
- -
-
-
- -

New in InfluxDB 3.8

-
- -
-

Key enhancements in InfluxDB 3.8 and the InfluxDB 3 Explorer 1.6.

-

See the Blog Post

- -
- - -
-

InfluxDB 3.8 is now available for both Core and Enterprise, alongside the -1.6 release of the InfluxDB 3 Explorer UI. This release is focused on -operational maturity and making InfluxDB easier to deploy, manage, and run -reliably in production.

-

For more information, check out:

- - -
- - -
- -
-
-
- -

InfluxDB Docker latest tag changing to InfluxDB 3 Core

-
- -
- On May 27, 2026, the latest tag for InfluxDB Docker images will -point to InfluxDB 3 Core. To avoid unexpected upgrades, use specific version -tags in your Docker deployments. -
- - -
-

If using Docker to install and run InfluxDB, the latest tag will point to -InfluxDB 3 Core. To avoid unexpected upgrades, use specific version tags in -your Docker deployments. For example, if using Docker to run InfluxDB v2, -replace the latest version tag with a specific version tag in your Docker -pull command–for example:

- - -
docker pull influxdb:2
-
- - -
- -
- - - - - - - - - - - - - - - diff --git a/pr-preview/pr-6954/telegraf/v1/input-plugins/dcos/index.html b/pr-preview/pr-6954/telegraf/v1/input-plugins/dcos/index.html deleted file mode 100644 index 9d8f81a92..000000000 --- a/pr-preview/pr-6954/telegraf/v1/input-plugins/dcos/index.html +++ /dev/null @@ -1,4647 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -<nil> Documentation - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
- - - Documentation -
-
- -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
-

Select product

-
- -
- - -
-
-
- -
- - - - - -
- -
-
- -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- -
-
-
-

- - - - - - - - - - -
- - - - - -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Mesosphere Distributed Cloud OS Input Plugin

-

This input plugin gathers metrics from a Distributed Cloud OS cluster’s -metrics component.

- -
- - -

Depending on the workload of your DC/OS cluster, this plugin can quickly -create a high number of series which, when unchecked, can cause high load on -your database!

-
-

Introduced in: Telegraf v1.5.0 -Tags: containers -OS support: all

-

Global configuration options

-

Plugins support additional global and plugin configuration settings for tasks -such as modifying metrics, tags, and fields, creating aliases, and configuring -plugin ordering. See CONFIGURATION.md for more details.

-

Configuration

- - -
# Input plugin for DC/OS metrics
-[[inputs.dcos]]
-  ## The DC/OS cluster URL.
-  cluster_url = "https://dcos-master-1"
-
-  ## The ID of the service account.
-  service_account_id = "telegraf"
-  ## The private key file for the service account.
-  service_account_private_key = "/etc/telegraf/telegraf-sa-key.pem"
-
-  ## Path containing login token.  If set, will read on every gather.
-  # token_file = "/home/dcos/.dcos/token"
-
-  ## In all filter options if both include and exclude are empty all items
-  ## will be collected.  Arrays may contain glob patterns.
-  ##
-  ## Node IDs to collect metrics from.  If a node is excluded, no metrics will
-  ## be collected for its containers or apps.
-  # node_include = []
-  # node_exclude = []
-  ## Container IDs to collect container metrics from.
-  # container_include = []
-  # container_exclude = []
-  ## Container IDs to collect app metrics from.
-  # app_include = []
-  # app_exclude = []
-
-  ## Maximum concurrent connections to the cluster.
-  # max_connections = 10
-  ## Maximum time to receive a response from cluster.
-  # response_timeout = "20s"
-
-  ## Optional TLS Config
-  # tls_ca = "/etc/telegraf/ca.pem"
-  # tls_cert = "/etc/telegraf/cert.pem"
-  # tls_key = "/etc/telegraf/key.pem"
-  ## If false, skip chain & host verification
-  # insecure_skip_verify = true
-
-  ## Recommended filtering to reduce series cardinality.
-  # [inputs.dcos.tagdrop]
-  #   path = ["/var/lib/mesos/slave/slaves/*"]
-

Enterprise Authentication

-

When using Enterprise DC/OS, it is recommended to use a service account to -authenticate with the cluster.

-

The plugin requires the following permissions:

- - -
dcos:adminrouter:ops:system-metrics full
-dcos:adminrouter:ops:mesos full
-

Follow the directions to create a service account and assign permissions.

-

Quick configuration using the Enterprise CLI:

- - -
dcos security org service-accounts keypair telegraf-sa-key.pem telegraf-sa-cert.pem
-dcos security org service-accounts create -p telegraf-sa-cert.pem -d "Telegraf DC/OS input plugin" telegraf
-dcos security org users grant telegraf dcos:adminrouter:ops:system-metrics full
-dcos security org users grant telegraf dcos:adminrouter:ops:mesos full
-

Open Source Authentication

-

The Open Source DC/OS does not provide service accounts. Instead you can use -of the following options:

-
    -
  1. Disable authentication
  2. -
  3. Use the token_file parameter to read a authentication token from a file.
  4. -
-

Then token_file can be set by using the [dcos cli] to login periodically. -The cli can login for at most XXX days, you will need to ensure the cli -performs a new login before this time expires.

- - -
dcos auth login --username foo --password bar
-dcos config show core.dcos_acs_token > ~/.dcos/token
-

Another option to create a token_file is to generate a token using the -cluster secret. This will allow you to set the expiration date manually or -even create a never expiring token. However, if the cluster secret or the -token is compromised it cannot be revoked and may require a full reinstall of -the cluster. For more information on this technique reference -this blog post.

-

Series Cardinality Mitigation

- -

Metrics

-

Please consult the Metrics Reference for details about field -interpretation.

-
    -
  • -

    dcos_node

    -
      -
    • tags: -
        -
      • cluster
      • -
      • hostname
      • -
      • path (filesystem fields only)
      • -
      • interface (network fields only)
      • -
      -
    • -
    • fields: -
        -
      • system_uptime (float)
      • -
      • cpu_cores (float)
      • -
      • cpu_total (float)
      • -
      • cpu_user (float)
      • -
      • cpu_system (float)
      • -
      • cpu_idle (float)
      • -
      • cpu_wait (float)
      • -
      • load_1min (float)
      • -
      • load_5min (float)
      • -
      • load_15min (float)
      • -
      • filesystem_capacity_total_bytes (int)
      • -
      • filesystem_capacity_used_bytes (int)
      • -
      • filesystem_capacity_free_bytes (int)
      • -
      • filesystem_inode_total (float)
      • -
      • filesystem_inode_used (float)
      • -
      • filesystem_inode_free (float)
      • -
      • memory_total_bytes (int)
      • -
      • memory_free_bytes (int)
      • -
      • memory_buffers_bytes (int)
      • -
      • memory_cached_bytes (int)
      • -
      • swap_total_bytes (int)
      • -
      • swap_free_bytes (int)
      • -
      • swap_used_bytes (int)
      • -
      • network_in_bytes (int)
      • -
      • network_out_bytes (int)
      • -
      • network_in_packets (float)
      • -
      • network_out_packets (float)
      • -
      • network_in_dropped (float)
      • -
      • network_out_dropped (float)
      • -
      • network_in_errors (float)
      • -
      • network_out_errors (float)
      • -
      • process_count (float)
      • -
      -
    • -
    -
  • -
  • -

    dcos_container

    -
      -
    • tags: -
        -
      • cluster
      • -
      • hostname
      • -
      • container_id
      • -
      • task_name
      • -
      -
    • -
    • fields: -
        -
      • cpus_limit (float)
      • -
      • cpus_system_time (float)
      • -
      • cpus_throttled_time (float)
      • -
      • cpus_user_time (float)
      • -
      • disk_limit_bytes (int)
      • -
      • disk_used_bytes (int)
      • -
      • mem_limit_bytes (int)
      • -
      • mem_total_bytes (int)
      • -
      • net_rx_bytes (int)
      • -
      • net_rx_dropped (float)
      • -
      • net_rx_errors (float)
      • -
      • net_rx_packets (float)
      • -
      • net_tx_bytes (int)
      • -
      • net_tx_dropped (float)
      • -
      • net_tx_errors (float)
      • -
      • net_tx_packets (float)
      • -
      -
    • -
    -
  • -
  • -

    dcos_app

    -
      -
    • tags: -
        -
      • cluster
      • -
      • hostname
      • -
      • container_id
      • -
      • task_name
      • -
      -
    • -
    • fields: -
        -
      • fields are application specific
      • -
      -
    • -
    -
  • -
-

Example Output

- - -
dcos_node,cluster=enterprise,hostname=192.168.122.18,path=/boot filesystem_capacity_free_bytes=918188032i,filesystem_capacity_total_bytes=1063256064i,filesystem_capacity_used_bytes=145068032i,filesystem_inode_free=523958,filesystem_inode_total=524288,filesystem_inode_used=330 1511859222000000000
-dcos_node,cluster=enterprise,hostname=192.168.122.18,interface=dummy0 network_in_bytes=0i,network_in_dropped=0,network_in_errors=0,network_in_packets=0,network_out_bytes=0i,network_out_dropped=0,network_out_errors=0,network_out_packets=0 1511859222000000000
-dcos_node,cluster=enterprise,hostname=192.168.122.18,interface=docker0 network_in_bytes=0i,network_in_dropped=0,network_in_errors=0,network_in_packets=0,network_out_bytes=0i,network_out_dropped=0,network_out_errors=0,network_out_packets=0 1511859222000000000
-dcos_node,cluster=enterprise,hostname=192.168.122.18 cpu_cores=2,cpu_idle=81.62,cpu_system=4.19,cpu_total=13.670000000000002,cpu_user=9.48,cpu_wait=0,load_15min=0.7,load_1min=0.22,load_5min=0.6,memory_buffers_bytes=970752i,memory_cached_bytes=1830473728i,memory_free_bytes=1178636288i,memory_total_bytes=3975073792i,process_count=198,swap_free_bytes=859828224i,swap_total_bytes=859828224i,swap_used_bytes=0i,system_uptime=18874 1511859222000000000
-dcos_node,cluster=enterprise,hostname=192.168.122.18,interface=lo network_in_bytes=1090992450i,network_in_dropped=0,network_in_errors=0,network_in_packets=1546938,network_out_bytes=1090992450i,network_out_dropped=0,network_out_errors=0,network_out_packets=1546938 1511859222000000000
-dcos_node,cluster=enterprise,hostname=192.168.122.18,path=/ filesystem_capacity_free_bytes=1668378624i,filesystem_capacity_total_bytes=6641680384i,filesystem_capacity_used_bytes=4973301760i,filesystem_inode_free=3107856,filesystem_inode_total=3248128,filesystem_inode_used=140272 1511859222000000000
-dcos_node,cluster=enterprise,hostname=192.168.122.18,interface=minuteman network_in_bytes=0i,network_in_dropped=0,network_in_errors=0,network_in_packets=0,network_out_bytes=210i,network_out_dropped=0,network_out_errors=0,network_out_packets=3 1511859222000000000
-dcos_node,cluster=enterprise,hostname=192.168.122.18,interface=eth0 network_in_bytes=539886216i,network_in_dropped=1,network_in_errors=0,network_in_packets=979808,network_out_bytes=112395836i,network_out_dropped=0,network_out_errors=0,network_out_packets=891239 1511859222000000000
-dcos_node,cluster=enterprise,hostname=192.168.122.18,interface=spartan network_in_bytes=0i,network_in_dropped=0,network_in_errors=0,network_in_packets=0,network_out_bytes=210i,network_out_dropped=0,network_out_errors=0,network_out_packets=3 1511859222000000000
-dcos_node,cluster=enterprise,hostname=192.168.122.18,path=/var/lib/docker/overlay filesystem_capacity_free_bytes=1668378624i,filesystem_capacity_total_bytes=6641680384i,filesystem_capacity_used_bytes=4973301760i,filesystem_inode_free=3107856,filesystem_inode_total=3248128,filesystem_inode_used=140272 1511859222000000000
-dcos_node,cluster=enterprise,hostname=192.168.122.18,interface=vtep1024 network_in_bytes=0i,network_in_dropped=0,network_in_errors=0,network_in_packets=0,network_out_bytes=0i,network_out_dropped=0,network_out_errors=0,network_out_packets=0 1511859222000000000
-dcos_node,cluster=enterprise,hostname=192.168.122.18,path=/var/lib/docker/plugins filesystem_capacity_free_bytes=1668378624i,filesystem_capacity_total_bytes=6641680384i,filesystem_capacity_used_bytes=4973301760i,filesystem_inode_free=3107856,filesystem_inode_total=3248128,filesystem_inode_used=140272 1511859222000000000
-dcos_node,cluster=enterprise,hostname=192.168.122.18,interface=d-dcos network_in_bytes=0i,network_in_dropped=0,network_in_errors=0,network_in_packets=0,network_out_bytes=0i,network_out_dropped=0,network_out_errors=0,network_out_packets=0 1511859222000000000
-dcos_app,cluster=enterprise,container_id=9a78d34a-3bbf-467e-81cf-a57737f154ee,hostname=192.168.122.18 container_received_bytes_per_sec=0,container_throttled_bytes_per_sec=0 1511859222000000000
-dcos_container,cluster=enterprise,container_id=cbf19b77-3b8d-4bcf-b81f-824b67279629,hostname=192.168.122.18 cpus_limit=0.3,cpus_system_time=307.31,cpus_throttled_time=102.029930607,cpus_user_time=268.57,disk_limit_bytes=268435456i,disk_used_bytes=30953472i,mem_limit_bytes=570425344i,mem_total_bytes=13316096i,net_rx_bytes=0i,net_rx_dropped=0,net_rx_errors=0,net_rx_packets=0,net_tx_bytes=0i,net_tx_dropped=0,net_tx_errors=0,net_tx_packets=0 1511859222000000000
-dcos_app,cluster=enterprise,container_id=cbf19b77-3b8d-4bcf-b81f-824b67279629,hostname=192.168.122.18 container_received_bytes_per_sec=0,container_throttled_bytes_per_sec=0 1511859222000000000
-dcos_container,cluster=enterprise,container_id=5725e219-f66e-40a8-b3ab-519d85f4c4dc,hostname=192.168.122.18,task_name=hello-world cpus_limit=0.6,cpus_system_time=25.6,cpus_throttled_time=327.977109217,cpus_user_time=566.54,disk_limit_bytes=0i,disk_used_bytes=0i,mem_limit_bytes=1107296256i,mem_total_bytes=335941632i,net_rx_bytes=0i,net_rx_dropped=0,net_rx_errors=0,net_rx_packets=0,net_tx_bytes=0i,net_tx_dropped=0,net_tx_errors=0,net_tx_packets=0 1511859222000000000
-dcos_app,cluster=enterprise,container_id=5725e219-f66e-40a8-b3ab-519d85f4c4dc,hostname=192.168.122.18 container_received_bytes_per_sec=0,container_throttled_bytes_per_sec=0 1511859222000000000
-dcos_app,cluster=enterprise,container_id=c76e1488-4fb7-4010-a4cf-25725f8173f9,hostname=192.168.122.18 container_received_bytes_per_sec=0,container_throttled_bytes_per_sec=0 1511859222000000000
-dcos_container,cluster=enterprise,container_id=cbe0b2f9-061f-44ac-8f15-4844229e8231,hostname=192.168.122.18,task_name=telegraf cpus_limit=0.2,cpus_system_time=8.109999999,cpus_throttled_time=93.183916045,cpus_user_time=17.97,disk_limit_bytes=0i,disk_used_bytes=0i,mem_limit_bytes=167772160i,mem_total_bytes=0i,net_rx_bytes=0i,net_rx_dropped=0,net_rx_errors=0,net_rx_packets=0,net_tx_bytes=0i,net_tx_dropped=0,net_tx_errors=0,net_tx_packets=0 1511859222000000000
-dcos_container,cluster=enterprise,container_id=b64115de-3d2a-431d-a805-76e7c46453f1,hostname=192.168.122.18 cpus_limit=0.2,cpus_system_time=2.69,cpus_throttled_time=20.064861214,cpus_user_time=6.56,disk_limit_bytes=268435456i,disk_used_bytes=29360128i,mem_limit_bytes=297795584i,mem_total_bytes=13733888i,net_rx_bytes=0i,net_rx_dropped=0,net_rx_errors=0,net_rx_packets=0,net_tx_bytes=0i,net_tx_dropped=0,net_tx_errors=0,net_tx_packets=0 1511859222000000000
-dcos_app,cluster=enterprise,container_id=b64115de-3d2a-431d-a805-76e7c46453f1,hostname=192.168.122.18 container_received_bytes_per_sec=0,container_throttled_bytes_per_sec=0 1511859222000000000
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
-

Was this page helpful?

-
- - - -
-
-

Thank you for your feedback!

-
-
-
-
-
-
- - - - -
-
- - -
-
- - - - - - - - - - - - - - - - - - - - - - -
-
- -
- - - - - - - - - - - - - -
- - - -
- -
-
-
- -

New in InfluxDB 3.8

-
- -
-

Key enhancements in InfluxDB 3.8 and the InfluxDB 3 Explorer 1.6.

-

See the Blog Post

- -
- - -
-

InfluxDB 3.8 is now available for both Core and Enterprise, alongside the -1.6 release of the InfluxDB 3 Explorer UI. This release is focused on -operational maturity and making InfluxDB easier to deploy, manage, and run -reliably in production.

-

For more information, check out:

- - -
- - -
- -
-
-
- -

InfluxDB Docker latest tag changing to InfluxDB 3 Core

-
- -
- On May 27, 2026, the latest tag for InfluxDB Docker images will -point to InfluxDB 3 Core. To avoid unexpected upgrades, use specific version -tags in your Docker deployments. -
- - -
-

If using Docker to install and run InfluxDB, the latest tag will point to -InfluxDB 3 Core. To avoid unexpected upgrades, use specific version tags in -your Docker deployments. For example, if using Docker to run InfluxDB v2, -replace the latest version tag with a specific version tag in your Docker -pull command–for example:

- - -
docker pull influxdb:2
-
- - -
- -
- - - - - - - - - - - - - - - diff --git a/pr-preview/pr-6954/telegraf/v1/input-plugins/directory_monitor/index.html b/pr-preview/pr-6954/telegraf/v1/input-plugins/directory_monitor/index.html deleted file mode 100644 index 38d5d4e2f..000000000 --- a/pr-preview/pr-6954/telegraf/v1/input-plugins/directory_monitor/index.html +++ /dev/null @@ -1,4516 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -<nil> Documentation - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
- - - Documentation -
-
- -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
-

Select product

-
- -
- - -
-
-
- -
- - - - - -
- -
-
- -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- -
-
-
-

- - - - - - - - - - -
- - - - - -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Directory Monitor Input Plugin

-

This plugin monitors a single directory (traversing sub-directories), and -processes each file placed in the directory. The plugin will gather all files in -the directory at the configured interval, and parse the ones that haven’t been -picked up yet.

- -
- - -

Files should not be used by another process or the plugin may fail. -Furthermore, files should not be written live to the monitored directory. -If you absolutely must write files directly, they must be guaranteed to finish -writing before directory_duration_threshold.

-
-

Introduced in: Telegraf v1.18.0 -Tags: system -OS support: all

-

Global configuration options

-

Plugins support additional global and plugin configuration settings for tasks -such as modifying metrics, tags, and fields, creating aliases, and configuring -plugin ordering. See CONFIGURATION.md for more details.

-

Configuration

- - -
# Ingests files in a directory and then moves them to a target directory.
-[[inputs.directory_monitor]]
-  ## The directory to monitor and read files from (including sub-directories if "recursive" is true).
-  directory = ""
-  #
-  ## The directory to move finished files to (maintaining directory hierarchy from source).
-  finished_directory = ""
-  #
-  ## Setting recursive to true will make the plugin recursively walk the directory and process all sub-directories.
-  # recursive = false
-  #
-  ## The directory to move files to upon file error.
-  ## If not provided, erroring files will stay in the monitored directory.
-  # error_directory = ""
-  #
-  ## The amount of time a file is allowed to sit in the directory before it is picked up.
-  ## This time can generally be low but if you choose to have a very large file written to the directory and it's potentially slow,
-  ## set this higher so that the plugin will wait until the file is fully copied to the directory.
-  # directory_duration_threshold = "50ms"
-  #
-  ## A list of the only file names to monitor, if necessary. Supports regex. If left blank, all files are ingested.
-  # files_to_monitor = ["^.*\\.csv"]
-  #
-  ## A list of files to ignore, if necessary. Supports regex.
-  # files_to_ignore = [".DS_Store"]
-  #
-  ## Maximum lines of the file to process that have not yet be written by the
-  ## output. For best throughput set to the size of the output's metric_buffer_limit.
-  ## Warning: setting this number higher than the output's metric_buffer_limit can cause dropped metrics.
-  # max_buffered_metrics = 10000
-  #
-  ## The maximum amount of file paths to queue up for processing at once, before waiting until files are processed to find more files.
-  ## Lowering this value will result in *slightly* less memory use, with a potential sacrifice in speed efficiency, if absolutely necessary.
-  # file_queue_size = 100000
-  #
-  ## Name a tag containing the name of the file the data was parsed from.  Leave empty
-  ## to disable. Cautious when file name variation is high, this can increase the cardinality
-  ## significantly. Read more about cardinality here:
-  ## https://docs.influxdata.com/influxdb/cloud/reference/glossary/#series-cardinality
-  # file_tag = ""
-  #
-  ## Specify if the file can be read completely at once or if it needs to be read line by line (default).
-  ## Possible values: "line-by-line", "at-once"
-  # parse_method = "line-by-line"
-  #
-  ## The dataformat to be read from the files.
-  ## Each data format has its own unique set of configuration options, read
-  ## more about them here:
-  ## https://github.com/influxdata/telegraf/blob/master/docs/DATA_FORMATS_INPUT.md
-  data_format = "influx"
-

Metrics

-

The format of metrics produced by this plugin depends on the content and data -format of the file.

-

When the internal input is enabled:

-
    -
  • internal_directory_monitor -
      -
    • fields: -
        -
      • files_processed - How many files have been processed (counter)
      • -
      • files_dropped - How many files have been dropped (counter)
      • -
      -
    • -
    -
  • -
  • internal_directory_monitor -
      -
    • tags: -
        -
      • directory - The monitored directory
      • -
      -
    • -
    • fields: -
        -
      • files_processed_per_dir - How many files have been processed (counter)
      • -
      • files_dropped_per_dir - How many files have been dropped (counter)
      • -
      • files_queue_per_dir - How many files to be processed (gauge)
      • -
      -
    • -
    -
  • -
-

Example Output

-

The metrics produced by this plugin depends on the content and data -format of the file.

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
-

Was this page helpful?

-
- - - -
-
-

Thank you for your feedback!

-
-
-
-
-
-
- - - - -
-
- - -
-
- - - - - - - - - - - - - - - - - - - - - - -
-
- -
- - - - - - - - - - - - - -
- - - -
- -
-
-
- -

New in InfluxDB 3.8

-
- -
-

Key enhancements in InfluxDB 3.8 and the InfluxDB 3 Explorer 1.6.

-

See the Blog Post

- -
- - -
-

InfluxDB 3.8 is now available for both Core and Enterprise, alongside the -1.6 release of the InfluxDB 3 Explorer UI. This release is focused on -operational maturity and making InfluxDB easier to deploy, manage, and run -reliably in production.

-

For more information, check out:

- - -
- - -
- -
-
-
- -

InfluxDB Docker latest tag changing to InfluxDB 3 Core

-
- -
- On May 27, 2026, the latest tag for InfluxDB Docker images will -point to InfluxDB 3 Core. To avoid unexpected upgrades, use specific version -tags in your Docker deployments. -
- - -
-

If using Docker to install and run InfluxDB, the latest tag will point to -InfluxDB 3 Core. To avoid unexpected upgrades, use specific version tags in -your Docker deployments. For example, if using Docker to run InfluxDB v2, -replace the latest version tag with a specific version tag in your Docker -pull command–for example:

- - -
docker pull influxdb:2
-
- - -
- -
- - - - - - - - - - - - - - - diff --git a/pr-preview/pr-6954/telegraf/v1/input-plugins/disk/index.html b/pr-preview/pr-6954/telegraf/v1/input-plugins/disk/index.html deleted file mode 100644 index 51e3f5635..000000000 --- a/pr-preview/pr-6954/telegraf/v1/input-plugins/disk/index.html +++ /dev/null @@ -1,4499 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -<nil> Documentation - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
- - - Documentation -
-
- -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
-

Select product

-
- -
- - -
-
-
- -
- - - - - -
- -
-
- -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- -
-
-
-

- - - - - - - - - - -
- - - - - -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Disk Input Plugin

-

This plugin gathers metrics about disk usage.

- -
- - -

The used_percent field is calculated by used / (used + free) and not -used / total as the unix df command does it. See wikipedia - df -for more details.

-
-

Introduced in: Telegraf v0.1.1 -Tags: system -OS support: all

-

Global configuration options

-

Plugins support additional global and plugin configuration settings for tasks -such as modifying metrics, tags, and fields, creating aliases, and configuring -plugin ordering. See CONFIGURATION.md for more details.

-

Configuration

- - -
# Read metrics about disk usage by mount point
-[[inputs.disk]]
-  ## By default stats will be gathered for all mount points.
-  ## Set mount_points will restrict the stats to only the specified mount points.
-  # mount_points = ["/"]
-
-  ## Ignore mount points by filesystem type.
-  ignore_fs = ["tmpfs", "devtmpfs", "devfs", "iso9660", "overlay", "aufs", "squashfs"]
-
-  ## Ignore mount points by mount options.
-  ## The 'mount' command reports options of all mounts in parathesis.
-  ## Bind mounts can be ignored with the special 'bind' option.
-  # ignore_mount_opts = []
-

Docker container

-

To monitor the Docker engine host from within a container you will need to mount -the host’s filesystem into the container and set the HOST_PROC environment -variable to the location of the /proc filesystem. If desired, you can also -set the HOST_MOUNT_PREFIX environment variable to the prefix containing the -/proc directory, when present this variable is stripped from the reported -path tag.

- - -
docker run -v /:/hostfs:ro -e HOST_MOUNT_PREFIX=/hostfs -e HOST_PROC=/hostfs/proc telegraf
-

Metrics

-
    -
  • disk -
      -
    • tags: -
        -
      • fstype (filesystem type)
      • -
      • device (device file)
      • -
      • path (mount point path)
      • -
      • mode (whether the mount is rw or ro)
      • -
      • label (devicemapper labels, only if present)
      • -
      -
    • -
    • fields: -
        -
      • free (integer, bytes)
      • -
      • total (integer, bytes)
      • -
      • used (integer, bytes)
      • -
      • used_percent (float, percent)
      • -
      • inodes_free (integer, files)
      • -
      • inodes_total (integer, files)
      • -
      • inodes_used (integer, files)
      • -
      • inodes_used_percent (float, percent)
      • -
      -
    • -
    -
  • -
-

Troubleshooting

-

On Linux, the list of disks is taken from the /proc/self/mounts file and a -statfs call is made on the second column. If any expected filesystems are -missing ensure that the telegraf user can read these files:

- - -
$ sudo -u telegraf cat /proc/self/mounts | grep sda2
-/dev/sda2 /home ext4 rw,relatime,data=ordered 0 0
-$ sudo -u telegraf stat /home
-

It may be desired to use POSIX ACLs to provide additional access:

- - -
sudo setfacl -R -m u:telegraf:X /var/lib/docker/volumes/
-

Example Output

- - -
disk,fstype=hfs,mode=ro,path=/ free=398407520256i,inodes_free=97267461i,inodes_total=121847806i,inodes_used=24580345i,total=499088621568i,used=100418957312i,used_percent=20.131039916242397,inodes_used_percent=20.1729894 1453832006274071563
-disk,fstype=devfs,mode=rw,path=/dev free=0i,inodes_free=0i,inodes_total=628i,inodes_used=628i,total=185856i,used=185856i,used_percent=100,inodes_used_percent=100 1453832006274137913
-disk,fstype=autofs,mode=rw,path=/net free=0i,inodes_free=0i,inodes_total=0i,inodes_used=0i,total=0i,used=0i,used_percent=0,inodes_used_percent=0 1453832006274157077
-disk,fstype=autofs,mode=rw,path=/home free=0i,inodes_free=0i,inodes_total=0i,inodes_used=0i,total=0i,used=0i,used_percent=0,inodes_used_percent=0 1453832006274169688
-disk,device=dm-1,fstype=xfs,label=lvg-lv,mode=rw,path=/mnt inodes_free=8388605i,inodes_used=3i,total=17112760320i,free=16959598592i,used=153161728i,used_percent=0.8950147441789215,inodes_total=8388608i,inodes_used_percent=0.0017530778 1677001387000000000
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
-

Was this page helpful?

-
- - - -
-
-

Thank you for your feedback!

-
-
-
-
-
-
- - - - -
-
- - -
-
- - - - - - - - - - - - - - - - - - - - - - -
-
- -
- - - - - - - - - - - - - -
- - - -
- -
-
-
- -

New in InfluxDB 3.8

-
- -
-

Key enhancements in InfluxDB 3.8 and the InfluxDB 3 Explorer 1.6.

-

See the Blog Post

- -
- - -
-

InfluxDB 3.8 is now available for both Core and Enterprise, alongside the -1.6 release of the InfluxDB 3 Explorer UI. This release is focused on -operational maturity and making InfluxDB easier to deploy, manage, and run -reliably in production.

-

For more information, check out:

- - -
- - -
- -
-
-
- -

InfluxDB Docker latest tag changing to InfluxDB 3 Core

-
- -
- On May 27, 2026, the latest tag for InfluxDB Docker images will -point to InfluxDB 3 Core. To avoid unexpected upgrades, use specific version -tags in your Docker deployments. -
- - -
-

If using Docker to install and run InfluxDB, the latest tag will point to -InfluxDB 3 Core. To avoid unexpected upgrades, use specific version tags in -your Docker deployments. For example, if using Docker to run InfluxDB v2, -replace the latest version tag with a specific version tag in your Docker -pull command–for example:

- - -
docker pull influxdb:2
-
- - -
- -
- - - - - - - - - - - - - - - diff --git a/pr-preview/pr-6954/telegraf/v1/input-plugins/diskio/index.html b/pr-preview/pr-6954/telegraf/v1/input-plugins/diskio/index.html deleted file mode 100644 index f01a24a22..000000000 --- a/pr-preview/pr-6954/telegraf/v1/input-plugins/diskio/index.html +++ /dev/null @@ -1,4543 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -<nil> Documentation - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
- - - Documentation -
-
- -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
-

Select product

-
- -
- - -
-
-
- -
- - - - - -
- -
-
- -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- -
-
-
-

- - - - - - - - - - -
- - - - - -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

DiskIO Input Plugin

-

This plugin gathers metrics about disk traffic and timing.

-

Introduced in: Telegraf v0.10.0 -Tags: system -OS support: all

-

Global configuration options

-

Plugins support additional global and plugin configuration settings for tasks -such as modifying metrics, tags, and fields, creating aliases, and configuring -plugin ordering. See CONFIGURATION.md for more details.

-

Configuration

- - -
# Read metrics about disk IO by device
-[[inputs.diskio]]
-  ## Devices to collect stats for
-  ## Wildcards are supported except for disk synonyms like '/dev/disk/by-id'.
-  ## ex. devices = ["sda", "sdb", "vd*", "/dev/disk/by-id/nvme-eui.00123deadc0de123"]
-  # devices = ["*"]
-
-  ## Skip gathering of the disk's serial numbers.
-  # skip_serial_number = true
-
-  ## Device metadata tags to add on systems supporting it (Linux only)
-  ## Use 'udevadm info -q property -n <device>' to get a list of properties.
-  ## Note: Most, but not all, udev properties can be accessed this way. Properties
-  ## that are currently inaccessible include DEVTYPE, DEVNAME, and DEVPATH.
-  # device_tags = ["ID_FS_TYPE", "ID_FS_USAGE"]
-
-  ## Using the same metadata source as device_tags, you can also customize the
-  ## name of the device via templates.
-  ## The 'name_templates' parameter is a list of templates to try and apply to
-  ## the device. The template may contain variables in the form of '$PROPERTY' or
-  ## '${PROPERTY}'. The first template which does not contain any variables not
-  ## present for the device is used as the device name tag.
-  ## The typical use case is for LVM volumes, to get the VG/LV name instead of
-  ## the near-meaningless DM-0 name.
-  # name_templates = ["$ID_FS_LABEL","$DM_VG_NAME/$DM_LV_NAME"]
-

Docker container

-

To monitor the Docker engine host from within a container you will need to -mount the host’s filesystem into the container and set the HOST_PROC -environment variable to the location of the /proc filesystem. Additionally, -it is required to use privileged mode to provide access to /dev.

-

If you are using the device_tags or name_templates options, you will need -to bind mount /run/udev into the container.

- - -
docker run --privileged -v /:/hostfs:ro -v /run/udev:/run/udev:ro -e HOST_PROC=/hostfs/proc telegraf
-

Metrics

-
    -
  • diskio -
      -
    • tags: -
        -
      • name (device name)
      • -
      • serial (device serial number)
      • -
      -
    • -
    • fields: -
        -
      • reads (integer, counter)
      • -
      • writes (integer, counter)
      • -
      • read_bytes (integer, counter, bytes)
      • -
      • write_bytes (integer, counter, bytes)
      • -
      • read_time (integer, counter, milliseconds)
      • -
      • write_time (integer, counter, milliseconds)
      • -
      • io_time (integer, counter, milliseconds)
      • -
      • weighted_io_time (integer, counter, milliseconds)
      • -
      • iops_in_progress (integer, gauge)
      • -
      • merged_reads (integer, counter)
      • -
      • merged_writes (integer, counter)
      • -
      • io_util (float64, gauge, percent)
      • -
      • io_await (float64, gauge, milliseconds)
      • -
      • io_svctm (float64, gauge, milliseconds)
      • -
      -
    • -
    -
  • -
-

On linux these values correspond to the values in /proc/diskstats and -/sys/block/<dev>/stat.

-

reads & writes

-

These values increment when an I/O request completes.

-

read_bytes & write_bytes

-

These values count the number of bytes read from or written to this -block device.

-

read_time & write_time

-

These values count the number of milliseconds that I/O requests have -waited on this block device. If there are multiple I/O requests waiting, -these values will increase at a rate greater than 1000/second; for -example, if 60 read requests wait for an average of 30 ms, the read_time -field will increase by 60*30 = 1800.

-

io_time

-

This value counts the number of milliseconds during which the device has -had I/O requests queued.

-

weighted_io_time

-

This value counts the number of milliseconds that I/O requests have waited -on this block device. If there are multiple I/O requests waiting, this -value will increase as the product of the number of milliseconds times the -number of requests waiting (see read_time above for an example).

-

iops_in_progress

-

This value counts the number of I/O requests that have been issued to -the device driver but have not yet completed. It does not include I/O -requests that are in the queue but not yet issued to the device driver.

-

merged_reads & merged_writes

-

Reads and writes which are adjacent to each other may be merged for -efficiency. Thus two 4K reads may become one 8K read before it is -ultimately handed to the disk, and so it will be counted (and queued) -as only one I/O. These fields lets you know how often this was done.

-

io_await

-

The average time per I/O operation (ms)

-

io_svctm

-

The service time per I/O operation, excluding wait time (ms)

-

io_util

-

The percentage of time the disk was active (%)

-

Sample Queries

-

Calculate percent IO utilization per disk and host

- - -
SELECT non_negative_derivative(last("io_time"),1ms) FROM "diskio" WHERE time > now() - 30m GROUP BY "host","name",time(60s)
-

Calculate average queue depth

-

iops_in_progress will give you an instantaneous value. This will give you the -average between polling intervals.

- - -
SELECT non_negative_derivative(last("weighted_io_time"),1ms) from "diskio" WHERE time > now() - 30m GROUP BY "host","name",time(60s)
-

Example Output

- - -
diskio,name=sda1 merged_reads=0i,reads=2353i,writes=10i,write_bytes=2117632i,write_time=49i,io_time=1271i,weighted_io_time=1350i,read_bytes=31350272i,read_time=1303i,iops_in_progress=0i,merged_writes=0i 1578326400000000000
-diskio,name=centos/var_log reads=1063077i,writes=591025i,read_bytes=139325491712i,write_bytes=144233131520i,read_time=650221i,write_time=24368817i,io_time=852490i,weighted_io_time=25037394i,iops_in_progress=1i,merged_reads=0i,merged_writes=0i 1578326400000000000
-diskio,name=sda write_time=49i,io_time=1317i,weighted_io_time=1404i,reads=2495i,read_time=1357i,write_bytes=2117632i,iops_in_progress=0i,merged_reads=0i,merged_writes=0i,writes=10i,read_bytes=38956544i 1578326400000000000
- - -
diskio,name=sda io_await:0.3317307692307692,io_svctm:0.07692307692307693,io_util:0.5329780146568954 1578326400000000000
-diskio,name=sda1 io_await:0.3317307692307692,io_svctm:0.07692307692307693,io_util:0.5329780146568954 1578326400000000000
-diskio,name=sda2 io_await:0.3317307692307692,io_svctm:0.07692307692307693,io_util:0.5329780146568954 1578326400000000000
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
-

Was this page helpful?

-
- - - -
-
-

Thank you for your feedback!

-
-
-
-
-
-
- - - - -
-
- - -
-
- - - - - - - - - - - - - - - - - - - - - - -
-
- -
- - - - - - - - - - - - - -
- - - -
- -
-
-
- -

New in InfluxDB 3.8

-
- -
-

Key enhancements in InfluxDB 3.8 and the InfluxDB 3 Explorer 1.6.

-

See the Blog Post

- -
- - -
-

InfluxDB 3.8 is now available for both Core and Enterprise, alongside the -1.6 release of the InfluxDB 3 Explorer UI. This release is focused on -operational maturity and making InfluxDB easier to deploy, manage, and run -reliably in production.

-

For more information, check out:

- - -
- - -
- -
-
-
- -

InfluxDB Docker latest tag changing to InfluxDB 3 Core

-
- -
- On May 27, 2026, the latest tag for InfluxDB Docker images will -point to InfluxDB 3 Core. To avoid unexpected upgrades, use specific version -tags in your Docker deployments. -
- - -
-

If using Docker to install and run InfluxDB, the latest tag will point to -InfluxDB 3 Core. To avoid unexpected upgrades, use specific version tags in -your Docker deployments. For example, if using Docker to run InfluxDB v2, -replace the latest version tag with a specific version tag in your Docker -pull command–for example:

- - -
docker pull influxdb:2
-
- - -
- -
- - - - - - - - - - - - - - - diff --git a/pr-preview/pr-6954/telegraf/v1/input-plugins/disque/index.html b/pr-preview/pr-6954/telegraf/v1/input-plugins/disque/index.html deleted file mode 100644 index 589292f57..000000000 --- a/pr-preview/pr-6954/telegraf/v1/input-plugins/disque/index.html +++ /dev/null @@ -1,4456 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -<nil> Documentation - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
- - - Documentation -
-
- -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
-

Select product

-
- -
- - -
-
-
- -
- - - - - -
- -
-
- -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- -
-
-
-

- - - - - - - - - - -
- - - - - -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Disque Input Plugin

-

This plugin gathers data from a Disque instance, an experimental -distributed, in-memory, message broker.

-

Introduced in: Telegraf v0.10.0 -Tags: messaging -OS support: all

-

Global configuration options

-

Plugins support additional global and plugin configuration settings for tasks -such as modifying metrics, tags, and fields, creating aliases, and configuring -plugin ordering. See CONFIGURATION.md for more details.

-

Configuration

- - -
# Read metrics from one or many disque servers
-[[inputs.disque]]
-  ## An array of URI to gather stats about. Specify an ip or hostname
-  ## with optional port and password.
-  ## ie disque://localhost, disque://10.10.3.33:18832, 10.0.0.1:10000, etc.
-  ## If no servers are specified, then localhost is used as the host.
-  servers = ["localhost"]
-

Metrics

-
    -
  • disque -
      -
    • disque_host -
        -
      • uptime_in_seconds
      • -
      • connected_clients
      • -
      • blocked_clients
      • -
      • used_memory
      • -
      • used_memory_rss
      • -
      • used_memory_peak
      • -
      • total_connections_received
      • -
      • total_commands_processed
      • -
      • instantaneous_ops_per_sec
      • -
      • latest_fork_usec
      • -
      • mem_fragmentation_ratio
      • -
      • used_cpu_sys
      • -
      • used_cpu_user
      • -
      • used_cpu_sys_children
      • -
      • used_cpu_user_children
      • -
      • registered_jobs
      • -
      • registered_queues
      • -
      -
    • -
    -
  • -
-

Example Output

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
-

Was this page helpful?

-
- - - -
-
-

Thank you for your feedback!

-
-
-
-
-
-
- - - - -
-
- - -
-
- - - - - - - - - - - - - - - - - - - - - - -
-
- -
- - - - - - - - - - - - - -
- - - -
- -
-
-
- -

New in InfluxDB 3.8

-
- -
-

Key enhancements in InfluxDB 3.8 and the InfluxDB 3 Explorer 1.6.

-

See the Blog Post

- -
- - -
-

InfluxDB 3.8 is now available for both Core and Enterprise, alongside the -1.6 release of the InfluxDB 3 Explorer UI. This release is focused on -operational maturity and making InfluxDB easier to deploy, manage, and run -reliably in production.

-

For more information, check out:

- - -
- - -
- -
-
-
- -

InfluxDB Docker latest tag changing to InfluxDB 3 Core

-
- -
- On May 27, 2026, the latest tag for InfluxDB Docker images will -point to InfluxDB 3 Core. To avoid unexpected upgrades, use specific version -tags in your Docker deployments. -
- - -
-

If using Docker to install and run InfluxDB, the latest tag will point to -InfluxDB 3 Core. To avoid unexpected upgrades, use specific version tags in -your Docker deployments. For example, if using Docker to run InfluxDB v2, -replace the latest version tag with a specific version tag in your Docker -pull command–for example:

- - -
docker pull influxdb:2
-
- - -
- -
- - - - - - - - - - - - - - - diff --git a/pr-preview/pr-6954/telegraf/v1/input-plugins/dmcache/index.html b/pr-preview/pr-6954/telegraf/v1/input-plugins/dmcache/index.html deleted file mode 100644 index 93b0ec0ed..000000000 --- a/pr-preview/pr-6954/telegraf/v1/input-plugins/dmcache/index.html +++ /dev/null @@ -1,4467 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -<nil> Documentation - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
- - - Documentation -
-
- -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
-

Select product

-
- -
- - -
-
-
- -
- - - - - -
- -
-
- -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- -
-
-
-

- - - - - - - - - - -
- - - - - -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Device Mapper Cache Input Plugin

-

This plugin provide a native collection for dmsetup based statistics for -dm-cache.

- -
- - -

This plugin requires super-user permissions! Please make sure, Telegraf is -able to run sudo /sbin/dmsetup status --target cache without requiring a -password.

-
-

Introduced in: Telegraf v1.3.0 -Tags: system -OS support: linux

-

Global configuration options

-

Plugins support additional global and plugin configuration settings for tasks -such as modifying metrics, tags, and fields, creating aliases, and configuring -plugin ordering. See CONFIGURATION.md for more details.

-

Configuration

- - -
# Provide a native collection for dmsetup based statistics for dm-cache
-# This plugin ONLY supports Linux
-[[inputs.dmcache]]
-  ## Whether to report per-device stats or not
-  per_device = true
-

Metrics

-
    -
  • dmcache -
      -
    • length
    • -
    • target
    • -
    • metadata_blocksize
    • -
    • metadata_used
    • -
    • metadata_total
    • -
    • cache_blocksize
    • -
    • cache_used
    • -
    • cache_total
    • -
    • read_hits
    • -
    • read_misses
    • -
    • write_hits
    • -
    • write_misses
    • -
    • demotions
    • -
    • promotions
    • -
    • dirty
    • -
    -
  • -
-

Tags

-
    -
  • All measurements have the following tags: -
      -
    • device
    • -
    -
  • -
-

Example Output

- - -
dmcache,device=example cache_blocksize=0i,read_hits=995134034411520i,read_misses=916807089127424i,write_hits=195107267543040i,metadata_used=12861440i,write_misses=563725346013184i,promotions=3265223720960i,dirty=0i,metadata_blocksize=0i,cache_used=1099511627776ii,cache_total=0i,length=0i,metadata_total=1073741824i,demotions=3265223720960i 1491482035000000000
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
-

Was this page helpful?

-
- - - -
-
-

Thank you for your feedback!

-
-
-
-
-
-
- - - - -
-
- - -
-
- - - - - - - - - - - - - - - - - - - - - - -
-
- -
- - - - - - - - - - - - - -
- - - -
- -
-
-
- -

New in InfluxDB 3.8

-
- -
-

Key enhancements in InfluxDB 3.8 and the InfluxDB 3 Explorer 1.6.

-

See the Blog Post

- -
- - -
-

InfluxDB 3.8 is now available for both Core and Enterprise, alongside the -1.6 release of the InfluxDB 3 Explorer UI. This release is focused on -operational maturity and making InfluxDB easier to deploy, manage, and run -reliably in production.

-

For more information, check out:

- - -
- - -
- -
-
-
- -

InfluxDB Docker latest tag changing to InfluxDB 3 Core

-
- -
- On May 27, 2026, the latest tag for InfluxDB Docker images will -point to InfluxDB 3 Core. To avoid unexpected upgrades, use specific version -tags in your Docker deployments. -
- - -
-

If using Docker to install and run InfluxDB, the latest tag will point to -InfluxDB 3 Core. To avoid unexpected upgrades, use specific version tags in -your Docker deployments. For example, if using Docker to run InfluxDB v2, -replace the latest version tag with a specific version tag in your Docker -pull command–for example:

- - -
docker pull influxdb:2
-
- - -
- -
- - - - - - - - - - - - - - - diff --git a/pr-preview/pr-6954/telegraf/v1/input-plugins/dns_query/index.html b/pr-preview/pr-6954/telegraf/v1/input-plugins/dns_query/index.html deleted file mode 100644 index ef1ad3bff..000000000 --- a/pr-preview/pr-6954/telegraf/v1/input-plugins/dns_query/index.html +++ /dev/null @@ -1,4585 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -<nil> Documentation - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
- - - Documentation -
-
- -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
-

Select product

-
- -
- - -
-
-
- -
- - - - - -
- -
-
- -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- -
-
-
-

- - - - - - - - - - -
- - - - - -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

DNS Query Input Plugin

-

This plugin gathers information about DNS queries such as response time and -result codes.

-

Introduced in: Telegraf v1.4.0 -Tags: system, network -OS support: all

-

Global configuration options

-

Plugins support additional global and plugin configuration settings for tasks -such as modifying metrics, tags, and fields, creating aliases, and configuring -plugin ordering. See CONFIGURATION.md for more details.

-

Configuration

- - -
# Query given DNS server and gives statistics
-[[inputs.dns_query]]
-  ## servers to query
-  servers = ["8.8.8.8"]
-
-  ## Network is the network protocol name.
-  # network = "udp"
-
-  ## Domains or subdomains to query.
-  # domains = ["."]
-
-  ## Query record type.
-  ## Possible values: A, AAAA, CNAME, MX, NS, PTR, TXT, SOA, SPF, SRV.
-  # record_type = "A"
-
-  ## Dns server port.
-  # port = 53
-
-  ## Query timeout
-  # timeout = "2s"
-
-  ## Include the specified additional properties in the resulting metric.
-  ## The following values are supported:
-  ##    "first_ip" -- return IP of the first A and AAAA answer
-  ##    "all_ips"  -- return IPs of all A and AAAA answers
-  # include_fields = []
-

Metrics

-
    -
  • dns_query -
      -
    • tags: -
        -
      • server
      • -
      • domain
      • -
      • record_type
      • -
      • result
      • -
      • rcode
      • -
      -
    • -
    • fields: -
        -
      • query_time_ms (float)
      • -
      • result_code (int, success = 0, timeout = 1, error = 2)
      • -
      • rcode_value (int)
      • -
      -
    • -
    -
  • -
-

Rcode Descriptions

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
rcode_valuercodeDescription
0NoErrorNo Error
1FormErrFormat Error
2ServFailServer Failure
3NXDomainNon-Existent Domain
4NotImpNot Implemented
5RefusedQuery Refused
6YXDomainName Exists when it should not
7YXRRSetRR Set Exists when it should not
8NXRRSetRR Set that should exist does not
9NotAuthServer Not Authoritative for zone
10NotZoneName not contained in zone
16BADSIGTSIG Signature Failure
16BADVERSBad OPT Version
17BADKEYKey not recognized
18BADTIMESignature out of time window
19BADMODEBad TKEY Mode
20BADNAMEDuplicate key name
21BADALGAlgorithm not supported
22BADTRUNCBad Truncation
23BADCOOKIEBad/missing Server Cookie
-

Example Output

- - -
dns_query,domain=google.com,rcode=NOERROR,record_type=A,result=success,server=127.0.0.1 rcode_value=0i,result_code=0i,query_time_ms=0.13746 1550020750001000000
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
-

Was this page helpful?

-
- - - -
-
-

Thank you for your feedback!

-
-
-
-
-
-
- - - - -
-
- - -
-
- - - - - - - - - - - - - - - - - - - - - - -
-
- -
- - - - - - - - - - - - - -
- - - -
- -
-
-
- -

New in InfluxDB 3.8

-
- -
-

Key enhancements in InfluxDB 3.8 and the InfluxDB 3 Explorer 1.6.

-

See the Blog Post

- -
- - -
-

InfluxDB 3.8 is now available for both Core and Enterprise, alongside the -1.6 release of the InfluxDB 3 Explorer UI. This release is focused on -operational maturity and making InfluxDB easier to deploy, manage, and run -reliably in production.

-

For more information, check out:

- - -
- - -
- -
-
-
- -

InfluxDB Docker latest tag changing to InfluxDB 3 Core

-
- -
- On May 27, 2026, the latest tag for InfluxDB Docker images will -point to InfluxDB 3 Core. To avoid unexpected upgrades, use specific version -tags in your Docker deployments. -
- - -
-

If using Docker to install and run InfluxDB, the latest tag will point to -InfluxDB 3 Core. To avoid unexpected upgrades, use specific version tags in -your Docker deployments. For example, if using Docker to run InfluxDB v2, -replace the latest version tag with a specific version tag in your Docker -pull command–for example:

- - -
docker pull influxdb:2
-
- - -
- -
- - - - - - - - - - - - - - - diff --git a/pr-preview/pr-6954/telegraf/v1/input-plugins/docker/index.html b/pr-preview/pr-6954/telegraf/v1/input-plugins/docker/index.html deleted file mode 100644 index e850c56fa..000000000 --- a/pr-preview/pr-6954/telegraf/v1/input-plugins/docker/index.html +++ /dev/null @@ -1,4908 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -<nil> Documentation - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
- - - Documentation -
-
- -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
-

Select product

-
- -
- - -
-
-
- -
- - - - - -
- -
-
- -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- -
-
-
-

- - - - - - - - - - -
- - - - - -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Docker Input Plugin

-

This plugin uses the Docker Engine API to gather metrics on running -Docker containers.

- -
- - -

Make sure Telegraf has sufficient permissions to access the configured -endpoint.

-
-

Introduced in: Telegraf v0.1.9 -Tags: containers -OS support: all

-

Global configuration options

-

Plugins support additional global and plugin configuration settings for tasks -such as modifying metrics, tags, and fields, creating aliases, and configuring -plugin ordering. See CONFIGURATION.md for more details.

-

Configuration

- - -
# Read metrics about docker containers
-[[inputs.docker]]
-  ## Docker Endpoint
-  ##   To use TCP, set endpoint = "tcp://[ip]:[port]"
-  ##   To use environment variables (ie, docker-machine), set endpoint = "ENV"
-  endpoint = "unix:///var/run/docker.sock"
-
-  ## Set to true to collect Swarm metrics(desired_replicas, running_replicas)
-  ## Note: configure this in one of the manager nodes in a Swarm cluster.
-  ## configuring in multiple Swarm managers results in duplication of metrics.
-  gather_services = false
-
-  ## Set the source tag for the metrics to the container ID hostname, eg first 12 chars
-  source_tag = false
-
-  ## Containers to include and exclude. Collect all if empty. Globs accepted.
-  container_name_include = []
-  container_name_exclude = []
-
-  ## Container states to include and exclude. Globs accepted.
-  ## When empty only containers in the "running" state will be captured.
-  ## example: container_state_include = ["created", "restarting", "running", "removing", "paused", "exited", "dead"]
-  ## example: container_state_exclude = ["created", "restarting", "running", "removing", "paused", "exited", "dead"]
-  # container_state_include = []
-  # container_state_exclude = []
-
-  ## Objects to include for disk usage query
-  ## Allowed values are "container", "image", "volume"
-  ## When empty disk usage is excluded
-  storage_objects = []
-
-  ## Timeout for docker list, info, and stats commands
-  timeout = "5s"
-
-  ## Podman compatibility settings (auto-enabled when Podman detected)
-  ## Cache TTL for accurate CPU percentage calculation (default: 60s)
-  ## Set higher than your collection interval for accurate measurements
-  ## Set to 0 to keep cache entries forever (not recommended for dynamic environments)
-  # podman_cache_ttl = "60s"
-
-  ## Specifies for which classes a per-device metric should be issued
-  ## Possible values are 'cpu' (cpu0, cpu1, ...), 'blkio' (8:0, 8:1, ...) and 'network' (eth0, eth1, ...)
-  # perdevice_include = ["cpu"]
-
-  ## Specifies for which classes a total metric should be issued. Total is an aggregated of the 'perdevice_include' values.
-  ## Possible values are 'cpu', 'blkio' and 'network'
-  ## Total 'cpu' is reported directly by Docker daemon, and 'network' and 'blkio' totals are aggregated by this plugin.
-  # total_include = ["cpu", "blkio", "network"]
-
-  ## docker labels to include and exclude as tags.  Globs accepted.
-  ## Note that an empty array for both will include all labels as tags
-  docker_label_include = []
-  docker_label_exclude = []
-
-  ## Which environment variables should we use as a tag
-  tag_env = ["JAVA_HOME", "HEAP_SIZE"]
-
-  ## Optional TLS Config
-  # tls_ca = "/etc/telegraf/ca.pem"
-  # tls_cert = "/etc/telegraf/cert.pem"
-  # tls_key = "/etc/telegraf/key.pem"
-  ## Use TLS but skip chain & host verification
-  # insecure_skip_verify = false
-

Environment Configuration

-

When using the "ENV" endpoint, the connection is configured using the cli -Docker environment variables.

-

Security

-

Giving telegraf access to the Docker daemon expands the attack surface that -could result in an attacker gaining root access to a machine. This is especially -relevant if the telegraf configuration can be changed by untrusted users.

-

Podman Compatibility

-

This plugin is compatible with Podman through its Docker-compatible API. -When connected to Podman:

-
    -
  • The plugin automatically detects Podman by examining the server version and -endpoint
  • -
  • Uses an intelligent caching mechanism to calculate accurate CPU percentages
  • -
  • Configure Podman socket endpoint, for example: -endpoint = "unix:///run/podman/podman.sock"
  • -
-

Docker Daemon Permissions

-

Typically, telegraf must be given permission to access the docker daemon unix -socket when using the default endpoint. This can be done by adding the -telegraf unix user (created when installing a Telegraf package) to the -docker unix group with the following command:

- - -
sudo usermod -aG docker telegraf
-

If telegraf is run within a container, the unix socket will need to be exposed -within the telegraf container. This can be done in the docker CLI by add the -option -v /var/run/docker.sock:/var/run/docker.sock or adding the following -lines to the telegraf container definition in a docker compose file. -Additionally docker telegraf user must be assigned to docker group id -from host:

- - -
user: telegraf:<host_docker_gid>
-volumes:
-  - /var/run/docker.sock:/var/run/docker.sock
-

source tag

-

Selecting the containers measurements can be tricky if you have many containers -with the same name. To alleviate this issue you can set the below value to -true

- - -
source_tag = true
-

This will cause all measurements to have the source tag be set to the first 12 -characters of the container id. The first 12 characters is the common hostname -for containers that have no explicit hostname set, as defined by docker.

-

Kubernetes Labels

-

Kubernetes may add many labels to your containers, if they are not needed you -may prefer to exclude them:

- - -
  docker_label_exclude = ["annotation.kubernetes*"]
-

Docker-compose Labels

-

Docker-compose will add labels to your containers. You can limit restrict labels -to selected ones, e.g.

- - -
  docker_label_include = [
-    "com.docker.compose.config-hash",
-    "com.docker.compose.container-number",
-    "com.docker.compose.oneoff",
-    "com.docker.compose.project",
-    "com.docker.compose.service",
-  ]
-

Metrics

-
    -
  • docker -
      -
    • tags: -
        -
      • unit
      • -
      • engine_host
      • -
      • server_version
      • -
      -
    • -
    • fields: -
        -
      • n_used_file_descriptors
      • -
      • n_cpus
      • -
      • n_containers
      • -
      • n_containers_running
      • -
      • n_containers_stopped
      • -
      • n_containers_paused
      • -
      • n_images
      • -
      • n_goroutines
      • -
      • n_listener_events
      • -
      • memory_total
      • -
      • pool_blocksize (requires devicemapper storage driver) (deprecated see: docker_devicemapper)
      • -
      -
    • -
    -
  • -
-

The docker_data and docker_metadata measurements are available only for -some storage drivers such as devicemapper.

-
    -
  • -

    docker_data (deprecated see: docker_devicemapper)

    -
      -
    • tags: -
        -
      • unit
      • -
      • engine_host
      • -
      • server_version
      • -
      -
    • -
    • fields: -
        -
      • available
      • -
      • total
      • -
      • used
      • -
      -
    • -
    -
  • -
  • -

    docker_metadata (deprecated see: docker_devicemapper)

    -
      -
    • tags: -
        -
      • unit
      • -
      • engine_host
      • -
      • server_version
      • -
      -
    • -
    • fields: -
        -
      • available
      • -
      • total
      • -
      • used
      • -
      -
    • -
    -
  • -
-

The above measurements for the devicemapper storage driver can now be found in -the new docker_devicemapper measurement

-
    -
  • -

    docker_devicemapper

    -
      -
    • tags: -
        -
      • engine_host
      • -
      • server_version
      • -
      • pool_name
      • -
      -
    • -
    • fields: -
        -
      • pool_blocksize_bytes
      • -
      • data_space_used_bytes
      • -
      • data_space_total_bytes
      • -
      • data_space_available_bytes
      • -
      • metadata_space_used_bytes
      • -
      • metadata_space_total_bytes
      • -
      • metadata_space_available_bytes
      • -
      • thin_pool_minimum_free_space_bytes
      • -
      -
    • -
    -
  • -
  • -

    docker_container_mem

    -
      -
    • tags: -
        -
      • engine_host
      • -
      • server_version
      • -
      • container_image
      • -
      • container_name
      • -
      • container_status
      • -
      • container_version
      • -
      -
    • -
    • fields: -
        -
      • total_pgmajfault
      • -
      • cache
      • -
      • mapped_file
      • -
      • total_inactive_file
      • -
      • pgpgout
      • -
      • rss
      • -
      • total_mapped_file
      • -
      • writeback
      • -
      • unevictable
      • -
      • pgpgin
      • -
      • total_unevictable
      • -
      • pgmajfault
      • -
      • total_rss
      • -
      • total_rss_huge
      • -
      • total_writeback
      • -
      • total_inactive_anon
      • -
      • rss_huge
      • -
      • hierarchical_memory_limit
      • -
      • total_pgfault
      • -
      • total_active_file
      • -
      • active_anon
      • -
      • total_active_anon
      • -
      • total_pgpgout
      • -
      • total_cache
      • -
      • inactive_anon
      • -
      • active_file
      • -
      • pgfault
      • -
      • inactive_file
      • -
      • total_pgpgin
      • -
      • max_usage
      • -
      • usage
      • -
      • failcnt
      • -
      • limit
      • -
      • container_id
      • -
      -
    • -
    -
  • -
  • -

    docker_container_cpu

    -
      -
    • tags: -
        -
      • engine_host
      • -
      • server_version
      • -
      • container_image
      • -
      • container_name
      • -
      • container_status
      • -
      • container_version
      • -
      • cpu
      • -
      -
    • -
    • fields: -
        -
      • throttling_periods
      • -
      • throttling_throttled_periods
      • -
      • throttling_throttled_time
      • -
      • usage_in_kernelmode
      • -
      • usage_in_usermode
      • -
      • usage_system
      • -
      • usage_total
      • -
      • usage_percent
      • -
      • container_id
      • -
      -
    • -
    -
  • -
  • -

    docker_container_net

    -
      -
    • tags: -
        -
      • engine_host
      • -
      • server_version
      • -
      • container_image
      • -
      • container_name
      • -
      • container_status
      • -
      • container_version
      • -
      • network
      • -
      -
    • -
    • fields: -
        -
      • rx_dropped
      • -
      • rx_bytes
      • -
      • rx_errors
      • -
      • tx_packets
      • -
      • tx_dropped
      • -
      • rx_packets
      • -
      • tx_errors
      • -
      • tx_bytes
      • -
      • container_id
      • -
      -
    • -
    -
  • -
  • -

    docker_container_blkio

    -
      -
    • tags: -
        -
      • engine_host
      • -
      • server_version
      • -
      • container_image
      • -
      • container_name
      • -
      • container_status
      • -
      • container_version
      • -
      • device
      • -
      -
    • -
    • fields: -
        -
      • io_service_bytes_recursive_async
      • -
      • io_service_bytes_recursive_read
      • -
      • io_service_bytes_recursive_sync
      • -
      • io_service_bytes_recursive_total
      • -
      • io_service_bytes_recursive_write
      • -
      • io_serviced_recursive_async
      • -
      • io_serviced_recursive_read
      • -
      • io_serviced_recursive_sync
      • -
      • io_serviced_recursive_total
      • -
      • io_serviced_recursive_write
      • -
      • container_id
      • -
      -
    • -
    -
  • -
-

The docker_container_health measurements report on a containers -HEALTHCHECK -status if configured.

-
    -
  • -

    docker_container_health (container must use the HEALTHCHECK)

    -
      -
    • tags: -
        -
      • engine_host
      • -
      • server_version
      • -
      • container_image
      • -
      • container_name
      • -
      • container_status
      • -
      • container_version
      • -
      -
    • -
    • fields: -
        -
      • health_status (string)
      • -
      • failing_streak (integer)
      • -
      -
    • -
    -
  • -
  • -

    docker_container_status

    -
      -
    • tags: -
        -
      • engine_host
      • -
      • server_version
      • -
      • container_image
      • -
      • container_name
      • -
      • container_status
      • -
      • container_version
      • -
      -
    • -
    • fields: -
        -
      • container_id
      • -
      • oomkilled (boolean)
      • -
      • pid (integer)
      • -
      • exitcode (integer)
      • -
      • started_at (integer)
      • -
      • finished_at (integer)
      • -
      • uptime_ns (integer)
      • -
      -
    • -
    -
  • -
  • -

    docker_swarm

    -
      -
    • tags: -
        -
      • service_id
      • -
      • service_name
      • -
      • service_mode
      • -
      -
    • -
    • fields: -
        -
      • tasks_desired
      • -
      • tasks_running
      • -
      -
    • -
    -
  • -
  • -

    docker_disk_usage

    -
      -
    • tags: -
        -
      • engine_host
      • -
      • server_version
      • -
      • container_name
      • -
      • container_image
      • -
      • container_version
      • -
      • image_id
      • -
      • image_name
      • -
      • image_version
      • -
      • volume_name
      • -
      -
    • -
    • fields: -
        -
      • size_rw
      • -
      • size_root_fs
      • -
      • size
      • -
      • shared_size
      • -
      -
    • -
    -
  • -
-

Example Output

- - -
docker,engine_host=debian-stretch-docker,server_version=17.09.0-ce n_containers=6i,n_containers_paused=0i,n_containers_running=1i,n_containers_stopped=5i,n_cpus=2i,n_goroutines=41i,n_images=2i,n_listener_events=0i,n_used_file_descriptors=27i 1524002041000000000
-docker,engine_host=debian-stretch-docker,server_version=17.09.0-ce,unit=bytes memory_total=2101661696i 1524002041000000000
-docker_container_mem,container_image=telegraf,container_name=zen_ritchie,container_status=running,container_version=unknown,engine_host=debian-stretch-docker,server_version=17.09.0-ce active_anon=8327168i,active_file=2314240i,cache=27402240i,container_id="adc4ba9593871bf2ab95f3ffde70d1b638b897bb225d21c2c9c84226a10a8cf4",hierarchical_memory_limit=9223372036854771712i,inactive_anon=0i,inactive_file=25088000i,limit=2101661696i,mapped_file=20582400i,max_usage=36646912i,pgfault=4193i,pgmajfault=214i,pgpgin=9243i,pgpgout=520i,rss=8327168i,rss_huge=0i,total_active_anon=8327168i,total_active_file=2314240i,total_cache=27402240i,total_inactive_anon=0i,total_inactive_file=25088000i,total_mapped_file=20582400i,total_pgfault=4193i,total_pgmajfault=214i,total_pgpgin=9243i,total_pgpgout=520i,total_rss=8327168i,total_rss_huge=0i,total_unevictable=0i,total_writeback=0i,unevictable=0i,usage=36528128i,usage_percent=0.4342225020025297,writeback=0i 1524002042000000000
-docker_container_cpu,container_image=telegraf,container_name=zen_ritchie,container_status=running,container_version=unknown,cpu=cpu-total,engine_host=debian-stretch-docker,server_version=17.09.0-ce container_id="adc4ba9593871bf2ab95f3ffde70d1b638b897bb225d21c2c9c84226a10a8cf4",throttling_periods=0i,throttling_throttled_periods=0i,throttling_throttled_time=0i,usage_in_kernelmode=40000000i,usage_in_usermode=100000000i,usage_percent=0,usage_system=6394210000000i,usage_total=117319068i 1524002042000000000
-docker_container_cpu,container_image=telegraf,container_name=zen_ritchie,container_status=running,container_version=unknown,cpu=cpu0,engine_host=debian-stretch-docker,server_version=17.09.0-ce container_id="adc4ba9593871bf2ab95f3ffde70d1b638b897bb225d21c2c9c84226a10a8cf4",usage_total=20825265i 1524002042000000000
-docker_container_cpu,container_image=telegraf,container_name=zen_ritchie,container_status=running,container_version=unknown,cpu=cpu1,engine_host=debian-stretch-docker,server_version=17.09.0-ce container_id="adc4ba9593871bf2ab95f3ffde70d1b638b897bb225d21c2c9c84226a10a8cf4",usage_total=96493803i 1524002042000000000
-docker_container_net,container_image=telegraf,container_name=zen_ritchie,container_status=running,container_version=unknown,engine_host=debian-stretch-docker,network=eth0,server_version=17.09.0-ce container_id="adc4ba9593871bf2ab95f3ffde70d1b638b897bb225d21c2c9c84226a10a8cf4",rx_bytes=1576i,rx_dropped=0i,rx_errors=0i,rx_packets=20i,tx_bytes=0i,tx_dropped=0i,tx_errors=0i,tx_packets=0i 1524002042000000000
-docker_container_blkio,container_image=telegraf,container_name=zen_ritchie,container_status=running,container_version=unknown,device=254:0,engine_host=debian-stretch-docker,server_version=17.09.0-ce container_id="adc4ba9593871bf2ab95f3ffde70d1b638b897bb225d21c2c9c84226a10a8cf4",io_service_bytes_recursive_async=27398144i,io_service_bytes_recursive_read=27398144i,io_service_bytes_recursive_sync=0i,io_service_bytes_recursive_total=27398144i,io_service_bytes_recursive_write=0i,io_serviced_recursive_async=529i,io_serviced_recursive_read=529i,io_serviced_recursive_sync=0i,io_serviced_recursive_total=529i,io_serviced_recursive_write=0i 1524002042000000000
-docker_container_health,container_image=telegraf,container_name=zen_ritchie,container_status=running,container_version=unknown,engine_host=debian-stretch-docker,server_version=17.09.0-ce failing_streak=0i,health_status="healthy" 1524007529000000000
-docker_swarm,service_id=xaup2o9krw36j2dy1mjx1arjw,service_mode=replicated,service_name=test tasks_desired=3,tasks_running=3 1508968160000000000
-docker_disk_usage,engine_host=docker-desktop,server_version=24.0.5 layers_size=17654519107i 1695742041000000000
-docker_disk_usage,container_image=influxdb,container_name=frosty_wright,container_version=1.8,engine_host=docker-desktop,server_version=24.0.5 size_root_fs=286593526i,size_rw=538i 1695742041000000000
-docker_disk_usage,engine_host=docker-desktop,image_id=7f4a1cc74046,image_name=telegraf,image_version=latest,server_version=24.0.5 shared_size=0i,size=425484494i 1695742041000000000
-docker_disk_usage,engine_host=docker-desktop,server_version=24.0.5,volume_name=docker_influxdb-data size=91989940i 1695742041000000000
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
-

Was this page helpful?

-
- - - -
-
-

Thank you for your feedback!

-
-
-
-
-
-
- - - - -
-
- - -
-
- - - - - - - - - - - - - - - - - - - - - - -
-
- -
- - - - - - - - - - - - - -
- - - -
- -
-
-
- -

New in InfluxDB 3.8

-
- -
-

Key enhancements in InfluxDB 3.8 and the InfluxDB 3 Explorer 1.6.

-

See the Blog Post

- -
- - -
-

InfluxDB 3.8 is now available for both Core and Enterprise, alongside the -1.6 release of the InfluxDB 3 Explorer UI. This release is focused on -operational maturity and making InfluxDB easier to deploy, manage, and run -reliably in production.

-

For more information, check out:

- - -
- - -
- -
-
-
- -

InfluxDB Docker latest tag changing to InfluxDB 3 Core

-
- -
- On May 27, 2026, the latest tag for InfluxDB Docker images will -point to InfluxDB 3 Core. To avoid unexpected upgrades, use specific version -tags in your Docker deployments. -
- - -
-

If using Docker to install and run InfluxDB, the latest tag will point to -InfluxDB 3 Core. To avoid unexpected upgrades, use specific version tags in -your Docker deployments. For example, if using Docker to run InfluxDB v2, -replace the latest version tag with a specific version tag in your Docker -pull command–for example:

- - -
docker pull influxdb:2
-
- - -
- -
- - - - - - - - - - - - - - -