diff --git a/pr-preview/pr-6981/api.css b/pr-preview/pr-6981/api.css deleted file mode 100644 index 789afa4d1..000000000 --- a/pr-preview/pr-6981/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-6981/dark-theme.29c42cc9e01d0a9f87447d1ddde13836200d7525f27012563f2aed1baae53885.css b/pr-preview/pr-6981/dark-theme.29c42cc9e01d0a9f87447d1ddde13836200d7525f27012563f2aed1baae53885.css deleted file mode 100644 index b24ccce5b..000000000 --- a/pr-preview/pr-6981/dark-theme.29c42cc9e01d0a9f87447d1ddde13836200d7525f27012563f2aed1baae53885.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;border:none;background:none;line-height:0;cursor:pointer}.code-controls .code-controls-toggle:hover,.code-controls .code-controls-toggle:focus-visible{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 button{display:block;width:100%;text-align:left;margin:0;padding:.4rem .5rem .6rem;border:none;background:none;border-radius:2px;color:#FAFAFC;font-size:.87rem;line-height:0;cursor:pointer}.code-controls ul.code-control-options button:hover,.code-controls ul.code-control-options button:focus-visible{background-color:rgba(212,215,221,0.07)}.code-controls ul.code-control-options button .cf-icon{margin-right:.35rem}.code-controls ul.code-control-options button.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 button.copy-code.success>.message{text-shadow:0px 0px 8px rgba(212,215,221,0.5);font-weight:bold}.code-controls ul.code-control-options button.copy-code.failed>.message{color:#DC4E58;text-shadow:0px 0px 8px rgba(220,78,88,0.5);font-weight:bold}.code-controls ul.code-control-options li{margin:0}.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,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QkFBbUIsQ0FBQyx5QkFBeUIsWUFBWSxDQUFDLHNCQUFzQixDQUFDLFdBQVcsQ0FBQyxVQUFVLENBQUMsZUFBZSxDQUFDLHNCQUFzQixDQUFDLGFBQWEsQ0FBQyxXQUFXLENBQUMsaUJBQWlCLENBQUMsZUFBZSxDQUFDLG9CQUFvQixDQUFDLGNBQWMsQ0FBQyxnQ0FBZ0MsQ0FBQywrQkFBK0Isa0JBQWtCLENBQUMsYUFBYSxDQUFDLCtCQUErQix5QkFBeUIsQ0FBQyxtQkFBbUIsQ0FBQywwQ0FBMEMscUJBQXFCLENBQUMsdUJBQXVCLG1CQUFtQixDQUFDLGtCQUFrQixDQUFDLHNCQUFzQixDQUFDLFVBQVUsQ0FBQyxXQUFXLENBQUMsYUFBYSxDQUFDLGNBQWMsQ0FBQywyQkFBMkIsVUFBVSxDQUFDLFdBQVcsQ0FBQyxjQUFjLENBQUMseUVBQXlFLFlBQVksQ0FBQyw4QkFBOEIsWUFBWSxDQUFDLHFCQUFxQixDQUFDLFdBQVcsQ0FBQyxNQUFNLENBQUMsV0FBVyxDQUFDLHdCQUF3QixZQUFZLENBQUMsa0JBQWtCLENBQUMsVUFBVSxDQUFDLGNBQWMsQ0FBQyxlQUFlLENBQUMsZUFBZSxDQUFDLGFBQWEsQ0FBQywyQkFBMkIsbUJBQW1CLENBQUMsa0JBQWtCLENBQUMsY0FBYyxDQUFDLGFBQWEsQ0FBQyxtQkFBbUIsQ0FBQyxXQUFXLENBQUMsMkJBQTJCLGNBQWMsQ0FBQyxlQUFlLENBQUMsYUFBYSxDQUFDLDBCQUEwQixpQkFBaUIsYUFBYSxDQUFDLGVBQWUsQ0FBQywyQkFBMkIsVUFBVSxDQUFDLE1BQU0sQ0FBQyxjQUFjLENBQUMsY0FBYyxDQUFDLENBQUMsMkJBQTJCLGlCQUFpQixDQUFDLHFCQUFxQixLQUFLLDBCQUEwQixDQUFDLFNBQVMsQ0FBQyxHQUFHLHVCQUF1QixDQUFDLFNBQVMsQ0FBQyxDQUFDLEVBQUUscUJBQXFCIiwiZmlsZSI6InN0ZGluIiwic291cmNlc0NvbnRlbnQiOlsiYm9keXtmb250LXNpemU6MThweDstd2Via2l0LWZvbnQtc21vb3RoaW5nOmFudGlhbGlhc2VkOy1tb3otb3N4LWZvbnQtc21vb3RoaW5nOmdyYXlzY2FsZX1AZm9udC1mYWNle2ZvbnQtZmFtaWx5OlwiUHJveGltYSBOb3ZhXCI7c3JjOnVybChcImZvbnRzL3Byb3hpbWEtbm92YS5vdGZcIikgZm9ybWF0KFwib3BlbnR5cGVcIik7Zm9udC13ZWlnaHQ6MzAwfUBmb250LWZhY2V7Zm9udC1mYW1pbHk6J1Byb3hpbWEgTm92YSc7c3JjOnVybChcImZvbnRzL3Byb3hpbWEtbm92YS1tZWRpdW0ub3RmXCIpIGZvcm1hdChcIm9wZW50eXBlXCIpO2ZvbnQtd2VpZ2h0OjQwMH1AZm9udC1mYWNle2ZvbnQtZmFtaWx5OidQcm94aW1hIE5vdmEnO3NyYzp1cmwoXCJmb250cy9wcm94aW1hLW5vdmEtc2VtaWJvbGQub3RmXCIpIGZvcm1hdChcIm9wZW50eXBlXCIpO2ZvbnQtd2VpZ2h0OjUwMCA2MDB9QGZvbnQtZmFjZXtmb250LWZhbWlseTonUHJveGltYSBOb3ZhJztzcmM6dXJsKFwiZm9udHMvcHJveGltYS1ub3ZhLWJvbGQub3RmXCIpIGZvcm1hdChcIm9wZW50eXBlXCIpO2ZvbnQtd2VpZ2h0OjcwMH1AZm9udC1mYWNle2ZvbnQtZmFtaWx5OidpY29tb29uLXYyJztzcmM6dXJsKFwiZm9udHMvaWNvbW9vbi12Mi5lb3Q/aXRuMnBoXCIpO3NyYzp1cmwoXCJmb250cy9pY29tb29uLXYyLmVvdD9pdG4ycGgjaWVmaXhcIikgZm9ybWF0KFwiZW1iZWRkZWQtb3BlbnR5cGVcIiksdXJsKFwiZm9udHMvaWNvbW9vbi12Mi50dGY/aXRuMnBoXCIpIGZvcm1hdChcInRydWV0eXBlXCIpLHVybChcImZvbnRzL2ljb21vb24tdjIud29mZj9pdG4ycGhcIikgZm9ybWF0KFwid29mZlwiKSx1cmwoXCJmb250cy9pY29tb29uLXYyLnN2Zz9pdG4ycGgjaWNvbW9vbi12MlwiKSBmb3JtYXQoXCJzdmdcIik7Zm9udC13ZWlnaHQ6bm9ybWFsO2ZvbnQtc3R5bGU6bm9ybWFsO2ZvbnQtZGlzcGxheTpibG9ja31bY2xhc3NePVwiaWNvbi1cIl0sW2NsYXNzKj1cIiBpY29uLVwiXXtmb250LWZhbWlseTonaWNvbW9vbi12MicgIWltcG9ydGFudDtzcGVhazpuZXZlcjtmb250LXN0eWxlOm5vcm1hbDtmb250LXdlaWdodDpub3JtYWw7Zm9udC12YXJpYW50Om5vcm1hbDt0ZXh0LXRyYW5zZm9ybTpub25lO2xpbmUtaGVpZ2h0OjE7LXdlYmtpdC1mb250LXNtb290aGluZzphbnRpYWxpYXNlZDstbW96LW9zeC1mb250LXNtb290aGluZzpncmF5c2NhbGV9Lmljb24tYmFyLWNoYXJ0OmJlZm9yZXtjb250ZW50OlwiXFxlOTEzXCJ9Lmljb24taW5mbHV4LWxvZ286YmVmb3Jle2NvbnRlbnQ6XCJcXGU5MDBcIn0uaWNvbi1pbmZsdXgtbG9nb3R5cGU6YmVmb3Jle2NvbnRlbnQ6XCJcXGU5MDFcIn0uaWNvbi1hbGVydC10cmlhbmdsZTpiZWZvcmV7Y29udGVudDpcIlxcZTkwMlwifS5pY29uLWFycm93LWRvd246YmVmb3Jle2NvbnRlbnQ6XCJcXGU5MDNcIn0uaWNvbi1tb29uMTpiZWZvcmV7Y29udGVudDpcIlxcZTkwNFwifS5pY29uLXNlYXJjaDpiZWZvcmV7Y29udGVudDpcIlxcZTkwNVwifS5pY29uLXN1bjE6YmVmb3Jle2NvbnRlbnQ6XCJcXGU5MDZcIn0uaWNvbi1hcnJvdy1kb3duLWNpcmNsZTpiZWZvcmV7Y29udGVudDpcIlxcZTkwN1wifS5pY29uLWFycm93LWRvd24tbGVmdDpiZWZvcmV7Y29udGVudDpcIlxcZTkwOFwifS5pY29uLWFycm93LWRvd24tcmlnaHQ6YmVmb3Jle2NvbnRlbnQ6XCJcXGU5MDlcIn0uaWNvbi1hcnJvdy1sZWZ0OmJlZm9yZXtjb250ZW50OlwiXFxlOTBhXCJ9Lmljb24tYXJyb3ctbGVmdC1jaXJjbGU6YmVmb3Jle2NvbnRlbnQ6XCJcXGU5MGJcIn0uaWNvbi1hcnJvdy1yaWdodDpiZWZvcmV7Y29udGVudDpcIlxcZTkwY1wifS5pY29uLWFycm93LXJpZ2h0LWNpcmNsZTpiZWZvcmV7Y29udGVudDpcIlxcZTkwZFwifS5pY29uLWFycm93LXVwOmJlZm9yZXtjb250ZW50OlwiXFxlOTBlXCJ9Lmljb24tYXJyb3ctdXAtY2lyY2xlOmJlZm9yZXtjb250ZW50OlwiXFxlOTBmXCJ9Lmljb24tYXJyb3ctdXAtbGVmdDpiZWZvcmV7Y29udGVudDpcIlxcZTkxMFwifS5pY29uLWFycm93LXVwLXJpZ2h0OmJlZm9yZXtjb250ZW50OlwiXFxlOTExXCJ9Lmljb24tY2hlY2s6YmVmb3Jle2NvbnRlbnQ6XCJcXGU5MTJcIn0uaWNvbi1oZWFydDE6YmVmb3Jle2NvbnRlbnQ6XCJcXGU5MTRcIn0uaWNvbi1zZXR0aW5nczpiZWZvcmV7Y29udGVudDpcIlxcZTkxNVwifS5pY29uLXpvb20taW46YmVmb3Jle2NvbnRlbnQ6XCJcXGU5MTZcIn0uaWNvbi16b29tLW91dDpiZWZvcmV7Y29udGVudDpcIlxcZTkxN1wifS5pY29uLWNoZXZyb24tZG93bjpiZWZvcmV7Y29udGVudDpcIlxcZTkxOFwifS5pY29uLWNoZXZyb24tbGVmdDpiZWZvcmV7Y29udGVudDpcIlxcZTkxOVwifS5pY29uLWNoZXZyb24tcmlnaHQ6YmVmb3Jle2NvbnRlbnQ6XCJcXGU5MWFcIn0uaWNvbi1jaGV2cm9uLXVwOmJlZm9yZXtjb250ZW50OlwiXFxlOTFiXCJ9Lmljb24tbWVudTpiZWZvcmV7Y29udGVudDpcIlxcZTkxY1wifS5pY29uLWRvd25sb2FkOmJlZm9yZXtjb250ZW50OlwiXFxlOTFkXCJ9Lmljb24tbWludXM6YmVmb3Jle2NvbnRlbnQ6XCJcXGU5MWVcIn0uaWNvbi1wbHVzOmJlZm9yZXtjb250ZW50OlwiXFxlOTFmXCJ9Lmljb24tYWRkLWNlbGw6YmVmb3Jle2NvbnRlbnQ6XCJcXGU5MjBcIn0uaWNvbi1hbGVydDpiZWZvcmV7Y29udGVudDpcIlxcZTkyMVwifS5pY29uLWNhbGVuZGFyOmJlZm9yZXtjb250ZW50OlwiXFxlOTIyXCJ9Lmljb24tY2hlY2ttYXJrOmJlZm9yZXtjb250ZW50OlwiXFxlOTIzXCJ9Lmljb24tY29nLXRoaWNrOmJlZm9yZXtjb250ZW50OlwiXFxlOTI0XCJ9Lmljb24tZGFzaGJvYXJkczpiZWZvcmV7Y29udGVudDpcIlxcZTkyNVwifS5pY29uLWRhdGEtZXhwbG9yZXI6YmVmb3Jle2NvbnRlbnQ6XCJcXGU5MjZcIn0uaWNvbi11aS1kb3dubG9hZDpiZWZvcmV7Y29udGVudDpcIlxcZTkyN1wifS5pY29uLWR1cGxpY2F0ZTpiZWZvcmV7Y29udGVudDpcIlxcZTkyOFwifS5pY29uLWV4cG9ydDpiZWZvcmV7Y29udGVudDpcIlxcZTkyOVwifS5pY29uLWZ1bGxzY3JlZW46YmVmb3Jle2NvbnRlbnQ6XCJcXGU5MmFcIn0uaWNvbi1pbmZsdXgtaWNvbjpiZWZvcmV7Y29udGVudDpcIlxcZTkyYlwifS5pY29uLW5vdGU6YmVmb3Jle2NvbnRlbnQ6XCJcXGU5MmNcIn0uaWNvbi1vcmdhbml6YXRpb25zOmJlZm9yZXtjb250ZW50OlwiXFxlOTJkXCJ9Lmljb24tcGF1c2U6YmVmb3Jle2NvbnRlbnQ6XCJcXGU5MmVcIn0uaWNvbi1wZW5jaWw6YmVmb3Jle2NvbnRlbnQ6XCJcXGU5MmZcIn0uaWNvbi1wbGF5OmJlZm9yZXtjb250ZW50OlwiXFxlOTMwXCJ9Lmljb24tdWktcGx1czpiZWZvcmV7Y29udGVudDpcIlxcZTkzMVwifS5pY29uLXJlZnJlc2g6YmVmb3Jle2NvbnRlbnQ6XCJcXGU5MzJcIn0uaWNvbi1yZW1vdmU6YmVmb3Jle2NvbnRlbnQ6XCJcXGU5MzNcIn0uaWNvbi1hbGVydC1jaXJjbGU6YmVmb3Jle2NvbnRlbnQ6XCJcXGU5MzRcIn0uaWNvbi1jcm93bjpiZWZvcmV7Y29udGVudDpcIlxcZTkzNVwifS5pY29uLXRyYXNoOmJlZm9yZXtjb250ZW50OlwiXFxlOTM2XCJ9Lmljb24tdHJpYW5nbGU6YmVmb3Jle2NvbnRlbnQ6XCJcXGU5MzdcIn0uaWNvbi14OmJlZm9yZXtjb250ZW50OlwiXFxlOTM4XCJ9Lmljb24td3JlbmNoLTI6YmVmb3Jle2NvbnRlbnQ6XCJcXGU5MzlcIn0uaWNvbi1jaGF0OmJlZm9yZXtjb250ZW50OlwiXFxlOTNhXCJ9Lmljb24tYmVsbDpiZWZvcmV7Y29udGVudDpcIlxcZTkzYlwifS5pY29uLWRpc2tzLW5hdjpiZWZvcmV7Y29udGVudDpcIlxcZTkzY1wifS5pY29uLXdyZW5jaC1uYXY6YmVmb3Jle2NvbnRlbnQ6XCJcXGU5M2RcIn0uaWNvbi11c2VyOmJlZm9yZXtjb250ZW50OlwiXFxlOTNlXCJ9Lmljb24tY2xvdWQ6YmVmb3Jle2NvbnRlbnQ6XCJcXGU5M2ZcIn0uaWNvbi11c2Vycy10cmlvOmJlZm9yZXtjb250ZW50OlwiXFxlOTQwXCJ9Lmljb24tbmF2LWNoYXQ6YmVmb3Jle2NvbnRlbnQ6XCJcXGU5NDFcIn0uaWNvbi1tYXAyOmJlZm9yZXtjb250ZW50OlwiXFxlOTRjXCJ9Lmljb24tZXllLWNsb3NlZDpiZWZvcmV7Y29udGVudDpcIlxcZTk1NlwifS5pY29uLWV5ZS1vcGVuOmJlZm9yZXtjb250ZW50OlwiXFxlOTU3XCJ9Lmljb24tYm9vay1wZW5jaWw6YmVmb3Jle2NvbnRlbnQ6XCJcXGU5NjVcIn0uaWNvbi1oZWFydDpiZWZvcmV7Y29udGVudDpcIlxcZTlkYVwifS5pY29uLWxvb3AyOmJlZm9yZXtjb250ZW50OlwiXFxlYTJlXCJ9Lmljb24tZ2l0aHViOmJlZm9yZXtjb250ZW50OlwiXFxlYWIwXCJ9Lmljb24tdHV4OmJlZm9yZXtjb250ZW50OlwiXFxlYWJkXCJ9Lmljb24tYXBwbGVpbmM6YmVmb3Jle2NvbnRlbnQ6XCJcXGVhYmVcIn0uaWNvbi13aW5kb3dzODpiZWZvcmV7Y29udGVudDpcIlxcZWFjMlwifUBmb250LWZhY2V7Zm9udC1mYW1pbHk6J2ljb21vb24tdjMnO3NyYzp1cmwoXCJmb250cy9pY29tb29uLXYzLmVvdFwiKSBmb3JtYXQoXCJlbWJlZGRlZC1vcGVudHlwZVwiKTtzcmM6dXJsKFwiZm9udHMvaWNvbW9vbi12My5lb3RcIikgZm9ybWF0KFwiZW1iZWRkZWQtb3BlbnR5cGVcIiksdXJsKFwiZm9udHMvaWNvbW9vbi12My53b2ZmMlwiKSBmb3JtYXQoXCJ3b2ZmMlwiKSx1cmwoXCJmb250cy9pY29tb29uLXYzLnR0ZlwiKSBmb3JtYXQoXCJ0cnVldHlwZVwiKSx1cmwoXCJmb250cy9pY29tb29uLXYzLndvZmZcIikgZm9ybWF0KFwid29mZlwiKSx1cmwoXCJmb250cy9pY29tb29uLXYzLnN2Z1wiKSBmb3JtYXQoXCJzdmdcIik7Zm9udC13ZWlnaHQ6bm9ybWFsO2ZvbnQtc3R5bGU6bm9ybWFsfS5jZi1pY29ue2ZvbnQtZmFtaWx5OidpY29tb29uLXYzJztmb250LXN0eWxlOm5vcm1hbDtmb250LXdlaWdodDpub3JtYWw7Zm9udC12YXJpYW50Om5vcm1hbDt0ZXh0LXRyYW5zZm9ybTpub25lO2xpbmUtaGVpZ2h0OjE7LXdlYmtpdC1mb250LXNtb290aGluZzphbnRpYWxpYXNlZDstbW96LW9zeC1mb250LXNtb290aGluZzpncmF5c2NhbGV9LmNmLWljb24uYWRkLWNlbGwtbmV3OmJlZm9yZXtjb250ZW50OidcXGU5NzYnfS5jZi1pY29uLmFsZXJ0LXRyaWFuZ2xlLW5ldzpiZWZvcmV7Y29udGVudDonXFxlOTc3J30uY2YtaWNvbi5hbm5vdGF0ZS1uZXc6YmVmb3Jle2NvbnRlbnQ6J1xcZTk3OCd9LmNmLWljb24uYXJyb3ctZG93bi1uZXc6YmVmb3Jle2NvbnRlbnQ6J1xcZTk3OSd9LmNmLWljb24uYXJyb3ctbGVmdC1uZXc6YmVmb3Jle2NvbnRlbnQ6J1xcZTk3YSd9LmNmLWljb24uYXJyb3ctcmlnaHQtbmV3OmJlZm9yZXtjb250ZW50OidcXGU5N2InfS5jZi1pY29uLmFycm93LXVwLW5ldzpiZWZvcmV7Y29udGVudDonXFxlOTdjJ30uY2YtaWNvbi5iYXItY2hhcnQtbmV3OmJlZm9yZXtjb250ZW50OidcXGU5N2QnfS5jZi1pY29uLmJ1aWxkLW91dGxpbmUtbmV3OmJlZm9yZXtjb250ZW50OidcXGU5N2UnfS5jZi1pY29uLmNhcmV0LWRvd24tbmV3OmJlZm9yZXtjb250ZW50OidcXGU5N2YnfS5jZi1pY29uLmNhcmV0LWxlZnQtbmV3OmJlZm9yZXtjb250ZW50OidcXGU5ODAnfS5jZi1pY29uLmNhcmV0LXJpZ2h0LW5ldzpiZWZvcmV7Y29udGVudDonXFxlOTgxJ30uY2YtaWNvbi5jYXJldC11cC1uZXc6YmVmb3Jle2NvbnRlbnQ6J1xcZTk4Mid9LmNmLWljb24uY2hlY2ttYXJrLW5ldzpiZWZvcmV7Y29udGVudDonXFxlOTgzJ30uY2YtaWNvbi5jbGlwYm9hcmQtbmV3OmJlZm9yZXtjb250ZW50OidcXGU5ODQnfS5jZi1pY29uLmNsb2NrLW5ldzpiZWZvcmV7Y29udGVudDonXFxlOTg1J30uY2YtaWNvbi5jb2ctb3V0bGluZS1uZXc6YmVmb3Jle2NvbnRlbnQ6J1xcZTk4Nid9LmNmLWljb24uY29nLXNvbGlkLW5ldzpiZWZvcmV7Y29udGVudDonXFxlOTg3J30uY2YtaWNvbi5jcm93bi1zb2xpZC1uZXc6YmVmb3Jle2NvbnRlbnQ6J1xcZTk4OCd9LmNmLWljb24uZGFyay1tb2RlLW5ldzpiZWZvcmV7Y29udGVudDonXFxlOTg5J30uY2YtaWNvbi5kb3dubG9hZC1uZXc6YmVmb3Jle2NvbnRlbnQ6J1xcZTk4YSd9LmNmLWljb24uZHVwbGljYXRlLW5ldzpiZWZvcmV7Y29udGVudDonXFxlOThiJ30uY2YtaWNvbi5leHBhbmQtbmV3OmJlZm9yZXtjb250ZW50OidcXGU5OGMnfS5jZi1pY29uLmV4cG9ydC1uZXc6YmVmb3Jle2NvbnRlbnQ6J1xcZTk4ZCd9LmNmLWljb24uZXllLW9wZW4tbmV3OmJlZm9yZXtjb250ZW50OidcXGU5OGUnfS5jZi1pY29uLmdyYXBoLWxpbmUtbmV3OmJlZm9yZXtjb250ZW50OidcXGU5OGYnfS5jZi1pY29uLmhhbmRsZS1uZXc6YmVmb3Jle2NvbnRlbnQ6J1xcZTk5MCd9LmNmLWljb24uaG9tZS1vdXRsaW5lLW5ldzpiZWZvcmV7Y29udGVudDonXFxlOTkxJ30uY2YtaWNvbi5pbmZvLW5ldzpiZWZvcmV7Y29udGVudDonXFxlOTkyJ30uY2YtaWNvbi5pbmdlc3QtbmV3OmJlZm9yZXtjb250ZW50OidcXGU5OTMnfS5jZi1pY29uLmxpZ2h0LW1vZGUtbmV3OmJlZm9yZXtjb250ZW50OidcXGU5OTQnfS5jZi1pY29uLmxvY2stb3V0bGluZS1uZXc6YmVmb3Jle2NvbnRlbnQ6J1xcZTk5NSd9LmNmLWljb24ubG9nLW91dC1uZXc6YmVmb3Jle2NvbnRlbnQ6J1xcZTk5Nid9LmNmLWljb24ucGluLW5ldzpiZWZvcmV7Y29udGVudDonXFxlOTk3J30uY2YtaWNvbi5wbHVzLW5ldzpiZWZvcmV7Y29udGVudDonXFxlOTk4J30uY2YtaWNvbi5xdWVzdGlvbi1tYXJrLW5ldzpiZWZvcmV7Y29udGVudDonXFxlOTk5J30uY2YtaWNvbi5yZWZyZXNoLW5ldzpiZWZvcmV7Y29udGVudDonXFxlOTlhJ30uY2YtaWNvbi5yZW1vdmUtbmV3OmJlZm9yZXtjb250ZW50OidcXGU5OWInfS5jZi1pY29uLnNlYXJjaC1uZXc6YmVmb3Jle2NvbnRlbnQ6J1xcZTk5Yyd9LmNmLWljb24uc2lkZWJhci1jbG9zZS1uZXc6YmVmb3Jle2NvbnRlbnQ6J1xcZTk5ZCd9LmNmLWljb24uc2lkZWJhci1vcGVuLW5ldzpiZWZvcmV7Y29udGVudDonXFxlOTllJ30uY2YtaWNvbi5zdG9wLW5ldzpiZWZvcmV7Y29udGVudDonXFxlOTlmJ30uY2YtaWNvbi5zd2l0Y2gtbmV3OmJlZm9yZXtjb250ZW50OidcXGU5YTAnfS5jZi1pY29uLnRleHQtbmV3OmJlZm9yZXtjb250ZW50OidcXGU5YTEnfS5jZi1pY29uLnRyYXNoLW5ldzpiZWZvcmV7Y29udGVudDonXFxlOWEyJ30uY2YtaWNvbi51c2VyLW91dGxpbmUtbmV3OmJlZm9yZXtjb250ZW50OidcXGU5YTMnfS5jZi1pY29uLm1vcmU6YmVmb3Jle2NvbnRlbnQ6J1xcZTk3NCd9LmNmLWljb24uZHJhZy10by1leHBhbmQtd2hpdGU6YmVmb3Jle2NvbnRlbnQ6J1xcZTkwMSc7Y29sb3I6I2ZmZn0uY2YtaWNvbi5kcmFnLXRvLWV4cGFuZDpiZWZvcmV7Y29udGVudDonXFxlOTAyJ30uY2YtaWNvbi5zaGllbGQtc29saWQ6YmVmb3Jle2NvbnRlbnQ6J1xcZTkwMyd9LmNmLWljb24ubG9jazpiZWZvcmV7Y29udGVudDonXFxlOTAwJ30uY2YtaWNvbi5oZWFydC1zb2xpZDpiZWZvcmV7Y29udGVudDonXFxlOTZmJ30uY2YtaWNvbi5idWNrZXQtb3V0bGluZTpiZWZvcmV7Y29udGVudDonXFxlOTYxJ30uY2YtaWNvbi5jaGF0OmJlZm9yZXtjb250ZW50OidcXGU5MzMnfS5jZi1pY29uLmN1cnJlbmN5LWV1cjpiZWZvcmV7Y29udGVudDonXFxlOTY4J30uY2YtaWNvbi5jdXJyZW5jeS1nYnA6YmVmb3Jle2NvbnRlbnQ6J1xcZTk2OSd9LmNmLWljb24uY3VycmVuY3ktdXNkOmJlZm9yZXtjb250ZW50OidcXGU5NmEnfS5jZi1pY29uLm1vb246YmVmb3Jle2NvbnRlbnQ6J1xcZTk1Yyd9LmNmLWljb24uc2hhcmUtc29saWQ6YmVmb3Jle2NvbnRlbnQ6J1xcZTk2ZSd9LmNmLWljb24uc2hpZWxkOmJlZm9yZXtjb250ZW50OidcXGU5NmInfS5jZi1pY29uLnN1bjpiZWZvcmV7Y29udGVudDonXFxlOTVkJ30uY2YtaWNvbi51cGdyYWRlOmJlZm9yZXtjb250ZW50OidcXGU5NWYnfS5jZi1pY29uLm1lcmdlOmJlZm9yZXtjb250ZW50OidcXGU5NzUnfS5jZi1pY29uLmFkZC1jZWxsOmJlZm9yZXtjb250ZW50OidcXGU5MjUnfS5jZi1pY29uLmFsZXJ0LXRyaWFuZ2xlOmJlZm9yZXtjb250ZW50OidcXGU5MjYnfS5jZi1pY29uLmFsZXJ0czpiZWZvcmV7Y29udGVudDonXFxlOTIxJ30uY2YtaWNvbi5hbm5vdGF0ZTpiZWZvcmV7Y29udGVudDonXFxlOTUzJ30uY2YtaWNvbi5hbm5vdGF0ZS1wbHVzOmJlZm9yZXtjb250ZW50OidcXGU5NTInfS5jZi1pY29uLmF1dGh6ZXJvOmJlZm9yZXtjb250ZW50OidcXGU5NTEnfS5jZi1pY29uLmJhci1jaGFydDpiZWZvcmV7Y29udGVudDonXFxlOTEzJ30uY2YtaWNvbi5iZWxsOmJlZm9yZXtjb250ZW50OidcXGU5MzQnfS5jZi1pY29uLmJlbGwtc29saWQ6YmVmb3Jle2NvbnRlbnQ6J1xcZTkzNyd9LmNmLWljb24uYnJ1c2g6YmVmb3Jle2NvbnRlbnQ6J1xcZTkzZCd9LmNmLWljb24uY2FwYWNpdG9yMjpiZWZvcmV7Y29udGVudDonXFxlOTIzJ30uY2YtaWNvbi5jYXJldC1kb3duOmJlZm9yZXtjb250ZW50OidcXGU5MDQnfS5jZi1pY29uLmNhcmV0LWxlZnQ6YmVmb3Jle2NvbnRlbnQ6J1xcZTkwNSd9LmNmLWljb24uY2FyZXQtcmlnaHQ6YmVmb3Jle2NvbnRlbnQ6J1xcZTkwNid9LmNmLWljb24uY2FyZXQtdXA6YmVmb3Jle2NvbnRlbnQ6J1xcZTkwNyd9LmNmLWljb24uY2hlY2ttYXJrOmJlZm9yZXtjb250ZW50OidcXGU5MTgnfS5jZi1pY29uLmNpcmNsZTpiZWZvcmV7Y29udGVudDonXFxlOTQwJ30uY2YtaWNvbi5jaXJjbGUtdGhpY2s6YmVmb3Jle2NvbnRlbnQ6J1xcZTkwZSd9LmNmLWljb24uY2xvY2s6YmVmb3Jle2NvbnRlbnQ6J1xcZTkyMCd9LmNmLWljb24uY29nLW91dGxpbmU6YmVmb3Jle2NvbnRlbnQ6J1xcZTkxYyd9LmNmLWljb24uY29nLXRoaWNrOmJlZm9yZXtjb250ZW50OidcXGU5MGMnfS5jZi1pY29uLmNvbGxhcHNlOmJlZm9yZXtjb250ZW50OidcXGU5MWInfS5jZi1pY29uLmNyb3duLW91dGxpbmU6YmVmb3Jle2NvbnRlbnQ6J1xcZTkwOCd9LmNmLWljb24uY3Jvd24yOmJlZm9yZXtjb250ZW50OidcXGU5NGInfS5jZi1pY29uLmN1YmU6YmVmb3Jle2NvbnRlbnQ6J1xcZTkwYid9LmNmLWljb24uY3VibzpiZWZvcmV7Y29udGVudDonXFxlOTVlJ30uY2YtaWNvbi5jdWJvLXVuaWZvcm06YmVmb3Jle2NvbnRlbnQ6J1xcZTkzYyd9LmNmLWljb24uZGFzaC1mOmJlZm9yZXtjb250ZW50OidcXGU5MjcnfS5jZi1pY29uLmRhc2gtaDpiZWZvcmV7Y29udGVudDonXFxlOTI5J30uY2YtaWNvbi5kYXNoLWo6YmVmb3Jle2NvbnRlbnQ6J1xcZTkyYid9LmNmLWljb24uZGlza3M6YmVmb3Jle2NvbnRlbnQ6J1xcZTk1MCd9LmNmLWljb24uZG93bmxvYWQ6YmVmb3Jle2NvbnRlbnQ6J1xcZTkxZCd9LmNmLWljb24uZHVwbGljYXRlOmJlZm9yZXtjb250ZW50OidcXGU5MTcnfS5jZi1pY29uLmVybGVubWV5ZXI6YmVmb3Jle2NvbnRlbnQ6J1xcZTk1OCd9LmNmLWljb24uZXhwYW5kLWE6YmVmb3Jle2NvbnRlbnQ6J1xcZTk0NCd9LmNmLWljb24uZXhwYW5kLWI6YmVmb3Jle2NvbnRlbnQ6J1xcZTk0Mid9LmNmLWljb24uZXhwb3J0OmJlZm9yZXtjb250ZW50OidcXGU5MGYnfS5jZi1pY29uLmV5ZTpiZWZvcmV7Y29udGVudDonXFxlOTFmJ30uY2YtaWNvbi5leWUtY2xvc2VkOmJlZm9yZXtjb250ZW50OidcXGU5NTYnfS5jZi1pY29uLmV5ZS1vcGVuOmJlZm9yZXtjb250ZW50OidcXGU5NTcnfS5jZi1pY29uLmZuOmJlZm9yZXtjb250ZW50OidcXGU5NjAnfS5jZi1pY29uLmdpdGh1YjpiZWZvcmV7Y29udGVudDonXFxlOTI4J30uY2YtaWNvbi5nb29nbGU6YmVmb3Jle2NvbnRlbnQ6J1xcZTkyYSd9LmNmLWljb24uZ3JvdXA6YmVmb3Jle2NvbnRlbnQ6J1xcZTkwOSd9LmNmLWljb24uaGVyb2t1OmJlZm9yZXtjb250ZW50OidcXGU5NDcnfS5jZi1pY29uLmhlcm9rdS1zaW1wbGU6YmVmb3Jle2NvbnRlbnQ6J1xcZTk0OCd9LmNmLWljb24uaW1wb3J0OmJlZm9yZXtjb250ZW50OidcXGU5MTAnfS5jZi1pY29uLmxpbms6YmVmb3Jle2NvbnRlbnQ6J1xcZTkyZSd9LmNmLWljb24ubWF4aW1pemU6YmVmb3Jle2NvbnRlbnQ6J1xcZTk1NSd9LmNmLWljb24ubWluaW1pemU6YmVmb3Jle2NvbnRlbnQ6J1xcZTk1NCd9LmNmLWljb24ubmF2LWNoYXQ6YmVmb3Jle2NvbnRlbnQ6J1xcZTk0MSd9LmNmLWljb24ub2F1dGg6YmVmb3Jle2NvbnRlbnQ6J1xcZTk0Zid9LmNmLWljb24ub2N0YWdvbjpiZWZvcmV7Y29udGVudDonXFxlOTJkJ30uY2YtaWNvbi5va3RhOmJlZm9yZXtjb250ZW50OidcXGU5MTInfS5jZi1pY29uLnBhdXNlOmJlZm9yZXtjb250ZW50OidcXGU5NGEnfS5jZi1pY29uLnBlbmNpbDpiZWZvcmV7Y29udGVudDonXFxlOTJmJ30uY2YtaWNvbi5wbGF5OmJlZm9yZXtjb250ZW50OidcXGU5MTQnfS5jZi1pY29uLnBsdXM6YmVmb3Jle2NvbnRlbnQ6J1xcZTkwYSd9LmNmLWljb24ucGx1cy1za2lubnk6YmVmb3Jle2NvbnRlbnQ6J1xcZTkyMid9LmNmLWljb24ucG9sYXJvaWQ6YmVmb3Jle2NvbnRlbnQ6J1xcZTk1Yid9LmNmLWljb24ucHVsc2UtYzpiZWZvcmV7Y29udGVudDonXFxlOTM2J30uY2YtaWNvbi5yZWRvOmJlZm9yZXtjb250ZW50OidcXGU5NTknfS5jZi1pY29uLnJlZnJlc2g6YmVmb3Jle2NvbnRlbnQ6J1xcZTk0OSd9LmNmLWljb24ucmVtb3ZlOmJlZm9yZXtjb250ZW50OidcXGU5MGQnfS5jZi1pY29uLnNlYXJjaDpiZWZvcmV7Y29udGVudDonXFxlOTE2J30uY2YtaWNvbi5zZXJ2ZXIyOmJlZm9yZXtjb250ZW50OidcXGU5NGMnfS5jZi1pY29uLnNodWZmbGU6YmVmb3Jle2NvbnRlbnQ6J1xcZTk0ZSd9LmNmLWljb24uc3F1YXJlOmJlZm9yZXtjb250ZW50OidcXGU5M2UnfS5jZi1pY29uLnNxdWFyZS1jaGVjazpiZWZvcmV7Y29udGVudDonXFxlOTQzJ30uY2YtaWNvbi5zdGFyOmJlZm9yZXtjb250ZW50OidcXGU5MzAnfS5jZi1pY29uLnN0b3A6YmVmb3Jle2NvbnRlbnQ6J1xcZTkzMSd9LmNmLWljb24udGV4dC1ibG9jazpiZWZvcmV7Y29udGVudDonXFxlOTExJ30uY2YtaWNvbi50cmFzaDpiZWZvcmV7Y29udGVudDonXFxlOTE1J30uY2YtaWNvbi50cmlhbmdsZTpiZWZvcmV7Y29udGVudDonXFxlOTJjJ30uY2YtaWNvbi51bmRvOmJlZm9yZXtjb250ZW50OidcXGU5NWEnfS5jZi1pY29uLnVzZXI6YmVmb3Jle2NvbnRlbnQ6J1xcZTkxOSd9LmNmLWljb24udXNlci1hZGQ6YmVmb3Jle2NvbnRlbnQ6J1xcZTkxZSd9LmNmLWljb24udXNlci1vdXRsaW5lOmJlZm9yZXtjb250ZW50OidcXGU5MzInfS5jZi1pY29uLnVzZXItcmVtb3ZlOmJlZm9yZXtjb250ZW50OidcXGU5MzknfS5jZi1pY29uLnVzZXJzLXRyaW86YmVmb3Jle2NvbnRlbnQ6J1xcZTk0NSd9LmNmLWljb24ud2FuZDpiZWZvcmV7Y29udGVudDonXFxlOTRkJ30uY2YtaWNvbi53b29kOmJlZm9yZXtjb250ZW50OidcXGU5NzAnfS5jZi1pY29uLndyZW5jaDpiZWZvcmV7Y29udGVudDonXFxlOTcxJ30uY2YtaWNvbi56YXA6YmVmb3Jle2NvbnRlbnQ6J1xcZTk3Myd9LmNmLWljb24uYmVsbC1yaW5naW5nOmJlZm9yZXtjb250ZW50OidcXGU5MzUnfS5jZi1pY29uLmNhbGVuZGFyOmJlZm9yZXtjb250ZW50OidcXGU5MzgnfS5jZi1pY29uLmNsb3VkOmJlZm9yZXtjb250ZW50OidcXGU5M2YnfS5jZi1pY29uLmN1Ym8tbmF2OmJlZm9yZXtjb250ZW50OidcXGU5MWEnfS5jZi1pY29uLmRhc2hib2FyZHM6YmVmb3Jle2NvbnRlbnQ6J1xcZTkzYSd9LmNmLWljb24uZGlza3MtbmF2OmJlZm9yZXtjb250ZW50OidcXGU5NDYnfS5jZi1pY29uLmdyYXBobGluZS0yOmJlZm9yZXtjb250ZW50OidcXGU5MjQnfS5jZi1pY29uLnVzZXJzLWR1bzpiZWZvcmV7Y29udGVudDonXFxlOTNiJ30uY2YtaWNvbi53cmVuY2gtbmF2OmJlZm9yZXtjb250ZW50OidcXGU5NzInfS5jZi1pY29uLmJvb2s6YmVmb3Jle2NvbnRlbnQ6J1xcZTk2Nid9LmNmLWljb24uYm9vay1jb2RlOmJlZm9yZXtjb250ZW50OidcXGU5NjcnfS5jZi1pY29uLmJvb2stcGVuY2lsOmJlZm9yZXtjb250ZW50OidcXGU5NjUnfS5jZi1pY29uLmJ1Y2tldC1zb2xpZDpiZWZvcmV7Y29udGVudDonXFxlOTYyJ30uY2YtaWNvbi5mdW5uZWwtb3V0bGluZTpiZWZvcmV7Y29udGVudDonXFxlOTYzJ30uY2YtaWNvbi5mdW5uZWwtc29saWQ6YmVmb3Jle2NvbnRlbnQ6J1xcZTk2NCd9LmNmLWljb24ubGF5ZXJzOmJlZm9yZXtjb250ZW50OidcXGU5NmMnfS5jZi1pY29uLnNoYXJlOmJlZm9yZXtjb250ZW50OidcXGU5NmQnfUBmb250LWZhY2V7Zm9udC1mYW1pbHk6J2ljb21vb24tdjQnO3NyYzp1cmwoXCJmb250cy9pY29tb29uLXY0LmVvdFwiKSBmb3JtYXQoXCJlbWJlZGRlZC1vcGVudHlwZVwiKTtzcmM6dXJsKFwiZm9udHMvaWNvbW9vbi12NC5lb3RcIikgZm9ybWF0KFwiZW1iZWRkZWQtb3BlbnR5cGVcIiksdXJsKFwiZm9udHMvaWNvbW9vbi12NC53b2ZmMlwiKSBmb3JtYXQoXCJ3b2ZmMlwiKSx1cmwoXCJmb250cy9pY29tb29uLXY0LnR0ZlwiKSBmb3JtYXQoXCJ0cnVldHlwZVwiKSx1cmwoXCJmb250cy9pY29tb29uLXY0LndvZmZcIikgZm9ybWF0KFwid29mZlwiKSx1cmwoXCJmb250cy9pY29tb29uLXY0LnN2Z1wiKSBmb3JtYXQoXCJzdmdcIik7Zm9udC13ZWlnaHQ6bm9ybWFsO2ZvbnQtc3R5bGU6bm9ybWFsfS5jZi1pY29ue2ZvbnQtZmFtaWx5OidpY29tb29uLXY0Jztmb250LXN0eWxlOm5vcm1hbDtmb250LXdlaWdodDpub3JtYWw7Zm9udC12YXJpYW50Om5vcm1hbDt0ZXh0LXRyYW5zZm9ybTpub25lO2xpbmUtaGVpZ2h0OjE7LXdlYmtpdC1mb250LXNtb290aGluZzphbnRpYWxpYXNlZDstbW96LW9zeC1mb250LXNtb290aGluZzpncmF5c2NhbGV9LmNmLWljb24uRm9sZGVyT3BlbjpiZWZvcmV7Y29udGVudDonXFxlOTU2J30uY2YtaWNvbi5CaWxsOmJlZm9yZXtjb250ZW50OidcXGU5NTQnfS5jZi1pY29uLkxvZ291dDpiZWZvcmV7Y29udGVudDonXFxlOTUwJ30uY2YtaWNvbi5QaWVDaGFydDpiZWZvcmV7Y29udGVudDonXFxlOTU3J30uY2YtaWNvbi5DdXJyZW5jeURvbGxhcjpiZWZvcmV7Y29udGVudDonXFxlOTUyJ30uY2YtaWNvbi5TeW5jOmJlZm9yZXtjb250ZW50OidcXGU5NTUnfS5jZi1pY29uLlN1YnRyYWN0OmJlZm9yZXtjb250ZW50OidcXGU5NTMnfS5jZi1pY29uLlRpbWVyOmJlZm9yZXtjb250ZW50OidcXGU5NGYnfS5jZi1pY29uLkNhcmV0T3V0bGluZVJpZ2h0OmJlZm9yZXtjb250ZW50OidcXGU5NGInfS5jZi1pY29uLkNvbGxhcHNlTGVmdDpiZWZvcmV7Y29udGVudDonXFxlOTRjJ30uY2YtaWNvbi5Db2xsYXBzZVJpZ2h0OmJlZm9yZXtjb250ZW50OidcXGU5NGQnfS5jZi1pY29uLkRvdWJsZUNhcmV0VmVydGljYWw6YmVmb3Jle2NvbnRlbnQ6J1xcZTk0ZSd9LmNmLWljb24uUXVlc3Rpb25NYXJrX091dGxpbmU6YmVmb3Jle2NvbnRlbnQ6J1xcZTk0YSd9LmNmLWljb24uSW5mb19OZXc6YmVmb3Jle2NvbnRlbnQ6J1xcZTk0OSd9LmNmLWljb24uU2lkZWJhckNsb3NlOmJlZm9yZXtjb250ZW50OidcXGU5NDcnfS5jZi1pY29uLlNpZGViYXJPcGVuOmJlZm9yZXtjb250ZW50OidcXGU5NDgnfS5jZi1pY29uLkNhcmV0RG93bl9OZXc6YmVmb3Jle2NvbnRlbnQ6J1xcZTkxMid9LmNmLWljb24uQ2FyZXRMZWZ0X05ldzpiZWZvcmV7Y29udGVudDonXFxlOTEzJ30uY2YtaWNvbi5DYXJldFJpZ2h0X05ldzpiZWZvcmV7Y29udGVudDonXFxlOTE0J30uY2YtaWNvbi5DYXJldFVwX05ldzpiZWZvcmV7Y29udGVudDonXFxlOTE1J30uY2YtaWNvbi5QbGF5OmJlZm9yZXtjb250ZW50OidcXGU5MDAnfS5jZi1pY29uLlBhdXNlOmJlZm9yZXtjb250ZW50OidcXGU5MDEnfS5jZi1pY29uLkV5ZU9wZW46YmVmb3Jle2NvbnRlbnQ6J1xcZTkwMid9LmNmLWljb24uRmxhc2s6YmVmb3Jle2NvbnRlbnQ6J1xcZTkwMyd9LmNmLWljb24uQWRkQ2VsbF9OZXc6YmVmb3Jle2NvbnRlbnQ6J1xcZTkwNCd9LmNmLWljb24uUXVlc3Rpb25NYXJrOmJlZm9yZXtjb250ZW50OidcXGU5MDUnfS5jZi1pY29uLkFsZXJ0VHJpYW5nbGU6YmVmb3Jle2NvbnRlbnQ6J1xcZTkwNid9LmNmLWljb24uQW5ub3RhdGVfTmV3OmJlZm9yZXtjb250ZW50OidcXGU5MDcnfS5jZi1pY29uLkFycm93RG93bl9OZXc6YmVmb3Jle2NvbnRlbnQ6J1xcZTkwOCd9LmNmLWljb24uQXJyb3dMZWZ0X05ldzpiZWZvcmV7Y29udGVudDonXFxlOTA5J30uY2YtaWNvbi5BcnJvd1JpZ2h0X05ldzpiZWZvcmV7Y29udGVudDonXFxlOTBhJ30uY2YtaWNvbi5CYXJDaGFydF9OZXc6YmVmb3Jle2NvbnRlbnQ6J1xcZTkwYid9LmNmLWljb24uQmVsbDpiZWZvcmV7Y29udGVudDonXFxlOTBjJ30uY2YtaWNvbi5Cb29rQ29kZTpiZWZvcmV7Y29udGVudDonXFxlOTBkJ30uY2YtaWNvbi5Cb29rT3V0bGluZTpiZWZvcmV7Y29udGVudDonXFxlOTBlJ30uY2YtaWNvbi5CcmFjZXM6YmVmb3Jle2NvbnRlbnQ6J1xcZTkwZid9LmNmLWljb24uQnVja2V0U29saWQ6YmVmb3Jle2NvbnRlbnQ6J1xcZTkxMCd9LmNmLWljb24uQ2FsZW5kYXI6YmVmb3Jle2NvbnRlbnQ6J1xcZTkxMSd9LmNmLWljb24uQ2hhdDpiZWZvcmV7Y29udGVudDonXFxlOTE2J30uY2YtaWNvbi5DaGVja21hcmtfTmV3OmJlZm9yZXtjb250ZW50OidcXGU5MTcnfS5jZi1pY29uLkNpcmNsZVRoaWNrOmJlZm9yZXtjb250ZW50OidcXGU5MTgnfS5jZi1pY29uLkNsaXBib2FyZF9OZXc6YmVmb3Jle2NvbnRlbnQ6J1xcZTkxOSd9LmNmLWljb24uQ2xvY2tfTmV3OmJlZm9yZXtjb250ZW50OidcXGU5MWEnfS5jZi1pY29uLkNsb3VkOmJlZm9yZXtjb250ZW50OidcXGU5MWInfS5jZi1pY29uLkNvZ091dGxpbmVfTmV3OmJlZm9yZXtjb250ZW50OidcXGU5MWMnfS5jZi1pY29uLkNvZ1NvbGlkX05ldzpiZWZvcmV7Y29udGVudDonXFxlOTFkJ30uY2YtaWNvbi5Db3BwZXJjb2luOmJlZm9yZXtjb250ZW50OidcXGU5MWUnfS5jZi1pY29uLkNyb3duU29saWRfTmV3OmJlZm9yZXtjb250ZW50OidcXGU5MWYnfS5jZi1pY29uLkN1YmU6YmVmb3Jle2NvbnRlbnQ6J1xcZTkyMCd9LmNmLWljb24uQ3Vib1NvbGlkOmJlZm9yZXtjb250ZW50OidcXGU5MjEnfS5jZi1pY29uLkN1Ym91bmlmb3JtOmJlZm9yZXtjb250ZW50OidcXGU5MjInfS5jZi1pY29uLkRhcmttb2RlX05ldzpiZWZvcmV7Y29udGVudDonXFxlOTIzJ30uY2YtaWNvbi5EYXNoSDpiZWZvcmV7Y29udGVudDonXFxlOTI0J30uY2YtaWNvbi5Eb3dubG9hZF9OZXc6YmVmb3Jle2NvbnRlbnQ6J1xcZTkyNSd9LmNmLWljb24uRXhwYW5kQjpiZWZvcmV7Y29udGVudDonXFxlOTI2J30uY2YtaWNvbi5FeHBvcnRfTmV3OmJlZm9yZXtjb250ZW50OidcXGU5MjcnfS5jZi1pY29uLkV5ZUNsb3NlZDpiZWZvcmV7Y29udGVudDonXFxlOTI4J30uY2YtaWNvbi5GdW5uZWxTb2xpZDpiZWZvcmV7Y29udGVudDonXFxlOTI5J30uY2YtaWNvbi5HcmFwaExpbmVfTmV3OmJlZm9yZXtjb250ZW50OidcXGU5MmEnfS5jZi1pY29uLkdyb3VwOmJlZm9yZXtjb250ZW50OidcXGU5MmInfS5jZi1pY29uLkhpc3Rvcnk6YmVmb3Jle2NvbnRlbnQ6J1xcZTkyYyd9LmNmLWljb24uRHVwbGljYXRlX05ldzpiZWZvcmV7Y29udGVudDonXFxlOTJkJ30uY2YtaWNvbi5JbnN0YWxsOmJlZm9yZXtjb250ZW50OidcXGU5MmUnfS5jZi1pY29uLkxheWVyczpiZWZvcmV7Y29udGVudDonXFxlOTJmJ30uY2YtaWNvbi5MaWdodG1vZGVfTmV3OmJlZm9yZXtjb250ZW50OidcXGU5MzAnfS5jZi1pY29uLkxpbms6YmVmb3Jle2NvbnRlbnQ6J1xcZTkzMSd9LmNmLWljb24uTG9jazpiZWZvcmV7Y29udGVudDonXFxlOTMyJ30uY2YtaWNvbi5Nb3JlOmJlZm9yZXtjb250ZW50OidcXGU5MzMnfS5jZi1pY29uLlBlbmNpbDpiZWZvcmV7Y29udGVudDonXFxlOTM0J30uY2YtaWNvbi5QbHVzX05ldzpiZWZvcmV7Y29udGVudDonXFxlOTM1J30uY2YtaWNvbi5SZWZyZXNoX05ldzpiZWZvcmV7Y29udGVudDonXFxlOTM2J30uY2YtaWNvbi5SZW1vdmVfTmV3OmJlZm9yZXtjb250ZW50OidcXGU5MzcnfS5jZi1pY29uLlNhdmU6YmVmb3Jle2NvbnRlbnQ6J1xcZTkzOCd9LmNmLWljb24uU2F2ZU91dGxpbmU6YmVmb3Jle2NvbnRlbnQ6J1xcZTk1MSd9LmNmLWljb24uU2VhcmNoX05ldzpiZWZvcmV7Y29udGVudDonXFxlOTM5J30uY2YtaWNvbi5TaGFyZTpiZWZvcmV7Y29udGVudDonXFxlOTNhJ30uY2YtaWNvbi5TaGllbGQ6YmVmb3Jle2NvbnRlbnQ6J1xcZTkzYid9LmNmLWljb24uU3RhcjpiZWZvcmV7Y29udGVudDonXFxlOTNjJ30uY2YtaWNvbi5TdGFyU21pbGU6YmVmb3Jle2NvbnRlbnQ6J1xcZTkzZCd9LmNmLWljb24uU3Vic2NyaWJlOmJlZm9yZXtjb250ZW50OidcXGU5M2UnfS5jZi1pY29uLlN3aXRjaF9OZXc6YmVmb3Jle2NvbnRlbnQ6J1xcZTkzZid9LmNmLWljb24uVGV4dF9OZXc6YmVmb3Jle2NvbnRlbnQ6J1xcZTk0MCd9LmNmLWljb24uVHJhc2hfTmV3OmJlZm9yZXtjb250ZW50OidcXGU5NDEnfS5jZi1pY29uLlVuZG86YmVmb3Jle2NvbnRlbnQ6J1xcZTk0Mid9LmNmLWljb24uVXBsb2FkX05ldzpiZWZvcmV7Y29udGVudDonXFxlOTQzJ30uY2YtaWNvbi5VcGxvYWRfT3V0bGluZTpiZWZvcmV7Y29udGVudDonXFxlOTQ0J30uY2YtaWNvbi5Vc2VyOmJlZm9yZXtjb250ZW50OidcXGU5NDUnfS5jZi1pY29uLlphcDpiZWZvcmV7Y29udGVudDonXFxlOTQ2J31AZm9udC1mYWNle2ZvbnQtZmFtaWx5OidhbGVydC1pY29ucyc7c3JjOnVybChcImZvbnRzL2FsZXJ0LWljb25zLmVvdD9kMGR6bmhcIik7c3JjOnVybChcImZvbnRzL2FsZXJ0LWljb25zLmVvdD9kMGR6bmgjaWVmaXhcIikgZm9ybWF0KFwiZW1iZWRkZWQtb3BlbnR5cGVcIiksdXJsKFwiZm9udHMvYWxlcnQtaWNvbnMudHRmP2QwZHpuaFwiKSBmb3JtYXQoXCJ0cnVldHlwZVwiKSx1cmwoXCJmb250cy9hbGVydC1pY29ucy53b2ZmP2QwZHpuaFwiKSBmb3JtYXQoXCJ3b2ZmXCIpLHVybChcImZvbnRzL2FsZXJ0LWljb25zLnN2Zz9kMGR6bmgjaWNvbW9vblwiKSBmb3JtYXQoXCJzdmdcIik7Zm9udC13ZWlnaHQ6bm9ybWFsO2ZvbnQtc3R5bGU6bm9ybWFsO2ZvbnQtZGlzcGxheTpibG9ja31bY2xhc3NePVwiYWxlcnQtaWNvbi1cIl0sW2NsYXNzKj1cIiBhbGVydC1pY29uLVwiXXtmb250LWZhbWlseTonYWxlcnQtaWNvbnMnICFpbXBvcnRhbnQ7c3BlYWs6bmV2ZXI7Zm9udC1zdHlsZTpub3JtYWw7Zm9udC13ZWlnaHQ6bm9ybWFsO2ZvbnQtdmFyaWFudDpub3JtYWw7dGV4dC10cmFuc2Zvcm06bm9uZTtsaW5lLWhlaWdodDoxOy13ZWJraXQtZm9udC1zbW9vdGhpbmc6YW50aWFsaWFzZWQ7LW1vei1vc3gtZm9udC1zbW9vdGhpbmc6Z3JheXNjYWxlfS5hbGVydC1pY29uLWNhdXRpb246YmVmb3Jle2NvbnRlbnQ6XCJcXDQzXCJ9LmFsZXJ0LWljb24taW1wb3J0YW50OmJlZm9yZXtjb250ZW50OlwiXFw0OVwifS5hbGVydC1pY29uLW5vdGU6YmVmb3Jle2NvbnRlbnQ6XCJcXDRlXCJ9LmFsZXJ0LWljb24tdGlwOmJlZm9yZXtjb250ZW50OlwiXFw1NFwifS5hbGVydC1pY29uLXdhcm5pbmc6YmVmb3Jle2NvbnRlbnQ6XCJcXDU3XCJ9LnYze2ZvbnQtZmFtaWx5OidpY29tb29uLXYzJ30udjR7Zm9udC1mYW1pbHk6J2ljb21vb24tdjQnfS50b29sdGlwe3Bvc2l0aW9uOnJlbGF0aXZlO2Rpc3BsYXk6aW5saW5lLWJsb2NrO2ZvbnQtd2VpZ2h0OjUwMDtjb2xvcjojRDZGNjIyfS50b29sdGlwOmhvdmVye2N1cnNvcjpoZWxwfS50b29sdGlwOmhvdmVyIC50b29sdGlwLWNvbnRhaW5lcnt2aXNpYmlsaXR5OnZpc2libGV9LnRvb2x0aXA6aG92ZXIgLnRvb2x0aXAtdGV4dHtvcGFjaXR5OjE7dHJhbnNmb3JtOnRyYW5zbGF0ZSgtNTAlLCAtMi41cmVtKX0udG9vbHRpcCAudG9vbHRpcC1jb250YWluZXJ7cG9zaXRpb246YWJzb2x1dGU7dG9wOjA7bGVmdDo1MCU7dHJhbnNmb3JtOnRyYW5zbGF0ZVgoLTUwJSk7b3ZlcmZsb3c6dmlzaWJsZTt2aXNpYmlsaXR5OmhpZGRlbn0udG9vbHRpcCAudG9vbHRpcC10ZXh0e2ZvbnQtd2VpZ2h0OjUwMDtwb3NpdGlvbjphYnNvbHV0ZTtib3JkZXItcmFkaXVzOjJweDtwYWRkaW5nOi4xNXJlbSAuNzVyZW07Zm9udC1zaXplOjAuOXJlbTtsaW5lLWhlaWdodDoxLjc1cmVtO2xlZnQ6NTAlO3RyYW5zZm9ybTp0cmFuc2xhdGUoLTUwJSwgLTEuNzVyZW0pO3RyYW5zaXRpb246YWxsIDAuMnMgZWFzZTt3aGl0ZS1zcGFjZTpub3dyYXA7b3BhY2l0eTowO2NvbG9yOiMyMDIwMjg7YmFja2dyb3VuZC1jb2xvcjojRDZGNjIyfS50b29sdGlwIC50b29sdGlwLXRleHQ6YWZ0ZXJ7Y29udGVudDonJztwb3NpdGlvbjphYnNvbHV0ZTtsZWZ0OjUwJTtib3R0b206LTE0cHg7dHJhbnNmb3JtOnRyYW5zbGF0ZVgoLTUwJSk7Ym9yZGVyLXRvcDo4cHggc29saWQgI0Q2RjYyMjtib3JkZXItcmlnaHQ6OHB4IHNvbGlkIHRyYW5zcGFyZW50O2JvcmRlci1ib3R0b206OHB4IHNvbGlkIHRyYW5zcGFyZW50O2JvcmRlci1sZWZ0OjhweCBzb2xpZCB0cmFuc3BhcmVudH0udG9vbHRpcC5zaGlmdC1sZWZ0IC50b29sdGlwLXRleHR7bGVmdDo3NSU7dHJhbnNmb3JtOnRyYW5zbGF0ZSgtNzUlLCAtMS43NXJlbSl9LnRvb2x0aXAuc2hpZnQtbGVmdCAudG9vbHRpcC10ZXh0OmFmdGVye2xlZnQ6NzUlO3RyYW5zZm9ybTp0cmFuc2xhdGVYKC03NSUpfS50b29sdGlwLnNoaWZ0LWxlZnQ6aG92ZXIgLnRvb2x0aXAtdGV4dHt0cmFuc2Zvcm06dHJhbnNsYXRlKC03NSUsIC0yLjVyZW0pfS50b29sdGlwLnNoaWZ0LXJpZ2h0IC50b29sdGlwLXRleHR7bGVmdDoyNSU7dHJhbnNmb3JtOnRyYW5zbGF0ZSgtMjUlLCAtMS43NXJlbSl9LnRvb2x0aXAuc2hpZnQtcmlnaHQgLnRvb2x0aXAtdGV4dDphZnRlcntsZWZ0OjI1JTt0cmFuc2Zvcm06dHJhbnNsYXRlWCgtMjUlKX0udG9vbHRpcC5zaGlmdC1yaWdodDpob3ZlciAudG9vbHRpcC10ZXh0e3RyYW5zZm9ybTp0cmFuc2xhdGUoLTI1JSwgLTIuNXJlbSl9LnRvb2x0aXAucmlnaHQ6aG92ZXIgLnRvb2x0aXAtY29udGFpbmVye3Zpc2liaWxpdHk6dmlzaWJsZX0udG9vbHRpcC5yaWdodDpob3ZlciAudG9vbHRpcC10ZXh0e29wYWNpdHk6MTt0cmFuc2Zvcm06dHJhbnNsYXRlKDcwJSl9LnRvb2x0aXAucmlnaHQgLnRvb2x0aXAtY29udGFpbmVye2xlZnQ6MCU7dHJhbnNmb3JtOnRyYW5zbGF0ZVgoNjAlKX0udG9vbHRpcC5yaWdodCAudG9vbHRpcC10ZXh0e2xlZnQ6NjAlO3RyYW5zZm9ybTp0cmFuc2xhdGUoNjAlKTt0cmFuc2l0aW9uOmFsbCAwLjJzIGVhc2V9LnRvb2x0aXAucmlnaHQgLnRvb2x0aXAtdGV4dDphZnRlcnt0b3A6NTAlO2xlZnQ6LTE0cHg7dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTUwJSk7Ym9yZGVyLXRvcDoxNnB4IHNvbGlkIHRyYW5zcGFyZW50O2JvcmRlci1yaWdodDoxNnB4IHNvbGlkICNENkY2MjI7Ym9yZGVyLWJvdHRvbToxNnB4IHNvbGlkIHRyYW5zcGFyZW50O2JvcmRlci1sZWZ0OjhweCBzb2xpZCB0cmFuc3BhcmVudH10aCAudG9vbHRpcHtjb2xvcjojRDZGNjIyfXRoIC50b29sdGlwOmhvdmVyIC50b29sdGlwLWNvbnRhaW5lcnt2aXNpYmlsaXR5OnZpc2libGV9dGggLnRvb2x0aXA6aG92ZXIgLnRvb2x0aXAtdGV4dHtvcGFjaXR5OjE7dHJhbnNmb3JtOnRyYW5zbGF0ZSgtNTAlLCAxLjc1cmVtKX10aCAudG9vbHRpcCAudG9vbHRpcC10ZXh0e3RyYW5zZm9ybTp0cmFuc2xhdGUoLTUwJSwgMXJlbSl9dGggLnRvb2x0aXAgLnRvb2x0aXAtdGV4dDphZnRlcntjb250ZW50OicnO3Bvc2l0aW9uOmFic29sdXRlO2hlaWdodDowO2xlZnQ6NTAlO3RvcDotMTRweDt0cmFuc2Zvcm06dHJhbnNsYXRlWCgtNTAlKTtib3JkZXItdG9wOjhweCBzb2xpZCB0cmFuc3BhcmVudDtib3JkZXItcmlnaHQ6OHB4IHNvbGlkIHRyYW5zcGFyZW50O2JvcmRlci1ib3R0b206OHB4IHNvbGlkICNENkY2MjI7Ym9yZGVyLWxlZnQ6OHB4IHNvbGlkIHRyYW5zcGFyZW50fS5kYXRlcGlja2Vye2Rpc3BsYXk6bm9uZX0uZGF0ZXBpY2tlci5hY3RpdmV7ZGlzcGxheTpibG9ja30uZGF0ZXBpY2tlci1waWNrZXJ7YmFja2dyb3VuZC1jb2xvcjojMTQxNDFGO2JvcmRlci1yYWRpdXM6MnB4O2Rpc3BsYXk6aW5saW5lLWJsb2NrfS5kYXRlcGlja2VyLXBpY2tlciBzcGFuey13ZWJraXQtdG91Y2gtY2FsbG91dDpub25lO2JvcmRlcjowO2JvcmRlci1yYWRpdXM6MnB4O2N1cnNvcjpkZWZhdWx0O2Rpc3BsYXk6YmxvY2s7ZmxleDoxO3RleHQtYWxpZ246Y2VudGVyOy13ZWJraXQtdXNlci1zZWxlY3Q6bm9uZTstbW96LXVzZXItc2VsZWN0Om5vbmU7LW1zLXVzZXItc2VsZWN0Om5vbmU7dXNlci1zZWxlY3Q6bm9uZX0uZGF0ZXBpY2tlci1tYWlue3BhZGRpbmc6MnB4fS5kYXRlcGlja2VyLWNvbnRyb2xze2Rpc3BsYXk6ZmxleH0uZGF0ZXBpY2tlci1jb250cm9scyAuYnV0dG9ue2FsaWduLWl0ZW1zOmNlbnRlcjtiYWNrZ3JvdW5kLWNvbG9yOiMxNDE0MUY7Ym9yZGVyOjFweCBzb2xpZCAjZGJkYmRiO2JvcmRlci1yYWRpdXM6MnB4O2JveC1zaGFkb3c6bm9uZTtjb2xvcjojRkFGQUZDO2N1cnNvcjpwb2ludGVyO2Rpc3BsYXk6aW5saW5lLWZsZXg7Zm9udC1zaXplOjFyZW07aGVpZ2h0OjIuMjVlbTtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO2xpbmUtaGVpZ2h0OjEuNTttYXJnaW46MDtwYWRkaW5nOmNhbGMoLjM3NWVtIC0gMXB4KSAwLjc1ZW07cG9zaXRpb246cmVsYXRpdmU7dGV4dC1hbGlnbjpjZW50ZXI7dmVydGljYWwtYWxpZ246dG9wO3doaXRlLXNwYWNlOm5vd3JhcDt0cmFuc2l0aW9uOmFsbCAuMnN9LmRhdGVwaWNrZXItY29udHJvbHMgLmJ1dHRvbjphY3RpdmV7b3V0bGluZTpub25lO2JvcmRlci1jb2xvcjojNGE0YTRhO2NvbG9yOiNENEQ3RER9LmRhdGVwaWNrZXItY29udHJvbHMgLmJ1dHRvbjpmb2N1c3tvdXRsaW5lOm5vbmU7Ym9yZGVyLWNvbG9yOiMzMjczZGM7Y29sb3I6I0Q0RDdERH0uZGF0ZXBpY2tlci1jb250cm9scyAuYnV0dG9uOmZvY3VzOm5vdCg6YWN0aXZlKXtib3gtc2hhZG93OjAgMCAwIDAuMTI1ZW0gcmdiYSg1MCwxMTUsMjIwLDAuMjUpfS5kYXRlcGlja2VyLWNvbnRyb2xzIC5idXR0b246aG92ZXJ7Ym9yZGVyLWNvbG9yOiNiNWI1YjU7Y29sb3I6I0ZBRkFGQ30uZGF0ZXBpY2tlci1jb250cm9scyAuYnV0dG9uW2Rpc2FibGVkXXtjdXJzb3I6bm90LWFsbG93ZWR9LmRhdGVwaWNrZXItY29udHJvbHMgLnZpZXctc3dpdGNoe2ZsZXg6YXV0b30uZGF0ZXBpY2tlci1jb250cm9scyAubmV4dC1idG57cGFkZGluZy1sZWZ0Oi4zNzVyZW07cGFkZGluZy1yaWdodDouMzc1cmVtO3dpZHRoOjIuMjVyZW19LmRhdGVwaWNrZXItY29udHJvbHMgLnByZXYtYnRue3BhZGRpbmctbGVmdDouMzc1cmVtO3BhZGRpbmctcmlnaHQ6LjM3NXJlbTt3aWR0aDoyLjI1cmVtfS5kYXRlcGlja2VyLWNvbnRyb2xzIC5uZXh0LWJ0bi5kaXNhYmxlZHt2aXNpYmlsaXR5OmhpZGRlbn0uZGF0ZXBpY2tlci1jb250cm9scyAucHJldi1idG4uZGlzYWJsZWR7dmlzaWJpbGl0eTpoaWRkZW59LmRhdGVwaWNrZXItZ3JpZHtkaXNwbGF5OmZsZXg7ZmxleC13cmFwOndyYXA7d2lkdGg6MTUuNzVyZW19LmRhdGVwaWNrZXItdmlld3tkaXNwbGF5OmZsZXh9LmRhdGVwaWNrZXItdmlldyAuZGF5cy1vZi13ZWVre2Rpc3BsYXk6ZmxleH0uZGF0ZXBpY2tlci12aWV3IC5kYXlzIC5kYXRlcGlja2VyLWNlbGx7ZmxleC1iYXNpczoxNC4yODU3MTQyODU3JX0uZGF0ZXBpY2tlci12aWV3IC5kb3d7ZmxleC1iYXNpczoxNC4yODU3MTQyODU3JTtmb250LXNpemU6Ljg3NXJlbTtmb250LXdlaWdodDo3MDA7aGVpZ2h0OjEuNXJlbTtsaW5lLWhlaWdodDoxLjVyZW19LmRhdGVwaWNrZXItdmlldyAud2Vla3toZWlnaHQ6Mi4yNXJlbTtsaW5lLWhlaWdodDoyLjI1cmVtO2NvbG9yOiNiNWI1YjU7Zm9udC1zaXplOi43NXJlbTt3aWR0aDoyLjI1cmVtfS5kYXRlcGlja2VyLXZpZXcuZGF0ZXBpY2tlci1ncmlkIC5kYXRlcGlja2VyLWNlbGx7ZmxleC1iYXNpczoyNSU7aGVpZ2h0OjQuNXJlbTtsaW5lLWhlaWdodDo0LjVyZW19LmRhdGVwaWNrZXItY2VsbHtoZWlnaHQ6Mi4yNXJlbTtsaW5lLWhlaWdodDoyLjI1cmVtfS5kYXRlcGlja2VyLWNlbGw6bm90KC5kaXNhYmxlZCk6aG92ZXJ7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDIxMiwyMTUsMjIxLDAuMTUpO2N1cnNvcjpwb2ludGVyfS5kYXRlcGlja2VyLXRpdGxle2JhY2tncm91bmQtY29sb3I6I2Y1ZjVmNTtib3gtc2hhZG93Omluc2V0IDAgLTFweCAxcHggcmdiYSgxMCwxMCwxMCwwLjEpO2ZvbnQtd2VpZ2h0OjcwMDtwYWRkaW5nOi4zNzVyZW0gLjc1cmVtO3RleHQtYWxpZ246Y2VudGVyfS5kYXRlcGlja2VyLWhlYWRlciAuZGF0ZXBpY2tlci1jb250cm9sc3twYWRkaW5nOjJweCAycHggMH0uZGF0ZXBpY2tlci1oZWFkZXIgLmRhdGVwaWNrZXItY29udHJvbHMgLmJ1dHRvbntib3JkZXItY29sb3I6dHJhbnNwYXJlbnQ7Zm9udC13ZWlnaHQ6NzAwfS5kYXRlcGlja2VyLWhlYWRlciAuZGF0ZXBpY2tlci1jb250cm9scyAuYnV0dG9uOmhvdmVye2JhY2tncm91bmQtY29sb3I6cmdiYSgyMTIsMjE1LDIyMSwwLjE1KX0uZGF0ZXBpY2tlci1oZWFkZXIgLmRhdGVwaWNrZXItY29udHJvbHMgLmJ1dHRvbjpmb2N1czpub3QoOmFjdGl2ZSl7Ym94LXNoYWRvdzowIDAgMCAwLjEyNWVtIHJnYmEoMjU1LDI1NSwyNTUsMC4yNSl9LmRhdGVwaWNrZXItaGVhZGVyIC5kYXRlcGlja2VyLWNvbnRyb2xzIC5idXR0b246YWN0aXZle2JhY2tncm91bmQtY29sb3I6IzAwQTNGRn0uZGF0ZXBpY2tlci1oZWFkZXIgLmRhdGVwaWNrZXItY29udHJvbHMgLmJ1dHRvbltkaXNhYmxlZF17Ym94LXNoYWRvdzpub25lfS5kYXRlcGlja2VyLWNlbGwuZm9jdXNlZDpub3QoLnNlbGVjdGVkKXtiYWNrZ3JvdW5kLWNvbG9yOiMwMEEzRkY7Y29sb3I6I2ZmZn0uZGF0ZXBpY2tlci1jZWxsLnNlbGVjdGVke2JhY2tncm91bmQtY29sb3I6IzAwQTNGRjtjb2xvcjojZmZmO2ZvbnQtd2VpZ2h0OjYwMH0uZGF0ZXBpY2tlci1jZWxsLnNlbGVjdGVkOmhvdmVye2JhY2tncm91bmQtY29sb3I6IzAwQTNGRjtjb2xvcjojZmZmO2ZvbnQtd2VpZ2h0OjYwMH0uZGF0ZXBpY2tlci1jZWxsLmRpc2FibGVke2NvbG9yOiNkYmRiZGJ9LmRhdGVwaWNrZXItY2VsbC5uZXh0Om5vdCguZGlzYWJsZWQpe2NvbG9yOiM3YTdhN2F9LmRhdGVwaWNrZXItY2VsbC5wcmV2Om5vdCguZGlzYWJsZWQpe2NvbG9yOiM3YTdhN2F9LmRhdGVwaWNrZXItY2VsbC5uZXh0LnNlbGVjdGVke2NvbG9yOiNlNmU2ZTZ9LmRhdGVwaWNrZXItY2VsbC5wcmV2LnNlbGVjdGVke2NvbG9yOiNlNmU2ZTZ9LmRhdGVwaWNrZXItY2VsbC5oaWdobGlnaHRlZDpub3QoLnNlbGVjdGVkKTpub3QoLnJhbmdlKTpub3QoLnRvZGF5KXtiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMjEyLDIxNSwyMjEsMC4yNSk7Ym9yZGVyLXJhZGl1czowfS5kYXRlcGlja2VyLWNlbGwuaGlnaGxpZ2h0ZWQ6bm90KC5zZWxlY3RlZCk6bm90KC5yYW5nZSk6bm90KC50b2RheSk6bm90KC5kaXNhYmxlZCk6aG92ZXJ7YmFja2dyb3VuZC1jb2xvcjojZWVlfS5kYXRlcGlja2VyLWNlbGwuaGlnaGxpZ2h0ZWQ6bm90KC5zZWxlY3RlZCk6bm90KC5yYW5nZSk6bm90KC50b2RheSkuZm9jdXNlZHtiYWNrZ3JvdW5kLWNvbG9yOiMwMEEzRkY7Y29sb3I6I2ZmZn0uZGF0ZXBpY2tlci1jZWxsLnRvZGF5Om5vdCguc2VsZWN0ZWQpe2JhY2tncm91bmQtY29sb3I6IzAwZDFiMn0uZGF0ZXBpY2tlci1jZWxsLnRvZGF5Om5vdCguc2VsZWN0ZWQpOm5vdCguZGlzYWJsZWQpe2NvbG9yOiNmZmZ9LmRhdGVwaWNrZXItY2VsbC50b2RheS5mb2N1c2VkOm5vdCguc2VsZWN0ZWQpe2JhY2tncm91bmQtY29sb3I6IzAwYzRhN30uZGF0ZXBpY2tlci1pbnB1dC5pbi1lZGl0e2JvcmRlci1jb2xvcjojMjM2NmQxfS5kYXRlcGlja2VyLWlucHV0LmluLWVkaXQ6YWN0aXZle2JveC1zaGFkb3c6MCAwIDAuMjVlbSAwLjI1ZW0gcmdiYSgzNSwxMDIsMjA5LDAuMil9LmRhdGVwaWNrZXItaW5wdXQuaW4tZWRpdDpmb2N1c3tib3gtc2hhZG93OjAgMCAwLjI1ZW0gMC4yNWVtIHJnYmEoMzUsMTAyLDIwOSwwLjIpfUBtZWRpYSAobWF4LXdpZHRoOiAyMi41cmVtKXsuZGF0ZXBpY2tlci12aWV3IC53ZWVre3dpZHRoOjEuOTY4NzVyZW19LmNhbGVuZGFyLXdlZWtzKy5kYXlzIC5kYXRlcGlja2VyLWdyaWR7d2lkdGg6MTMuNzgxMjVyZW19fS8qISBub3JtYWxpemUuc2NzcyB2MC4xLjAgfCBNSVQgTGljZW5zZSB8IGJhc2VkIG9uIGdpdC5pby9ub3JtYWxpemUgKi9odG1se2ZvbnQtZmFtaWx5OnNhbnMtc2VyaWY7LW1zLXRleHQtc2l6ZS1hZGp1c3Q6MTAwJTstd2Via2l0LXRleHQtc2l6ZS1hZGp1c3Q6MTAwJX1ib2R5e21hcmdpbjowfWFydGljbGUsYXNpZGUsZGV0YWlscyxmaWdjYXB0aW9uLGZpZ3VyZSxmb290ZXIsaGVhZGVyLGhncm91cCxtYWluLG1lbnUsbmF2LHNlY3Rpb24sc3VtbWFyeXtkaXNwbGF5OmJsb2NrfWF1ZGlvLGNhbnZhcyxwcm9ncmVzcyx2aWRlb3tkaXNwbGF5OmlubGluZS1ibG9jazt2ZXJ0aWNhbC1hbGlnbjpiYXNlbGluZX1hdWRpbzpub3QoW2NvbnRyb2xzXSl7ZGlzcGxheTpub25lO2hlaWdodDowfVtoaWRkZW5dLHRlbXBsYXRle2Rpc3BsYXk6bm9uZX1he2JhY2tncm91bmQtY29sb3I6dHJhbnNwYXJlbnR9YTphY3RpdmUsYTpob3ZlcntvdXRsaW5lOjB9YWJiclt0aXRsZV17Ym9yZGVyLWJvdHRvbToxcHggZG90dGVkfWIsc3Ryb25ne2ZvbnQtd2VpZ2h0OmJvbGR9ZGZue2ZvbnQtc3R5bGU6aXRhbGljfWgxe2ZvbnQtc2l6ZToyZW07bWFyZ2luOjAuNjdlbSAwfW1hcmt7YmFja2dyb3VuZDojZmYwO2NvbG9yOiMwMDB9c21hbGx7Zm9udC1zaXplOjgwJX1zdWIsc3Vwe2ZvbnQtc2l6ZTo3NSU7bGluZS1oZWlnaHQ6MDtwb3NpdGlvbjpyZWxhdGl2ZTt2ZXJ0aWNhbC1hbGlnbjpiYXNlbGluZX1zdXB7dG9wOi0wLjVlbX1zdWJ7Ym90dG9tOi0wLjI1ZW19aW1ne2JvcmRlcjowfXN2Zzpub3QoOnJvb3Qpe292ZXJmbG93OmhpZGRlbn1maWd1cmV7bWFyZ2luOjFlbSA0MHB4fWhyey1tb3otYm94LXNpemluZzpjb250ZW50LWJveDtib3gtc2l6aW5nOmNvbnRlbnQtYm94O2hlaWdodDowfXByZXtvdmVyZmxvdzphdXRvfWNvZGUsa2JkLHByZSxzYW1we2ZvbnQtZmFtaWx5Om1vbm9zcGFjZSwgbW9ub3NwYWNlO2ZvbnQtc2l6ZToxZW19YnV0dG9uLGlucHV0LG9wdGdyb3VwLHNlbGVjdCx0ZXh0YXJlYXtjb2xvcjppbmhlcml0O2ZvbnQ6aW5oZXJpdDttYXJnaW46MH1idXR0b257b3ZlcmZsb3c6dmlzaWJsZX1idXR0b24sc2VsZWN0e3RleHQtdHJhbnNmb3JtOm5vbmV9YnV0dG9uLGh0bWwgaW5wdXRbdHlwZT1cImJ1dHRvblwiXSxpbnB1dFt0eXBlPVwicmVzZXRcIl0saW5wdXRbdHlwZT1cInN1Ym1pdFwiXXstd2Via2l0LWFwcGVhcmFuY2U6YnV0dG9uO2N1cnNvcjpwb2ludGVyfWJ1dHRvbltkaXNhYmxlZF0saHRtbCBpbnB1dFtkaXNhYmxlZF17Y3Vyc29yOmRlZmF1bHR9YnV0dG9uOjotbW96LWZvY3VzLWlubmVyLGlucHV0OjotbW96LWZvY3VzLWlubmVye2JvcmRlcjowO3BhZGRpbmc6MH1pbnB1dHtsaW5lLWhlaWdodDpub3JtYWx9aW5wdXRbdHlwZT1cImNoZWNrYm94XCJdLGlucHV0W3R5cGU9XCJyYWRpb1wiXXtib3gtc2l6aW5nOmJvcmRlci1ib3g7cGFkZGluZzowfWlucHV0W3R5cGU9XCJudW1iZXJcIl06Oi13ZWJraXQtaW5uZXItc3Bpbi1idXR0b24saW5wdXRbdHlwZT1cIm51bWJlclwiXTo6LXdlYmtpdC1vdXRlci1zcGluLWJ1dHRvbntoZWlnaHQ6YXV0b31pbnB1dFt0eXBlPVwic2VhcmNoXCJdey13ZWJraXQtYXBwZWFyYW5jZTp0ZXh0ZmllbGQ7LW1vei1ib3gtc2l6aW5nOmNvbnRlbnQtYm94Oy13ZWJraXQtYm94LXNpemluZzpjb250ZW50LWJveDtib3gtc2l6aW5nOmNvbnRlbnQtYm94fWlucHV0W3R5cGU9XCJzZWFyY2hcIl06Oi13ZWJraXQtc2VhcmNoLWNhbmNlbC1idXR0b24saW5wdXRbdHlwZT1cInNlYXJjaFwiXTo6LXdlYmtpdC1zZWFyY2gtZGVjb3JhdGlvbnstd2Via2l0LWFwcGVhcmFuY2U6bm9uZX1maWVsZHNldHtib3JkZXI6MXB4IHNvbGlkICNjMGMwYzA7bWFyZ2luOjAgMnB4O3BhZGRpbmc6MC4zNWVtIDAuNjI1ZW0gMC43NWVtfWxlZ2VuZHtib3JkZXI6MDtwYWRkaW5nOjB9dGV4dGFyZWF7b3ZlcmZsb3c6YXV0b31vcHRncm91cHtmb250LXdlaWdodDpib2xkfXRhYmxle2JvcmRlci1jb2xsYXBzZTpjb2xsYXBzZTtib3JkZXItc3BhY2luZzowfXRkLHRoe3BhZGRpbmc6MH1odG1se2hlaWdodDoxMDAlfWJvZHl7bWluLWhlaWdodDoxMDAlO2ZvbnQtZmFtaWx5OlwiUHJveGltYSBOb3ZhXCIsc2Fucy1zZXJpZjtiYWNrZ3JvdW5kOiMwNzA3MEV9Ym9keT5pbWdbcmVmZXJyZXJwb2xpY3k9XCJuby1yZWZlcnJlci13aGVuLWRvd25ncmFkZVwiXXtkaXNwbGF5Om5vbmV9Kntib3gtc2l6aW5nOmJvcmRlci1ib3h9YXt0cmFuc2l0aW9uOmNvbG9yIC4ycywgYmFja2dyb3VuZC1jb2xvciAuMnN9LnBhZ2Utd3JhcHBlcntkaXNwbGF5OmZsZXg7ZmxleC1ncm93OjF9LmJvd2xvZnN3ZWV0c3tkaXNwbGF5Om5vbmV9QG1lZGlhIChtYXgtd2lkdGg6IDgwMHB4KXsucGFnZS13cmFwcGVye2ZsZXgtZGlyZWN0aW9uOmNvbHVtbn19LnRvcG5hdntkaXNwbGF5OmZsZXg7cGFkZGluZzouNzVyZW0gLjc1cmVtIC42NXJlbTtqdXN0aWZ5LWNvbnRlbnQ6c3BhY2UtYmV0d2Vlbjtwb3NpdGlvbjpyZWxhdGl2ZTtib3gtc2l6aW5nOmJvcmRlci1ib3g7ei1pbmRleDo5OX0udG9wbmF2IC5pbmZsdXgtaG9tZXtmb250LWZhbWlseTonaWNvbW9vbi12Mic7Zm9udC1zaXplOjEuNHJlbTtjb2xvcjojZmZmO3RleHQtZGVjb3JhdGlvbjpub25lO3ZlcnRpY2FsLWFsaWduOm1pZGRsZX0udG9wbmF2IC5pbmZsdXgtaG9tZTpob3Zlcntjb2xvcjojMDBBM0ZGfS50b3BuYXYgLmluZmx1eC1ob21lIC5pY29uLWluZmx1eC1sb2dvdHlwZXttYXJnaW4tbGVmdDouNnJlbX0udG9wbmF2IC5kaXZpZGVye2hlaWdodDoxMDAlO2JvcmRlci1sZWZ0OjFweCBzb2xpZCByZ2JhKDI1NSwyNTUsMjU1LDAuNSk7bWFyZ2luOjAgMXJlbSAwIC42NXJlbX0udG9wbmF2IC5kb2NzLWhvbWV7ZGlzcGxheTppbmxpbmUtYmxvY2s7dmVydGljYWwtYWxpZ246dGV4dC10b3A7Zm9udC13ZWlnaHQ6NTAwO2ZvbnQtc2l6ZToxLjFyZW07Y29sb3I6I2ZmZjt0ZXh0LWRlY29yYXRpb246bm9uZX0udG9wbmF2IC5kb2NzLWhvbWU6aG92ZXJ7Y29sb3I6IzAwQTNGRn0udG9wbmF2IC50b3BuYXYtbGVmdHttYXJnaW4tcmlnaHQ6LjE1cmVtO3BhZGRpbmc6LjI1cmVtIC4xNXJlbTt6LWluZGV4OjF9LnRvcG5hdiAudG9wbmF2LXJpZ2h0e2Rpc3BsYXk6ZmxleDtwb3NpdGlvbjphYnNvbHV0ZTtyaWdodDouNzVyZW07dG9wOi43NXJlbX0udG9wbmF2IC5zZWxlY3Rvci1kcm9wZG93bnN7ZGlzcGxheTpmbGV4O3otaW5kZXg6MTAwO3BhZGRpbmctcmlnaHQ6LjI1cmVtfS50b3BuYXYgLnByb2R1Y3QtbGlzdHtwb3NpdGlvbjpyZWxhdGl2ZX0udG9wbmF2IC5wcm9kdWN0LWxpc3QgI3Byb2R1Y3QtZHJvcGRvd257ZGlzcGxheTppbmxpbmUtYmxvY2s7d2lkdGg6MTAwJTtjb2xvcjojZmZmO2hlaWdodDoycmVtO2JhY2tncm91bmQ6bGluZWFyLWdyYWRpZW50KDIyNWRlZywgI2QzMDk3MSwjOWIyYWZmKTtiYWNrZ3JvdW5kLWF0dGFjaG1lbnQ6Zml4ZWQ7Zm9udC13ZWlnaHQ6NTAwO2ZvbnQtc2l6ZToxLjA1cmVtO2JvcmRlci1yYWRpdXM6NnB4O292ZXJmbG93OmhpZGRlbjtjdXJzb3I6cG9pbnRlcn0udG9wbmF2IC5wcm9kdWN0LWxpc3QgI3Byb2R1Y3QtZHJvcGRvd246YWZ0ZXJ7Y29udGVudDpcIlxcZTkxOFwiO2ZvbnQtZmFtaWx5OidpY29tb29uLXYyJztwb3NpdGlvbjphYnNvbHV0ZTt0b3A6LjQ1cmVtO3JpZ2h0Oi40cmVtO3RyYW5zaXRpb246YWxsIC4zc30udG9wbmF2IC5wcm9kdWN0LWxpc3QgI3Byb2R1Y3QtZHJvcGRvd24gLnNlbGVjdGVke3BhZGRpbmc6MCAxLjc1cmVtIDAgLjc1cmVtO2xpbmUtaGVpZ2h0OjB9LnRvcG5hdiAucHJvZHVjdC1saXN0ICNwcm9kdWN0LWRyb3Bkb3duLm9wZW46YWZ0ZXJ7dHJhbnNmb3JtOnJvdGF0ZSgxODBkZWcpfS50b3BuYXYgLnByb2R1Y3QtbGlzdCAjZHJvcGRvd24taXRlbXN7b3BhY2l0eTowO2hlaWdodDowO3BvaW50ZXItZXZlbnRzOm5vbmU7bWFyZ2luLXRvcDotMTBweDt0cmFuc2l0aW9uOm9wYWNpdHkgLjJzLCBtYXJnaW4tdG9wIC41c30udG9wbmF2IC5wcm9kdWN0LWxpc3QgI2Ryb3Bkb3duLWl0ZW1zLm9wZW57b3BhY2l0eToxO3BvaW50ZXItZXZlbnRzOmF1dG87bWFyZ2luLXRvcDowO2hlaWdodDphdXRvfS50b3BuYXYgLnByb2R1Y3QtbGlzdCAjZHJvcGRvd24taXRlbXMub3BlbiAucHJvZHVjdC1ncm91cHttYXJnaW46MCAwIDVweH0udG9wbmF2IC5wcm9kdWN0LWxpc3QgI2Ryb3Bkb3duLWl0ZW1zIC5wcm9kdWN0LWdyb3Vwe2JhY2tncm91bmQ6bGluZWFyLWdyYWRpZW50KDIyNWRlZywgI2QzMDk3MSwjOWIyYWZmKTtiYWNrZ3JvdW5kLWF0dGFjaG1lbnQ6Zml4ZWQ7Ym9yZGVyLXJhZGl1czo2cHg7Ym94LXNoYWRvdzoxcHggM3B4IDEwcHggIzA3MDcwRTttYXJnaW46MCAwIC0xMHB4O3RyYW5zaXRpb246bWFyZ2luIC41c30udG9wbmF2IC5wcm9kdWN0LWxpc3QgI2Ryb3Bkb3duLWl0ZW1zIC5wcm9kdWN0LWdyb3VwOmxhc3QtY2hpbGR7bWFyZ2luOjB9LnRvcG5hdiAucHJvZHVjdC1saXN0ICNkcm9wZG93bi1pdGVtcyAuZ3JvdXAtdGl0bGV7cGFkZGluZzouNXJlbSAuNzVyZW0gLjJyZW07Zm9udC13ZWlnaHQ6Ym9sZDtjb2xvcjojMTgxODIwO2ZvbnQtc2l6ZToxcmVtfS50b3BuYXYgLnByb2R1Y3QtbGlzdCAjZHJvcGRvd24taXRlbXMgLmdyb3VwLXRpdGxlIHB7bWFyZ2luOjA7cGFkZGluZzouMXJlbSAuMXJlbSAuM3JlbTtib3JkZXItaW1hZ2U6bGluZWFyLWdyYWRpZW50KHRvIHJpZ2h0LCByZ2JhKDI1NSwyNTUsMjU1LDAuNSkgMCUsIHJnYmEoMjU1LDI1NSwyNTUsMCkgMTAwJSkgMTtib3JkZXItYm90dG9tOjJweCBzb2xpZH0udG9wbmF2IC5wcm9kdWN0LWxpc3QgI2Ryb3Bkb3duLWl0ZW1zIHVsLml0ZW0tbGlzdHtwYWRkaW5nOjA7bWFyZ2luOjA7bGlzdC1zdHlsZTpub25lfS50b3BuYXYgLnByb2R1Y3QtbGlzdCAjZHJvcGRvd24taXRlbXMgdWwuaXRlbS1saXN0LnByb2R1Y3RzW2RhdGEtY2F0ZWdvcnldOmJlZm9yZXtjb250ZW50OmF0dHIoZGF0YS1jYXRlZ29yeSk7ZGlzcGxheTppbmxpbmUtYmxvY2s7bWFyZ2luOi41cmVtIC43NXJlbSAuMTVyZW07Zm9udC1zaXplOi44NXJlbTtjb2xvcjojMTgxODIwLDAuODt0ZXh0LXRyYW5zZm9ybTp1cHBlcmNhc2U7Zm9udC13ZWlnaHQ6Ym9sZDtsZXR0ZXItc3BhY2luZzouMDRyZW07b3BhY2l0eTouNzU7bWl4LWJsZW5kLW1vZGU6bXVsdGlwbHl9LnRvcG5hdiAucHJvZHVjdC1saXN0ICNkcm9wZG93bi1pdGVtcyBhe2Rpc3BsYXk6YmxvY2s7dGV4dC1kZWNvcmF0aW9uOm5vbmU7Zm9udC1zaXplOjEuMDVyZW07Zm9udC13ZWlnaHQ6NTAwO3doaXRlLXNwYWNlOm5vd3JhcDtjb2xvcjojZmZmO3BhZGRpbmc6LjNyZW0gMS41cmVtIC4zcmVtIC43NXJlbTtiYWNrZ3JvdW5kOnJnYmEoMjU1LDI1NSwyNTUsMCl9LnRvcG5hdiAucHJvZHVjdC1saXN0ICNkcm9wZG93bi1pdGVtcyBhOmhvdmVye2JhY2tncm91bmQ6cmdiYSgyNTUsMjU1LDI1NSwwLjMpfS50b3BuYXYgLnByb2R1Y3QtbGlzdCAjZHJvcGRvd24taXRlbXMgYS5hY3RpdmV7YmFja2dyb3VuZDpyZ2JhKDI1NSwyNTUsMjU1LDAuMyl9LnRvcG5hdiAucHJvZHVjdC1saXN0ICNkcm9wZG93bi1pdGVtcyBhOmxhc3QtY2hpbGR7Ym9yZGVyLXJhZGl1czowIDAgMnB4IDJweDtwb3NpdGlvbjpyZWxhdGl2ZX0udG9wbmF2IC5wcm9kdWN0LWxpc3QgI2Ryb3Bkb3duLWl0ZW1zIGEgc3Bhbi5zdGF0ZXtmb250LXNpemU6LjllbTtvcGFjaXR5Oi42NTtmb250LXN0eWxlOml0YWxpY30udG9wbmF2IC5idXR0b25ze2Rpc3BsYXk6ZmxleDttYXJnaW4tbGVmdDouNXJlbX0udG9wbmF2IC50aGVtZS1zd2l0Y2gsLnRvcG5hdiAjc2VhcmNoLWJ0biwudG9wbmF2IC51cmwtdHJpZ2dlcntkaXNwbGF5OmlubGluZS1ibG9jaztwYWRkaW5nOjA7bGluZS1oZWlnaHQ6MDtjb2xvcjpyZ2JhKDI1NSwyNTUsMjU1LDAuNSk7YmFja2dyb3VuZDpub25lO2hlaWdodDozMHB4O3dpZHRoOjMwcHg7Ym9yZGVyOm5vbmU7dHJhbnNpdGlvbjpjb2xvciAuMnMsIG9wYWNpdHkgLjJzO2FwcGVhcmFuY2U6bm9uZTtvdmVyZmxvdzp2aXNpYmxlfS50b3BuYXYgLnRoZW1lLXN3aXRjaDpmb2N1cywudG9wbmF2ICNzZWFyY2gtYnRuOmZvY3VzLC50b3BuYXYgLnVybC10cmlnZ2VyOmZvY3Vze291dGxpbmU6bm9uZX0udG9wbmF2IC50aGVtZS1zd2l0Y2g6aG92ZXIsLnRvcG5hdiAjc2VhcmNoLWJ0bjpob3ZlciwudG9wbmF2IC51cmwtdHJpZ2dlcjpob3Zlcntjb2xvcjojZmZmO2N1cnNvcjpwb2ludGVyfS50b3BuYXYgLnRoZW1lLXN3aXRjaC50aGVtZS1zd2l0Y2gtZGFyaywudG9wbmF2ICNzZWFyY2gtYnRuLnRoZW1lLXN3aXRjaC1kYXJrLC50b3BuYXYgLnVybC10cmlnZ2VyLnRoZW1lLXN3aXRjaC1kYXJre2Rpc3BsYXk6bm9uZTtmb250LXNpemU6MS4xNXJlbX0udG9wbmF2IC50aGVtZS1zd2l0Y2gudGhlbWUtc3dpdGNoLWxpZ2h0LC50b3BuYXYgI3NlYXJjaC1idG4udGhlbWUtc3dpdGNoLWxpZ2h0LC50b3BuYXYgLnVybC10cmlnZ2VyLnRoZW1lLXN3aXRjaC1saWdodHtkaXNwbGF5OmlubGluZS1ibG9jaztmb250LXNpemU6MS4zcmVtfS50b3BuYXYgLnVybC10cmlnZ2Vye2ZvbnQtc2l6ZToxLjFyZW07dmVydGljYWwtYWxpZ246dG9wO3otaW5kZXg6MX0udG9wbmF2IC5zZWFyY2gtYnRue3dpZHRoOjA7b3BhY2l0eTowfS50b3BuYXYuZmVhdHVyZS1ib2FyZCAuYmFjay1idG57Y29sb3I6I0ZBRkFGQztiYWNrZ3JvdW5kOnJnYmEoMjEyLDIxNSwyMjEsMC4xNSk7Ym9yZGVyOjFweCBzb2xpZCByZ2JhKDIxMiwyMTUsMjIxLDApO2ZvbnQtd2VpZ2h0OjUwMDt0ZXh0LWRlY29yYXRpb246bm9uZTtwYWRkaW5nOi4zNXJlbSAxcmVtO2JvcmRlci1yYWRpdXM6MnB4O2ZvbnQtc2l6ZTouOXJlbTt0cmFuc2l0aW9uOmJvcmRlciAuMnN9LnRvcG5hdi5mZWF0dXJlLWJvYXJkIC5iYWNrLWJ0bjpiZWZvcmV7Y29udGVudDonXFxlOTA5Jztmb250LWZhbWlseTonaWNvbW9vbi12NCc7Zm9udC13ZWlnaHQ6Ym9sZDtsaW5lLWhlaWdodDowO21hcmdpbjowIC41cmVtIDAgLS4yNXJlbTt2ZXJ0aWNhbC1hbGlnbjptaWRkbGV9LnRvcG5hdi5mZWF0dXJlLWJvYXJkIC5iYWNrLWJ0bjpob3Zlcnt0ZXh0LWRlY29yYXRpb246bm9uZTtib3JkZXI6MXB4IHNvbGlkIHJnYmEoMjEyLDIxNSwyMjEsMC4yNSl9QG1lZGlhIChtYXgtd2lkdGg6IDgwMHB4KXsuZG9jcy1ob21lIC5sb25ne2Rpc3BsYXk6bm9uZX0uZG9jcy1ob21lIC5zaG9ydDphZnRlcntjb250ZW50Olwic1wifX1AbWVkaWEgKG1heC13aWR0aDogNjAwcHgpey5pY29uLWluZmx1eC1sb2dvdHlwZXtkaXNwbGF5Om5vbmV9LnRvcG5hdnttaW4taGVpZ2h0OjUuNzVyZW19LnRvcG5hdi5mZWF0dXJlLWJvYXJke21pbi1oZWlnaHQ6YXV0b30udG9wbmF2LXJpZ2h0e2ZsZXgtZGlyZWN0aW9uOmNvbHVtbi1yZXZlcnNlO2FsaWduLWl0ZW1zOmZsZXgtZW5kO3dpZHRoOmNhbGMoMTAwJSAtIDEuNXJlbSl9LnNlYXJjaC1idG57ZGlzcGxheTpub25lfS50b3BuYXYgLnNlbGVjdG9yLWRyb3Bkb3duc3t3aWR0aDoxMDAlO21hcmdpbi10b3A6LjZyZW07cGFkZGluZy1yaWdodDowfS50b3BuYXYgLnNlbGVjdG9yLWRyb3Bkb3ducyAucHJvZHVjdC1saXN0e3dpZHRoOmNhbGMoMTAwdncgLSAxLjZyZW0pfS50b3BuYXYgLnNlbGVjdG9yLWRyb3Bkb3ducyAucHJvZHVjdC1saXN0IC5wcm9kdWN0LWRyb3Bkb3due3dpZHRoOjEwMCV9fS5ob21lLWNvbnRlbnR7Y29sb3I6I0ZBRkFGQzt3aWR0aDoxMDAlO21heC13aWR0aDoxMzAwcHg7bWFyZ2luOjAgYXV0b30uaG9tZS1jb250ZW50IC5zZWN0aW9ue3dpZHRoOjEwMCU7bWFyZ2luOjAgYXV0bztwYWRkaW5nOjJyZW0gMnJlbSAwO2Rpc3BsYXk6YmxvY2s7cG9zaXRpb246cmVsYXRpdmV9LmhvbWUtY29udGVudCAuc2VhcmNoIC5zaWRlYmFyLS1zZWFyY2h7Zm9udC1zaXplOjEuMXJlbX0uaG9tZS1jb250ZW50IC5zZWFyY2ggLnNpZGViYXItLXNlYXJjaCBpbnB1dHtwYWRkaW5nOi43NWVtIDIuMzVyZW0gLjc1cmVtIDFyZW07Ym9yZGVyLXJhZGl1czo2cHg7cG9zaXRpb246cmVsYXRpdmU7Ym94LXNoYWRvdzpub25lfS5ob21lLWNvbnRlbnQgLnNlYXJjaCAuc2lkZWJhci0tc2VhcmNoIGlucHV0OjpwbGFjZWhvbGRlcntjb2xvcjpyZ2JhKDI1NSwyNTUsMjU1LDAuNjUpfS5ob21lLWNvbnRlbnQgLnNlYXJjaCAuc2lkZWJhci0tc2VhcmNoOmFmdGVye2ZvbnQtc2l6ZToycmVtO3RvcDouNDVyZW07cmlnaHQ6LjQ1cmVtfS5ob21lLWNvbnRlbnQgLnNlYXJjaCAuc2lkZWJhci0tc2VhcmNoIC5hbGdvbGlhLWF1dG9jb21wbGV0ZXtwb3NpdGlvbjpyZWxhdGl2ZX0uaG9tZS1jb250ZW50IC5zZWFyY2ggLnNpZGViYXItLXNlYXJjaCAuYWxnb2xpYS1hdXRvY29tcGxldGU6YWZ0ZXJ7Y29udGVudDpcIlwiO3Bvc2l0aW9uOmFic29sdXRlO2Rpc3BsYXk6YmxvY2s7Ym9yZGVyLXJhZGl1czo2cHg7dG9wOjA7bGVmdDowO2JveC1zaGFkb3c6MnB4IDJweCA2cHggcmdiYSgxNSwxNCwyMSwwLjUpO2hlaWdodDoxMDAlO3dpZHRoOjEwMCU7bWl4LWJsZW5kLW1vZGU6bXVsdGlwbHk7ei1pbmRleDotMX0uaG9tZS1jb250ZW50IC5zZWFyY2ggLnNpZGViYXItLXNlYXJjaCAuYWxnb2xpYS1hdXRvY29tcGxldGUuYWxnb2xpYS1hdXRvY29tcGxldGUtbGVmdCAuZHMtZHJvcGRvd24tbWVudSwuaG9tZS1jb250ZW50IC5zZWFyY2ggLnNpZGViYXItLXNlYXJjaCAuYWxnb2xpYS1hdXRvY29tcGxldGUuYWxnb2xpYS1hdXRvY29tcGxldGUtcmlnaHQgLmRzLWRyb3Bkb3duLW1lbnV7dG9wOmF1dG8gIWltcG9ydGFudDtsZWZ0OjAgIWltcG9ydGFudDttYXJnaW4tYm90dG9tOjEuNXJlbX0uaG9tZS1jb250ZW50IC5zZWFyY2ggLnNpZGViYXItLXNlYXJjaCAuYWxnb2xpYS1hdXRvY29tcGxldGUuYWxnb2xpYS1hdXRvY29tcGxldGUtbGVmdCAuZHMtZHJvcGRvd24tbWVudTphZnRlciwuaG9tZS1jb250ZW50IC5zZWFyY2ggLnNpZGViYXItLXNlYXJjaCAuYWxnb2xpYS1hdXRvY29tcGxldGUuYWxnb2xpYS1hdXRvY29tcGxldGUtcmlnaHQgLmRzLWRyb3Bkb3duLW1lbnU6YWZ0ZXJ7Y29udGVudDpcIlwiO2JveC1zaGFkb3c6MnB4IDJweCA2cHggcmdiYSgxNSwxNCwyMSwwLjUpO2hlaWdodDoxMDAlO3dpZHRoOjEwMCU7bWl4LWJsZW5kLW1vZGU6bXVsdGlwbHl9LmhvbWUtY29udGVudCAucGFkZGluZy13cmFwcGVye3BhZGRpbmc6MCAycmVtfS5ob21lLWNvbnRlbnQgaDF7dGV4dC1hbGlnbjpjZW50ZXI7Y29sb3I6I2ZmZn0uaG9tZS1jb250ZW50IC5wcm9kdWN0LWdyb3Vwe2JhY2tncm91bmQ6IzE0MTQxRjtwYWRkaW5nOjNyZW07bWFyZ2luLWJvdHRvbToycmVtO2JvcmRlci1yYWRpdXM6MzBweH0uaG9tZS1jb250ZW50IC5wcm9kdWN0LWdyb3VwIC5wcm9kdWN0c3tkaXNwbGF5OmZsZXg7ZmxleC13cmFwOndyYXA7d2lkdGg6MTAwJTttYXJnaW46MCAtMXJlbX0uaG9tZS1jb250ZW50IC5wcm9kdWN0LWdyb3VwIC5wcm9kdWN0e3BhZGRpbmc6MCAxcmVtO2Rpc3BsYXk6ZmxleDtmbGV4OjEgMSAzMyU7ZmxleC1kaXJlY3Rpb246Y29sdW1uO2p1c3RpZnktY29udGVudDpzcGFjZS1iZXR3ZWVuO21heC13aWR0aDozMyU7bWluLXdpZHRoOjIwMHB4fS5ob21lLWNvbnRlbnQgLnByb2R1Y3QtZ3JvdXAgLnByb2R1Y3QgLnByb2R1Y3QtaW5mbyBwe21hcmdpbi1ib3R0b206LjVyZW07Zm9udC1zaXplOjEuMXJlbTtsaW5lLWhlaWdodDoxLjVyZW07Y29sb3I6cmdiYSgyMTIsMjE1LDIyMSwwLjcpfS5ob21lLWNvbnRlbnQgLnByb2R1Y3QtZ3JvdXAgLnByb2R1Y3QgLnByb2R1Y3QtaW5mbyBoM1tzdGF0ZV06OmFmdGVye2NvbnRlbnQ6YXR0cihzdGF0ZSk7bWFyZ2luLWxlZnQ6LjVyZW07Zm9udC1zaXplOjFyZW07cGFkZGluZzouMjVlbSAuNWVtIC4yNWVtIC40ZW07YmFja2dyb3VuZDpsaW5lYXItZ3JhZGllbnQoNDVkZWcsICNkMzA5NzEsIzliMmFmZik7Y29sb3I6I2ZmZjtib3JkZXItcmFkaXVzOjRweDtmb250LXN0eWxlOml0YWxpYzt2ZXJ0aWNhbC1hbGlnbjptaWRkbGV9LmhvbWUtY29udGVudCAucHJvZHVjdC1ncm91cCAucHJvZHVjdCB1bC5wcm9kdWN0LWxpbmtze3BhZGRpbmctbGVmdDowO2xpc3Qtc3R5bGU6bm9uZX0uaG9tZS1jb250ZW50IC5wcm9kdWN0LWdyb3VwIC5wcm9kdWN0IHVsLnByb2R1Y3QtbGlua3MgbGk6bm90KDpsYXN0LWNoaWxkKXttYXJnaW4tYm90dG9tOi4zNXJlbX0uaG9tZS1jb250ZW50IC5wcm9kdWN0LWdyb3VwIC5wcm9kdWN0IHVsLnByb2R1Y3QtbGlua3MgYXt0ZXh0LWRlY29yYXRpb246bm9uZTtjb2xvcjojZmZmO2ZvbnQtd2VpZ2h0OjUwMDtwb3NpdGlvbjpyZWxhdGl2ZX0uaG9tZS1jb250ZW50IC5wcm9kdWN0LWdyb3VwIC5wcm9kdWN0IHVsLnByb2R1Y3QtbGlua3MgYTo6YmVmb3Jle2NvbnRlbnQ6XCJcIjtwb3NpdGlvbjphYnNvbHV0ZTtib3R0b206LTJweDtoZWlnaHQ6MnB4O3dpZHRoOjAlO2JhY2tncm91bmQ6bGluZWFyLWdyYWRpZW50KDQ1ZGVnLCAjZDMwOTcxLCM5YjJhZmYpO3RyYW5zaXRpb246d2lkdGggLjJzfS5ob21lLWNvbnRlbnQgLnByb2R1Y3QtZ3JvdXAgLnByb2R1Y3QgdWwucHJvZHVjdC1saW5rcyBhOjphZnRlcntjb250ZW50OlwiXFxlOTBhXCI7Zm9udC1mYW1pbHk6J2ljb21vb24tdjQnO2ZvbnQtd2VpZ2h0OmJvbGQ7Zm9udC1zaXplOjEuM3JlbTtkaXNwbGF5OmlubGluZS1ibG9jaztwb3NpdGlvbjphYnNvbHV0ZTtiYWNrZ3JvdW5kOmxpbmVhci1ncmFkaWVudCg0NWRlZywgI2QzMDk3MSwjOWIyYWZmKTtiYWNrZ3JvdW5kLWNsaXA6dGV4dDstd2Via2l0LXRleHQtZmlsbC1jb2xvcjp0cmFuc3BhcmVudDtyaWdodDowO3RyYW5zZm9ybTp0cmFuc2xhdGVYKDAuMjVyZW0pO29wYWNpdHk6MDt0cmFuc2l0aW9uOnRyYW5zZm9ybSAuMnMsIG9wYWNpdHkgLjJzfS5ob21lLWNvbnRlbnQgLnByb2R1Y3QtZ3JvdXAgLnByb2R1Y3QgdWwucHJvZHVjdC1saW5rcyBhOmhvdmVyOjpiZWZvcmV7d2lkdGg6MTAwJX0uaG9tZS1jb250ZW50IC5wcm9kdWN0LWdyb3VwIC5wcm9kdWN0IHVsLnByb2R1Y3QtbGlua3MgYTpob3Zlcjo6YWZ0ZXJ7dHJhbnNmb3JtOnRyYW5zbGF0ZVgoMS41cmVtKTtvcGFjaXR5OjF9LmhvbWUtY29udGVudCAucHJvZHVjdC1ncm91cCBoMntkaXNwbGF5OmlubGluZS1ibG9jaztmb250LXNpemU6Mi43NXJlbTttYXJnaW46MDtjb2xvcjojMTQxNDFGO2JhY2tncm91bmQ6bGluZWFyLWdyYWRpZW50KDQ1ZGVnLCAjZDMwOTcxLCM5YjJhZmYpO2JhY2tncm91bmQtY2xpcDp0ZXh0Oy13ZWJraXQtdGV4dC1maWxsLWNvbG9yOnRyYW5zcGFyZW50fS5ob21lLWNvbnRlbnQgLnByb2R1Y3QtZ3JvdXAgaDN7Zm9udC1zaXplOjEuNnJlbTttYXJnaW46MXJlbSAwIDB9LmhvbWUtY29udGVudCAucHJvZHVjdC1ncm91cCBoMyBhe3RleHQtZGVjb3JhdGlvbjpub25lO2NvbG9yOiNmZmY7cG9zaXRpb246cmVsYXRpdmV9LmhvbWUtY29udGVudCAucHJvZHVjdC1ncm91cCBoMyBhOjpiZWZvcmV7Y29udGVudDpcIlwiO3Bvc2l0aW9uOmFic29sdXRlO2JvdHRvbTotMnB4O2hlaWdodDoycHg7d2lkdGg6MCU7YmFja2dyb3VuZDpsaW5lYXItZ3JhZGllbnQoNDVkZWcsICNkMzA5NzEsIzliMmFmZik7dHJhbnNpdGlvbjp3aWR0aCAuMnN9LmhvbWUtY29udGVudCAucHJvZHVjdC1ncm91cCBoMyBhOmhvdmVyOjpiZWZvcmV7d2lkdGg6MTAwJX0uaG9tZS1jb250ZW50IC5wcm9kdWN0LWdyb3VwIGgzIC52ZXJzaW9ue2ZvbnQtc2l6ZTouOWVtO29wYWNpdHk6LjV9LmhvbWUtY29udGVudCAucHJvZHVjdC1ncm91cCBoNHtmb250LXNpemU6MS4xcmVtO21hcmdpbjoxLjVyZW0gMCAuNXJlbTtkaXNwbGF5OmlubGluZS1ibG9jaztwYWRkaW5nLXJpZ2h0OjFyZW07Y29sb3I6cmdiYSgyMTIsMjE1LDIyMSwwLjcpO2JhY2tncm91bmQ6IzE0MTQxRn0uaG9tZS1jb250ZW50IC5wcm9kdWN0LWdyb3VwIC5jYXRlZ29yaWVze2Rpc3BsYXk6ZmxleDtmbGV4LWRpcmVjdGlvbjpyb3c7ZmxleC13cmFwOndyYXA7d2lkdGg6Y2FsYygxMDAlICsgMnJlbSl9LmhvbWUtY29udGVudCAucHJvZHVjdC1ncm91cCAuY2F0ZWdvcmllcyAuY2F0ZWdvcnkuZnVsbC13aWR0aHt3aWR0aDoxMDAlfS5ob21lLWNvbnRlbnQgLnByb2R1Y3QtZ3JvdXAgLmNhdGVnb3JpZXMgLmNhdGVnb3J5LnR3by10aGlyZHN7d2lkdGg6NjYuNjYlfS5ob21lLWNvbnRlbnQgLnByb2R1Y3QtZ3JvdXAgLmNhdGVnb3JpZXMgLmNhdGVnb3J5LnR3by10aGlyZHMgLnByb2R1Y3R7bWF4LXdpZHRoOjUwJX0uaG9tZS1jb250ZW50IC5wcm9kdWN0LWdyb3VwIC5jYXRlZ29yaWVzIC5jYXRlZ29yeS5vbmUtdGhpcmR7d2lkdGg6MzMuMzMlfS5ob21lLWNvbnRlbnQgLnByb2R1Y3QtZ3JvdXAgLmNhdGVnb3JpZXMgLmNhdGVnb3J5Lm9uZS10aGlyZCAucHJvZHVjdHttYXgtd2lkdGg6MTAwJX0uaG9tZS1jb250ZW50IC5wcm9kdWN0LWdyb3VwIC5jYXRlZ29yeS1oZWFke21hcmdpbjoxcmVtIDAgMnJlbX0uaG9tZS1jb250ZW50IC5wcm9kdWN0LWdyb3VwIC5jYXRlZ29yeS1oZWFkOjphZnRlcntjb250ZW50OlwiXCI7ZGlzcGxheTpibG9jaztib3JkZXItdG9wOjFweCBzb2xpZCAjMzgzODQ2O21hcmdpbi10b3A6LTEuMTVyZW07d2lkdGg6Y2FsYygxMDAlIC0gMnJlbSl9LmhvbWUtY29udGVudCAjaW5mbHV4ZGIze21hcmdpbi10b3A6MS43NXJlbX0uaG9tZS1jb250ZW50ICNpbmZsdXhkYjMgaDIrcHttYXJnaW4tdG9wOi43NXJlbX0uaG9tZS1jb250ZW50ICN0ZWxlZ3JhZntiYWNrZ3JvdW5kOmxpbmVhci1ncmFkaWVudCg2NWRlZywgIzAyMGQ2NiwgIzAyMGE0Nyk7Y29sb3I6I2ZmZjtwb3NpdGlvbjpyZWxhdGl2ZTtvdmVyZmxvdzpoaWRkZW47ZGlzcGxheTpmbGV4O2ZsZXgtZGlyZWN0aW9uOnJvdzthbGlnbi1pdGVtczpjZW50ZXI7anVzdGlmeS1jb250ZW50OnNwYWNlLWJldHdlZW59LmhvbWUtY29udGVudCAjdGVsZWdyYWYgLmJnLW92ZXJsYXl7cG9zaXRpb246YWJzb2x1dGU7dG9wOjA7bGVmdDowO3dpZHRoOjEwMCU7aGVpZ2h0OjEwMCU7YmFja2dyb3VuZC1pbWFnZTp1cmwoXCIvaW1nL2JnLXRleHR1cmUtbmV3LnBuZ1wiKTtiYWNrZ3JvdW5kLXBvc2l0aW9uOmJvdHRvbX0uaG9tZS1jb250ZW50ICN0ZWxlZ3JhZiBoMntmb250LXNpemU6Mi41cmVtO2JhY2tncm91bmQ6bGluZWFyLWdyYWRpZW50KDI3MGRlZywgIzAwQTNGRiwjNWVlNGU0KTtiYWNrZ3JvdW5kLWNsaXA6dGV4dDstd2Via2l0LXRleHQtZmlsbC1jb2xvcjp0cmFuc3BhcmVudH0uaG9tZS1jb250ZW50ICN0ZWxlZ3JhZiBoMitwe21hcmdpbi10b3A6LjY1cmVtfS5ob21lLWNvbnRlbnQgI3RlbGVncmFmIHVsLnByb2R1Y3QtbGlua3N7cGFkZGluZy1sZWZ0OjA7bWFyZ2luOjAgM3JlbSAwIDJyZW07bGlzdC1zdHlsZTpub25lfS5ob21lLWNvbnRlbnQgI3RlbGVncmFmIHVsLnByb2R1Y3QtbGlua3MgbGk6bm90KDpsYXN0LWNoaWxkKXttYXJnaW4tYm90dG9tOi4zNXJlbX0uaG9tZS1jb250ZW50ICN0ZWxlZ3JhZiB1bC5wcm9kdWN0LWxpbmtzIGF7dGV4dC1kZWNvcmF0aW9uOm5vbmU7Y29sb3I6I2ZmZjtmb250LXdlaWdodDo1MDA7cG9zaXRpb246cmVsYXRpdmV9LmhvbWUtY29udGVudCAjdGVsZWdyYWYgdWwucHJvZHVjdC1saW5rcyBhOjpiZWZvcmV7Y29udGVudDpcIlwiO3Bvc2l0aW9uOmFic29sdXRlO2JvdHRvbTotMnB4O2hlaWdodDoycHg7d2lkdGg6MCU7YmFja2dyb3VuZDpsaW5lYXItZ3JhZGllbnQoMjcwZGVnLCAjMDBBM0ZGLCM1ZWU0ZTQpO3RyYW5zaXRpb246d2lkdGggLjJzfS5ob21lLWNvbnRlbnQgI3RlbGVncmFmIHVsLnByb2R1Y3QtbGlua3MgYTo6YWZ0ZXJ7Y29udGVudDpcIlxcZTkwYVwiO2ZvbnQtZmFtaWx5OidpY29tb29uLXY0Jztmb250LXdlaWdodDpib2xkO2ZvbnQtc2l6ZToxLjNyZW07ZGlzcGxheTppbmxpbmUtYmxvY2s7cG9zaXRpb246YWJzb2x1dGU7YmFja2dyb3VuZDpsaW5lYXItZ3JhZGllbnQoMjcwZGVnLCAjMDBBM0ZGLCM1ZWU0ZTQpO2JhY2tncm91bmQtY2xpcDp0ZXh0Oy13ZWJraXQtdGV4dC1maWxsLWNvbG9yOnRyYW5zcGFyZW50O3JpZ2h0OjA7dHJhbnNmb3JtOnRyYW5zbGF0ZVgoMC4yNXJlbSk7b3BhY2l0eTowO3RyYW5zaXRpb246dHJhbnNmb3JtIC4ycywgb3BhY2l0eSAuMnN9LmhvbWUtY29udGVudCAjdGVsZWdyYWYgdWwucHJvZHVjdC1saW5rcyBhOmhvdmVyOjpiZWZvcmV7d2lkdGg6MTAwJX0uaG9tZS1jb250ZW50ICN0ZWxlZ3JhZiB1bC5wcm9kdWN0LWxpbmtzIGE6aG92ZXI6OmFmdGVye3RyYW5zZm9ybTp0cmFuc2xhdGVYKDEuNXJlbSk7b3BhY2l0eToxfS5ob21lLWNvbnRlbnQgI2xlYXJuLW1vcmV7bWFyZ2luLWJvdHRvbToycmVtfS5ob21lLWNvbnRlbnQgI2xlYXJuLW1vcmUgaDN7Zm9udC1zaXplOjEuOHJlbTttYXJnaW46MXJlbSAwIDJyZW19LmhvbWUtY29udGVudCAjbGVhcm4tbW9yZSAubGVhcm4taXRlbXN7ZGlzcGxheTpmbGV4O2ZsZXgtZGlyZWN0aW9uOnJvdztqdXN0aWZ5LWNvbnRlbnQ6ZmxleC1zdGFydH0uaG9tZS1jb250ZW50ICNsZWFybi1tb3JlIC5sZWFybi1pdGVtcyAuaXRlbXttYXgtd2lkdGg6MjUlO2ZsZXg6MSAxIDA7ZGlzcGxheTpmbGV4O2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjttYXJnaW46MCAuNzVyZW19LmhvbWUtY29udGVudCAjbGVhcm4tbW9yZSAubGVhcm4taXRlbXMgLml0ZW0gLmljb24gc3Zne21heC1oZWlnaHQ6NjBweDttYXgtd2lkdGg6NjBweH0uaG9tZS1jb250ZW50ICNsZWFybi1tb3JlIC5sZWFybi1pdGVtcyAuaXRlbSAuaWNvbiAuYzF7ZmlsbDojZmZmfS5ob21lLWNvbnRlbnQgI2xlYXJuLW1vcmUgLmxlYXJuLWl0ZW1zIC5pdGVtIC5pY29uIC5jMntmaWxsOiMwNzA3MEV9LmhvbWUtY29udGVudCAjbGVhcm4tbW9yZSAubGVhcm4taXRlbXMgLml0ZW0gLmljb24gLm1hZ2VudGF7ZmlsbDojZDMwOTcxfS5ob21lLWNvbnRlbnQgI2xlYXJuLW1vcmUgLmxlYXJuLWl0ZW1zIC5pdGVtIGg0e2ZvbnQtc2l6ZToxLjRyZW07bWFyZ2luOjFyZW0gMCAwfS5ob21lLWNvbnRlbnQgI2xlYXJuLW1vcmUgLmxlYXJuLWl0ZW1zIC5pdGVtIHB7bWFyZ2luOi41cmVtIDAgMS41cmVtO2xpbmUtaGVpZ2h0OjEuN3JlbX0uaG9tZS1jb250ZW50ICNsZWFybi1tb3JlIC5sZWFybi1pdGVtcyAuaXRlbSBwOmxhc3QtY2hpbGR7bWFyZ2luLWJvdHRvbTowfS5ob21lLWNvbnRlbnQgI2xlYXJuLW1vcmUgLmxlYXJuLWl0ZW1zIC5pdGVtIGF7cG9zaXRpb246cmVsYXRpdmU7ZGlzcGxheTppbmxpbmU7Y29sb3I6I2ZmZjtmb250LXdlaWdodDo1MDA7dGV4dC1kZWNvcmF0aW9uOm5vbmV9LmhvbWUtY29udGVudCAjbGVhcm4tbW9yZSAubGVhcm4taXRlbXMgLml0ZW0gYTo6YmVmb3Jle2NvbnRlbnQ6XCJcIjtkaXNwbGF5OmlubGluZS1ibG9jaztwb3NpdGlvbjphYnNvbHV0ZTtsZWZ0OjA7Ym90dG9tOi00cHg7bWFyZ2luLXRvcDouMjVyZW07aGVpZ2h0OjJweDtiYWNrZ3JvdW5kOmxpbmVhci1ncmFkaWVudCg0NWRlZywgI2QzMDk3MSwjOWIyYWZmKTt3aWR0aDowO3RyYW5zaXRpb246d2lkdGggLjJzfS5ob21lLWNvbnRlbnQgI2xlYXJuLW1vcmUgLmxlYXJuLWl0ZW1zIC5pdGVtIGE6OmFmdGVye2NvbnRlbnQ6XCJcXGU5MGFcIjtmb250LWZhbWlseTonaWNvbW9vbi12NCc7Zm9udC13ZWlnaHQ6Ym9sZDtmb250LXNpemU6MS4zcmVtO2Rpc3BsYXk6aW5saW5lLWJsb2NrO3Bvc2l0aW9uOmFic29sdXRlO2JhY2tncm91bmQ6bGluZWFyLWdyYWRpZW50KDI3MGRlZywgI2QzMDk3MSwjOWIyYWZmKTtiYWNrZ3JvdW5kLWNsaXA6dGV4dDstd2Via2l0LXRleHQtZmlsbC1jb2xvcjp0cmFuc3BhcmVudDtyaWdodDowO3RyYW5zZm9ybTp0cmFuc2xhdGVYKDAuMjVyZW0pO29wYWNpdHk6MDt0cmFuc2l0aW9uOnRyYW5zZm9ybSAuMnMsIG9wYWNpdHkgLjJzfS5ob21lLWNvbnRlbnQgI2xlYXJuLW1vcmUgLmxlYXJuLWl0ZW1zIC5pdGVtIGE6aG92ZXI6OmJlZm9yZXt3aWR0aDoxMDAlfS5ob21lLWNvbnRlbnQgI2xlYXJuLW1vcmUgLmxlYXJuLWl0ZW1zIC5pdGVtIGE6aG92ZXI6OmFmdGVye3RyYW5zZm9ybTp0cmFuc2xhdGVYKDEuNXJlbSk7b3BhY2l0eToxfS5ob21lLWNvbnRlbnQgI2xlYXJuLW1vcmUgLmxlYXJuLWl0ZW1zIC5pdGVtPio6bGFzdC1jaGlsZHttYXJnaW4tdG9wOmF1dG99LmhvbWUtY29udGVudCAjY29weXJpZ2h0e3dpZHRoOjEwMCU7cGFkZGluZzoxcmVtIDNyZW07Y29sb3I6cmdiYSgyMTIsMjE1LDIyMSwwLjUpfS5ob21lLWNvbnRlbnQgI2NvcHlyaWdodCBwe21hcmdpbjowO3RleHQtYWxpZ246cmlnaHQ7Zm9udC1zaXplOi45cmVtfUBtZWRpYSAobWF4LXdpZHRoOiA5MDBweCl7LmhvbWUtY29udGVudCAucHJvZHVjdC1ncm91cCAucHJvZHVjdHMgLnByb2R1Y3R7bWF4LXdpZHRoOjUwJTttYXJnaW4tYm90dG9tOjJyZW19fUBtZWRpYSAobWF4LXdpZHRoOiA3MjBweCl7LmhvbWUtY29udGVudCAucHJvZHVjdC1ncm91cCAucHJvZHVjdHN7ZmxleC1kaXJlY3Rpb246Y29sdW1ufS5ob21lLWNvbnRlbnQgLnByb2R1Y3QtZ3JvdXAgLnByb2R1Y3RzIC5wcm9kdWN0e21hcmdpbi1ib3R0b206MXJlbTttYXgtd2lkdGg6MTAwJX0uaG9tZS1jb250ZW50IC5wcm9kdWN0LWdyb3VwIC5wcm9kdWN0cyAucHJvZHVjdCB1bHttYXJnaW4tYm90dG9tOjB9LmhvbWUtY29udGVudCAucHJvZHVjdC1ncm91cCAuY2F0ZWdvcmllcyAuY2F0ZWdvcnkudHdvLXRoaXJkc3t3aWR0aDoxMDAlfS5ob21lLWNvbnRlbnQgLnByb2R1Y3QtZ3JvdXAgLmNhdGVnb3JpZXMgLmNhdGVnb3J5LnR3by10aGlyZHMgLnByb2R1Y3R7bWF4LXdpZHRoOjEwMCV9LmhvbWUtY29udGVudCAucHJvZHVjdC1ncm91cCAuY2F0ZWdvcmllcyAuY2F0ZWdvcnkub25lLXRoaXJke3dpZHRoOjEwMCV9LmhvbWUtY29udGVudCAucHJvZHVjdC1ncm91cCAuY2F0ZWdvcmllcyAuY2F0ZWdvcnkub25lLXRoaXJkIC5wcm9kdWN0e21heC13aWR0aDoxMDAlfS5ob21lLWNvbnRlbnQgI3RlbGVncmFme2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjthbGlnbi1pdGVtczpmbGV4LXN0YXJ0fS5ob21lLWNvbnRlbnQgI3RlbGVncmFmIHVsLnByb2R1Y3QtbGlua3N7bWFyZ2luOjFyZW0gMCAwfX1AbWVkaWEgKG1heC13aWR0aDogODAwcHgpey5ob21lLWNvbnRlbnQgI2xlYXJuLW1vcmV7bWFyZ2luLWJvdHRvbTowfS5ob21lLWNvbnRlbnQgI2xlYXJuLW1vcmUgaDR7bWFyZ2luLXRvcDowfS5ob21lLWNvbnRlbnQgI2xlYXJuLW1vcmUgLmxlYXJuLWl0ZW1ze2ZsZXgtd3JhcDp3cmFwfS5ob21lLWNvbnRlbnQgI2xlYXJuLW1vcmUgLmxlYXJuLWl0ZW1zIC5pdGVte21heC13aWR0aDo0NSU7ZmxleDoxIDEgNTAlO21hcmdpbi1ib3R0b206MnJlbX19QG1lZGlhIChtYXgtd2lkdGg6IDYwMHB4KXsuaG9tZS1jb250ZW50IC5zZWN0aW9uLC5ob21lLWNvbnRlbnQgLnBhZGRpbmctd3JhcHBlcntwYWRkaW5nOjAgMXJlbX0uaG9tZS1jb250ZW50IGgxe2ZvbnQtc2l6ZToxLjU1cmVtO2xpbmUtaGVpZ2h0OjEuNXJlbTtwYWRkaW5nOjAgMS43NXJlbTttYXJnaW4tYm90dG9tOi0uNXJlbX0uaG9tZS1jb250ZW50IC5wcm9kdWN0LWdyb3Vwe3BhZGRpbmc6MS41cmVtfS5ob21lLWNvbnRlbnQgLnByb2R1Y3QtZ3JvdXAgcCwuaG9tZS1jb250ZW50IC5wcm9kdWN0LWdyb3VwIC5wcm9kdWN0IC5wcm9kdWN0LWluZm8gcHtmb250LXNpemU6MS4wNXJlbX0uaG9tZS1jb250ZW50IC5wcm9kdWN0LWdyb3VwIGgye2ZvbnQtc2l6ZToyLjFyZW19LmhvbWUtY29udGVudCAucHJvZHVjdC1ncm91cCBoM3tmb250LXNpemU6MS41cmVtfS5ob21lLWNvbnRlbnQgLnByb2R1Y3QtZ3JvdXAgaDR7Zm9udC1zaXplOjFyZW19LmhvbWUtY29udGVudCAjdGVsZWdyYWZ7cGFkZGluZzoxLjc1cmVtfS5ob21lLWNvbnRlbnQgI3RlbGVncmFmIGgye2ZvbnQtc2l6ZToycmVtfS5ob21lLWNvbnRlbnQgI2xlYXJuLW1vcmUgaDN7Zm9udC1zaXplOjEuNXJlbX0uaG9tZS1jb250ZW50ICNsZWFybi1tb3JlIC5sZWFybi1pdGVtcyAuaXRlbSBoNHtmb250LXNpemU6MS4ycmVtfS5ob21lLWNvbnRlbnQgI2NvcHlyaWdodCBwe3RleHQtYWxpZ246Y2VudGVyfX1AbWVkaWEgKG1heC13aWR0aDogNTQwcHgpey5ob21lLWNvbnRlbnQgI2xlYXJuLW1vcmUgLmxlYXJuLWl0ZW1ze2ZsZXgtZGlyZWN0aW9uOmNvbHVtbn0uaG9tZS1jb250ZW50ICNsZWFybi1tb3JlIC5sZWFybi1pdGVtcyAuaXRlbXttYXgtd2lkdGg6MTAwJTttYXJnaW46MCAwIDJyZW19fS5zaWRlYmFye2Rpc3BsYXk6YmxvY2s7cG9zaXRpb246cmVsYXRpdmU7ZmxleC1ncm93OjE7cGFkZGluZzowIDFlbTt3aWR0aDoyNSV9LnNpZGViYXItLXNlYXJjaHtwb3NpdGlvbjpyZWxhdGl2ZTtmbGV4LWdyb3c6MX0uc2lkZWJhci0tc2VhcmNoOmFmdGVye2NvbnRlbnQ6XCJcXGU5MDVcIjtkaXNwbGF5OmJsb2NrO2ZvbnQtZmFtaWx5OidpY29tb29uLXYyJztwb3NpdGlvbjphYnNvbHV0ZTt0b3A6LjI1cmVtO3JpZ2h0Oi4yNXJlbTtjb2xvcjojRDREN0REO2ZvbnQtc2l6ZToxLjhyZW19LnNpZGViYXItLXNlYXJjaCBpbnB1dHtmb250LWZhbWlseTpcIlByb3hpbWEgTm92YVwiLHNhbnMtc2VyaWY7Zm9udC13ZWlnaHQ6NTAwO2ZvbnQtc2l6ZToxLjFyZW07YmFja2dyb3VuZDojMUExQTJBO2JvcmRlci1yYWRpdXM6MnB4O2JvcmRlcjoxcHggc29saWQgIzFBMUEyQTtwYWRkaW5nOi41ZW0gMi4xNXJlbSAuNXJlbSAuNXJlbTt3aWR0aDoxMDAlO2NvbG9yOiNmZmY7dHJhbnNpdGlvbi1wcm9wZXJ0eTpib3JkZXIsIGJveC1zaGFkb3c7dHJhbnNpdGlvbi1kdXJhdGlvbjouMnM7Ym94LXNoYWRvdzoycHggMnB4IDZweCByZ2JhKDE1LDE0LDIxLDAuNSl9LnNpZGViYXItLXNlYXJjaCBpbnB1dDpmb2N1c3tvdXRsaW5lOm5vbmU7Ym9yZGVyLWNvbG9yOiMwMEEzRkY7Ym94LXNoYWRvdzoxcHggMXB4IDEwcHggcmdiYSgwLDE2MywyNTUsMC41KTtib3JkZXItcmFkaXVzOjJweH0uc2lkZWJhci0tc2VhcmNoIGlucHV0OjpwbGFjZWhvbGRlcntjb2xvcjpyZ2JhKDI1NSwyNTUsMjU1LDAuMzUpO2ZvbnQtd2VpZ2h0Om5vcm1hbH0uc2lkZWJhciAuc2VhcmNoLWFuZC1uYXYtdG9nZ2xle2Rpc3BsYXk6ZmxleDt3aWR0aDoxMDAlO21hcmdpbi1ib3R0b206LjdyZW19LnNpZGViYXIgI2NvbnRlbnRzLXRvZ2dsZS1idG57ZGlzcGxheTpibG9jazttYXJnaW46LjM1cmVtIC4wNXJlbSAuMjVyZW0gMS4ycmVtO3dpZHRoOjIwcHg7aGVpZ2h0OjIwcHh9LnNpZGViYXIgI2NvbnRlbnRzLXRvZ2dsZS1idG4gLnRvZ2dsZS1oYW1idXJnZXJ7ZGlzcGxheTpibG9jaztwb3NpdGlvbjpyZWxhdGl2ZTttYXJnaW4tdG9wOi42NXJlbTtiYWNrZ3JvdW5kOnJnYmEoMjU1LDI1NSwyNTUsMC41KTt3aWR0aDoyMHB4O2hlaWdodDoycHg7dHJhbnNpdGlvbjphbGwgLjNzO3RyYW5zZm9ybTpyb3RhdGUoMGRlZyl9LnNpZGViYXIgI2NvbnRlbnRzLXRvZ2dsZS1idG4gLnRvZ2dsZS1oYW1idXJnZXI6YmVmb3JlLC5zaWRlYmFyICNjb250ZW50cy10b2dnbGUtYnRuIC50b2dnbGUtaGFtYnVyZ2VyOmFmdGVye2NvbnRlbnQ6XCJcIjtkaXNwbGF5OmJsb2NrO3Bvc2l0aW9uOmFic29sdXRlO3dpZHRoOjIwcHg7aGVpZ2h0OjJweDtib3JkZXItcmFkaXVzOjFweDtiYWNrZ3JvdW5kOnJnYmEoMjU1LDI1NSwyNTUsMC41KTt0cmFuc2Zvcm06cm90YXRlKDBkZWcpO3RyYW5zaXRpb246YWxsIC4zc30uc2lkZWJhciAjY29udGVudHMtdG9nZ2xlLWJ0biAudG9nZ2xlLWhhbWJ1cmdlcjpiZWZvcmV7dG9wOi02cHh9LnNpZGViYXIgI2NvbnRlbnRzLXRvZ2dsZS1idG4gLnRvZ2dsZS1oYW1idXJnZXI6YWZ0ZXJ7dG9wOjZweH0uc2lkZWJhciAjY29udGVudHMtdG9nZ2xlLWJ0bjpob3ZlciAudG9nZ2xlLWhhbWJ1cmdlcntiYWNrZ3JvdW5kOiNmZmZ9LnNpZGViYXIgI2NvbnRlbnRzLXRvZ2dsZS1idG46aG92ZXIgLnRvZ2dsZS1oYW1idXJnZXI6YmVmb3JlLC5zaWRlYmFyICNjb250ZW50cy10b2dnbGUtYnRuOmhvdmVyIC50b2dnbGUtaGFtYnVyZ2VyOmFmdGVye2JhY2tncm91bmQ6I2ZmZn0uc2lkZWJhciAjY29udGVudHMtdG9nZ2xlLWJ0bi5vcGVuIC50b2dnbGUtaGFtYnVyZ2Vye2JhY2tncm91bmQ6IzA3MDcwRTt0cmFuc2Zvcm06cm90YXRlKDkwZGVnKX0uc2lkZWJhciAjY29udGVudHMtdG9nZ2xlLWJ0bi5vcGVuIC50b2dnbGUtaGFtYnVyZ2VyOmJlZm9yZXt0cmFuc2Zvcm06cm90YXRlKC0xMzVkZWcpO3RvcDowfS5zaWRlYmFyICNjb250ZW50cy10b2dnbGUtYnRuLm9wZW4gLnRvZ2dsZS1oYW1idXJnZXI6YWZ0ZXJ7dHJhbnNmb3JtOnJvdGF0ZSgtNDVkZWcpO3RvcDowfS5zaWRlYmFyICNuYXYtdHJlZXtsaXN0LXN0eWxlOm5vbmU7cGFkZGluZy1sZWZ0OjEuNXJlbTttYXJnaW4tYm90dG9tOjFyZW19LnNpZGViYXIgI25hdi10cmVlIHVse2xpc3Qtc3R5bGU6bm9uZTtwYWRkaW5nLWxlZnQ6Mi4zcmVtO2JvcmRlci1sZWZ0OjJweCBzb2xpZCAjMzMzMzQ2fS5zaWRlYmFyICNuYXYtdHJlZSBsaXttYXJnaW4tdG9wOi41cmVtO3Bvc2l0aW9uOnJlbGF0aXZlfS5zaWRlYmFyICNuYXYtdHJlZSBsaTpiZWZvcmV7Y29udGVudDpcIlwiO3dpZHRoOjRweDtoZWlnaHQ6NHB4O3RvcDouNDVlbTtsZWZ0Oi0xZW07ZGlzcGxheTpibG9jaztwb3NpdGlvbjphYnNvbHV0ZTtiYWNrZ3JvdW5kOiMzMzMzNDZ9LnNpZGViYXIgI25hdi10cmVlIGxpIHVse21hcmdpbi1sZWZ0Oi0uOTZlbX0uc2lkZWJhciAjbmF2LXRyZWUgbGkgdWwgbGk6YmVmb3Jle3RvcDouNGVtfS5zaWRlYmFyICNuYXYtdHJlZSBsaSB1bC5vcGVue21hcmdpbi10b3A6LS4yNWVtO3BhZGRpbmctdG9wOi4yNWVtfS5zaWRlYmFyICNuYXYtdHJlZSBsaS5hY3RpdmU6YmVmb3Jle2JhY2tncm91bmQ6I0Q2RjYyMn0uc2lkZWJhciAjbmF2LXRyZWUgbGkuYWN0aXZlPmF7Y29sb3I6I0Q2RjYyMn0uc2lkZWJhciAjbmF2LXRyZWUgbGkuYWN0aXZlPmE6aG92ZXJ7Y29sb3I6I0Q2RjYyMn0uc2lkZWJhciAjbmF2LXRyZWUgbGkuYWN0aXZlPi5jaGlsZHJlbi10b2dnbGV7YmFja2dyb3VuZDojRDZGNjIyfS5zaWRlYmFyICNuYXYtdHJlZSBsaS5hY3RpdmU+LmNoaWxkcmVuLXRvZ2dsZTpiZWZvcmUsLnNpZGViYXIgI25hdi10cmVlIGxpLmFjdGl2ZT4uY2hpbGRyZW4tdG9nZ2xlOmFmdGVye2JhY2tncm91bmQ6IzA3MDcwRX0uc2lkZWJhciAjbmF2LXRyZWUgbGkuYWN0aXZlPnVse2JvcmRlci1sZWZ0OjJweCBzb2xpZCAjRDZGNjIyfS5zaWRlYmFyICNuYXYtdHJlZSBhe3RleHQtZGVjb3JhdGlvbjpub25lO2ZvbnQtd2VpZ2h0OjUwMDtkaXNwbGF5OmlubGluZS1ibG9ja30uc2lkZWJhciAjbmF2LXRyZWUgLm5hdi1jYXRlZ29yeT5he2NvbG9yOiMwMEEzRkY7Zm9udC1zaXplOjEuMnJlbX0uc2lkZWJhciAjbmF2LXRyZWUgLm5hdi1jYXRlZ29yeT5hOmhvdmVye2NvbG9yOiNmZmZ9LnNpZGViYXIgI25hdi10cmVlIC5uYXYtaXRlbT5he2NvbG9yOiNENEQ3RER9LnNpZGViYXIgI25hdi10cmVlIC5uYXYtaXRlbT5hOmhvdmVye2NvbG9yOiMwMEEzRkZ9LnNpZGViYXIgI25hdi10cmVlIC5jaGlsZHJlbntoZWlnaHQ6MDtvdmVyZmxvdzpoaWRkZW59LnNpZGViYXIgI25hdi10cmVlIC5jaGlsZHJlbi5vcGVue2hlaWdodDphdXRvfS5zaWRlYmFyICNuYXYtdHJlZSAuY2hpbGRyZW4tdG9nZ2xle3dpZHRoOjEuMTJyZW07aGVpZ2h0OjEuMTJyZW07cG9zaXRpb246YWJzb2x1dGU7dG9wOi4xcmVtO2xlZnQ6LTEuNnJlbTtkaXNwbGF5OmJsb2NrO2JhY2tncm91bmQ6IzMzMzM0Njtib3JkZXItcmFkaXVzOjUwJX0uc2lkZWJhciAjbmF2LXRyZWUgLmNoaWxkcmVuLXRvZ2dsZTpiZWZvcmUsLnNpZGViYXIgI25hdi10cmVlIC5jaGlsZHJlbi10b2dnbGU6YWZ0ZXJ7Y29udGVudDpcIlwiO3Bvc2l0aW9uOmFic29sdXRlO2Rpc3BsYXk6YmxvY2s7YmFja2dyb3VuZDojRTdFOEVCO3RyYW5zaXRpb246YWxsIC4zc30uc2lkZWJhciAjbmF2LXRyZWUgLmNoaWxkcmVuLXRvZ2dsZTpiZWZvcmV7dG9wOjRweDtsZWZ0OjhweDtoZWlnaHQ6MTBweDt3aWR0aDoycHh9LnNpZGViYXIgI25hdi10cmVlIC5jaGlsZHJlbi10b2dnbGU6YWZ0ZXJ7dG9wOjhweDtsZWZ0OjRweDtoZWlnaHQ6MnB4O3dpZHRoOjEwcHh9LnNpZGViYXIgI25hdi10cmVlIC5jaGlsZHJlbi10b2dnbGU6aG92ZXJ7YmFja2dyb3VuZDojMDBBM0ZGfS5zaWRlYmFyICNuYXYtdHJlZSAuY2hpbGRyZW4tdG9nZ2xlOmhvdmVyOmJlZm9yZSwuc2lkZWJhciAjbmF2LXRyZWUgLmNoaWxkcmVuLXRvZ2dsZTpob3ZlcjphZnRlcntiYWNrZ3JvdW5kOiNFN0U4RUJ9LnNpZGViYXIgI25hdi10cmVlIC5jaGlsZHJlbi10b2dnbGUub3BlbjpiZWZvcmV7dHJhbnNmb3JtOnJvdGF0ZSg5MGRlZyl9LnNpZGViYXIgI25hdi10cmVlIC5jaGlsZHJlbi10b2dnbGUub3BlbjphZnRlcnt0cmFuc2Zvcm06cm90YXRlKDE4MGRlZyl9LnNpZGViYXIgI25hdi10cmVlIGg0e21hcmdpbjoycmVtIDAgMCAtMXJlbTtjb2xvcjpyZ2JhKDI1NSwyNTUsMjU1LDAuNSk7Zm9udC13ZWlnaHQ6NzAwO3RleHQtdHJhbnNmb3JtOnVwcGVyY2FzZTtmb250LXNpemU6Ljk1cmVtO2xldHRlci1zcGFjaW5nOi4wOHJlbX0uc2lkZWJhciAjbmF2LXRyZWUgaDQucGxhdGZvcm06YWZ0ZXIsLnNpZGViYXIgI25hdi10cmVlIGg0LmZsdXg6YWZ0ZXJ7Y29udGVudDpcIlxcZTkxMVwiO2ZvbnQtZmFtaWx5OlwiaWNvbW9vbi12MlwiO2ZvbnQtc3R5bGU6bm9ybWFsO2ZvbnQtc2l6ZToxcmVtO29wYWNpdHk6LjQ7bWFyZ2luLWxlZnQ6LjI1cmVtfS5zaWRlYmFyIC5mZWF0dXJlLWJvYXJkLWJhZGdle3Bvc2l0aW9uOnJlbGF0aXZlO3BhZGRpbmc6MXJlbTttYXJnaW46MnJlbSAwIDEuNXJlbSAtMS41cmVtO2JhY2tncm91bmQ6cmdiYSgwLDE2MywyNTUsMC4wNSk7Ym9yZGVyOjFweCBzb2xpZCByZ2JhKDAsMTYzLDI1NSwwLjIpO2JvcmRlci1yYWRpdXM6OHB4O3RleHQtZGVjb3JhdGlvbjpub25lO3RyYW5zaXRpb246YmFja2dyb3VuZCAuMnMsIGJvcmRlci1jb2xvciAuMnM7b3ZlcmZsb3c6aGlkZGVufS5zaWRlYmFyIC5mZWF0dXJlLWJvYXJkLWJhZGdlOmJlZm9yZXtjb250ZW50OlwiTkVXXCI7cG9zaXRpb246YWJzb2x1dGU7cGFkZGluZzouMXJlbSAxLjJyZW07Zm9udC1zaXplOi42NXJlbTtsZXR0ZXItc3BhY2luZzouMDNyZW07Zm9udC13ZWlnaHQ6Ym9sZDt0b3A6NnB4O3JpZ2h0Oi0xN3B4O2NvbG9yOiNmZmY7YmFja2dyb3VuZDojZDMwOTcxO3RyYW5zZm9ybTpyb3RhdGUoNDVkZWcpfS5zaWRlYmFyIC5mZWF0dXJlLWJvYXJkLWJhZGdlIGg1e21hcmdpbjowIDAgLjI1cmVtIDA7Y29sb3I6IzAwQTNGRjtmb250LXNpemU6MS4ycmVtfS5zaWRlYmFyIC5mZWF0dXJlLWJvYXJkLWJhZGdlIHB7bWFyZ2luOjA7Y29sb3I6I0Q0RDdERDtmb250LXNpemU6MC45cmVtO2xpbmUtaGVpZ2h0OjEuNHJlbTtmb250LXdlaWdodDpub3JtYWw7Zm9udC1zdHlsZTppdGFsaWN9LnNpZGViYXIgLmZlYXR1cmUtYm9hcmQtYmFkZ2U6aG92ZXJ7Ym9yZGVyLWNvbG9yOnJnYmEoMCwxNjMsMjU1LDAuNzUpfUBtZWRpYSAobWF4LXdpZHRoOiA4MDBweCl7LnNpZGViYXJ7d2lkdGg6MTAwJX0uc2lkZWJhciAjbmF2LXRyZWV7aGVpZ2h0OjA7b3ZlcmZsb3c6aGlkZGVuO21hcmdpbjowfS5zaWRlYmFyICNuYXYtdHJlZS5vcGVue2hlaWdodDphdXRvO292ZXJmbG93OmF1dG87bWFyZ2luLWJvdHRvbToycmVtfX1AbWVkaWEgKG1pbi13aWR0aDogODAxcHgpey5zaWRlYmFyICNjb250ZW50cy10b2dnbGUtYnRue2Rpc3BsYXk6bm9uZX19QG1lZGlhIChtaW4td2lkdGg6IDgwMXB4KSBhbmQgKG1heC13aWR0aDogMTIwMHB4KXsuc2lkZWJhcnt3aWR0aDozMCV9fS5zaWRlYmFyLXRvZ2dsZXtwb3NpdGlvbjphYnNvbHV0ZTtkaXNwbGF5OmJsb2NrO2hlaWdodDozNXB4O3RvcDozLjI1cmVtO3otaW5kZXg6MTAwfS5zaWRlYmFyLXRvZ2dsZTpob3ZlcntjdXJzb3I6cG9pbnRlcn0uc2lkZWJhci10b2dnbGU6aG92ZXI6YmVmb3JlLC5zaWRlYmFyLXRvZ2dsZTpob3ZlcjphZnRlcntjdXJzb3I6ZGVmYXVsdH0uc2lkZWJhci10b2dnbGU6aG92ZXIgYXtjb2xvcjojZDRkN2RkfS5zaWRlYmFyLXRvZ2dsZTpiZWZvcmUsLnNpZGViYXItdG9nZ2xlOmFmdGVye2Rpc3BsYXk6YmxvY2s7cG9zaXRpb246YWJzb2x1dGU7d2lkdGg6MTBweDtoZWlnaHQ6MTBweH0uc2lkZWJhci10b2dnbGU6YmVmb3Jle3RvcDotMTRweH0uc2lkZWJhci10b2dnbGU6YWZ0ZXJ7Ym90dG9tOi0xNHB4O3RyYW5zZm9ybTpyb3RhdGVYKDE4MGRlZyl9LnNpZGViYXItdG9nZ2xlPmF7Zm9udC1mYW1pbHk6XCJpY29tb29uLXYyXCI7Y29sb3I6cmdiYSgyMTIsMjE1LDIyMSwwLjUpO3RleHQtZGVjb3JhdGlvbjpub25lfS5zaWRlYmFyLXRvZ2dsZXtwYWRkaW5nOjAuNHJlbSAwLjZyZW07d2lkdGg6MzVweH0uc2lkZWJhci10b2dnbGU+YXtmb250LXNpemU6MXJlbX0uY29udGVudC13cmFwcGVyIC5zaWRlYmFyLXRvZ2dsZXtkaXNwbGF5Om5vbmU7bGVmdDowO2JhY2tncm91bmQtY29sb3I6IzA3MDcwRTtib3JkZXItcmFkaXVzOjAgMnB4IDJweCAwfS5jb250ZW50LXdyYXBwZXIgLnNpZGViYXItdG9nZ2xlOmJlZm9yZSwuY29udGVudC13cmFwcGVyIC5zaWRlYmFyLXRvZ2dsZTphZnRlcntjb250ZW50OnVybChcImRhdGE6aW1hZ2Uvc3ZnK3htbDtjaGFyc2V0PVVURi04LFxcYSAgICAgICA8c3ZnIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZycgeG1sbnM6eGxpbms9J2h0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsnIHg9JzBweCcgeT0nMHB4JyB2aWV3Qm94PScwIDAgMTAgMTAnIHhtbDpzcGFjZT0ncHJlc2VydmUnPlxcYSAgICAgICA8cGF0aCBmaWxsPSdyZ2JhKDcsNywxNCwwLjk5OTkpJyBkPSdNMCwxMGgxMFYwQzEwLDUuNTIsNS41MiwxMCwwLDEweicvPlxcYSAgICAgICA8L3N2Zz5cIik7bGVmdDowfS5jb250ZW50LXdyYXBwZXIgLnNpZGViYXItdG9nZ2xlOmJlZm9yZXt0cmFuc2Zvcm06cm90YXRlWSgxODBkZWcpfS5jb250ZW50LXdyYXBwZXIgLnNpZGViYXItdG9nZ2xlOmFmdGVye3RyYW5zZm9ybTpyb3RhdGUoMTgwZGVnKX0uc2lkZWJhciAuc2lkZWJhci10b2dnbGV7cmlnaHQ6MDtiYWNrZ3JvdW5kLWNvbG9yOiMxNDE0MUY7Ym9yZGVyLXJhZGl1czoycHggMCAwIDJweH0uc2lkZWJhciAuc2lkZWJhci10b2dnbGU6YmVmb3JlLC5zaWRlYmFyIC5zaWRlYmFyLXRvZ2dsZTphZnRlcntjb250ZW50OnVybChcImRhdGE6aW1hZ2Uvc3ZnK3htbDtjaGFyc2V0PVVURi04LFxcYSAgICAgICA8c3ZnIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZycgeG1sbnM6eGxpbms9J2h0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsnIHg9JzBweCcgeT0nMHB4JyB2aWV3Qm94PScwIDAgMTAgMTAnIHhtbDpzcGFjZT0ncHJlc2VydmUnPlxcYSAgICAgICA8cGF0aCBmaWxsPSdyZ2JhKDIwLDIwLDMxLDAuOTk5OSknIGQ9J00wLDEwaDEwVjBDMTAsNS41Miw1LjUyLDEwLDAsMTB6Jy8+XFxhICAgICAgIDwvc3ZnPlwiKTtyaWdodDowfUBtZWRpYSAobWF4LXdpZHRoOiA4MDBweCl7LnNpZGViYXItdG9nZ2xle2Rpc3BsYXk6bm9uZX19LmNvbnRlbnQtd3JhcHBlcntmbGV4LWdyb3c6MTt3aWR0aDo3NSU7cG9zaXRpb246cmVsYXRpdmU7Ym9yZGVyLXJhZGl1czoycHggMCAwIDJweDtvdmVyZmxvdzpoaWRkZW47ei1pbmRleDowfS5jb250ZW50LXdyYXBwZXIgLmNvcHlyaWdodHtwYWRkaW5nOi41cmVtIDFyZW0gLjVyZW0gLjVyZW07dGV4dC1hbGlnbjpyaWdodDtmb250LXNpemU6LjlyZW07Y29sb3I6cmdiYSgyMTIsMjE1LDIyMSwwLjUpfUBtZWRpYSAobWF4LXdpZHRoOiA4MDBweCl7LmNvbnRlbnQtd3JhcHBlcnt3aWR0aDoxMDAlfX1AbWVkaWEgKG1pbi13aWR0aDogODAxcHgpIGFuZCAobWF4LXdpZHRoOiAxMjAwcHgpey5jb250ZW50LXdyYXBwZXJ7d2lkdGg6NzAlfX0uYXJ0aWNsZXtiYWNrZ3JvdW5kOiMxNDE0MUY7Ym9yZGVyLXJhZGl1czoycHggMCAwIDJweDtwYWRkaW5nOjJyZW0gNHJlbSAzcmVtfS5hcnRpY2xlLS1jb250ZW50e21heC13aWR0aDo4NTBweDtmb250LXNpemU6MS4xcmVtfS5hcnRpY2xlLS1jb250ZW50IGgxLC5hcnRpY2xlLS1jb250ZW50IGgyLC5hcnRpY2xlLS1jb250ZW50IGgzLC5hcnRpY2xlLS1jb250ZW50IGg0LC5hcnRpY2xlLS1jb250ZW50IGg1LC5hcnRpY2xlLS1jb250ZW50IGg2e2NvbG9yOiNmZmZ9LmFydGljbGUtLWNvbnRlbnQgaDEgYSwuYXJ0aWNsZS0tY29udGVudCBoMiBhLC5hcnRpY2xlLS1jb250ZW50IGgzIGEsLmFydGljbGUtLWNvbnRlbnQgaDQgYSwuYXJ0aWNsZS0tY29udGVudCBoNSBhLC5hcnRpY2xlLS1jb250ZW50IGg2IGF7Y29sb3I6aW5oZXJpdCAhaW1wb3J0YW50O2ZvbnQtd2VpZ2h0OmluaGVyaXQgIWltcG9ydGFudDt0ZXh0LWRlY29yYXRpb246bm9uZX0uYXJ0aWNsZS0tY29udGVudCBoMSBhIGNvZGU6YWZ0ZXIsLmFydGljbGUtLWNvbnRlbnQgaDIgYSBjb2RlOmFmdGVyLC5hcnRpY2xlLS1jb250ZW50IGgzIGEgY29kZTphZnRlciwuYXJ0aWNsZS0tY29udGVudCBoNCBhIGNvZGU6YWZ0ZXIsLmFydGljbGUtLWNvbnRlbnQgaDUgYSBjb2RlOmFmdGVyLC5hcnRpY2xlLS1jb250ZW50IGg2IGEgY29kZTphZnRlcntib3JkZXI6bm9uZX0uYXJ0aWNsZS0tY29udGVudCBoMisuaGlnaGxpZ2h0IHByZSwuYXJ0aWNsZS0tY29udGVudCBoMysuaGlnaGxpZ2h0IHByZSwuYXJ0aWNsZS0tY29udGVudCBoNCsuaGlnaGxpZ2h0IHByZSwuYXJ0aWNsZS0tY29udGVudCBoNSsuaGlnaGxpZ2h0IHByZSwuYXJ0aWNsZS0tY29udGVudCBoNisuaGlnaGxpZ2h0IHByZXttYXJnaW4tdG9wOi41cmVtfS5hcnRpY2xlLS1jb250ZW50IGgyK3ByZSwuYXJ0aWNsZS0tY29udGVudCBoMytwcmUsLmFydGljbGUtLWNvbnRlbnQgaDQrcHJlLC5hcnRpY2xlLS1jb250ZW50IGg1K3ByZSwuYXJ0aWNsZS0tY29udGVudCBoNitwcmV7bWFyZ2luLXRvcDouNXJlbX0uYXJ0aWNsZS0tY29udGVudCBoMisuY29kZS10YWJzLXdyYXBwZXIsLmFydGljbGUtLWNvbnRlbnQgaDMrLmNvZGUtdGFicy13cmFwcGVyLC5hcnRpY2xlLS1jb250ZW50IGg0Ky5jb2RlLXRhYnMtd3JhcHBlciwuYXJ0aWNsZS0tY29udGVudCBoNSsuY29kZS10YWJzLXdyYXBwZXIsLmFydGljbGUtLWNvbnRlbnQgaDYrLmNvZGUtdGFicy13cmFwcGVye21hcmdpbi10b3A6MH0uYXJ0aWNsZS0tY29udGVudCBoMi5tb25vc3BhY2UsLmFydGljbGUtLWNvbnRlbnQgaDMubW9ub3NwYWNlLC5hcnRpY2xlLS1jb250ZW50IGg0Lm1vbm9zcGFjZSwuYXJ0aWNsZS0tY29udGVudCBoNS5tb25vc3BhY2UsLmFydGljbGUtLWNvbnRlbnQgaDYubW9ub3NwYWNle2ZvbnQtZmFtaWx5OlwiSUJNIFBsZXggTW9ub1wiLG1vbm9zcGFjZX0uYXJ0aWNsZS0tY29udGVudCBoMi5ncmVlbiwuYXJ0aWNsZS0tY29udGVudCBoMy5ncmVlbiwuYXJ0aWNsZS0tY29udGVudCBoNC5ncmVlbiwuYXJ0aWNsZS0tY29udGVudCBoNS5ncmVlbiwuYXJ0aWNsZS0tY29udGVudCBoNi5ncmVlbntjb2xvcjojMzRCQjU1fS5hcnRpY2xlLS1jb250ZW50IGgyLm9yYW5nZSwuYXJ0aWNsZS0tY29udGVudCBoMy5vcmFuZ2UsLmFydGljbGUtLWNvbnRlbnQgaDQub3JhbmdlLC5hcnRpY2xlLS1jb250ZW50IGg1Lm9yYW5nZSwuYXJ0aWNsZS0tY29udGVudCBoNi5vcmFuZ2V7Y29sb3I6I0ZGODU2NH0uYXJ0aWNsZS0tY29udGVudCBoMi5jaGVja3BvaW50OjpiZWZvcmUsLmFydGljbGUtLWNvbnRlbnQgaDMuY2hlY2twb2ludDo6YmVmb3JlLC5hcnRpY2xlLS1jb250ZW50IGg0LmNoZWNrcG9pbnQ6OmJlZm9yZSwuYXJ0aWNsZS0tY29udGVudCBoNS5jaGVja3BvaW50OjpiZWZvcmUsLmFydGljbGUtLWNvbnRlbnQgaDYuY2hlY2twb2ludDo6YmVmb3Jle2NvbnRlbnQ6J1xcZTkzYic7Zm9udC1mYW1pbHk6J2ljb21vb24tdjQnO2ZvbnQtc2l6ZToyLjI1cmVtO2NvbG9yOiNkMzA5NzE7ZGlzcGxheTppbmxpbmU7bWFyZ2luOjAgLjVyZW0gMCAwO3ZlcnRpY2FsLWFsaWduOnRvcH0uYXJ0aWNsZS0tY29udGVudCBoMlttZXRhZGF0YV06OmFmdGVyLC5hcnRpY2xlLS1jb250ZW50IGgzW21ldGFkYXRhXTo6YWZ0ZXIsLmFydGljbGUtLWNvbnRlbnQgaDRbbWV0YWRhdGFdOjphZnRlciwuYXJ0aWNsZS0tY29udGVudCBoNVttZXRhZGF0YV06OmFmdGVyLC5hcnRpY2xlLS1jb250ZW50IGg2W21ldGFkYXRhXTo6YWZ0ZXJ7Y29udGVudDphdHRyKG1ldGFkYXRhKTttYXJnaW4tbGVmdDouNjVyZW07cGFkZGluZzouMWVtIC41ZW07Y29sb3I6I2ZmZjtiYWNrZ3JvdW5kOnJnYmEoMjU1LDI1NSwyNTUsMC4xMik7Zm9udC1zaXplOi43NWVtO2ZvbnQtc3R5bGU6bm9ybWFsO2ZvbnQtd2VpZ2h0OjUwMDtib3JkZXItcmFkaXVzOjFlbTtkaXNwbGF5OmlubGluZS1ibG9jazt2ZXJ0aWNhbC1hbGlnbjptaWRkbGV9LmFydGljbGUtLWNvbnRlbnQgaDJbZGF0ZV06OmFmdGVyLC5hcnRpY2xlLS1jb250ZW50IGgyW25vdGVdOjphZnRlciwuYXJ0aWNsZS0tY29udGVudCBoM1tkYXRlXTo6YWZ0ZXIsLmFydGljbGUtLWNvbnRlbnQgaDNbbm90ZV06OmFmdGVyLC5hcnRpY2xlLS1jb250ZW50IGg0W2RhdGVdOjphZnRlciwuYXJ0aWNsZS0tY29udGVudCBoNFtub3RlXTo6YWZ0ZXIsLmFydGljbGUtLWNvbnRlbnQgaDVbZGF0ZV06OmFmdGVyLC5hcnRpY2xlLS1jb250ZW50IGg1W25vdGVdOjphZnRlciwuYXJ0aWNsZS0tY29udGVudCBoNltkYXRlXTo6YWZ0ZXIsLmFydGljbGUtLWNvbnRlbnQgaDZbbm90ZV06OmFmdGVye21hcmdpbi1sZWZ0Oi42NXJlbTtvcGFjaXR5Oi40O2ZvbnQtc2l6ZTouNzVlbTtmb250LXdlaWdodDo1MDA7Zm9udC1zdHlsZTppbmhlcml0fS5hcnRpY2xlLS1jb250ZW50IGgyW2RhdGVdOjphZnRlciwuYXJ0aWNsZS0tY29udGVudCBoM1tkYXRlXTo6YWZ0ZXIsLmFydGljbGUtLWNvbnRlbnQgaDRbZGF0ZV06OmFmdGVyLC5hcnRpY2xlLS1jb250ZW50IGg1W2RhdGVdOjphZnRlciwuYXJ0aWNsZS0tY29udGVudCBoNltkYXRlXTo6YWZ0ZXJ7Y29udGVudDphdHRyKGRhdGUpfS5hcnRpY2xlLS1jb250ZW50IGgyW25vdGVdOjphZnRlciwuYXJ0aWNsZS0tY29udGVudCBoM1tub3RlXTo6YWZ0ZXIsLmFydGljbGUtLWNvbnRlbnQgaDRbbm90ZV06OmFmdGVyLC5hcnRpY2xlLS1jb250ZW50IGg1W25vdGVdOjphZnRlciwuYXJ0aWNsZS0tY29udGVudCBoNltub3RlXTo6YWZ0ZXJ7Y29udGVudDphdHRyKG5vdGUpO2ZvbnQtc2l6ZTouODVlbX0uYXJ0aWNsZS0tY29udGVudCBoMXtmb250LXdlaWdodDpib2xkO2ZvbnQtc2l6ZToyLjc1cmVtO21hcmdpbjouNGVtIDAgLjJlbX0uYXJ0aWNsZS0tY29udGVudCBoMntmb250LXNpemU6Mi4xcmVtO21hcmdpbjotLjI1cmVtIDAgLjVyZW07cGFkZGluZy10b3A6MS43NXJlbTtmb250LXdlaWdodDo1MDA7Y29sb3I6I0ZBRkFGQ30uYXJ0aWNsZS0tY29udGVudCBoM3tmb250LXNpemU6MS43NXJlbTtmb250LXdlaWdodDo1MDA7bWFyZ2luOi0xcmVtIDAgLjVyZW07cGFkZGluZy10b3A6MS43NXJlbX0uYXJ0aWNsZS0tY29udGVudCBoNHtmb250LXNpemU6MS4zNXJlbTtmb250LXN0eWxlOml0YWxpYztmb250LXdlaWdodDo1MDA7bWFyZ2luOi0xLjI1cmVtIDAgLjVyZW07cGFkZGluZy10b3A6MS43NXJlbTtjb2xvcjojRkFGQUZDfS5hcnRpY2xlLS1jb250ZW50IGg1e2ZvbnQtc2l6ZToxLjFyZW07bWFyZ2luOi0xLjI1cmVtIDAgLjI1cmVtO3BhZGRpbmctdG9wOjEuNzVyZW19LmFydGljbGUtLWNvbnRlbnQgaDZ7Zm9udC1zaXplOjEuMXJlbTtmb250LXN0eWxlOml0YWxpYzttYXJnaW46LTEuMjVyZW0gMCAuMjVyZW07cGFkZGluZy10b3A6MS43NXJlbX0uYXJ0aWNsZS0tY29udGVudCBwLC5hcnRpY2xlLS1jb250ZW50IGxpe2NvbG9yOiNENEQ3REQ7bGluZS1oZWlnaHQ6MS44cmVtfS5hcnRpY2xlLS1jb250ZW50IHB7bWFyZ2luOjAgMCAxLjVlbX0uYXJ0aWNsZS0tY29udGVudCBhe2NvbG9yOiMwMEEzRkY7Zm9udC13ZWlnaHQ6NTAwO3RleHQtZGVjb3JhdGlvbjpub25lfS5hcnRpY2xlLS1jb250ZW50IGE6aG92ZXJ7Y29sb3I6I2ZmZn0uYXJ0aWNsZS0tY29udGVudCBhLmhlbHAtbGlua3tkaXNwbGF5OmlubGluZS1ibG9jazt3aWR0aDoxcmVtO2hlaWdodDoxcmVtO2JvcmRlci1yYWRpdXM6NTAlO2JhY2tncm91bmQ6IzE0MTQxRn0uYXJ0aWNsZS0tY29udGVudCBzdHJvbmd7Y29sb3I6I0ZBRkFGQ30uYXJ0aWNsZS0tY29udGVudCBpbWd7bWF4LXdpZHRoOjEwMCU7bWFyZ2luLWJvdHRvbToycmVtO2JvcmRlci1yYWRpdXM6M3B4O2JveC1zaGFkb3c6MXB4IDNweCAxMHB4ICMwNzA3MEV9LmFydGljbGUtLWNvbnRlbnQgdWwrcD5pbWd7bWFyZ2luLXRvcDoxLjVyZW19LmFydGljbGUtLWNvbnRlbnQgaHJ7Ym9yZGVyLXdpZHRoOjFweCAwIDA7Ym9yZGVyLWNvbG9yOiMzODM4NDY7Ym9yZGVyLXN0eWxlOnNvbGlkO21hcmdpbjoxLjg1cmVtIDAgMS43NXJlbX0uYXJ0aWNsZS0tY29udGVudCAuYmFkZ2V7Zm9udC1zaXplOi43cmVtO21hcmdpbjowIC4ycmVtO3BhZGRpbmc6LjFyZW0gLjRyZW07Ym9yZGVyLXJhZGl1czouNnJlbTtmb250LXdlaWdodDpib2xkO3ZlcnRpY2FsLWFsaWduOnRvcH0uYXJ0aWNsZS0tY29udGVudCAuYmFkZ2UuZHZje2NvbG9yOiMyZTdkMmU7YmFja2dyb3VuZC1jb2xvcjojZThmNWU4fS5hcnRpY2xlLS1jb250ZW50IC5iYWRnZS5sdmN7Y29sb3I6IzE5NzZkMjtiYWNrZ3JvdW5kLWNvbG9yOiNlM2YyZmR9LmFydGljbGUtLWNvbnRlbnQgLmJhZGdlLmV4cGVyaW1lbnRhbHtjb2xvcjojZmU5ZGJjO2JhY2tncm91bmQtY29sb3I6cmdiYSgyMTEsOSwxMTMsMC4xMil9LmFydGljbGUtLWNvbnRlbnQgYmxvY2txdW90ZSwuYXJ0aWNsZS0tY29udGVudCAuYmxvY2t7cGFkZGluZzoxLjY1cmVtIDJyZW0gLjFyZW0gMnJlbTttYXJnaW46MXJlbSAwIDJyZW07Ym9yZGVyLXdpZHRoOjAgMCAwIDRweDtib3JkZXItc3R5bGU6c29saWQ7Ym9yZGVyLXJhZGl1czowIDJweCAycHggMDtmb250LXNpemU6MS4wNXJlbX0uYXJ0aWNsZS0tY29udGVudCBibG9ja3F1b3RlIHVsOmxhc3QtY2hpbGQsLmFydGljbGUtLWNvbnRlbnQgYmxvY2txdW90ZSBvbDpsYXN0LWNoaWxkLC5hcnRpY2xlLS1jb250ZW50IC5ibG9jayB1bDpsYXN0LWNoaWxkLC5hcnRpY2xlLS1jb250ZW50IC5ibG9jayBvbDpsYXN0LWNoaWxke21hcmdpbi1ib3R0b206MS44NXJlbX0uYXJ0aWNsZS0tY29udGVudCBibG9ja3F1b3RlPmgyOmZpcnN0LWNoaWxkLC5hcnRpY2xlLS1jb250ZW50IGJsb2NrcXVvdGU+aDM6Zmlyc3QtY2hpbGQsLmFydGljbGUtLWNvbnRlbnQgYmxvY2txdW90ZT5oNDpmaXJzdC1jaGlsZCwuYXJ0aWNsZS0tY29udGVudCBibG9ja3F1b3RlPmg1OmZpcnN0LWNoaWxkLC5hcnRpY2xlLS1jb250ZW50IGJsb2NrcXVvdGU+aDY6Zmlyc3QtY2hpbGQsLmFydGljbGUtLWNvbnRlbnQgLmJsb2NrPmgyOmZpcnN0LWNoaWxkLC5hcnRpY2xlLS1jb250ZW50IC5ibG9jaz5oMzpmaXJzdC1jaGlsZCwuYXJ0aWNsZS0tY29udGVudCAuYmxvY2s+aDQ6Zmlyc3QtY2hpbGQsLmFydGljbGUtLWNvbnRlbnQgLmJsb2NrPmg1OmZpcnN0LWNoaWxkLC5hcnRpY2xlLS1jb250ZW50IC5ibG9jaz5oNjpmaXJzdC1jaGlsZHttYXJnaW4tdG9wOjA7cGFkZGluZy10b3A6MC4yNWVtfS5hcnRpY2xlLS1jb250ZW50IGJsb2NrcXVvdGUubm90ZSwuYXJ0aWNsZS0tY29udGVudCBibG9ja3F1b3RlLnRpcCwuYXJ0aWNsZS0tY29udGVudCBibG9ja3F1b3RlLmltcG9ydGFudCwuYXJ0aWNsZS0tY29udGVudCBibG9ja3F1b3RlLndhcm5pbmcsLmFydGljbGUtLWNvbnRlbnQgYmxvY2txdW90ZS53YXJuLC5hcnRpY2xlLS1jb250ZW50IGJsb2NrcXVvdGUuY2F1dGlvbiwuYXJ0aWNsZS0tY29udGVudCAuYmxvY2subm90ZSwuYXJ0aWNsZS0tY29udGVudCAuYmxvY2sudGlwLC5hcnRpY2xlLS1jb250ZW50IC5ibG9jay5pbXBvcnRhbnQsLmFydGljbGUtLWNvbnRlbnQgLmJsb2NrLndhcm5pbmcsLmFydGljbGUtLWNvbnRlbnQgLmJsb2NrLndhcm4sLmFydGljbGUtLWNvbnRlbnQgLmJsb2NrLmNhdXRpb257cG9zaXRpb246cmVsYXRpdmV9LmFydGljbGUtLWNvbnRlbnQgYmxvY2txdW90ZS5ub3RlOmJlZm9yZSwuYXJ0aWNsZS0tY29udGVudCBibG9ja3F1b3RlLnRpcDpiZWZvcmUsLmFydGljbGUtLWNvbnRlbnQgYmxvY2txdW90ZS5pbXBvcnRhbnQ6YmVmb3JlLC5hcnRpY2xlLS1jb250ZW50IGJsb2NrcXVvdGUud2FybmluZzpiZWZvcmUsLmFydGljbGUtLWNvbnRlbnQgYmxvY2txdW90ZS53YXJuOmJlZm9yZSwuYXJ0aWNsZS0tY29udGVudCBibG9ja3F1b3RlLmNhdXRpb246YmVmb3JlLC5hcnRpY2xlLS1jb250ZW50IC5ibG9jay5ub3RlOmJlZm9yZSwuYXJ0aWNsZS0tY29udGVudCAuYmxvY2sudGlwOmJlZm9yZSwuYXJ0aWNsZS0tY29udGVudCAuYmxvY2suaW1wb3J0YW50OmJlZm9yZSwuYXJ0aWNsZS0tY29udGVudCAuYmxvY2sud2FybmluZzpiZWZvcmUsLmFydGljbGUtLWNvbnRlbnQgLmJsb2NrLndhcm46YmVmb3JlLC5hcnRpY2xlLS1jb250ZW50IC5ibG9jay5jYXV0aW9uOmJlZm9yZXtwb3NpdGlvbjphYnNvbHV0ZTtmb250LWZhbWlseTpcImFsZXJ0LWljb25zXCI7Zm9udC1zaXplOjFlbTtsaW5lLWhlaWdodDoxZW07cGFkZGluZzouM3JlbTt0ZXh0LWFsaWduOmNlbnRlcjt0b3A6LS41cmVtO2xlZnQ6LS45NXJlbTtkaXNwbGF5OmJsb2NrO2JvcmRlci1yYWRpdXM6NTAlO2JveC1zaGFkb3c6MXB4IDNweCA1cHggcmdiYSg3LDcsMTQsMC41KX0uYXJ0aWNsZS0tY29udGVudCBoMisubm90ZSwuYXJ0aWNsZS0tY29udGVudCBoMisudGlwLC5hcnRpY2xlLS1jb250ZW50IGgyKy5pbXBvcnRhbnQsLmFydGljbGUtLWNvbnRlbnQgaDIrLndhcm5pbmcsLmFydGljbGUtLWNvbnRlbnQgaDIrLmNhdXRpb24sLmFydGljbGUtLWNvbnRlbnQgaDMrLm5vdGUsLmFydGljbGUtLWNvbnRlbnQgaDMrLnRpcCwuYXJ0aWNsZS0tY29udGVudCBoMysuaW1wb3J0YW50LC5hcnRpY2xlLS1jb250ZW50IGgzKy53YXJuaW5nLC5hcnRpY2xlLS1jb250ZW50IGgzKy5jYXV0aW9uLC5hcnRpY2xlLS1jb250ZW50IGg0Ky5ub3RlLC5hcnRpY2xlLS1jb250ZW50IGg0Ky50aXAsLmFydGljbGUtLWNvbnRlbnQgaDQrLmltcG9ydGFudCwuYXJ0aWNsZS0tY29udGVudCBoNCsud2FybmluZywuYXJ0aWNsZS0tY29udGVudCBoNCsuY2F1dGlvbiwuYXJ0aWNsZS0tY29udGVudCBoNSsubm90ZSwuYXJ0aWNsZS0tY29udGVudCBoNSsudGlwLC5hcnRpY2xlLS1jb250ZW50IGg1Ky5pbXBvcnRhbnQsLmFydGljbGUtLWNvbnRlbnQgaDUrLndhcm5pbmcsLmFydGljbGUtLWNvbnRlbnQgaDUrLmNhdXRpb24sLmFydGljbGUtLWNvbnRlbnQgaDYrLm5vdGUsLmFydGljbGUtLWNvbnRlbnQgaDYrLnRpcCwuYXJ0aWNsZS0tY29udGVudCBoNisuaW1wb3J0YW50LC5hcnRpY2xlLS1jb250ZW50IGg2Ky53YXJuaW5nLC5hcnRpY2xlLS1jb250ZW50IGg2Ky5jYXV0aW9ue21hcmdpbi10b3A6MS4yNXJlbX0uYXJ0aWNsZS0tY29udGVudCBibG9ja3F1b3Rle3BhZGRpbmc6MXJlbSAxcmVtIDFyZW0gMS4yNXJlbTtib3JkZXItY29sb3I6cmdiYSgyMTIsMjE1LDIyMSwwLjI1KX0uYXJ0aWNsZS0tY29udGVudCBibG9ja3F1b3RlIHAsLmFydGljbGUtLWNvbnRlbnQgYmxvY2txdW90ZSBsaXtmb250LXNpemU6MS4xNXJlbTtmb250LXN0eWxlOml0YWxpYztjb2xvcjpyZ2JhKDIxMiwyMTUsMjIxLDAuNSl9LmFydGljbGUtLWNvbnRlbnQgYmxvY2txdW90ZSAqOmxhc3QtY2hpbGR7bWFyZ2luLWJvdHRvbTowfS5hcnRpY2xlLS1jb250ZW50IGJsb2NrcXVvdGUgLmNpdGV7ZGlzcGxheTpibG9jazttYXJnaW4tdG9wOi0xcmVtO2ZvbnQtc3R5bGU6aXRhbGljO2ZvbnQtc2l6ZTouODVyZW07b3BhY2l0eTouOH0uYXJ0aWNsZS0tY29udGVudD5wIHNwYW4uY2l0ZXt2ZXJ0aWNhbC1hbGlnbjpzdXBlcjtsaW5lLWhlaWdodDowO2ZvbnQtc2l6ZTouN3JlbTtmb250LXN0eWxlOml0YWxpY31AbWVkaWEgKG1heC13aWR0aDogNjAwcHgpey5hcnRpY2xlLS1jb250ZW50IGJsb2NrcXVvdGUsLmFydGljbGUtLWNvbnRlbnQgLmJsb2Nre3BhZGRpbmc6MS4zNXJlbSAxLjI1cmVtIC4xcmVtIDEuMjVyZW07bWFyZ2luOi41cmVtIDAgMXJlbX19LmFydGljbGUtLWNvbnRlbnQgLm5vdGU6YmVmb3Jle2NvbnRlbnQ6XCJOXCI7Y29sb3I6I2ZmZjtiYWNrZ3JvdW5kOiMwMEEzRkZ9LmFydGljbGUtLWNvbnRlbnQgLm5vdGV7Ym9yZGVyLWNvbG9yOiMwMEEzRkY7YmFja2dyb3VuZDpyZ2JhKDAsMTYzLDI1NSwwLjEpfS5hcnRpY2xlLS1jb250ZW50IC5ub3RlIGgxLC5hcnRpY2xlLS1jb250ZW50IC5ub3RlIGgyLC5hcnRpY2xlLS1jb250ZW50IC5ub3RlIGgzLC5hcnRpY2xlLS1jb250ZW50IC5ub3RlIGg0LC5hcnRpY2xlLS1jb250ZW50IC5ub3RlIGg1LC5hcnRpY2xlLS1jb250ZW50IC5ub3RlIGg2e2NvbG9yOiNmZmZ9LmFydGljbGUtLWNvbnRlbnQgLm5vdGUgaDEgYSwuYXJ0aWNsZS0tY29udGVudCAubm90ZSBoMiBhLC5hcnRpY2xlLS1jb250ZW50IC5ub3RlIGgzIGEsLmFydGljbGUtLWNvbnRlbnQgLm5vdGUgaDQgYSwuYXJ0aWNsZS0tY29udGVudCAubm90ZSBoNSBhLC5hcnRpY2xlLS1jb250ZW50IC5ub3RlIGg2IGF7Y29sb3I6aW5oZXJpdCAhaW1wb3J0YW50fS5hcnRpY2xlLS1jb250ZW50IC5ub3RlIGgxIGE6aG92ZXIsLmFydGljbGUtLWNvbnRlbnQgLm5vdGUgaDIgYTpob3ZlciwuYXJ0aWNsZS0tY29udGVudCAubm90ZSBoMyBhOmhvdmVyLC5hcnRpY2xlLS1jb250ZW50IC5ub3RlIGg0IGE6aG92ZXIsLmFydGljbGUtLWNvbnRlbnQgLm5vdGUgaDUgYTpob3ZlciwuYXJ0aWNsZS0tY29udGVudCAubm90ZSBoNiBhOmhvdmVye2NvbG9yOmluaGVyaXQgIWltcG9ydGFudH0uYXJ0aWNsZS0tY29udGVudCAubm90ZSBwLC5hcnRpY2xlLS1jb250ZW50IC5ub3RlIGxpe2NvbG9yOiNCRUYwRkZ9LmFydGljbGUtLWNvbnRlbnQgLm5vdGUgc3Ryb25ne2NvbG9yOiNmZmZ9LmFydGljbGUtLWNvbnRlbnQgLm5vdGUgYXtjb2xvcjojZmZmfS5hcnRpY2xlLS1jb250ZW50IC5ub3RlIGEgY29kZTphZnRlcntib3JkZXItY29sb3I6dHJhbnNwYXJlbnQgcmdiYSgwLDIwMSwyNTUsMC4zNSkgdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnR9LmFydGljbGUtLWNvbnRlbnQgLm5vdGUgYTpob3Zlcntjb2xvcjojNkJERkZGfS5hcnRpY2xlLS1jb250ZW50IC5ub3RlIGE6aG92ZXIgY29kZTphZnRlcntib3JkZXItY29sb3I6dHJhbnNwYXJlbnQgIzZCREZGRiB0cmFuc3BhcmVudCB0cmFuc3BhcmVudH0uYXJ0aWNsZS0tY29udGVudCAubm90ZSBvbCBsaTpiZWZvcmV7Y29sb3I6I0JFRjBGRn0uYXJ0aWNsZS0tY29udGVudCAubm90ZSBjb2RlLC5hcnRpY2xlLS1jb250ZW50IC5ub3RlIHByZXtjb2xvcjojMDBDOUZGO2JhY2tncm91bmQ6IzBhMDcxY30uYXJ0aWNsZS0tY29udGVudCAubm90ZSBpbWd7Ym94LXNoYWRvdzoxcHggM3B4IDEwcHggIzBGMEUxNX0uYXJ0aWNsZS0tY29udGVudCAubm90ZSB0YWJsZXtjb2xvcjojQkVGMEZGO2JveC1zaGFkb3c6MXB4IDNweCAxMHB4ICMwRjBFMTV9LmFydGljbGUtLWNvbnRlbnQgLm5vdGUgdGFibGUgdGhlYWR7YmFja2dyb3VuZDpsaW5lYXItZ3JhZGllbnQoNDVkZWcsICMwQjNBOEQsIzA2NkZDNSl9LmFydGljbGUtLWNvbnRlbnQgLm5vdGUgdGFibGUgdHI6bnRoLWNoaWxkKGV2ZW4pIHRke2JhY2tncm91bmQ6IzFiM2E1OH0uYXJ0aWNsZS0tY29udGVudCAubm90ZSBibG9ja3F1b3Rle2JvcmRlci1jb2xvcjpyZ2JhKDE5MCwyNDAsMjU1LDAuMjUpfS5hcnRpY2xlLS1jb250ZW50IC5ub3RlIGJsb2NrcXVvdGUgcHtjb2xvcjpyZ2JhKDE5MCwyNDAsMjU1LDAuNil9LmFydGljbGUtLWNvbnRlbnQgLm5vdGUgLmNvZGUtdGFicy13cmFwcGVyIC5jb2RlLXRhYnMgYXtiYWNrZ3JvdW5kOnRyYW5zcGFyZW50O2NvbG9yOnJnYmEoMTkwLDI0MCwyNTUsMC41KX0uYXJ0aWNsZS0tY29udGVudCAubm90ZSAuY29kZS10YWJzLXdyYXBwZXIgLmNvZGUtdGFicyBhOmhvdmVye2NvbG9yOiNiZWYwZmZ9LmFydGljbGUtLWNvbnRlbnQgLm5vdGUgLmNvZGUtdGFicy13cmFwcGVyIC5jb2RlLXRhYnMgYS5pcy1hY3RpdmV7Y29sb3I6I2JlZjBmZjtiYWNrZ3JvdW5kOiMwYTA3MWN9LmFydGljbGUtLWNvbnRlbnQgLm5vdGUgaHIsLmFydGljbGUtLWNvbnRlbnQgLm5vdGUgLmV4cGFuZHtib3JkZXItY29sb3I6cmdiYSgwLDE2MywyNTUsMC40KSAhaW1wb3J0YW50fS5hcnRpY2xlLS1jb250ZW50IC5ub3RlIHByZTo6LXdlYmtpdC1zY3JvbGxiYXJ7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDEwLDcsMjgsMCk7d2lkdGg6MTJweDtoZWlnaHQ6MTJweH0uYXJ0aWNsZS0tY29udGVudCAubm90ZSBwcmU6Oi13ZWJraXQtc2Nyb2xsYmFyLXRyYWNre2JhY2tncm91bmQtY29sb3I6IzBhMDcxYztib3JkZXItcmFkaXVzOjAgMCAycHggMnB4fS5hcnRpY2xlLS1jb250ZW50IC5ub3RlIHByZTo6LXdlYmtpdC1zY3JvbGxiYXItdGh1bWJ7YmFja2dyb3VuZC1jb2xvcjojMTkyYTNhO2JvcmRlcjozcHggc29saWQgIzBhMDcxYztib3JkZXItcmFkaXVzOjZweH0uYXJ0aWNsZS0tY29udGVudCAubm90ZSB0YWJsZTo6LXdlYmtpdC1zY3JvbGxiYXJ7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDI3LDU4LDg4LDApO3dpZHRoOjEycHg7aGVpZ2h0OjEycHh9LmFydGljbGUtLWNvbnRlbnQgLm5vdGUgdGFibGU6Oi13ZWJraXQtc2Nyb2xsYmFyLXRyYWNre2JhY2tncm91bmQtY29sb3I6IzFiM2E1ODtib3JkZXItcmFkaXVzOjAgMCAycHggMnB4fS5hcnRpY2xlLS1jb250ZW50IC5ub3RlIHRhYmxlOjotd2Via2l0LXNjcm9sbGJhci10aHVtYntiYWNrZ3JvdW5kLWNvbG9yOiMxOTJhM2E7Ym9yZGVyOjNweCBzb2xpZCAjMWIzYTU4O2JvcmRlci1yYWRpdXM6NnB4fS5hcnRpY2xlLS1jb250ZW50IC5ub3RlIC5oaWdobGlnaHR7Y29sb3I6IzAwQzlGRn0uYXJ0aWNsZS0tY29udGVudCAubm90ZSAuaGlnaGxpZ2h0IC5naCwuYXJ0aWNsZS0tY29udGVudCAubm90ZSAuaGlnaGxpZ2h0IC5nbywuYXJ0aWNsZS0tY29udGVudCAubm90ZSAuaGlnaGxpZ2h0IC5uYSwuYXJ0aWNsZS0tY29udGVudCAubm90ZSAuaGlnaGxpZ2h0IC5udCwuYXJ0aWNsZS0tY29udGVudCAubm90ZSAuaGlnaGxpZ2h0IC5udiwuYXJ0aWNsZS0tY29udGVudCAubm90ZSAuaGlnaGxpZ2h0IC5vd3tjb2xvcjojMDBDOUZGfS5hcnRpY2xlLS1jb250ZW50IC5ub3RlIC5oaWdobGlnaHQgLmMsLmFydGljbGUtLWNvbnRlbnQgLm5vdGUgLmhpZ2hsaWdodCAuY2gsLmFydGljbGUtLWNvbnRlbnQgLm5vdGUgLmhpZ2hsaWdodCAuY20sLmFydGljbGUtLWNvbnRlbnQgLm5vdGUgLmhpZ2hsaWdodCAuY3BmLC5hcnRpY2xlLS1jb250ZW50IC5ub3RlIC5oaWdobGlnaHQgLmMxLC5hcnRpY2xlLS1jb250ZW50IC5ub3RlIC5oaWdobGlnaHQgLmNzLC5hcnRpY2xlLS1jb250ZW50IC5ub3RlIC5oaWdobGlnaHQgLnd7Y29sb3I6IzU2NzM3NX0uYXJ0aWNsZS0tY29udGVudCAubm90ZSAuaGlnaGxpZ2h0IC5naXtiYWNrZ3JvdW5kLWNvbG9yOiM1NjczNzV9LmFydGljbGUtLWNvbnRlbnQgLm5vdGUgLmhpZ2hsaWdodCAuaywuYXJ0aWNsZS0tY29udGVudCAubm90ZSAuaGlnaGxpZ2h0IC5rYywuYXJ0aWNsZS0tY29udGVudCAubm90ZSAuaGlnaGxpZ2h0IC5rZCwuYXJ0aWNsZS0tY29udGVudCAubm90ZSAuaGlnaGxpZ2h0IC5rbiwuYXJ0aWNsZS0tY29udGVudCAubm90ZSAuaGlnaGxpZ2h0IC5rcCwuYXJ0aWNsZS0tY29udGVudCAubm90ZSAuaGlnaGxpZ2h0IC5rciwuYXJ0aWNsZS0tY29udGVudCAubm90ZSAuaGlnaGxpZ2h0IC5ubntjb2xvcjojMDBBM0ZGfS5hcnRpY2xlLS1jb250ZW50IC5ub3RlIC5oaWdobGlnaHQgLmJwLC5hcnRpY2xlLS1jb250ZW50IC5ub3RlIC5oaWdobGlnaHQgLmNwLC5hcnRpY2xlLS1jb250ZW50IC5ub3RlIC5oaWdobGlnaHQgLmRsLC5hcnRpY2xlLS1jb250ZW50IC5ub3RlIC5oaWdobGlnaHQgLmd0LC5hcnRpY2xlLS1jb250ZW50IC5ub3RlIC5oaWdobGlnaHQgLmd1LC5hcnRpY2xlLS1jb250ZW50IC5ub3RlIC5oaWdobGlnaHQgLmt0LC5hcnRpY2xlLS1jb250ZW50IC5ub3RlIC5oaWdobGlnaHQgLm5iLC5hcnRpY2xlLS1jb250ZW50IC5ub3RlIC5oaWdobGlnaHQgLm5jLC5hcnRpY2xlLS1jb250ZW50IC5ub3RlIC5oaWdobGlnaHQgLm5vLC5hcnRpY2xlLS1jb250ZW50IC5ub3RlIC5oaWdobGlnaHQgLnNhLC5hcnRpY2xlLS1jb250ZW50IC5ub3RlIC5oaWdobGlnaHQgLnNiLC5hcnRpY2xlLS1jb250ZW50IC5ub3RlIC5oaWdobGlnaHQgLnNjLC5hcnRpY2xlLS1jb250ZW50IC5ub3RlIC5oaWdobGlnaHQgLnNkLC5hcnRpY2xlLS1jb250ZW50IC5ub3RlIC5oaWdobGlnaHQgLnNlLC5hcnRpY2xlLS1jb250ZW50IC5ub3RlIC5oaWdobGlnaHQgLnNoLC5hcnRpY2xlLS1jb250ZW50IC5ub3RlIC5oaWdobGlnaHQgLnN4LC5hcnRpY2xlLS1jb250ZW50IC5ub3RlIC5oaWdobGlnaHQgLnNyLC5hcnRpY2xlLS1jb250ZW50IC5ub3RlIC5oaWdobGlnaHQgLnMxLC5hcnRpY2xlLS1jb250ZW50IC5ub3RlIC5oaWdobGlnaHQgLnMye2NvbG9yOiMwMDlGNUZ9LmFydGljbGUtLWNvbnRlbnQgLm5vdGUgLmhpZ2hsaWdodCAuZXJyLC5hcnRpY2xlLS1jb250ZW50IC5ub3RlIC5oaWdobGlnaHQgLmZtLC5hcnRpY2xlLS1jb250ZW50IC5ub3RlIC5oaWdobGlnaHQgLmdyLC5hcnRpY2xlLS1jb250ZW50IC5ub3RlIC5oaWdobGlnaHQgLmdkLC5hcnRpY2xlLS1jb250ZW50IC5ub3RlIC5oaWdobGlnaHQgLm5kLC5hcnRpY2xlLS1jb250ZW50IC5ub3RlIC5oaWdobGlnaHQgLm5lLC5hcnRpY2xlLS1jb250ZW50IC5ub3RlIC5oaWdobGlnaHQgLm5mLC5hcnRpY2xlLS1jb250ZW50IC5ub3RlIC5oaWdobGlnaHQgLm5sLC5hcnRpY2xlLS1jb250ZW50IC5ub3RlIC5oaWdobGlnaHQgLnNpe2NvbG9yOiNCRjNENUV9LmFydGljbGUtLWNvbnRlbnQgLm5vdGUgLmhpZ2hsaWdodCAubSwuYXJ0aWNsZS0tY29udGVudCAubm90ZSAuaGlnaGxpZ2h0IC5uaSwuYXJ0aWNsZS0tY29udGVudCAubm90ZSAuaGlnaGxpZ2h0IC5tYiwuYXJ0aWNsZS0tY29udGVudCAubm90ZSAuaGlnaGxpZ2h0IC5tZiwuYXJ0aWNsZS0tY29udGVudCAubm90ZSAuaGlnaGxpZ2h0IC5taCwuYXJ0aWNsZS0tY29udGVudCAubm90ZSAuaGlnaGxpZ2h0IC5taSwuYXJ0aWNsZS0tY29udGVudCAubm90ZSAuaGlnaGxpZ2h0IC5tbywuYXJ0aWNsZS0tY29udGVudCAubm90ZSAuaGlnaGxpZ2h0IC52YywuYXJ0aWNsZS0tY29udGVudCAubm90ZSAuaGlnaGxpZ2h0IC52ZywuYXJ0aWNsZS0tY29udGVudCAubm90ZSAuaGlnaGxpZ2h0IC52aSwuYXJ0aWNsZS0tY29udGVudCAubm90ZSAuaGlnaGxpZ2h0IC52bSwuYXJ0aWNsZS0tY29udGVudCAubm90ZSAuaGlnaGxpZ2h0IC5pbHtjb2xvcjojZmY2ZGIwfS5hcnRpY2xlLS1jb250ZW50IC5ub3RlIC5oaWdobGlnaHQgLmdwLC5hcnRpY2xlLS1jb250ZW50IC5ub3RlIC5oaWdobGlnaHQgLm97Y29sb3I6IzAwQTNGRn0uYXJ0aWNsZS0tY29udGVudCAubm90ZSAuaGlnaGxpZ2h0IC5zc3tjb2xvcjojZTkwfS5hcnRpY2xlLS1jb250ZW50IC5ub3RlIC5oaWdobGlnaHQgLmxhbmd1YWdlLWpzIC5taSsubngsLmFydGljbGUtLWNvbnRlbnQgLm5vdGUgLmhpZ2hsaWdodCAubGFuZ3VhZ2UtanMgLm1mKy5ueHtjb2xvcjojZmY2ZGIwfS5hcnRpY2xlLS1jb250ZW50IC5ub3RlIC5oaWdobGlnaHQgLmxhbmd1YWdlLXNxbCAubWkrLm57Y29sb3I6I2ZmNmRiMH0uYXJ0aWNsZS0tY29udGVudCAudGlwe2JvcmRlci1jb2xvcjojMDA5RjVGO2JhY2tncm91bmQ6cmdiYSgwLDE1OSw5NSwwLjEyKX0uYXJ0aWNsZS0tY29udGVudCAudGlwOmJlZm9yZXtjb250ZW50OlwiVFwiO2NvbG9yOiNmZmY7YmFja2dyb3VuZDojMDA5RjVGfS5hcnRpY2xlLS1jb250ZW50IC50aXAgaDEsLmFydGljbGUtLWNvbnRlbnQgLnRpcCBoMiwuYXJ0aWNsZS0tY29udGVudCAudGlwIGgzLC5hcnRpY2xlLS1jb250ZW50IC50aXAgaDQsLmFydGljbGUtLWNvbnRlbnQgLnRpcCBoNSwuYXJ0aWNsZS0tY29udGVudCAudGlwIGg2e2NvbG9yOiNmZmZ9LmFydGljbGUtLWNvbnRlbnQgLnRpcCBoMSBhLC5hcnRpY2xlLS1jb250ZW50IC50aXAgaDIgYSwuYXJ0aWNsZS0tY29udGVudCAudGlwIGgzIGEsLmFydGljbGUtLWNvbnRlbnQgLnRpcCBoNCBhLC5hcnRpY2xlLS1jb250ZW50IC50aXAgaDUgYSwuYXJ0aWNsZS0tY29udGVudCAudGlwIGg2IGF7Y29sb3I6aW5oZXJpdCAhaW1wb3J0YW50fS5hcnRpY2xlLS1jb250ZW50IC50aXAgaDEgYTpob3ZlciwuYXJ0aWNsZS0tY29udGVudCAudGlwIGgyIGE6aG92ZXIsLmFydGljbGUtLWNvbnRlbnQgLnRpcCBoMyBhOmhvdmVyLC5hcnRpY2xlLS1jb250ZW50IC50aXAgaDQgYTpob3ZlciwuYXJ0aWNsZS0tY29udGVudCAudGlwIGg1IGE6aG92ZXIsLmFydGljbGUtLWNvbnRlbnQgLnRpcCBoNiBhOmhvdmVye2NvbG9yOmluaGVyaXQgIWltcG9ydGFudH0uYXJ0aWNsZS0tY29udGVudCAudGlwIHAsLmFydGljbGUtLWNvbnRlbnQgLnRpcCBsaXtjb2xvcjojNjdENzRFfS5hcnRpY2xlLS1jb250ZW50IC50aXAgc3Ryb25ne2NvbG9yOiNmZmZ9LmFydGljbGUtLWNvbnRlbnQgLnRpcCBhe2NvbG9yOiNDNkY5OEV9LmFydGljbGUtLWNvbnRlbnQgLnRpcCBhIGNvZGU6YWZ0ZXJ7Ym9yZGVyLWNvbG9yOnRyYW5zcGFyZW50IHJnYmEoMTQ3LDE0OCwyNTUsMC4zNSkgdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnR9LmFydGljbGUtLWNvbnRlbnQgLnRpcCBhOmhvdmVye2NvbG9yOiNmZmZ9LmFydGljbGUtLWNvbnRlbnQgLnRpcCBhOmhvdmVyIGNvZGU6YWZ0ZXJ7Ym9yZGVyLWNvbG9yOnRyYW5zcGFyZW50ICNmZmYgdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnR9LmFydGljbGUtLWNvbnRlbnQgLnRpcCBvbCBsaTpiZWZvcmV7Y29sb3I6IzY3RDc0RX0uYXJ0aWNsZS0tY29udGVudCAudGlwIGNvZGUsLmFydGljbGUtLWNvbnRlbnQgLnRpcCBwcmV7Y29sb3I6IzkzOTRGRjtiYWNrZ3JvdW5kOiMwNDBkMGV9LmFydGljbGUtLWNvbnRlbnQgLnRpcCBpbWd7Ym94LXNoYWRvdzoxcHggM3B4IDEwcHggIzBGMEUxNX0uYXJ0aWNsZS0tY29udGVudCAudGlwIHRhYmxle2NvbG9yOiM2N0Q3NEU7Ym94LXNoYWRvdzoxcHggM3B4IDEwcHggIzBGMEUxNX0uYXJ0aWNsZS0tY29udGVudCAudGlwIHRhYmxlIHRoZWFke2JhY2tncm91bmQ6bGluZWFyLWdyYWRpZW50KDQ1ZGVnLCAjMDA2RjQ5LCMwMDlGNUYpfS5hcnRpY2xlLS1jb250ZW50IC50aXAgdGFibGUgdHI6bnRoLWNoaWxkKGV2ZW4pIHRke2JhY2tncm91bmQ6IzFhM2MzNH0uYXJ0aWNsZS0tY29udGVudCAudGlwIGJsb2NrcXVvdGV7Ym9yZGVyLWNvbG9yOnJnYmEoMTAzLDIxNSw3OCwwLjI1KX0uYXJ0aWNsZS0tY29udGVudCAudGlwIGJsb2NrcXVvdGUgcHtjb2xvcjpyZ2JhKDEwMywyMTUsNzgsMC42KX0uYXJ0aWNsZS0tY29udGVudCAudGlwIC5jb2RlLXRhYnMtd3JhcHBlciAuY29kZS10YWJzIGF7YmFja2dyb3VuZDp0cmFuc3BhcmVudDtjb2xvcjpyZ2JhKDEwMywyMTUsNzgsMC41KX0uYXJ0aWNsZS0tY29udGVudCAudGlwIC5jb2RlLXRhYnMtd3JhcHBlciAuY29kZS10YWJzIGE6aG92ZXJ7Y29sb3I6IzY3ZDc0ZX0uYXJ0aWNsZS0tY29udGVudCAudGlwIC5jb2RlLXRhYnMtd3JhcHBlciAuY29kZS10YWJzIGEuaXMtYWN0aXZle2NvbG9yOiM2N2Q3NGU7YmFja2dyb3VuZDojMDQwZDBlfS5hcnRpY2xlLS1jb250ZW50IC50aXAuZmxleHtmb250LXN0eWxlOml0YWxpYztkaXNwbGF5OmZsZXh9LmFydGljbGUtLWNvbnRlbnQgLnRpcC5mbGV4IGRpdjpmaXJzdC1jaGlsZHtwb3NpdGlvbjpyZWxhdGl2ZTttYXJnaW46LjI1cmVtIDJyZW0gMCAwfS5hcnRpY2xlLS1jb250ZW50IC50aXAgaHIsLmFydGljbGUtLWNvbnRlbnQgLnRpcCAuZXhwYW5ke2JvcmRlci1jb2xvcjpyZ2JhKDAsMTU5LDk1LDAuNCkgIWltcG9ydGFudH0uYXJ0aWNsZS0tY29udGVudCAudGlwIHByZTo6LXdlYmtpdC1zY3JvbGxiYXJ7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDQsMTMsMTQsMCk7d2lkdGg6MTJweDtoZWlnaHQ6MTJweH0uYXJ0aWNsZS0tY29udGVudCAudGlwIHByZTo6LXdlYmtpdC1zY3JvbGxiYXItdHJhY2t7YmFja2dyb3VuZC1jb2xvcjojMDQwZDBlO2JvcmRlci1yYWRpdXM6MCAwIDJweCAycHh9LmFydGljbGUtLWNvbnRlbnQgLnRpcCBwcmU6Oi13ZWJraXQtc2Nyb2xsYmFyLXRodW1ie2JhY2tncm91bmQtY29sb3I6IzE2MjYyNztib3JkZXI6M3B4IHNvbGlkICMwNDBkMGU7Ym9yZGVyLXJhZGl1czo2cHh9LmFydGljbGUtLWNvbnRlbnQgLnRpcCB0YWJsZTo6LXdlYmtpdC1zY3JvbGxiYXJ7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDI2LDYwLDUyLDApO3dpZHRoOjEycHg7aGVpZ2h0OjEycHh9LmFydGljbGUtLWNvbnRlbnQgLnRpcCB0YWJsZTo6LXdlYmtpdC1zY3JvbGxiYXItdHJhY2t7YmFja2dyb3VuZC1jb2xvcjojMWEzYzM0O2JvcmRlci1yYWRpdXM6MCAwIDJweCAycHh9LmFydGljbGUtLWNvbnRlbnQgLnRpcCB0YWJsZTo6LXdlYmtpdC1zY3JvbGxiYXItdGh1bWJ7YmFja2dyb3VuZC1jb2xvcjojMTYyNjI3O2JvcmRlcjozcHggc29saWQgIzFhM2MzNDtib3JkZXItcmFkaXVzOjZweH0uYXJ0aWNsZS0tY29udGVudCAudGlwIC5oaWdobGlnaHR7Y29sb3I6IzkzOTRGRn0uYXJ0aWNsZS0tY29udGVudCAudGlwIC5oaWdobGlnaHQgLmdoLC5hcnRpY2xlLS1jb250ZW50IC50aXAgLmhpZ2hsaWdodCAuZ28sLmFydGljbGUtLWNvbnRlbnQgLnRpcCAuaGlnaGxpZ2h0IC5uYSwuYXJ0aWNsZS0tY29udGVudCAudGlwIC5oaWdobGlnaHQgLm50LC5hcnRpY2xlLS1jb250ZW50IC50aXAgLmhpZ2hsaWdodCAubnYsLmFydGljbGUtLWNvbnRlbnQgLnRpcCAuaGlnaGxpZ2h0IC5vd3tjb2xvcjojOTM5NEZGfS5hcnRpY2xlLS1jb250ZW50IC50aXAgLmhpZ2hsaWdodCAuYywuYXJ0aWNsZS0tY29udGVudCAudGlwIC5oaWdobGlnaHQgLmNoLC5hcnRpY2xlLS1jb250ZW50IC50aXAgLmhpZ2hsaWdodCAuY20sLmFydGljbGUtLWNvbnRlbnQgLnRpcCAuaGlnaGxpZ2h0IC5jcGYsLmFydGljbGUtLWNvbnRlbnQgLnRpcCAuaGlnaGxpZ2h0IC5jMSwuYXJ0aWNsZS0tY29udGVudCAudGlwIC5oaWdobGlnaHQgLmNzLC5hcnRpY2xlLS1jb250ZW50IC50aXAgLmhpZ2hsaWdodCAud3tjb2xvcjojNTY3Mzc1fS5hcnRpY2xlLS1jb250ZW50IC50aXAgLmhpZ2hsaWdodCAuZ2l7YmFja2dyb3VuZC1jb2xvcjojNTY3Mzc1fS5hcnRpY2xlLS1jb250ZW50IC50aXAgLmhpZ2hsaWdodCAuaywuYXJ0aWNsZS0tY29udGVudCAudGlwIC5oaWdobGlnaHQgLmtjLC5hcnRpY2xlLS1jb250ZW50IC50aXAgLmhpZ2hsaWdodCAua2QsLmFydGljbGUtLWNvbnRlbnQgLnRpcCAuaGlnaGxpZ2h0IC5rbiwuYXJ0aWNsZS0tY29udGVudCAudGlwIC5oaWdobGlnaHQgLmtwLC5hcnRpY2xlLS1jb250ZW50IC50aXAgLmhpZ2hsaWdodCAua3IsLmFydGljbGUtLWNvbnRlbnQgLnRpcCAuaGlnaGxpZ2h0IC5ubntjb2xvcjojMDBBM0ZGfS5hcnRpY2xlLS1jb250ZW50IC50aXAgLmhpZ2hsaWdodCAuYnAsLmFydGljbGUtLWNvbnRlbnQgLnRpcCAuaGlnaGxpZ2h0IC5jcCwuYXJ0aWNsZS0tY29udGVudCAudGlwIC5oaWdobGlnaHQgLmRsLC5hcnRpY2xlLS1jb250ZW50IC50aXAgLmhpZ2hsaWdodCAuZ3QsLmFydGljbGUtLWNvbnRlbnQgLnRpcCAuaGlnaGxpZ2h0IC5ndSwuYXJ0aWNsZS0tY29udGVudCAudGlwIC5oaWdobGlnaHQgLmt0LC5hcnRpY2xlLS1jb250ZW50IC50aXAgLmhpZ2hsaWdodCAubmIsLmFydGljbGUtLWNvbnRlbnQgLnRpcCAuaGlnaGxpZ2h0IC5uYywuYXJ0aWNsZS0tY29udGVudCAudGlwIC5oaWdobGlnaHQgLm5vLC5hcnRpY2xlLS1jb250ZW50IC50aXAgLmhpZ2hsaWdodCAuc2EsLmFydGljbGUtLWNvbnRlbnQgLnRpcCAuaGlnaGxpZ2h0IC5zYiwuYXJ0aWNsZS0tY29udGVudCAudGlwIC5oaWdobGlnaHQgLnNjLC5hcnRpY2xlLS1jb250ZW50IC50aXAgLmhpZ2hsaWdodCAuc2QsLmFydGljbGUtLWNvbnRlbnQgLnRpcCAuaGlnaGxpZ2h0IC5zZSwuYXJ0aWNsZS0tY29udGVudCAudGlwIC5oaWdobGlnaHQgLnNoLC5hcnRpY2xlLS1jb250ZW50IC50aXAgLmhpZ2hsaWdodCAuc3gsLmFydGljbGUtLWNvbnRlbnQgLnRpcCAuaGlnaGxpZ2h0IC5zciwuYXJ0aWNsZS0tY29udGVudCAudGlwIC5oaWdobGlnaHQgLnMxLC5hcnRpY2xlLS1jb250ZW50IC50aXAgLmhpZ2hsaWdodCAuczJ7Y29sb3I6IzAwOUY1Rn0uYXJ0aWNsZS0tY29udGVudCAudGlwIC5oaWdobGlnaHQgLmVyciwuYXJ0aWNsZS0tY29udGVudCAudGlwIC5oaWdobGlnaHQgLmZtLC5hcnRpY2xlLS1jb250ZW50IC50aXAgLmhpZ2hsaWdodCAuZ3IsLmFydGljbGUtLWNvbnRlbnQgLnRpcCAuaGlnaGxpZ2h0IC5nZCwuYXJ0aWNsZS0tY29udGVudCAudGlwIC5oaWdobGlnaHQgLm5kLC5hcnRpY2xlLS1jb250ZW50IC50aXAgLmhpZ2hsaWdodCAubmUsLmFydGljbGUtLWNvbnRlbnQgLnRpcCAuaGlnaGxpZ2h0IC5uZiwuYXJ0aWNsZS0tY29udGVudCAudGlwIC5oaWdobGlnaHQgLm5sLC5hcnRpY2xlLS1jb250ZW50IC50aXAgLmhpZ2hsaWdodCAuc2l7Y29sb3I6I0JGM0Q1RX0uYXJ0aWNsZS0tY29udGVudCAudGlwIC5oaWdobGlnaHQgLm0sLmFydGljbGUtLWNvbnRlbnQgLnRpcCAuaGlnaGxpZ2h0IC5uaSwuYXJ0aWNsZS0tY29udGVudCAudGlwIC5oaWdobGlnaHQgLm1iLC5hcnRpY2xlLS1jb250ZW50IC50aXAgLmhpZ2hsaWdodCAubWYsLmFydGljbGUtLWNvbnRlbnQgLnRpcCAuaGlnaGxpZ2h0IC5taCwuYXJ0aWNsZS0tY29udGVudCAudGlwIC5oaWdobGlnaHQgLm1pLC5hcnRpY2xlLS1jb250ZW50IC50aXAgLmhpZ2hsaWdodCAubW8sLmFydGljbGUtLWNvbnRlbnQgLnRpcCAuaGlnaGxpZ2h0IC52YywuYXJ0aWNsZS0tY29udGVudCAudGlwIC5oaWdobGlnaHQgLnZnLC5hcnRpY2xlLS1jb250ZW50IC50aXAgLmhpZ2hsaWdodCAudmksLmFydGljbGUtLWNvbnRlbnQgLnRpcCAuaGlnaGxpZ2h0IC52bSwuYXJ0aWNsZS0tY29udGVudCAudGlwIC5oaWdobGlnaHQgLmlse2NvbG9yOiNmZjZkYjB9LmFydGljbGUtLWNvbnRlbnQgLnRpcCAuaGlnaGxpZ2h0IC5ncCwuYXJ0aWNsZS0tY29udGVudCAudGlwIC5oaWdobGlnaHQgLm97Y29sb3I6IzAwQTNGRn0uYXJ0aWNsZS0tY29udGVudCAudGlwIC5oaWdobGlnaHQgLnNze2NvbG9yOiNlOTB9LmFydGljbGUtLWNvbnRlbnQgLnRpcCAuaGlnaGxpZ2h0IC5sYW5ndWFnZS1qcyAubWkrLm54LC5hcnRpY2xlLS1jb250ZW50IC50aXAgLmhpZ2hsaWdodCAubGFuZ3VhZ2UtanMgLm1mKy5ueHtjb2xvcjojZmY2ZGIwfS5hcnRpY2xlLS1jb250ZW50IC50aXAgLmhpZ2hsaWdodCAubGFuZ3VhZ2Utc3FsIC5taSsubntjb2xvcjojZmY2ZGIwfS5hcnRpY2xlLS1jb250ZW50IC5pbXBvcnRhbnR7Ym9yZGVyLWNvbG9yOiM5Mzk0RkY7YmFja2dyb3VuZDpyZ2JhKDE0NywxNDgsMjU1LDAuMTUpfS5hcnRpY2xlLS1jb250ZW50IC5pbXBvcnRhbnQ6YmVmb3Jle2NvbnRlbnQ6XCJJXCI7Y29sb3I6I2ZmZjtiYWNrZ3JvdW5kOiM5Mzk0RkZ9LmFydGljbGUtLWNvbnRlbnQgLmltcG9ydGFudCBoMSwuYXJ0aWNsZS0tY29udGVudCAuaW1wb3J0YW50IGgyLC5hcnRpY2xlLS1jb250ZW50IC5pbXBvcnRhbnQgaDMsLmFydGljbGUtLWNvbnRlbnQgLmltcG9ydGFudCBoNCwuYXJ0aWNsZS0tY29udGVudCAuaW1wb3J0YW50IGg1LC5hcnRpY2xlLS1jb250ZW50IC5pbXBvcnRhbnQgaDZ7Y29sb3I6I2ZmZn0uYXJ0aWNsZS0tY29udGVudCAuaW1wb3J0YW50IGgxIGEsLmFydGljbGUtLWNvbnRlbnQgLmltcG9ydGFudCBoMiBhLC5hcnRpY2xlLS1jb250ZW50IC5pbXBvcnRhbnQgaDMgYSwuYXJ0aWNsZS0tY29udGVudCAuaW1wb3J0YW50IGg0IGEsLmFydGljbGUtLWNvbnRlbnQgLmltcG9ydGFudCBoNSBhLC5hcnRpY2xlLS1jb250ZW50IC5pbXBvcnRhbnQgaDYgYXtjb2xvcjppbmhlcml0ICFpbXBvcnRhbnR9LmFydGljbGUtLWNvbnRlbnQgLmltcG9ydGFudCBoMSBhOmhvdmVyLC5hcnRpY2xlLS1jb250ZW50IC5pbXBvcnRhbnQgaDIgYTpob3ZlciwuYXJ0aWNsZS0tY29udGVudCAuaW1wb3J0YW50IGgzIGE6aG92ZXIsLmFydGljbGUtLWNvbnRlbnQgLmltcG9ydGFudCBoNCBhOmhvdmVyLC5hcnRpY2xlLS1jb250ZW50IC5pbXBvcnRhbnQgaDUgYTpob3ZlciwuYXJ0aWNsZS0tY29udGVudCAuaW1wb3J0YW50IGg2IGE6aG92ZXJ7Y29sb3I6aW5oZXJpdCAhaW1wb3J0YW50fS5hcnRpY2xlLS1jb250ZW50IC5pbXBvcnRhbnQgcCwuYXJ0aWNsZS0tY29udGVudCAuaW1wb3J0YW50IGxpe2NvbG9yOiNCN0I4RkZ9LmFydGljbGUtLWNvbnRlbnQgLmltcG9ydGFudCBzdHJvbmd7Y29sb3I6I2ZmZn0uYXJ0aWNsZS0tY29udGVudCAuaW1wb3J0YW50IGF7Y29sb3I6Izc5N2FmZn0uYXJ0aWNsZS0tY29udGVudCAuaW1wb3J0YW50IGEgY29kZTphZnRlcntib3JkZXItY29sb3I6dHJhbnNwYXJlbnQgcmdiYSgxNTksMTQ2LDI1NSwwLjM1KSB0cmFuc3BhcmVudCB0cmFuc3BhcmVudH0uYXJ0aWNsZS0tY29udGVudCAuaW1wb3J0YW50IGE6aG92ZXJ7Y29sb3I6I2ZmZn0uYXJ0aWNsZS0tY29udGVudCAuaW1wb3J0YW50IGE6aG92ZXIgY29kZTphZnRlcntib3JkZXItY29sb3I6dHJhbnNwYXJlbnQgI2ZmZiB0cmFuc3BhcmVudCB0cmFuc3BhcmVudH0uYXJ0aWNsZS0tY29udGVudCAuaW1wb3J0YW50IG9sIGxpOmJlZm9yZXtjb2xvcjojQjdCOEZGfS5hcnRpY2xlLS1jb250ZW50IC5pbXBvcnRhbnQgY29kZSwuYXJ0aWNsZS0tY29udGVudCAuaW1wb3J0YW50IHByZXtjb2xvcjojOWY5MmZmO2JhY2tncm91bmQ6IzBhMDcxY30uYXJ0aWNsZS0tY29udGVudCAuaW1wb3J0YW50IGltZ3tib3gtc2hhZG93OjFweCAzcHggMTBweCAjMTExMTFkfS5hcnRpY2xlLS1jb250ZW50IC5pbXBvcnRhbnQgdGFibGV7Y29sb3I6I0I3QjhGRjtib3gtc2hhZG93OjFweCAzcHggMTBweCAjMTExMTFkfS5hcnRpY2xlLS1jb250ZW50IC5pbXBvcnRhbnQgdGFibGUgdGhlYWR7YmFja2dyb3VuZDpsaW5lYXItZ3JhZGllbnQoNDVkZWcsICM1MTNDQzYsIzkzOTRGRil9LmFydGljbGUtLWNvbnRlbnQgLmltcG9ydGFudCB0YWJsZSB0cjpudGgtY2hpbGQoZXZlbikgdGR7YmFja2dyb3VuZDojMWIxYjMzfS5hcnRpY2xlLS1jb250ZW50IC5pbXBvcnRhbnQgYmxvY2txdW90ZXtib3JkZXItY29sb3I6cmdiYSgxODMsMTg0LDI1NSwwLjI1KX0uYXJ0aWNsZS0tY29udGVudCAuaW1wb3J0YW50IGJsb2NrcXVvdGUgcHtjb2xvcjpyZ2JhKDE4MywxODQsMjU1LDAuNil9LmFydGljbGUtLWNvbnRlbnQgLmltcG9ydGFudCAuY29kZS10YWJzLXdyYXBwZXIgLmNvZGUtdGFicyBhe2JhY2tncm91bmQ6dHJhbnNwYXJlbnQ7Y29sb3I6cmdiYSgxODMsMTg0LDI1NSwwLjUpfS5hcnRpY2xlLS1jb250ZW50IC5pbXBvcnRhbnQgLmNvZGUtdGFicy13cmFwcGVyIC5jb2RlLXRhYnMgYTpob3Zlcntjb2xvcjojYjdiOGZmfS5hcnRpY2xlLS1jb250ZW50IC5pbXBvcnRhbnQgLmNvZGUtdGFicy13cmFwcGVyIC5jb2RlLXRhYnMgYS5pcy1hY3RpdmV7Y29sb3I6I2I3YjhmZjtiYWNrZ3JvdW5kOiMwYTA3MWN9LmFydGljbGUtLWNvbnRlbnQgLmltcG9ydGFudCBociwuYXJ0aWNsZS0tY29udGVudCAuaW1wb3J0YW50IC5leHBhbmR7Ym9yZGVyLWNvbG9yOnJnYmEoMTQ3LDE0OCwyNTUsMC40KSAhaW1wb3J0YW50fS5hcnRpY2xlLS1jb250ZW50IC5pbXBvcnRhbnQgcHJlOjotd2Via2l0LXNjcm9sbGJhcntiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMTAsNywyOCwwKTt3aWR0aDoxMnB4O2hlaWdodDoxMnB4fS5hcnRpY2xlLS1jb250ZW50IC5pbXBvcnRhbnQgcHJlOjotd2Via2l0LXNjcm9sbGJhci10cmFja3tiYWNrZ3JvdW5kLWNvbG9yOiMwYTA3MWM7Ym9yZGVyLXJhZGl1czowIDAgMnB4IDJweH0uYXJ0aWNsZS0tY29udGVudCAuaW1wb3J0YW50IHByZTo6LXdlYmtpdC1zY3JvbGxiYXItdGh1bWJ7YmFja2dyb3VuZC1jb2xvcjojNTY1MTllO2JvcmRlcjozcHggc29saWQgIzBhMDcxYztib3JkZXItcmFkaXVzOjZweH0uYXJ0aWNsZS0tY29udGVudCAuaW1wb3J0YW50IHRhYmxlOjotd2Via2l0LXNjcm9sbGJhcntiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMjcsMjcsNTEsMCk7d2lkdGg6MTJweDtoZWlnaHQ6MTJweH0uYXJ0aWNsZS0tY29udGVudCAuaW1wb3J0YW50IHRhYmxlOjotd2Via2l0LXNjcm9sbGJhci10cmFja3tiYWNrZ3JvdW5kLWNvbG9yOiMxYjFiMzM7Ym9yZGVyLXJhZGl1czowIDAgMnB4IDJweH0uYXJ0aWNsZS0tY29udGVudCAuaW1wb3J0YW50IHRhYmxlOjotd2Via2l0LXNjcm9sbGJhci10aHVtYntiYWNrZ3JvdW5kLWNvbG9yOiM1NjUxOWU7Ym9yZGVyOjNweCBzb2xpZCAjMWIxYjMzO2JvcmRlci1yYWRpdXM6NnB4fS5hcnRpY2xlLS1jb250ZW50IC5pbXBvcnRhbnQgLmhpZ2hsaWdodHtjb2xvcjojOWY5MmZmfS5hcnRpY2xlLS1jb250ZW50IC5pbXBvcnRhbnQgLmhpZ2hsaWdodCAuZ2gsLmFydGljbGUtLWNvbnRlbnQgLmltcG9ydGFudCAuaGlnaGxpZ2h0IC5nbywuYXJ0aWNsZS0tY29udGVudCAuaW1wb3J0YW50IC5oaWdobGlnaHQgLm5hLC5hcnRpY2xlLS1jb250ZW50IC5pbXBvcnRhbnQgLmhpZ2hsaWdodCAubnQsLmFydGljbGUtLWNvbnRlbnQgLmltcG9ydGFudCAuaGlnaGxpZ2h0IC5udiwuYXJ0aWNsZS0tY29udGVudCAuaW1wb3J0YW50IC5oaWdobGlnaHQgLm93e2NvbG9yOiM5ZjkyZmZ9LmFydGljbGUtLWNvbnRlbnQgLmltcG9ydGFudCAuaGlnaGxpZ2h0IC5jLC5hcnRpY2xlLS1jb250ZW50IC5pbXBvcnRhbnQgLmhpZ2hsaWdodCAuY2gsLmFydGljbGUtLWNvbnRlbnQgLmltcG9ydGFudCAuaGlnaGxpZ2h0IC5jbSwuYXJ0aWNsZS0tY29udGVudCAuaW1wb3J0YW50IC5oaWdobGlnaHQgLmNwZiwuYXJ0aWNsZS0tY29udGVudCAuaW1wb3J0YW50IC5oaWdobGlnaHQgLmMxLC5hcnRpY2xlLS1jb250ZW50IC5pbXBvcnRhbnQgLmhpZ2hsaWdodCAuY3MsLmFydGljbGUtLWNvbnRlbnQgLmltcG9ydGFudCAuaGlnaGxpZ2h0IC53e2NvbG9yOiM1ZjUxYWN9LmFydGljbGUtLWNvbnRlbnQgLmltcG9ydGFudCAuaGlnaGxpZ2h0IC5naXtiYWNrZ3JvdW5kLWNvbG9yOiM1ZjUxYWN9LmFydGljbGUtLWNvbnRlbnQgLmltcG9ydGFudCAuaGlnaGxpZ2h0IC5rLC5hcnRpY2xlLS1jb250ZW50IC5pbXBvcnRhbnQgLmhpZ2hsaWdodCAua2MsLmFydGljbGUtLWNvbnRlbnQgLmltcG9ydGFudCAuaGlnaGxpZ2h0IC5rZCwuYXJ0aWNsZS0tY29udGVudCAuaW1wb3J0YW50IC5oaWdobGlnaHQgLmtuLC5hcnRpY2xlLS1jb250ZW50IC5pbXBvcnRhbnQgLmhpZ2hsaWdodCAua3AsLmFydGljbGUtLWNvbnRlbnQgLmltcG9ydGFudCAuaGlnaGxpZ2h0IC5rciwuYXJ0aWNsZS0tY29udGVudCAuaW1wb3J0YW50IC5oaWdobGlnaHQgLm5ue2NvbG9yOiM1MTNDQzZ9LmFydGljbGUtLWNvbnRlbnQgLmltcG9ydGFudCAuaGlnaGxpZ2h0IC5icCwuYXJ0aWNsZS0tY29udGVudCAuaW1wb3J0YW50IC5oaWdobGlnaHQgLmNwLC5hcnRpY2xlLS1jb250ZW50IC5pbXBvcnRhbnQgLmhpZ2hsaWdodCAuZGwsLmFydGljbGUtLWNvbnRlbnQgLmltcG9ydGFudCAuaGlnaGxpZ2h0IC5ndCwuYXJ0aWNsZS0tY29udGVudCAuaW1wb3J0YW50IC5oaWdobGlnaHQgLmd1LC5hcnRpY2xlLS1jb250ZW50IC5pbXBvcnRhbnQgLmhpZ2hsaWdodCAua3QsLmFydGljbGUtLWNvbnRlbnQgLmltcG9ydGFudCAuaGlnaGxpZ2h0IC5uYiwuYXJ0aWNsZS0tY29udGVudCAuaW1wb3J0YW50IC5oaWdobGlnaHQgLm5jLC5hcnRpY2xlLS1jb250ZW50IC5pbXBvcnRhbnQgLmhpZ2hsaWdodCAubm8sLmFydGljbGUtLWNvbnRlbnQgLmltcG9ydGFudCAuaGlnaGxpZ2h0IC5zYSwuYXJ0aWNsZS0tY29udGVudCAuaW1wb3J0YW50IC5oaWdobGlnaHQgLnNiLC5hcnRpY2xlLS1jb250ZW50IC5pbXBvcnRhbnQgLmhpZ2hsaWdodCAuc2MsLmFydGljbGUtLWNvbnRlbnQgLmltcG9ydGFudCAuaGlnaGxpZ2h0IC5zZCwuYXJ0aWNsZS0tY29udGVudCAuaW1wb3J0YW50IC5oaWdobGlnaHQgLnNlLC5hcnRpY2xlLS1jb250ZW50IC5pbXBvcnRhbnQgLmhpZ2hsaWdodCAuc2gsLmFydGljbGUtLWNvbnRlbnQgLmltcG9ydGFudCAuaGlnaGxpZ2h0IC5zeCwuYXJ0aWNsZS0tY29udGVudCAuaW1wb3J0YW50IC5oaWdobGlnaHQgLnNyLC5hcnRpY2xlLS1jb250ZW50IC5pbXBvcnRhbnQgLmhpZ2hsaWdodCAuczEsLmFydGljbGUtLWNvbnRlbnQgLmltcG9ydGFudCAuaGlnaGxpZ2h0IC5zMntjb2xvcjojMDA5YTY0fS5hcnRpY2xlLS1jb250ZW50IC5pbXBvcnRhbnQgLmhpZ2hsaWdodCAuZXJyLC5hcnRpY2xlLS1jb250ZW50IC5pbXBvcnRhbnQgLmhpZ2hsaWdodCAuZm0sLmFydGljbGUtLWNvbnRlbnQgLmltcG9ydGFudCAuaGlnaGxpZ2h0IC5nciwuYXJ0aWNsZS0tY29udGVudCAuaW1wb3J0YW50IC5oaWdobGlnaHQgLmdkLC5hcnRpY2xlLS1jb250ZW50IC5pbXBvcnRhbnQgLmhpZ2hsaWdodCAubmQsLmFydGljbGUtLWNvbnRlbnQgLmltcG9ydGFudCAuaGlnaGxpZ2h0IC5uZSwuYXJ0aWNsZS0tY29udGVudCAuaW1wb3J0YW50IC5oaWdobGlnaHQgLm5mLC5hcnRpY2xlLS1jb250ZW50IC5pbXBvcnRhbnQgLmhpZ2hsaWdodCAubmwsLmFydGljbGUtLWNvbnRlbnQgLmltcG9ydGFudCAuaGlnaGxpZ2h0IC5zaXtjb2xvcjojQkYzRDVFfS5hcnRpY2xlLS1jb250ZW50IC5pbXBvcnRhbnQgLmhpZ2hsaWdodCAubSwuYXJ0aWNsZS0tY29udGVudCAuaW1wb3J0YW50IC5oaWdobGlnaHQgLm5pLC5hcnRpY2xlLS1jb250ZW50IC5pbXBvcnRhbnQgLmhpZ2hsaWdodCAubWIsLmFydGljbGUtLWNvbnRlbnQgLmltcG9ydGFudCAuaGlnaGxpZ2h0IC5tZiwuYXJ0aWNsZS0tY29udGVudCAuaW1wb3J0YW50IC5oaWdobGlnaHQgLm1oLC5hcnRpY2xlLS1jb250ZW50IC5pbXBvcnRhbnQgLmhpZ2hsaWdodCAubWksLmFydGljbGUtLWNvbnRlbnQgLmltcG9ydGFudCAuaGlnaGxpZ2h0IC5tbywuYXJ0aWNsZS0tY29udGVudCAuaW1wb3J0YW50IC5oaWdobGlnaHQgLnZjLC5hcnRpY2xlLS1jb250ZW50IC5pbXBvcnRhbnQgLmhpZ2hsaWdodCAudmcsLmFydGljbGUtLWNvbnRlbnQgLmltcG9ydGFudCAuaGlnaGxpZ2h0IC52aSwuYXJ0aWNsZS0tY29udGVudCAuaW1wb3J0YW50IC5oaWdobGlnaHQgLnZtLC5hcnRpY2xlLS1jb250ZW50IC5pbXBvcnRhbnQgLmhpZ2hsaWdodCAuaWx7Y29sb3I6I2UyNGJiYn0uYXJ0aWNsZS0tY29udGVudCAuaW1wb3J0YW50IC5oaWdobGlnaHQgLmdwLC5hcnRpY2xlLS1jb250ZW50IC5pbXBvcnRhbnQgLmhpZ2hsaWdodCAub3tjb2xvcjojMDBhNWVifS5hcnRpY2xlLS1jb250ZW50IC5pbXBvcnRhbnQgLmhpZ2hsaWdodCAuc3N7Y29sb3I6I2U5MH0uYXJ0aWNsZS0tY29udGVudCAuaW1wb3J0YW50IC5oaWdobGlnaHQgLmxhbmd1YWdlLWpzIC5taSsubngsLmFydGljbGUtLWNvbnRlbnQgLmltcG9ydGFudCAuaGlnaGxpZ2h0IC5sYW5ndWFnZS1qcyAubWYrLm54e2NvbG9yOiNlMjRiYmJ9LmFydGljbGUtLWNvbnRlbnQgLmltcG9ydGFudCAuaGlnaGxpZ2h0IC5sYW5ndWFnZS1zcWwgLm1pKy5ue2NvbG9yOiNlMjRiYmJ9LmFydGljbGUtLWNvbnRlbnQgLndhcm4sLmFydGljbGUtLWNvbnRlbnQgLndhcm5pbmd7Ym9yZGVyLWNvbG9yOiNGRjg1NjQ7YmFja2dyb3VuZDpyZ2JhKDI1NSw5NywxMzMsMC4xMDE5NjEpfS5hcnRpY2xlLS1jb250ZW50IC53YXJuOmJlZm9yZSwuYXJ0aWNsZS0tY29udGVudCAud2FybmluZzpiZWZvcmV7Y29udGVudDpcIldcIjtjb2xvcjojZmZmO2JhY2tncm91bmQ6I0ZGODU2NH0uYXJ0aWNsZS0tY29udGVudCAud2FybiBoMSwuYXJ0aWNsZS0tY29udGVudCAud2FybiBoMiwuYXJ0aWNsZS0tY29udGVudCAud2FybiBoMywuYXJ0aWNsZS0tY29udGVudCAud2FybiBoNCwuYXJ0aWNsZS0tY29udGVudCAud2FybiBoNSwuYXJ0aWNsZS0tY29udGVudCAud2FybiBoNiwuYXJ0aWNsZS0tY29udGVudCAud2FybmluZyBoMSwuYXJ0aWNsZS0tY29udGVudCAud2FybmluZyBoMiwuYXJ0aWNsZS0tY29udGVudCAud2FybmluZyBoMywuYXJ0aWNsZS0tY29udGVudCAud2FybmluZyBoNCwuYXJ0aWNsZS0tY29udGVudCAud2FybmluZyBoNSwuYXJ0aWNsZS0tY29udGVudCAud2FybmluZyBoNntjb2xvcjojZmZmfS5hcnRpY2xlLS1jb250ZW50IC53YXJuIGgxIGEsLmFydGljbGUtLWNvbnRlbnQgLndhcm4gaDIgYSwuYXJ0aWNsZS0tY29udGVudCAud2FybiBoMyBhLC5hcnRpY2xlLS1jb250ZW50IC53YXJuIGg0IGEsLmFydGljbGUtLWNvbnRlbnQgLndhcm4gaDUgYSwuYXJ0aWNsZS0tY29udGVudCAud2FybiBoNiBhLC5hcnRpY2xlLS1jb250ZW50IC53YXJuaW5nIGgxIGEsLmFydGljbGUtLWNvbnRlbnQgLndhcm5pbmcgaDIgYSwuYXJ0aWNsZS0tY29udGVudCAud2FybmluZyBoMyBhLC5hcnRpY2xlLS1jb250ZW50IC53YXJuaW5nIGg0IGEsLmFydGljbGUtLWNvbnRlbnQgLndhcm5pbmcgaDUgYSwuYXJ0aWNsZS0tY29udGVudCAud2FybmluZyBoNiBhe2NvbG9yOmluaGVyaXQgIWltcG9ydGFudH0uYXJ0aWNsZS0tY29udGVudCAud2FybiBoMSBhOmhvdmVyLC5hcnRpY2xlLS1jb250ZW50IC53YXJuIGgyIGE6aG92ZXIsLmFydGljbGUtLWNvbnRlbnQgLndhcm4gaDMgYTpob3ZlciwuYXJ0aWNsZS0tY29udGVudCAud2FybiBoNCBhOmhvdmVyLC5hcnRpY2xlLS1jb250ZW50IC53YXJuIGg1IGE6aG92ZXIsLmFydGljbGUtLWNvbnRlbnQgLndhcm4gaDYgYTpob3ZlciwuYXJ0aWNsZS0tY29udGVudCAud2FybmluZyBoMSBhOmhvdmVyLC5hcnRpY2xlLS1jb250ZW50IC53YXJuaW5nIGgyIGE6aG92ZXIsLmFydGljbGUtLWNvbnRlbnQgLndhcm5pbmcgaDMgYTpob3ZlciwuYXJ0aWNsZS0tY29udGVudCAud2FybmluZyBoNCBhOmhvdmVyLC5hcnRpY2xlLS1jb250ZW50IC53YXJuaW5nIGg1IGE6aG92ZXIsLmFydGljbGUtLWNvbnRlbnQgLndhcm5pbmcgaDYgYTpob3Zlcntjb2xvcjppbmhlcml0ICFpbXBvcnRhbnR9LmFydGljbGUtLWNvbnRlbnQgLndhcm4gcCwuYXJ0aWNsZS0tY29udGVudCAud2FybiBsaSwuYXJ0aWNsZS0tY29udGVudCAud2FybmluZyBwLC5hcnRpY2xlLS1jb250ZW50IC53YXJuaW5nIGxpe2NvbG9yOiNGRkI2QTB9LmFydGljbGUtLWNvbnRlbnQgLndhcm4gc3Ryb25nLC5hcnRpY2xlLS1jb250ZW50IC53YXJuaW5nIHN0cm9uZ3tjb2xvcjojZmZmfS5hcnRpY2xlLS1jb250ZW50IC53YXJuIGEsLmFydGljbGUtLWNvbnRlbnQgLndhcm5pbmcgYXtjb2xvcjojRkZEQ0NGICFpbXBvcnRhbnR9LmFydGljbGUtLWNvbnRlbnQgLndhcm4gYSBjb2RlOmFmdGVyLC5hcnRpY2xlLS1jb250ZW50IC53YXJuaW5nIGEgY29kZTphZnRlcntib3JkZXItY29sb3I6dHJhbnNwYXJlbnQgcmdiYSgyMzYsMTEwLDExMCwwLjM1KSB0cmFuc3BhcmVudCB0cmFuc3BhcmVudH0uYXJ0aWNsZS0tY29udGVudCAud2FybiBhOmhvdmVyLC5hcnRpY2xlLS1jb250ZW50IC53YXJuaW5nIGE6aG92ZXJ7Y29sb3I6I2ZmZiAhaW1wb3J0YW50fS5hcnRpY2xlLS1jb250ZW50IC53YXJuIGE6aG92ZXIgY29kZTphZnRlciwuYXJ0aWNsZS0tY29udGVudCAud2FybmluZyBhOmhvdmVyIGNvZGU6YWZ0ZXJ7Ym9yZGVyLWNvbG9yOnRyYW5zcGFyZW50ICNmZmYgdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnR9LmFydGljbGUtLWNvbnRlbnQgLndhcm4gb2wgbGk6YmVmb3JlLC5hcnRpY2xlLS1jb250ZW50IC53YXJuaW5nIG9sIGxpOmJlZm9yZXtjb2xvcjojRkZCNkEwfS5hcnRpY2xlLS1jb250ZW50IC53YXJuIGNvZGUsLmFydGljbGUtLWNvbnRlbnQgLndhcm4gcHJlLC5hcnRpY2xlLS1jb250ZW50IC53YXJuaW5nIGNvZGUsLmFydGljbGUtLWNvbnRlbnQgLndhcm5pbmcgcHJle2NvbG9yOiNlYzZlNmU7YmFja2dyb3VuZDojMGQwNjEwfS5hcnRpY2xlLS1jb250ZW50IC53YXJuIGltZywuYXJ0aWNsZS0tY29udGVudCAud2FybmluZyBpbWd7Ym94LXNoYWRvdzoxcHggM3B4IDEwcHggIzBkMDYxMH0uYXJ0aWNsZS0tY29udGVudCAud2FybiB0YWJsZSwuYXJ0aWNsZS0tY29udGVudCAud2FybmluZyB0YWJsZXtjb2xvcjojRkZCNkEwO2JveC1zaGFkb3c6MXB4IDNweCAxMHB4ICMwZDA2MTB9LmFydGljbGUtLWNvbnRlbnQgLndhcm4gdGFibGUgdGhlYWQsLmFydGljbGUtLWNvbnRlbnQgLndhcm5pbmcgdGFibGUgdGhlYWR7YmFja2dyb3VuZDpsaW5lYXItZ3JhZGllbnQoNDVkZWcsICNGOTVGNTMsI0ZGODU2NCl9LmFydGljbGUtLWNvbnRlbnQgLndhcm4gdGFibGUgdHI6bnRoLWNoaWxkKGV2ZW4pIHRkLC5hcnRpY2xlLS1jb250ZW50IC53YXJuaW5nIHRhYmxlIHRyOm50aC1jaGlsZChldmVuKSB0ZHtiYWNrZ3JvdW5kOiM0YTJhMmF9LmFydGljbGUtLWNvbnRlbnQgLndhcm4gYmxvY2txdW90ZSwuYXJ0aWNsZS0tY29udGVudCAud2FybmluZyBibG9ja3F1b3Rle2JvcmRlci1jb2xvcjpyZ2JhKDI1NSwxODIsMTYwLDAuMjUpfS5hcnRpY2xlLS1jb250ZW50IC53YXJuIGJsb2NrcXVvdGUgcCwuYXJ0aWNsZS0tY29udGVudCAud2FybmluZyBibG9ja3F1b3RlIHB7Y29sb3I6cmdiYSgyNTUsMTgyLDE2MCwwLjYpfS5hcnRpY2xlLS1jb250ZW50IC53YXJuIC5jb2RlLXRhYnMtd3JhcHBlciAuY29kZS10YWJzIGEsLmFydGljbGUtLWNvbnRlbnQgLndhcm5pbmcgLmNvZGUtdGFicy13cmFwcGVyIC5jb2RlLXRhYnMgYXtiYWNrZ3JvdW5kOnRyYW5zcGFyZW50O2NvbG9yOnJnYmEoMjU1LDE4MiwxNjAsMC41KX0uYXJ0aWNsZS0tY29udGVudCAud2FybiAuY29kZS10YWJzLXdyYXBwZXIgLmNvZGUtdGFicyBhOmhvdmVyLC5hcnRpY2xlLS1jb250ZW50IC53YXJuaW5nIC5jb2RlLXRhYnMtd3JhcHBlciAuY29kZS10YWJzIGE6aG92ZXJ7Y29sb3I6I2ZmYjZhMH0uYXJ0aWNsZS0tY29udGVudCAud2FybiAuY29kZS10YWJzLXdyYXBwZXIgLmNvZGUtdGFicyBhLmlzLWFjdGl2ZSwuYXJ0aWNsZS0tY29udGVudCAud2FybmluZyAuY29kZS10YWJzLXdyYXBwZXIgLmNvZGUtdGFicyBhLmlzLWFjdGl2ZXtjb2xvcjojZmZiNmEwO2JhY2tncm91bmQ6IzBkMDYxMH0uYXJ0aWNsZS0tY29udGVudCAud2FybiBociwuYXJ0aWNsZS0tY29udGVudCAud2FybiAuZXhwYW5kLC5hcnRpY2xlLS1jb250ZW50IC53YXJuaW5nIGhyLC5hcnRpY2xlLS1jb250ZW50IC53YXJuaW5nIC5leHBhbmR7Ym9yZGVyLWNvbG9yOnJnYmEoMjU1LDEzMywxMDAsMC40KSAhaW1wb3J0YW50fS5hcnRpY2xlLS1jb250ZW50IC53YXJuIHByZTo6LXdlYmtpdC1zY3JvbGxiYXIsLmFydGljbGUtLWNvbnRlbnQgLndhcm5pbmcgcHJlOjotd2Via2l0LXNjcm9sbGJhcntiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMTMsNiwxNiwwKTt3aWR0aDoxMnB4O2hlaWdodDoxMnB4fS5hcnRpY2xlLS1jb250ZW50IC53YXJuIHByZTo6LXdlYmtpdC1zY3JvbGxiYXItdHJhY2ssLmFydGljbGUtLWNvbnRlbnQgLndhcm5pbmcgcHJlOjotd2Via2l0LXNjcm9sbGJhci10cmFja3tiYWNrZ3JvdW5kLWNvbG9yOiMwZDA2MTA7Ym9yZGVyLXJhZGl1czowIDAgMnB4IDJweH0uYXJ0aWNsZS0tY29udGVudCAud2FybiBwcmU6Oi13ZWJraXQtc2Nyb2xsYmFyLXRodW1iLC5hcnRpY2xlLS1jb250ZW50IC53YXJuaW5nIHByZTo6LXdlYmtpdC1zY3JvbGxiYXItdGh1bWJ7YmFja2dyb3VuZC1jb2xvcjojMmEyMDI1O2JvcmRlcjozcHggc29saWQgIzBkMDYxMDtib3JkZXItcmFkaXVzOjZweH0uYXJ0aWNsZS0tY29udGVudCAud2FybiB0YWJsZTo6LXdlYmtpdC1zY3JvbGxiYXIsLmFydGljbGUtLWNvbnRlbnQgLndhcm5pbmcgdGFibGU6Oi13ZWJraXQtc2Nyb2xsYmFye2JhY2tncm91bmQtY29sb3I6cmdiYSg3NCw0Miw0MiwwKTt3aWR0aDoxMnB4O2hlaWdodDoxMnB4fS5hcnRpY2xlLS1jb250ZW50IC53YXJuIHRhYmxlOjotd2Via2l0LXNjcm9sbGJhci10cmFjaywuYXJ0aWNsZS0tY29udGVudCAud2FybmluZyB0YWJsZTo6LXdlYmtpdC1zY3JvbGxiYXItdHJhY2t7YmFja2dyb3VuZC1jb2xvcjojNGEyYTJhO2JvcmRlci1yYWRpdXM6MCAwIDJweCAycHh9LmFydGljbGUtLWNvbnRlbnQgLndhcm4gdGFibGU6Oi13ZWJraXQtc2Nyb2xsYmFyLXRodW1iLC5hcnRpY2xlLS1jb250ZW50IC53YXJuaW5nIHRhYmxlOjotd2Via2l0LXNjcm9sbGJhci10aHVtYntiYWNrZ3JvdW5kLWNvbG9yOiMxZjE4MWI7Ym9yZGVyOjNweCBzb2xpZCAjNGEyYTJhO2JvcmRlci1yYWRpdXM6NnB4fS5hcnRpY2xlLS1jb250ZW50IC53YXJuIC5oaWdobGlnaHQsLmFydGljbGUtLWNvbnRlbnQgLndhcm5pbmcgLmhpZ2hsaWdodHtjb2xvcjojZWM2ZTZlfS5hcnRpY2xlLS1jb250ZW50IC53YXJuIC5oaWdobGlnaHQgLmdoLC5hcnRpY2xlLS1jb250ZW50IC53YXJuIC5oaWdobGlnaHQgLmdvLC5hcnRpY2xlLS1jb250ZW50IC53YXJuIC5oaWdobGlnaHQgLm5hLC5hcnRpY2xlLS1jb250ZW50IC53YXJuIC5oaWdobGlnaHQgLm50LC5hcnRpY2xlLS1jb250ZW50IC53YXJuIC5oaWdobGlnaHQgLm52LC5hcnRpY2xlLS1jb250ZW50IC53YXJuIC5oaWdobGlnaHQgLm93LC5hcnRpY2xlLS1jb250ZW50IC53YXJuaW5nIC5oaWdobGlnaHQgLmdoLC5hcnRpY2xlLS1jb250ZW50IC53YXJuaW5nIC5oaWdobGlnaHQgLmdvLC5hcnRpY2xlLS1jb250ZW50IC53YXJuaW5nIC5oaWdobGlnaHQgLm5hLC5hcnRpY2xlLS1jb250ZW50IC53YXJuaW5nIC5oaWdobGlnaHQgLm50LC5hcnRpY2xlLS1jb250ZW50IC53YXJuaW5nIC5oaWdobGlnaHQgLm52LC5hcnRpY2xlLS1jb250ZW50IC53YXJuaW5nIC5oaWdobGlnaHQgLm93e2NvbG9yOiNlYzZlNmV9LmFydGljbGUtLWNvbnRlbnQgLndhcm4gLmhpZ2hsaWdodCAuYywuYXJ0aWNsZS0tY29udGVudCAud2FybiAuaGlnaGxpZ2h0IC5jaCwuYXJ0aWNsZS0tY29udGVudCAud2FybiAuaGlnaGxpZ2h0IC5jbSwuYXJ0aWNsZS0tY29udGVudCAud2FybiAuaGlnaGxpZ2h0IC5jcGYsLmFydGljbGUtLWNvbnRlbnQgLndhcm4gLmhpZ2hsaWdodCAuYzEsLmFydGljbGUtLWNvbnRlbnQgLndhcm4gLmhpZ2hsaWdodCAuY3MsLmFydGljbGUtLWNvbnRlbnQgLndhcm4gLmhpZ2hsaWdodCAudywuYXJ0aWNsZS0tY29udGVudCAud2FybmluZyAuaGlnaGxpZ2h0IC5jLC5hcnRpY2xlLS1jb250ZW50IC53YXJuaW5nIC5oaWdobGlnaHQgLmNoLC5hcnRpY2xlLS1jb250ZW50IC53YXJuaW5nIC5oaWdobGlnaHQgLmNtLC5hcnRpY2xlLS1jb250ZW50IC53YXJuaW5nIC5oaWdobGlnaHQgLmNwZiwuYXJ0aWNsZS0tY29udGVudCAud2FybmluZyAuaGlnaGxpZ2h0IC5jMSwuYXJ0aWNsZS0tY29udGVudCAud2FybmluZyAuaGlnaGxpZ2h0IC5jcywuYXJ0aWNsZS0tY29udGVudCAud2FybmluZyAuaGlnaGxpZ2h0IC53e2NvbG9yOiM4NDRjNGN9LmFydGljbGUtLWNvbnRlbnQgLndhcm4gLmhpZ2hsaWdodCAuZ2ksLmFydGljbGUtLWNvbnRlbnQgLndhcm5pbmcgLmhpZ2hsaWdodCAuZ2l7YmFja2dyb3VuZC1jb2xvcjojODQ0YzRjfS5hcnRpY2xlLS1jb250ZW50IC53YXJuIC5oaWdobGlnaHQgLmssLmFydGljbGUtLWNvbnRlbnQgLndhcm4gLmhpZ2hsaWdodCAua2MsLmFydGljbGUtLWNvbnRlbnQgLndhcm4gLmhpZ2hsaWdodCAua2QsLmFydGljbGUtLWNvbnRlbnQgLndhcm4gLmhpZ2hsaWdodCAua24sLmFydGljbGUtLWNvbnRlbnQgLndhcm4gLmhpZ2hsaWdodCAua3AsLmFydGljbGUtLWNvbnRlbnQgLndhcm4gLmhpZ2hsaWdodCAua3IsLmFydGljbGUtLWNvbnRlbnQgLndhcm4gLmhpZ2hsaWdodCAubm4sLmFydGljbGUtLWNvbnRlbnQgLndhcm5pbmcgLmhpZ2hsaWdodCAuaywuYXJ0aWNsZS0tY29udGVudCAud2FybmluZyAuaGlnaGxpZ2h0IC5rYywuYXJ0aWNsZS0tY29udGVudCAud2FybmluZyAuaGlnaGxpZ2h0IC5rZCwuYXJ0aWNsZS0tY29udGVudCAud2FybmluZyAuaGlnaGxpZ2h0IC5rbiwuYXJ0aWNsZS0tY29udGVudCAud2FybmluZyAuaGlnaGxpZ2h0IC5rcCwuYXJ0aWNsZS0tY29udGVudCAud2FybmluZyAuaGlnaGxpZ2h0IC5rciwuYXJ0aWNsZS0tY29udGVudCAud2FybmluZyAuaGlnaGxpZ2h0IC5ubntjb2xvcjojMDBBM0ZGfS5hcnRpY2xlLS1jb250ZW50IC53YXJuIC5oaWdobGlnaHQgLmJwLC5hcnRpY2xlLS1jb250ZW50IC53YXJuIC5oaWdobGlnaHQgLmNwLC5hcnRpY2xlLS1jb250ZW50IC53YXJuIC5oaWdobGlnaHQgLmRsLC5hcnRpY2xlLS1jb250ZW50IC53YXJuIC5oaWdobGlnaHQgLmd0LC5hcnRpY2xlLS1jb250ZW50IC53YXJuIC5oaWdobGlnaHQgLmd1LC5hcnRpY2xlLS1jb250ZW50IC53YXJuIC5oaWdobGlnaHQgLmt0LC5hcnRpY2xlLS1jb250ZW50IC53YXJuIC5oaWdobGlnaHQgLm5iLC5hcnRpY2xlLS1jb250ZW50IC53YXJuIC5oaWdobGlnaHQgLm5jLC5hcnRpY2xlLS1jb250ZW50IC53YXJuIC5oaWdobGlnaHQgLm5vLC5hcnRpY2xlLS1jb250ZW50IC53YXJuIC5oaWdobGlnaHQgLnNhLC5hcnRpY2xlLS1jb250ZW50IC53YXJuIC5oaWdobGlnaHQgLnNiLC5hcnRpY2xlLS1jb250ZW50IC53YXJuIC5oaWdobGlnaHQgLnNjLC5hcnRpY2xlLS1jb250ZW50IC53YXJuIC5oaWdobGlnaHQgLnNkLC5hcnRpY2xlLS1jb250ZW50IC53YXJuIC5oaWdobGlnaHQgLnNlLC5hcnRpY2xlLS1jb250ZW50IC53YXJuIC5oaWdobGlnaHQgLnNoLC5hcnRpY2xlLS1jb250ZW50IC53YXJuIC5oaWdobGlnaHQgLnN4LC5hcnRpY2xlLS1jb250ZW50IC53YXJuIC5oaWdobGlnaHQgLnNyLC5hcnRpY2xlLS1jb250ZW50IC53YXJuIC5oaWdobGlnaHQgLnMxLC5hcnRpY2xlLS1jb250ZW50IC53YXJuIC5oaWdobGlnaHQgLnMyLC5hcnRpY2xlLS1jb250ZW50IC53YXJuaW5nIC5oaWdobGlnaHQgLmJwLC5hcnRpY2xlLS1jb250ZW50IC53YXJuaW5nIC5oaWdobGlnaHQgLmNwLC5hcnRpY2xlLS1jb250ZW50IC53YXJuaW5nIC5oaWdobGlnaHQgLmRsLC5hcnRpY2xlLS1jb250ZW50IC53YXJuaW5nIC5oaWdobGlnaHQgLmd0LC5hcnRpY2xlLS1jb250ZW50IC53YXJuaW5nIC5oaWdobGlnaHQgLmd1LC5hcnRpY2xlLS1jb250ZW50IC53YXJuaW5nIC5oaWdobGlnaHQgLmt0LC5hcnRpY2xlLS1jb250ZW50IC53YXJuaW5nIC5oaWdobGlnaHQgLm5iLC5hcnRpY2xlLS1jb250ZW50IC53YXJuaW5nIC5oaWdobGlnaHQgLm5jLC5hcnRpY2xlLS1jb250ZW50IC53YXJuaW5nIC5oaWdobGlnaHQgLm5vLC5hcnRpY2xlLS1jb250ZW50IC53YXJuaW5nIC5oaWdobGlnaHQgLnNhLC5hcnRpY2xlLS1jb250ZW50IC53YXJuaW5nIC5oaWdobGlnaHQgLnNiLC5hcnRpY2xlLS1jb250ZW50IC53YXJuaW5nIC5oaWdobGlnaHQgLnNjLC5hcnRpY2xlLS1jb250ZW50IC53YXJuaW5nIC5oaWdobGlnaHQgLnNkLC5hcnRpY2xlLS1jb250ZW50IC53YXJuaW5nIC5oaWdobGlnaHQgLnNlLC5hcnRpY2xlLS1jb250ZW50IC53YXJuaW5nIC5oaWdobGlnaHQgLnNoLC5hcnRpY2xlLS1jb250ZW50IC53YXJuaW5nIC5oaWdobGlnaHQgLnN4LC5hcnRpY2xlLS1jb250ZW50IC53YXJuaW5nIC5oaWdobGlnaHQgLnNyLC5hcnRpY2xlLS1jb250ZW50IC53YXJuaW5nIC5oaWdobGlnaHQgLnMxLC5hcnRpY2xlLS1jb250ZW50IC53YXJuaW5nIC5oaWdobGlnaHQgLnMye2NvbG9yOiMwMDlGNUZ9LmFydGljbGUtLWNvbnRlbnQgLndhcm4gLmhpZ2hsaWdodCAuZXJyLC5hcnRpY2xlLS1jb250ZW50IC53YXJuIC5oaWdobGlnaHQgLmZtLC5hcnRpY2xlLS1jb250ZW50IC53YXJuIC5oaWdobGlnaHQgLmdyLC5hcnRpY2xlLS1jb250ZW50IC53YXJuIC5oaWdobGlnaHQgLmdkLC5hcnRpY2xlLS1jb250ZW50IC53YXJuIC5oaWdobGlnaHQgLm5kLC5hcnRpY2xlLS1jb250ZW50IC53YXJuIC5oaWdobGlnaHQgLm5lLC5hcnRpY2xlLS1jb250ZW50IC53YXJuIC5oaWdobGlnaHQgLm5mLC5hcnRpY2xlLS1jb250ZW50IC53YXJuIC5oaWdobGlnaHQgLm5sLC5hcnRpY2xlLS1jb250ZW50IC53YXJuIC5oaWdobGlnaHQgLnNpLC5hcnRpY2xlLS1jb250ZW50IC53YXJuaW5nIC5oaWdobGlnaHQgLmVyciwuYXJ0aWNsZS0tY29udGVudCAud2FybmluZyAuaGlnaGxpZ2h0IC5mbSwuYXJ0aWNsZS0tY29udGVudCAud2FybmluZyAuaGlnaGxpZ2h0IC5nciwuYXJ0aWNsZS0tY29udGVudCAud2FybmluZyAuaGlnaGxpZ2h0IC5nZCwuYXJ0aWNsZS0tY29udGVudCAud2FybmluZyAuaGlnaGxpZ2h0IC5uZCwuYXJ0aWNsZS0tY29udGVudCAud2FybmluZyAuaGlnaGxpZ2h0IC5uZSwuYXJ0aWNsZS0tY29udGVudCAud2FybmluZyAuaGlnaGxpZ2h0IC5uZiwuYXJ0aWNsZS0tY29udGVudCAud2FybmluZyAuaGlnaGxpZ2h0IC5ubCwuYXJ0aWNsZS0tY29udGVudCAud2FybmluZyAuaGlnaGxpZ2h0IC5zaXtjb2xvcjojQkYzRDVFfS5hcnRpY2xlLS1jb250ZW50IC53YXJuIC5oaWdobGlnaHQgLm0sLmFydGljbGUtLWNvbnRlbnQgLndhcm4gLmhpZ2hsaWdodCAubmksLmFydGljbGUtLWNvbnRlbnQgLndhcm4gLmhpZ2hsaWdodCAubWIsLmFydGljbGUtLWNvbnRlbnQgLndhcm4gLmhpZ2hsaWdodCAubWYsLmFydGljbGUtLWNvbnRlbnQgLndhcm4gLmhpZ2hsaWdodCAubWgsLmFydGljbGUtLWNvbnRlbnQgLndhcm4gLmhpZ2hsaWdodCAubWksLmFydGljbGUtLWNvbnRlbnQgLndhcm4gLmhpZ2hsaWdodCAubW8sLmFydGljbGUtLWNvbnRlbnQgLndhcm4gLmhpZ2hsaWdodCAudmMsLmFydGljbGUtLWNvbnRlbnQgLndhcm4gLmhpZ2hsaWdodCAudmcsLmFydGljbGUtLWNvbnRlbnQgLndhcm4gLmhpZ2hsaWdodCAudmksLmFydGljbGUtLWNvbnRlbnQgLndhcm4gLmhpZ2hsaWdodCAudm0sLmFydGljbGUtLWNvbnRlbnQgLndhcm4gLmhpZ2hsaWdodCAuaWwsLmFydGljbGUtLWNvbnRlbnQgLndhcm5pbmcgLmhpZ2hsaWdodCAubSwuYXJ0aWNsZS0tY29udGVudCAud2FybmluZyAuaGlnaGxpZ2h0IC5uaSwuYXJ0aWNsZS0tY29udGVudCAud2FybmluZyAuaGlnaGxpZ2h0IC5tYiwuYXJ0aWNsZS0tY29udGVudCAud2FybmluZyAuaGlnaGxpZ2h0IC5tZiwuYXJ0aWNsZS0tY29udGVudCAud2FybmluZyAuaGlnaGxpZ2h0IC5taCwuYXJ0aWNsZS0tY29udGVudCAud2FybmluZyAuaGlnaGxpZ2h0IC5taSwuYXJ0aWNsZS0tY29udGVudCAud2FybmluZyAuaGlnaGxpZ2h0IC5tbywuYXJ0aWNsZS0tY29udGVudCAud2FybmluZyAuaGlnaGxpZ2h0IC52YywuYXJ0aWNsZS0tY29udGVudCAud2FybmluZyAuaGlnaGxpZ2h0IC52ZywuYXJ0aWNsZS0tY29udGVudCAud2FybmluZyAuaGlnaGxpZ2h0IC52aSwuYXJ0aWNsZS0tY29udGVudCAud2FybmluZyAuaGlnaGxpZ2h0IC52bSwuYXJ0aWNsZS0tY29udGVudCAud2FybmluZyAuaGlnaGxpZ2h0IC5pbHtjb2xvcjojZmZiNGZifS5hcnRpY2xlLS1jb250ZW50IC53YXJuIC5oaWdobGlnaHQgLmdwLC5hcnRpY2xlLS1jb250ZW50IC53YXJuIC5oaWdobGlnaHQgLm8sLmFydGljbGUtLWNvbnRlbnQgLndhcm5pbmcgLmhpZ2hsaWdodCAuZ3AsLmFydGljbGUtLWNvbnRlbnQgLndhcm5pbmcgLmhpZ2hsaWdodCAub3tjb2xvcjojMDBBM0ZGfS5hcnRpY2xlLS1jb250ZW50IC53YXJuIC5oaWdobGlnaHQgLnNzLC5hcnRpY2xlLS1jb250ZW50IC53YXJuaW5nIC5oaWdobGlnaHQgLnNze2NvbG9yOiNlOTB9LmFydGljbGUtLWNvbnRlbnQgLndhcm4gLmhpZ2hsaWdodCAubGFuZ3VhZ2UtanMgLm1pKy5ueCwuYXJ0aWNsZS0tY29udGVudCAud2FybiAuaGlnaGxpZ2h0IC5sYW5ndWFnZS1qcyAubWYrLm54LC5hcnRpY2xlLS1jb250ZW50IC53YXJuaW5nIC5oaWdobGlnaHQgLmxhbmd1YWdlLWpzIC5taSsubngsLmFydGljbGUtLWNvbnRlbnQgLndhcm5pbmcgLmhpZ2hsaWdodCAubGFuZ3VhZ2UtanMgLm1mKy5ueHtjb2xvcjojZmZiNGZifS5hcnRpY2xlLS1jb250ZW50IC53YXJuIC5oaWdobGlnaHQgLmxhbmd1YWdlLXNxbCAubWkrLm4sLmFydGljbGUtLWNvbnRlbnQgLndhcm5pbmcgLmhpZ2hsaWdodCAubGFuZ3VhZ2Utc3FsIC5taSsubntjb2xvcjojZmZiNGZifS5hcnRpY2xlLS1jb250ZW50IC5jYXV0aW9ue2JvcmRlci1jb2xvcjojZDMwOTcxO2JhY2tncm91bmQ6cmdiYSgyMTEsOSwxMTMsMC4xMil9LmFydGljbGUtLWNvbnRlbnQgLmNhdXRpb246YmVmb3Jle2NvbnRlbnQ6XCJDXCI7Y29sb3I6I2ZmZjtiYWNrZ3JvdW5kOiNkMzA5NzF9LmFydGljbGUtLWNvbnRlbnQgLmNhdXRpb24gaDEsLmFydGljbGUtLWNvbnRlbnQgLmNhdXRpb24gaDIsLmFydGljbGUtLWNvbnRlbnQgLmNhdXRpb24gaDMsLmFydGljbGUtLWNvbnRlbnQgLmNhdXRpb24gaDQsLmFydGljbGUtLWNvbnRlbnQgLmNhdXRpb24gaDUsLmFydGljbGUtLWNvbnRlbnQgLmNhdXRpb24gaDZ7Y29sb3I6I2ZmZn0uYXJ0aWNsZS0tY29udGVudCAuY2F1dGlvbiBoMSBhLC5hcnRpY2xlLS1jb250ZW50IC5jYXV0aW9uIGgyIGEsLmFydGljbGUtLWNvbnRlbnQgLmNhdXRpb24gaDMgYSwuYXJ0aWNsZS0tY29udGVudCAuY2F1dGlvbiBoNCBhLC5hcnRpY2xlLS1jb250ZW50IC5jYXV0aW9uIGg1IGEsLmFydGljbGUtLWNvbnRlbnQgLmNhdXRpb24gaDYgYXtjb2xvcjppbmhlcml0ICFpbXBvcnRhbnR9LmFydGljbGUtLWNvbnRlbnQgLmNhdXRpb24gaDEgYTpob3ZlciwuYXJ0aWNsZS0tY29udGVudCAuY2F1dGlvbiBoMiBhOmhvdmVyLC5hcnRpY2xlLS1jb250ZW50IC5jYXV0aW9uIGgzIGE6aG92ZXIsLmFydGljbGUtLWNvbnRlbnQgLmNhdXRpb24gaDQgYTpob3ZlciwuYXJ0aWNsZS0tY29udGVudCAuY2F1dGlvbiBoNSBhOmhvdmVyLC5hcnRpY2xlLS1jb250ZW50IC5jYXV0aW9uIGg2IGE6aG92ZXJ7Y29sb3I6aW5oZXJpdCAhaW1wb3J0YW50fS5hcnRpY2xlLS1jb250ZW50IC5jYXV0aW9uIHAsLmFydGljbGUtLWNvbnRlbnQgLmNhdXRpb24gbGl7Y29sb3I6I2ZlOWRiY30uYXJ0aWNsZS0tY29udGVudCAuY2F1dGlvbiBzdHJvbmd7Y29sb3I6I2ZmZn0uYXJ0aWNsZS0tY29udGVudCAuY2F1dGlvbiBhe2NvbG9yOiNmM2Q1ZTEgIWltcG9ydGFudH0uYXJ0aWNsZS0tY29udGVudCAuY2F1dGlvbiBhIGNvZGU6YWZ0ZXJ7Ym9yZGVyLWNvbG9yOnRyYW5zcGFyZW50IHJnYmEoMjU1LDEwMywxNTUsMC4zNSkgdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnR9LmFydGljbGUtLWNvbnRlbnQgLmNhdXRpb24gYTpob3Zlcntjb2xvcjojZmZmICFpbXBvcnRhbnR9LmFydGljbGUtLWNvbnRlbnQgLmNhdXRpb24gYTpob3ZlciBjb2RlOmFmdGVye2JvcmRlci1jb2xvcjp0cmFuc3BhcmVudCAjZmZmIHRyYW5zcGFyZW50IHRyYW5zcGFyZW50fS5hcnRpY2xlLS1jb250ZW50IC5jYXV0aW9uIG9sIGxpOmJlZm9yZXtjb2xvcjojZmU5ZGJjfS5hcnRpY2xlLS1jb250ZW50IC5jYXV0aW9uIGNvZGUsLmFydGljbGUtLWNvbnRlbnQgLmNhdXRpb24gcHJle2NvbG9yOiNmZjY3OWI7YmFja2dyb3VuZDojMGQwNjEwfS5hcnRpY2xlLS1jb250ZW50IC5jYXV0aW9uIGltZ3tib3gtc2hhZG93OjFweCAzcHggMTBweCAjMGYwNTBlfS5hcnRpY2xlLS1jb250ZW50IC5jYXV0aW9uIHRhYmxle2NvbG9yOiNmZTlkYmM7Ym94LXNoYWRvdzoxcHggM3B4IDEwcHggIzBmMDUwZX0uYXJ0aWNsZS0tY29udGVudCAuY2F1dGlvbiB0YWJsZSB0aGVhZHtiYWNrZ3JvdW5kOmxpbmVhci1ncmFkaWVudCg0NWRlZywgI2QzMDk3MSwjZmY1OThmKX0uYXJ0aWNsZS0tY29udGVudCAuY2F1dGlvbiB0YWJsZSB0cjpudGgtY2hpbGQoZXZlbikgdGR7YmFja2dyb3VuZDojMzkxYjM1fS5hcnRpY2xlLS1jb250ZW50IC5jYXV0aW9uIGJsb2NrcXVvdGV7Ym9yZGVyLWNvbG9yOnJnYmEoMjU0LDE1NywxODgsMC4yNSl9LmFydGljbGUtLWNvbnRlbnQgLmNhdXRpb24gYmxvY2txdW90ZSBwe2NvbG9yOnJnYmEoMjU0LDE1NywxODgsMC42KX0uYXJ0aWNsZS0tY29udGVudCAuY2F1dGlvbiAuY29kZS10YWJzLXdyYXBwZXIgLmNvZGUtdGFicyBhe2JhY2tncm91bmQ6dHJhbnNwYXJlbnQ7Y29sb3I6cmdiYSgyNTQsMTU3LDE4OCwwLjUpfS5hcnRpY2xlLS1jb250ZW50IC5jYXV0aW9uIC5jb2RlLXRhYnMtd3JhcHBlciAuY29kZS10YWJzIGE6aG92ZXJ7Y29sb3I6I2ZlOWRiY30uYXJ0aWNsZS0tY29udGVudCAuY2F1dGlvbiAuY29kZS10YWJzLXdyYXBwZXIgLmNvZGUtdGFicyBhLmlzLWFjdGl2ZXtjb2xvcjojZmU5ZGJjO2JhY2tncm91bmQ6IzBkMDYxMH0uYXJ0aWNsZS0tY29udGVudCAuY2F1dGlvbiBociwuYXJ0aWNsZS0tY29udGVudCAuY2F1dGlvbiAuZXhwYW5ke2JvcmRlci1jb2xvcjpyZ2JhKDIxMSw5LDExMywwLjQpICFpbXBvcnRhbnR9LmFydGljbGUtLWNvbnRlbnQgLmNhdXRpb24gcHJlOjotd2Via2l0LXNjcm9sbGJhcntiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMTMsNiwxNiwwKTt3aWR0aDoxMnB4O2hlaWdodDoxMnB4fS5hcnRpY2xlLS1jb250ZW50IC5jYXV0aW9uIHByZTo6LXdlYmtpdC1zY3JvbGxiYXItdHJhY2t7YmFja2dyb3VuZC1jb2xvcjojMGQwNjEwO2JvcmRlci1yYWRpdXM6MCAwIDJweCAycHh9LmFydGljbGUtLWNvbnRlbnQgLmNhdXRpb24gcHJlOjotd2Via2l0LXNjcm9sbGJhci10aHVtYntiYWNrZ3JvdW5kLWNvbG9yOiM1YzFiMzg7Ym9yZGVyOjNweCBzb2xpZCAjMGQwNjEwO2JvcmRlci1yYWRpdXM6NnB4fS5hcnRpY2xlLS1jb250ZW50IC5jYXV0aW9uIHRhYmxlOjotd2Via2l0LXNjcm9sbGJhcntiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoNTcsMjcsNTMsMCk7d2lkdGg6MTJweDtoZWlnaHQ6MTJweH0uYXJ0aWNsZS0tY29udGVudCAuY2F1dGlvbiB0YWJsZTo6LXdlYmtpdC1zY3JvbGxiYXItdHJhY2t7YmFja2dyb3VuZC1jb2xvcjojMzkxYjM1O2JvcmRlci1yYWRpdXM6MCAwIDJweCAycHh9LmFydGljbGUtLWNvbnRlbnQgLmNhdXRpb24gdGFibGU6Oi13ZWJraXQtc2Nyb2xsYmFyLXRodW1ie2JhY2tncm91bmQtY29sb3I6IzkxMmE1ODtib3JkZXI6M3B4IHNvbGlkICMzOTFiMzU7Ym9yZGVyLXJhZGl1czo2cHh9LmFydGljbGUtLWNvbnRlbnQgLmNhdXRpb24gLmhpZ2hsaWdodHtjb2xvcjojZmY2NzlifS5hcnRpY2xlLS1jb250ZW50IC5jYXV0aW9uIC5oaWdobGlnaHQgLmdoLC5hcnRpY2xlLS1jb250ZW50IC5jYXV0aW9uIC5oaWdobGlnaHQgLmdvLC5hcnRpY2xlLS1jb250ZW50IC5jYXV0aW9uIC5oaWdobGlnaHQgLm5hLC5hcnRpY2xlLS1jb250ZW50IC5jYXV0aW9uIC5oaWdobGlnaHQgLm50LC5hcnRpY2xlLS1jb250ZW50IC5jYXV0aW9uIC5oaWdobGlnaHQgLm52LC5hcnRpY2xlLS1jb250ZW50IC5jYXV0aW9uIC5oaWdobGlnaHQgLm93e2NvbG9yOiNmZjY3OWJ9LmFydGljbGUtLWNvbnRlbnQgLmNhdXRpb24gLmhpZ2hsaWdodCAuYywuYXJ0aWNsZS0tY29udGVudCAuY2F1dGlvbiAuaGlnaGxpZ2h0IC5jaCwuYXJ0aWNsZS0tY29udGVudCAuY2F1dGlvbiAuaGlnaGxpZ2h0IC5jbSwuYXJ0aWNsZS0tY29udGVudCAuY2F1dGlvbiAuaGlnaGxpZ2h0IC5jcGYsLmFydGljbGUtLWNvbnRlbnQgLmNhdXRpb24gLmhpZ2hsaWdodCAuYzEsLmFydGljbGUtLWNvbnRlbnQgLmNhdXRpb24gLmhpZ2hsaWdodCAuY3MsLmFydGljbGUtLWNvbnRlbnQgLmNhdXRpb24gLmhpZ2hsaWdodCAud3tjb2xvcjojOGYzZjVhfS5hcnRpY2xlLS1jb250ZW50IC5jYXV0aW9uIC5oaWdobGlnaHQgLmdpe2JhY2tncm91bmQtY29sb3I6IzhmM2Y1YX0uYXJ0aWNsZS0tY29udGVudCAuY2F1dGlvbiAuaGlnaGxpZ2h0IC5rLC5hcnRpY2xlLS1jb250ZW50IC5jYXV0aW9uIC5oaWdobGlnaHQgLmtjLC5hcnRpY2xlLS1jb250ZW50IC5jYXV0aW9uIC5oaWdobGlnaHQgLmtkLC5hcnRpY2xlLS1jb250ZW50IC5jYXV0aW9uIC5oaWdobGlnaHQgLmtuLC5hcnRpY2xlLS1jb250ZW50IC5jYXV0aW9uIC5oaWdobGlnaHQgLmtwLC5hcnRpY2xlLS1jb250ZW50IC5jYXV0aW9uIC5oaWdobGlnaHQgLmtyLC5hcnRpY2xlLS1jb250ZW50IC5jYXV0aW9uIC5oaWdobGlnaHQgLm5ue2NvbG9yOiMzZDk3ZTV9LmFydGljbGUtLWNvbnRlbnQgLmNhdXRpb24gLmhpZ2hsaWdodCAuYnAsLmFydGljbGUtLWNvbnRlbnQgLmNhdXRpb24gLmhpZ2hsaWdodCAuY3AsLmFydGljbGUtLWNvbnRlbnQgLmNhdXRpb24gLmhpZ2hsaWdodCAuZGwsLmFydGljbGUtLWNvbnRlbnQgLmNhdXRpb24gLmhpZ2hsaWdodCAuZ3QsLmFydGljbGUtLWNvbnRlbnQgLmNhdXRpb24gLmhpZ2hsaWdodCAuZ3UsLmFydGljbGUtLWNvbnRlbnQgLmNhdXRpb24gLmhpZ2hsaWdodCAua3QsLmFydGljbGUtLWNvbnRlbnQgLmNhdXRpb24gLmhpZ2hsaWdodCAubmIsLmFydGljbGUtLWNvbnRlbnQgLmNhdXRpb24gLmhpZ2hsaWdodCAubmMsLmFydGljbGUtLWNvbnRlbnQgLmNhdXRpb24gLmhpZ2hsaWdodCAubm8sLmFydGljbGUtLWNvbnRlbnQgLmNhdXRpb24gLmhpZ2hsaWdodCAuc2EsLmFydGljbGUtLWNvbnRlbnQgLmNhdXRpb24gLmhpZ2hsaWdodCAuc2IsLmFydGljbGUtLWNvbnRlbnQgLmNhdXRpb24gLmhpZ2hsaWdodCAuc2MsLmFydGljbGUtLWNvbnRlbnQgLmNhdXRpb24gLmhpZ2hsaWdodCAuc2QsLmFydGljbGUtLWNvbnRlbnQgLmNhdXRpb24gLmhpZ2hsaWdodCAuc2UsLmFydGljbGUtLWNvbnRlbnQgLmNhdXRpb24gLmhpZ2hsaWdodCAuc2gsLmFydGljbGUtLWNvbnRlbnQgLmNhdXRpb24gLmhpZ2hsaWdodCAuc3gsLmFydGljbGUtLWNvbnRlbnQgLmNhdXRpb24gLmhpZ2hsaWdodCAuc3IsLmFydGljbGUtLWNvbnRlbnQgLmNhdXRpb24gLmhpZ2hsaWdodCAuczEsLmFydGljbGUtLWNvbnRlbnQgLmNhdXRpb24gLmhpZ2hsaWdodCAuczJ7Y29sb3I6Izk0N2VmZn0uYXJ0aWNsZS0tY29udGVudCAuY2F1dGlvbiAuaGlnaGxpZ2h0IC5lcnIsLmFydGljbGUtLWNvbnRlbnQgLmNhdXRpb24gLmhpZ2hsaWdodCAuZm0sLmFydGljbGUtLWNvbnRlbnQgLmNhdXRpb24gLmhpZ2hsaWdodCAuZ3IsLmFydGljbGUtLWNvbnRlbnQgLmNhdXRpb24gLmhpZ2hsaWdodCAuZ2QsLmFydGljbGUtLWNvbnRlbnQgLmNhdXRpb24gLmhpZ2hsaWdodCAubmQsLmFydGljbGUtLWNvbnRlbnQgLmNhdXRpb24gLmhpZ2hsaWdodCAubmUsLmFydGljbGUtLWNvbnRlbnQgLmNhdXRpb24gLmhpZ2hsaWdodCAubmYsLmFydGljbGUtLWNvbnRlbnQgLmNhdXRpb24gLmhpZ2hsaWdodCAubmwsLmFydGljbGUtLWNvbnRlbnQgLmNhdXRpb24gLmhpZ2hsaWdodCAuc2l7Y29sb3I6I0JGM0Q1RX0uYXJ0aWNsZS0tY29udGVudCAuY2F1dGlvbiAuaGlnaGxpZ2h0IC5tLC5hcnRpY2xlLS1jb250ZW50IC5jYXV0aW9uIC5oaWdobGlnaHQgLm5pLC5hcnRpY2xlLS1jb250ZW50IC5jYXV0aW9uIC5oaWdobGlnaHQgLm1iLC5hcnRpY2xlLS1jb250ZW50IC5jYXV0aW9uIC5oaWdobGlnaHQgLm1mLC5hcnRpY2xlLS1jb250ZW50IC5jYXV0aW9uIC5oaWdobGlnaHQgLm1oLC5hcnRpY2xlLS1jb250ZW50IC5jYXV0aW9uIC5oaWdobGlnaHQgLm1pLC5hcnRpY2xlLS1jb250ZW50IC5jYXV0aW9uIC5oaWdobGlnaHQgLm1vLC5hcnRpY2xlLS1jb250ZW50IC5jYXV0aW9uIC5oaWdobGlnaHQgLnZjLC5hcnRpY2xlLS1jb250ZW50IC5jYXV0aW9uIC5oaWdobGlnaHQgLnZnLC5hcnRpY2xlLS1jb250ZW50IC5jYXV0aW9uIC5oaWdobGlnaHQgLnZpLC5hcnRpY2xlLS1jb250ZW50IC5jYXV0aW9uIC5oaWdobGlnaHQgLnZtLC5hcnRpY2xlLS1jb250ZW50IC5jYXV0aW9uIC5oaWdobGlnaHQgLmlse2NvbG9yOiNmZmEwZGV9LmFydGljbGUtLWNvbnRlbnQgLmNhdXRpb24gLmhpZ2hsaWdodCAuZ3AsLmFydGljbGUtLWNvbnRlbnQgLmNhdXRpb24gLmhpZ2hsaWdodCAub3tjb2xvcjojM2Q5N2U1fS5hcnRpY2xlLS1jb250ZW50IC5jYXV0aW9uIC5oaWdobGlnaHQgLnNze2NvbG9yOiNlOTB9LmFydGljbGUtLWNvbnRlbnQgLmNhdXRpb24gLmhpZ2hsaWdodCAubGFuZ3VhZ2UtanMgLm1pKy5ueCwuYXJ0aWNsZS0tY29udGVudCAuY2F1dGlvbiAuaGlnaGxpZ2h0IC5sYW5ndWFnZS1qcyAubWYrLm54e2NvbG9yOiNmZmEwZGV9LmFydGljbGUtLWNvbnRlbnQgLmNhdXRpb24gLmhpZ2hsaWdodCAubGFuZ3VhZ2Utc3FsIC5taSsubntjb2xvcjojZmZhMGRlfS5hcnRpY2xlLS1jb250ZW50IC5ibG9jay5zcGVjaWFsLXN0YXRle2JhY2tncm91bmQ6bGluZWFyLWdyYWRpZW50KDQ1ZGVnLCAjZDMwOTcxLCM5YjJhZmYpO3BhZGRpbmc6NHB4O2JvcmRlcjpub25lO2JvcmRlci1yYWRpdXM6MjVweCAhaW1wb3J0YW50fS5hcnRpY2xlLS1jb250ZW50IC5ibG9jay5zcGVjaWFsLXN0YXRlIC5zdGF0ZS1jb250ZW50e2JhY2tncm91bmQ6IzE0MTQxRjtib3JkZXItcmFkaXVzOjIxcHg7cGFkZGluZzpjYWxjKDEuNjVyZW0gLSA0cHgpIGNhbGMoMnJlbSAtIDRweCkgY2FsYyguMXJlbSArIDRweCkgY2FsYygycmVtIC0gNHB4KX0uYXJ0aWNsZS0tY29udGVudCAuYmxvY2suc3BlY2lhbC1zdGF0ZSAuc3RhdGUtY29udGVudCBoNHtjb2xvcjojZmZmfS5hcnRpY2xlLS1jb250ZW50IC5ibG9jay5zcGVjaWFsLXN0YXRlIC5zdGF0ZS1jb250ZW50IHB7bWFyZ2luLWJvdHRvbToxcmVtfS5hcnRpY2xlLS1jb250ZW50IC5ibG9jay5zcGVjaWFsLXN0YXRlIC5zdGF0ZS1jb250ZW50IC5idG57Ym9yZGVyLXJhZGl1czo0cHg7YmFja2dyb3VuZDpsaW5lYXItZ3JhZGllbnQoNDVkZWcsICNkMzA5NzEsIzliMmFmZil9LmFydGljbGUtLWNvbnRlbnQgLmJsb2NrLnNwZWNpYWwtc3RhdGUgLnN0YXRlLWNvbnRlbnQgLmJ0bjphZnRlcntiYWNrZ3JvdW5kOmxpbmVhci1ncmFkaWVudCg0NWRlZywgI2E4MDg1YSwgIzdiMTRkNil9LmFydGljbGUtLWNvbnRlbnQgLmJsb2NrLnNwZWNpYWwtc3RhdGUgLnN0YXRlLWNvbnRlbnQgLmV4cGFuZC13cmFwcGVye2JvcmRlcjpub25lO21hcmdpbjouNXJlbSAwIDEuNXJlbX0uYXJ0aWNsZS0tY29udGVudCAuYmxvY2suc3BlY2lhbC1zdGF0ZSAuc3RhdGUtY29udGVudCAuZXhwYW5ke2JvcmRlcjpub25lO3BhZGRpbmc6MH0uYXJ0aWNsZS0tY29udGVudCAuYmxvY2suc3BlY2lhbC1zdGF0ZSAuc3RhdGUtY29udGVudCAuZXhwYW5kIC5leHBhbmQtY29udGVudCBwe21hcmdpbi1sZWZ0OjJyZW19LmFydGljbGUtLWNvbnRlbnQgLmJsb2NrLnNwZWNpYWwtc3RhdGUgLnN0YXRlLWNvbnRlbnQgLmV4cGFuZCB1bHttYXJnaW4tdG9wOi0xcmVtfS5hcnRpY2xlLS1jb250ZW50IC5ibG9jay5zcGVjaWFsLXN0YXRlIC5zdGF0ZS1jb250ZW50IC5leHBhbmQgdWwuZmVlZGJhY2stY2hhbm5lbHN7cGFkZGluZzowO21hcmdpbjotMXJlbSAwIDEuNXJlbSAycmVtO2xpc3Qtc3R5bGU6bm9uZX0uYXJ0aWNsZS0tY29udGVudCAuYmxvY2suc3BlY2lhbC1zdGF0ZSAuc3RhdGUtY29udGVudCAuZXhwYW5kIHVsLmZlZWRiYWNrLWNoYW5uZWxzIGF7Y29sb3I6I2ZmZjtmb250LXdlaWdodDo1MDA7cG9zaXRpb246cmVsYXRpdmV9LmFydGljbGUtLWNvbnRlbnQgLmJsb2NrLnNwZWNpYWwtc3RhdGUgLnN0YXRlLWNvbnRlbnQgLmV4cGFuZCB1bC5mZWVkYmFjay1jaGFubmVscyBhLmRpc2NvcmQ6YmVmb3Jle2NvbnRlbnQ6dXJsKFwiL3N2Z3MvZGlzY29yZC5zdmdcIik7ZGlzcGxheTppbmxpbmUtYmxvY2s7aGVpZ2h0OjEuMXJlbTt3aWR0aDoxLjI1cmVtO3ZlcnRpY2FsLWFsaWduOnRvcDttYXJnaW46MnB4IC42NXJlbSAwIDB9LmFydGljbGUtLWNvbnRlbnQgLmJsb2NrLnNwZWNpYWwtc3RhdGUgLnN0YXRlLWNvbnRlbnQgLmV4cGFuZCB1bC5mZWVkYmFjay1jaGFubmVscyBhLmNvbW11bml0eTpiZWZvcmV7Y29udGVudDpcIlxcZTkwMFwiO2NvbG9yOiNmZmY7bWFyZ2luOjAgLjY1cmVtIDAgMDtmb250LXNpemU6MS4ycmVtO2ZvbnQtZmFtaWx5OidpY29tb29uLXYyJzt2ZXJ0aWNhbC1hbGlnbjptaWRkbGV9LmFydGljbGUtLWNvbnRlbnQgLmJsb2NrLnNwZWNpYWwtc3RhdGUgLnN0YXRlLWNvbnRlbnQgLmV4cGFuZCB1bC5mZWVkYmFjay1jaGFubmVscyBhLnNsYWNrOmJlZm9yZXtjb250ZW50OnVybChcIi9zdmdzL3NsYWNrLnN2Z1wiKTtkaXNwbGF5OmlubGluZS1ibG9jaztoZWlnaHQ6MS4xcmVtO3dpZHRoOjEuMXJlbTt2ZXJ0aWNhbC1hbGlnbjp0ZXh0LXRvcDttYXJnaW4tcmlnaHQ6LjY1cmVtfS5hcnRpY2xlLS1jb250ZW50IC5ibG9jay5zcGVjaWFsLXN0YXRlIC5zdGF0ZS1jb250ZW50IC5leHBhbmQgdWwuZmVlZGJhY2stY2hhbm5lbHMgYS5yZWRkaXQ6YmVmb3Jle2NvbnRlbnQ6dXJsKFwiL3N2Z3MvcmVkZGl0LnN2Z1wiKTtkaXNwbGF5OmlubGluZS1ibG9jaztoZWlnaHQ6MS4xcmVtO3dpZHRoOjEuMnJlbTt2ZXJ0aWNhbC1hbGlnbjp0b3A7bWFyZ2luOjJweCAuNjVyZW0gMCAwfS5hcnRpY2xlLS1jb250ZW50IC5ibG9jay5zcGVjaWFsLXN0YXRlIC5zdGF0ZS1jb250ZW50IC5leHBhbmQgdWwuZmVlZGJhY2stY2hhbm5lbHMgYTo6YWZ0ZXJ7Y29udGVudDpcIlxcZTkwYVwiO2ZvbnQtZmFtaWx5OidpY29tb29uLXY0Jztmb250LXdlaWdodDpib2xkO2ZvbnQtc2l6ZToxLjNyZW07ZGlzcGxheTppbmxpbmUtYmxvY2s7cG9zaXRpb246YWJzb2x1dGU7YmFja2dyb3VuZDpsaW5lYXItZ3JhZGllbnQoNDVkZWcsICNkMzA5NzEsIzliMmFmZik7YmFja2dyb3VuZC1jbGlwOnRleHQ7LXdlYmtpdC10ZXh0LWZpbGwtY29sb3I6dHJhbnNwYXJlbnQ7cmlnaHQ6MDt0cmFuc2Zvcm06dHJhbnNsYXRlWCgwLjI1cmVtKTtvcGFjaXR5OjA7dHJhbnNpdGlvbjp0cmFuc2Zvcm0gLjJzLCBvcGFjaXR5IC4yc30uYXJ0aWNsZS0tY29udGVudCAuYmxvY2suc3BlY2lhbC1zdGF0ZSAuc3RhdGUtY29udGVudCAuZXhwYW5kIHVsLmZlZWRiYWNrLWNoYW5uZWxzIGE6aG92ZXI6OmFmdGVye3RyYW5zZm9ybTp0cmFuc2xhdGVYKDEuNXJlbSk7b3BhY2l0eToxfS5hcnRpY2xlLS1jb250ZW50IGEuYnRue3Bvc2l0aW9uOnJlbGF0aXZlO2Rpc3BsYXk6aW5saW5lLWJsb2NrO21hcmdpbjouNXJlbSAuMjVyZW0gLjVyZW0gMDtwYWRkaW5nOjAuODVyZW0gMS41cmVtO2NvbG9yOiNmZmYgIWltcG9ydGFudDtib3JkZXItcmFkaXVzOjJweDtmb250LXNpemU6MS4wNXJlbTt6LWluZGV4OjE7YmFja2dyb3VuZDpsaW5lYXItZ3JhZGllbnQoNDVkZWcsICMwNjZGQzUsIzAwQTNGRil9LmFydGljbGUtLWNvbnRlbnQgYS5idG46YWZ0ZXJ7Y29udGVudDpcIlwiO3Bvc2l0aW9uOmFic29sdXRlO2Rpc3BsYXk6YmxvY2s7dG9wOjA7cmlnaHQ6MDt3aWR0aDoxMDAlO2hlaWdodDoxMDAlO2JvcmRlci1yYWRpdXM6MnB4O2JhY2tncm91bmQ6bGluZWFyLWdyYWRpZW50KDQ1ZGVnLCAjMDBBM0ZGLCM2QkRGRkYpO29wYWNpdHk6MDt0cmFuc2l0aW9uOm9wYWNpdHkgLjJzO3otaW5kZXg6LTF9LmFydGljbGUtLWNvbnRlbnQgYS5idG46aG92ZXJ7Y3Vyc29yOnBvaW50ZXJ9LmFydGljbGUtLWNvbnRlbnQgYS5idG46aG92ZXI6YWZ0ZXJ7b3BhY2l0eToxfS5hcnRpY2xlLS1jb250ZW50IGEuYnRuLmRvd25sb2FkOmJlZm9yZXtjb250ZW50OlwiXFxlOTFkXCI7Zm9udC1mYW1pbHk6XCJpY29tb29uLXYyXCI7bWFyZ2luLXJpZ2h0Oi41cmVtO2ZvbnQtc2l6ZToxLjFyZW19LmFydGljbGUtLWNvbnRlbnQgYS5idG4uZ2l0aHViOmJlZm9yZXtjb250ZW50OlwiXFxlYWIwXCI7Zm9udC1mYW1pbHk6XCJpY29tb29uLXYyXCI7bWFyZ2luLXJpZ2h0Oi41cmVtO2ZvbnQtc2l6ZToxLjFyZW19LmFydGljbGUtLWNvbnRlbnQgYS5idG4uYXJyb3cgc3Bhbi5DYXJldE91dGxpbmVSaWdodHtmb250LXNpemU6MS41cmVtO2xpbmUtaGVpZ2h0OjA7dmVydGljYWwtYWxpZ246c3ViO2Rpc3BsYXk6aW5saW5lLWJsb2NrO21hcmdpbi1yaWdodDotLjY1cmVtfS5hcnRpY2xlLS1jb250ZW50IGEuYnRuLnNtYWxse3BhZGRpbmc6LjRyZW0gMXJlbX0uYXJ0aWNsZS0tY29udGVudCBhLmJ0bi5zbWFsbC1wbHVze3BhZGRpbmc6LjI1ZW07bGluZS1oZWlnaHQ6LjY1cmVtfS5hcnRpY2xlLS1jb250ZW50IC5zZWxlY3QtdXJse21hcmdpbjotMi41cmVtIDAgMXJlbTt0ZXh0LWFsaWduOnJpZ2h0O2Rpc3BsYXk6bm9uZX0uYXJ0aWNsZS0tY29udGVudCAudXJsLXRyaWdnZXJ7cGFkZGluZzouMjVyZW0gLjVyZW07ZGlzcGxheTppbmxpbmUtYmxvY2s7Zm9udC1zaXplOi44NXJlbTtmb250LXN0eWxlOml0YWxpYztjb2xvcjpyZ2JhKDI1NSwyNTUsMjU1LDAuNSk7YmFja2dyb3VuZDojMDcwNzBFO2JvcmRlci1yYWRpdXM6MCAwIDJweCAycHh9LmFydGljbGUtLWNvbnRlbnQgLnVybC10cmlnZ2VyOmJlZm9yZXtjb250ZW50OlwiXFxlOTI0XCI7ZGlzcGxheTppbmxpbmUtYmxvY2s7bWFyZ2luLXJpZ2h0Oi4zNXJlbTtmb250LWZhbWlseTpcImljb21vb24tdjJcIjtmb250LXN0eWxlOm5vcm1hbDtmb250LXNpemU6LjhyZW19LmFydGljbGUtLWNvbnRlbnQgLnVybC10cmlnZ2VyOmhvdmVye2NvbG9yOiNmZmZ9LmFydGljbGUtLWNvbnRlbnQgbGkgLnVybC10cmlnZ2Vye3BhZGRpbmc6MHJlbSAuNXJlbX0uYXJ0aWNsZS0tY29udGVudCAuY29kZS10YWItY29udGVudCAuc2VsZWN0LXVybHttYXJnaW4tdG9wOi0zLjE1cmVtfS5hcnRpY2xlLS1jb250ZW50IC5jYXB0aW9ue21hcmdpbjotMS44cmVtIDAgMnJlbTtwYWRkaW5nLWxlZnQ6LjI1cmVtO2ZvbnQtc2l6ZTouOTVyZW07Zm9udC1zdHlsZTppdGFsaWN9LmFydGljbGUtLWNvbnRlbnQgLmNhcHRpb24gcHtsaW5lLWhlaWdodDoxLjI1cmVtO2NvbG9yOnJnYmEoMjEyLDIxNSwyMjEsMC44KX0uYXJ0aWNsZS0tY29udGVudCAuY2FwdGlvbiBjb2Rle2ZvbnQtc2l6ZTouOXJlbX0uYXJ0aWNsZS0tY29udGVudCBwKy5jYXB0aW9uLC5hcnRpY2xlLS1jb250ZW50IGxpKy5jYXB0aW9uLC5hcnRpY2xlLS1jb250ZW50IG9sKy5jYXB0aW9uLC5hcnRpY2xlLS1jb250ZW50IHVsKy5jYXB0aW9ue3BhZGRpbmc6MDttYXJnaW46LS43NXJlbSAwIDA7b3BhY2l0eToxfS5hcnRpY2xlLS1jb250ZW50IGgyKy5jYXB0aW9uLC5hcnRpY2xlLS1jb250ZW50IGgzKy5jYXB0aW9uLC5hcnRpY2xlLS1jb250ZW50IGg0Ky5jYXB0aW9uLC5hcnRpY2xlLS1jb250ZW50IGg1Ky5jYXB0aW9uLC5hcnRpY2xlLS1jb250ZW50IGg2Ky5jYXB0aW9ue3BhZGRpbmc6MDttYXJnaW46MDtvcGFjaXR5OjF9LmFydGljbGUtLWNvbnRlbnQgI3F1ZXJ5LXBsYW4tZGlhZ3JhbSsuY2FwdGlvbnttYXJnaW4tdG9wOjB9LmFydGljbGUtLWNvbnRlbnQgLmNoaWxkcmVuLWxpbmtzIGgyLC5hcnRpY2xlLS1jb250ZW50IC5jaGlsZHJlbi1saW5rcyBoMywuYXJ0aWNsZS0tY29udGVudCAuY2hpbGRyZW4tbGlua3MgaDQsLmFydGljbGUtLWNvbnRlbnQgLmxpc3QtbGlua3MgaDIsLmFydGljbGUtLWNvbnRlbnQgLmxpc3QtbGlua3MgaDMsLmFydGljbGUtLWNvbnRlbnQgLmxpc3QtbGlua3MgaDR7bWFyZ2luLXRvcDotLjVyZW19LmFydGljbGUtLWNvbnRlbnQgLmNoaWxkcmVuLWxpbmtzIGgyIGEgYTphZnRlciwuYXJ0aWNsZS0tY29udGVudCAuY2hpbGRyZW4tbGlua3MgaDMgYSBhOmFmdGVyLC5hcnRpY2xlLS1jb250ZW50IC5jaGlsZHJlbi1saW5rcyBoNCBhIGE6YWZ0ZXIsLmFydGljbGUtLWNvbnRlbnQgLmxpc3QtbGlua3MgaDIgYSBhOmFmdGVyLC5hcnRpY2xlLS1jb250ZW50IC5saXN0LWxpbmtzIGgzIGEgYTphZnRlciwuYXJ0aWNsZS0tY29udGVudCAubGlzdC1saW5rcyBoNCBhIGE6YWZ0ZXJ7Y29udGVudDpcIlxcZTkxYVwiO2ZvbnQtZmFtaWx5OlwiaWNvbW9vbi12MlwiO2NvbG9yOnJnYmEoMjU1LDI1NSwyNTUsMC4zNSk7dmVydGljYWwtYWxpZ246Ym90dG9tO3RyYW5zaXRpb246Y29sb3IgLjJzO21hcmdpbi1sZWZ0Oi40cmVtfS5hcnRpY2xlLS1jb250ZW50IC5jaGlsZHJlbi1saW5rcyBoMiBhOmhvdmVyOmFmdGVyLC5hcnRpY2xlLS1jb250ZW50IC5jaGlsZHJlbi1saW5rcyBoMyBhOmhvdmVyOmFmdGVyLC5hcnRpY2xlLS1jb250ZW50IC5jaGlsZHJlbi1saW5rcyBoNCBhOmhvdmVyOmFmdGVyLC5hcnRpY2xlLS1jb250ZW50IC5saXN0LWxpbmtzIGgyIGE6aG92ZXI6YWZ0ZXIsLmFydGljbGUtLWNvbnRlbnQgLmxpc3QtbGlua3MgaDMgYTpob3ZlcjphZnRlciwuYXJ0aWNsZS0tY29udGVudCAubGlzdC1saW5rcyBoNCBhOmhvdmVyOmFmdGVye2NvbG9yOiMwMEEzRkZ9LmFydGljbGUtLWNvbnRlbnQgLmNoaWxkcmVuLWxpbmtzPmhyOmxhc3QtY2hpbGQsLmFydGljbGUtLWNvbnRlbnQgLmxpc3QtbGlua3M+aHI6bGFzdC1jaGlsZHtkaXNwbGF5Om5vbmV9LmFydGljbGUtLWNvbnRlbnQgdWwuY2hpbGRyZW4tbGlzdCt1bHttYXJnaW4tdG9wOi0xLjI1cmVtfS5hcnRpY2xlLS1jb250ZW50IGNvZGUsLmFydGljbGUtLWNvbnRlbnQgcHJle2JhY2tncm91bmQ6IzA3MDcwRTtmb250LWZhbWlseTpcIklCTSBQbGV4IE1vbm9cIixtb25vc3BhY2U7Y29sb3I6I0I3QjhGRn0uYXJ0aWNsZS0tY29udGVudCBwIGNvZGUsLmFydGljbGUtLWNvbnRlbnQgbGkgY29kZSwuYXJ0aWNsZS0tY29udGVudCB0YWJsZSBjb2Rle3BhZGRpbmc6LjFyZW0gLjRyZW0gLjJyZW07Ym9yZGVyLXJhZGl1czoycHg7Y29sb3I6I0I3QjhGRjt3aGl0ZS1zcGFjZTpub3dyYXA7Zm9udC1zaXplOjFyZW07Zm9udC1zdHlsZTpub3JtYWx9LmFydGljbGUtLWNvbnRlbnQgaDEgY29kZSwuYXJ0aWNsZS0tY29udGVudCBoMiBjb2RlLC5hcnRpY2xlLS1jb250ZW50IGgzIGNvZGUsLmFydGljbGUtLWNvbnRlbnQgaDQgY29kZSwuYXJ0aWNsZS0tY29udGVudCBoNSBjb2RlLC5hcnRpY2xlLS1jb250ZW50IGg2IGNvZGV7cGFkZGluZzppbmhlcml0ICFpbXBvcnRhbnQ7YmFja2dyb3VuZDppbmhlcml0ICFpbXBvcnRhbnQ7Zm9udC1zaXplOmluaGVyaXQgIWltcG9ydGFudDtmb250LXdlaWdodDppbmhlcml0ICFpbXBvcnRhbnQ7Zm9udC1mYW1pbHk6XCJQcm94aW1hIE5vdmFcIixzYW5zLXNlcmlmO2NvbG9yOmluaGVyaXQgIWltcG9ydGFudH0uYXJ0aWNsZS0tY29udGVudCBhIGNvZGV7Zm9udC13ZWlnaHQ6bm9ybWFsO3RyYW5zaXRpb246Y29sb3IgLjJzO3Bvc2l0aW9uOnJlbGF0aXZlO2NvbG9yOiMwMEEzRkZ9LmFydGljbGUtLWNvbnRlbnQgYSBjb2RlOmFmdGVye2NvbnRlbnQ6XCJcIjtwb3NpdGlvbjphYnNvbHV0ZTtkaXNwbGF5OmJsb2NrO3RvcDowO3JpZ2h0OjA7Ym9yZGVyLXN0eWxlOnNvbGlkO2JvcmRlci13aWR0aDowIC40cmVtIC40cmVtIDA7Ym9yZGVyLWNvbG9yOnRyYW5zcGFyZW50IHJnYmEoMCwxNjMsMjU1LDAuMzUpIHRyYW5zcGFyZW50IHRyYW5zcGFyZW50O3RyYW5zaXRpb246Ym9yZGVyIC4yc30uYXJ0aWNsZS0tY29udGVudCBhOmhvdmVyIGNvZGV7Y29sb3I6I2ZmZn0uYXJ0aWNsZS0tY29udGVudCBhOmhvdmVyIGNvZGU6YWZ0ZXJ7Ym9yZGVyLWNvbG9yOnRyYW5zcGFyZW50ICNmZmYgdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnR9LmFydGljbGUtLWNvbnRlbnQgcHJle21hcmdpbjoycmVtIDAgMi4yNXJlbTtwYWRkaW5nOjEuNzVyZW0gMS43NXJlbSAxLjI1cmVtO2JvcmRlci1yYWRpdXM6MnB4O292ZXJmbG93LXg6c2Nyb2xsO292ZXJmbG93LXk6aGlkZGVuO2ZvbnQtc2l6ZToxcmVtfS5hcnRpY2xlLS1jb250ZW50IHByZSBjb2Rle3BhZGRpbmc6MDtsaW5lLWhlaWdodDoxLjdyZW07d2hpdGUtc3BhY2U6cHJlfS5hcnRpY2xlLS1jb250ZW50IHByZSAuYXBpe21hcmdpbi1yaWdodDouMzVyZW07cGFkZGluZzouMTVyZW0gLjVyZW0gLjI1cmVtO2JvcmRlci1yYWRpdXM6MnB4O2NvbG9yOiNmZmY7Zm9udC1mYW1pbHk6XCJJQk0gUGxleCBNb25vXCIsbW9ub3NwYWNlO2ZvbnQtd2VpZ2h0OmJvbGQ7Zm9udC1zaXplOjFyZW19LmFydGljbGUtLWNvbnRlbnQgcHJlIC5hcGkuZ2V0e2JhY2tncm91bmQ6IzAwOUY1Rn0uYXJ0aWNsZS0tY29udGVudCBwcmUgLmFwaS5wb3N0e2JhY2tncm91bmQ6IzA2NkZDNX0uYXJ0aWNsZS0tY29udGVudCBwcmUgLmFwaS5wYXRjaHtiYWNrZ3JvdW5kOiNFODVCMUN9LmFydGljbGUtLWNvbnRlbnQgcHJlIC5hcGkuZGVsZXRle2JhY2tncm91bmQ6I0JGM0Q1RX0uYXJ0aWNsZS0tY29udGVudCBwcmUgLmFwaS5wdXR7YmFja2dyb3VuZDojNTEzQ0M2fS5hcnRpY2xlLS1jb250ZW50IHByZS5hcGktZW5kcG9pbnQgYXtwb3NpdGlvbjpyZWxhdGl2ZTtjb2xvcjojMDBBM0ZGO3RleHQtZGVjb3JhdGlvbjpub25lfS5hcnRpY2xlLS1jb250ZW50IHByZS5hcGktZW5kcG9pbnQgYTphZnRlcntjb250ZW50OlwiXFxlOTBkXCI7cG9zaXRpb246YWJzb2x1dGU7cmlnaHQ6LTEuNDVyZW07dG9wOjAuNjVyZW07Zm9udC1mYW1pbHk6XCJpY29tb29uLXY0XCI7Y29sb3I6I2ZmZjtkaXNwbGF5OmlubGluZS1ibG9jaztmb250LXNpemU6MS4xcmVtO2xpbmUtaGVpZ2h0OjA7b3BhY2l0eTowO3RyYW5zaXRpb246b3BhY2l0eSAuMnN9LmFydGljbGUtLWNvbnRlbnQgcHJlLmFwaS1lbmRwb2ludCBhOmhvdmVye2NvbG9yOiNmZmZ9LmFydGljbGUtLWNvbnRlbnQgcHJlLmFwaS1lbmRwb2ludCBhOmhvdmVyOmFmdGVye29wYWNpdHk6LjZ9LmFydGljbGUtLWNvbnRlbnQgc3Bhbi5jb2RlLWNhbGxvdXQsLmFydGljbGUtLWNvbnRlbnQgLmNvZGUtcGxhY2Vob2xkZXJ7Zm9udC13ZWlnaHQ6Ym9sZDttYXJnaW46MCAuMTVyZW19LmFydGljbGUtLWNvbnRlbnQgc3Bhbi5jb2RlLWNhbGxvdXQuZ3JlZW4sLmFydGljbGUtLWNvbnRlbnQgLmNvZGUtcGxhY2Vob2xkZXIuZ3JlZW57Y29sb3I6IzAwOUY1Rn0uYXJ0aWNsZS0tY29udGVudCBzcGFuLmNvZGUtY2FsbG91dC5tYWdlbnRhLC5hcnRpY2xlLS1jb250ZW50IC5jb2RlLXBsYWNlaG9sZGVyLm1hZ2VudGF7Y29sb3I6I2QzMDk3MX0uYXJ0aWNsZS0tY29udGVudCBzcGFuLmNvZGUtY2FsbG91dC5vcmFuZ2UsLmFydGljbGUtLWNvbnRlbnQgLmNvZGUtcGxhY2Vob2xkZXIub3Jhbmdle2NvbG9yOiNGOTVGNTN9LmFydGljbGUtLWNvbnRlbnQgc3Bhbi5jb2RlLWNhbGxvdXQuZGVsZXRlLC5hcnRpY2xlLS1jb250ZW50IHNwYW4uY29kZS1jYWxsb3V0LnN0cmlrZSwuYXJ0aWNsZS0tY29udGVudCAuY29kZS1wbGFjZWhvbGRlci5kZWxldGUsLmFydGljbGUtLWNvbnRlbnQgLmNvZGUtcGxhY2Vob2xkZXIuc3RyaWtle3RleHQtZGVjb3JhdGlvbjpsaW5lLXRocm91Z2h9LmFydGljbGUtLWNvbnRlbnQgLmNvZGUtcGxhY2Vob2xkZXItd3JhcHBlcntkaXNwbGF5OmlubGluZTtwb3NpdGlvbjpyZWxhdGl2ZX0uYXJ0aWNsZS0tY29udGVudCAuY29kZS1wbGFjZWhvbGRlci13cmFwcGVyIC5jb2RlLXBsYWNlaG9sZGVye2Rpc3BsYXk6aW5saW5lLWJsb2NrO21hcmdpbjowIC4xNXJlbTtwYWRkaW5nOjA7bGluZS1oZWlnaHQ6MS40ZW07Y29sb3I6I2U2NTlhMjtmb250LXdlaWdodDpub3JtYWw7Zm9udC1zdHlsZTpub3JtYWw7Ym9yZGVyLWJvdHRvbToxcHggZG90dGVkO3RyYW5zaXRpb246Y29sb3IgLjJzO2N1cnNvcjpwb2ludGVyfS5hcnRpY2xlLS1jb250ZW50IC5jb2RlLXBsYWNlaG9sZGVyLXdyYXBwZXIgLmNvZGUtcGxhY2Vob2xkZXIgLmNvZGUtcGxhY2Vob2xkZXItZWRpdC1pY29ue2ZvbnQtc3R5bGU6bm9ybWFsfS5hcnRpY2xlLS1jb250ZW50IC5jb2RlLXBsYWNlaG9sZGVyLXdyYXBwZXIgLmNvZGUtcGxhY2Vob2xkZXIgLmNvZGUtcGxhY2Vob2xkZXItZWRpdC1pY29uOjpiZWZvcmV7bWFyZ2luLWxlZnQ6LjJyZW07Zm9udC1zaXplOi44ZW07dHJhbnNpdGlvbjpvcGFjaXR5IC4ycztvcGFjaXR5Oi42NTt6LWluZGV4Oi0xfS5hcnRpY2xlLS1jb250ZW50IC5jb2RlLXBsYWNlaG9sZGVyLXdyYXBwZXIgLmNvZGUtcGxhY2Vob2xkZXI6aG92ZXJ7Y29sb3I6IzVlZTRlNH0uYXJ0aWNsZS0tY29udGVudCAuY29kZS1wbGFjZWhvbGRlci13cmFwcGVyIC5jb2RlLXBsYWNlaG9sZGVyOmhvdmVyIC5jb2RlLXBsYWNlaG9sZGVyLWVkaXQtaWNvbjo6YmVmb3Jle29wYWNpdHk6MX0uYXJ0aWNsZS0tY29udGVudCAuY29kZS1wbGFjZWhvbGRlci13cmFwcGVyIC5jb2RlLWlucHV0LXdyYXBwZXJ7cG9zaXRpb246YWJzb2x1dGU7dG9wOi0zcHg7bGVmdDotNC41cHg7ei1pbmRleDoxO2NvbG9yOmluaGVyaXR9LmFydGljbGUtLWNvbnRlbnQgLmNvZGUtcGxhY2Vob2xkZXItd3JhcHBlciAuY29kZS1pbnB1dC13cmFwcGVyIGlucHV0LnBsYWNlaG9sZGVyLWVkaXR7d2lkdGg6MTAwJTttYXgtd2lkdGg6MTAwJTtib3JkZXI6MXB4IHNvbGlkICMxQTFBMkE7Ym9yZGVyLXJhZGl1czo0cHg7YmFja2dyb3VuZC1jb2xvcjojMUExQTJBO3BhZGRpbmc6MnB4IDIwcHggMnB4IDZweDtjb2xvcjojNWVlNGU0O2ZvbnQtd2VpZ2h0Om5vcm1hbH0uYXJ0aWNsZS0tY29udGVudCAuY29kZS1wbGFjZWhvbGRlci13cmFwcGVyIC5jb2RlLWlucHV0LXdyYXBwZXIgaW5wdXQucGxhY2Vob2xkZXItZWRpdDpmb2N1c3tvdXRsaW5lOm5vbmU7Ym9yZGVyLWNvbG9yOnJnYmEoOTQsMjI4LDIyOCwwLjc1KTtib3gtc2hhZG93OjFweCAxcHggOHB4IHJnYmEoOTQsMjI4LDIyOCwwLjUpO2JvcmRlci1yYWRpdXM6MnB4fS5hcnRpY2xlLS1jb250ZW50IC5jb2RlLXBsYWNlaG9sZGVyLXdyYXBwZXIgLmNvZGUtaW5wdXQtd3JhcHBlcjpob3ZlcntjdXJzb3I6cG9pbnRlcn0uYXJ0aWNsZS0tY29udGVudCAuY29kZS1wbGFjZWhvbGRlci13cmFwcGVyIC5jb2RlLWlucHV0LXdyYXBwZXI6YWZ0ZXJ7Y29udGVudDpcIlxcZTkzN1wiO2NvbG9yOiM1ZWU0ZTQ7Zm9udC1mYW1pbHk6J2ljb21vb24tdjQnO2Rpc3BsYXk6YmxvY2s7cG9zaXRpb246YWJzb2x1dGU7dG9wOjA7cmlnaHQ6M3B4fS5hcnRpY2xlLS1jb250ZW50IC5jb2RlLXBsYWNlaG9sZGVyLWtleSBjb2Rle2NvbG9yOiNlNjU5YTIgIWltcG9ydGFudH0uYXJ0aWNsZS0tY29udGVudCBwcmUgc3Bhbi50Yy1keW5hbWljLXZhbHVle2JvcmRlcjoxcHggc29saWQ7Ym9yZGVyLXJhZGl1czo2cHg7cGFkZGluZzowIC4yNXJlbTstLXBhcmFtLWNvbG9yOiAjZmY3OWM2Oy0tcGFyYW0tYmc6ICNmZjc5YzYzMzstLWVudi1jb2xvcjogIzAwOTJiODstLWVudi1iZzogIzAwOTJiODMzOy0tc2VjcmV0LWNvbG9yOiAjOWEwOWZmOy0tc2VjcmV0LWJnOiAjOTgwOWZmMzN9LmFydGljbGUtLWNvbnRlbnQgcHJlIHNwYW4udGMtZHluYW1pYy12YWx1ZS5wYXJhbXtjb2xvcjp2YXIoLS1wYXJhbS1jb2xvcik7YmFja2dyb3VuZDp2YXIoLS1wYXJhbS1iZyk7Ym9yZGVyLWNvbG9yOnZhcigtLXBhcmFtLWNvbG9yKX0uYXJ0aWNsZS0tY29udGVudCBwcmUgc3Bhbi50Yy1keW5hbWljLXZhbHVlLmVudntjb2xvcjp2YXIoLS1lbnYtY29sb3IpO2JhY2tncm91bmQ6dmFyKC0tZW52LWJnKTtib3JkZXItY29sb3I6dmFyKC0tZW52LWNvbG9yKX0uYXJ0aWNsZS0tY29udGVudCBwcmUgc3Bhbi50Yy1keW5hbWljLXZhbHVlLnNlY3JldHtjb2xvcjp2YXIoLS1zZWNyZXQtY29sb3IpO2JhY2tncm91bmQ6dmFyKC0tc2VjcmV0LWJnKTtib3JkZXItY29sb3I6dmFyKC0tc2VjcmV0LWNvbG9yKX1AbWVkaWEgKG1heC13aWR0aDogNjAwcHgpey5hcnRpY2xlLS1jb250ZW50IHByZXtwYWRkaW5nOjEuMmVtIDEuMmVtIC43NXJlbX19LmFydGljbGUtLWNvbnRlbnQgZGl2LmNvbHVtbnMtd3JhcHBlcntjb250YWluZXItdHlwZTppbmxpbmUtc2l6ZTtjb250YWluZXItbmFtZTpjb2x1bW5zfS5hcnRpY2xlLS1jb250ZW50IGRpdi5jb2x1bW5zLTJ7Y29sdW1uczoyfS5hcnRpY2xlLS1jb250ZW50IGRpdi5jb2x1bW5zLTN7Y29sdW1uczozfS5hcnRpY2xlLS1jb250ZW50IGRpdi5jb2x1bW5zLTR7Y29sdW1uczo0fS5hcnRpY2xlLS1jb250ZW50IGRpdi5jb2x1bW5zLTIsLmFydGljbGUtLWNvbnRlbnQgZGl2LmNvbHVtbnMtMywuYXJ0aWNsZS0tY29udGVudCBkaXYuY29sdW1ucy00e21hcmdpbjoxLjVyZW0gMCAyLjVyZW19LmFydGljbGUtLWNvbnRlbnQgZGl2LmNvbHVtbnMtMj4qOmZpcnN0LWNoaWxkLC5hcnRpY2xlLS1jb250ZW50IGRpdi5jb2x1bW5zLTM+KjpmaXJzdC1jaGlsZCwuYXJ0aWNsZS0tY29udGVudCBkaXYuY29sdW1ucy00Pio6Zmlyc3QtY2hpbGR7bWFyZ2luLXRvcDowfUBjb250YWluZXIgY29sdW1ucyAobWF4LXdpZHRoOiA3ODBweCl7LmFydGljbGUtLWNvbnRlbnQgZGl2LmNvbHVtbnMtNHtjb2x1bW5zOjN9fUBjb250YWluZXIgY29sdW1ucyAobWF4LXdpZHRoOiA1NTBweCl7LmFydGljbGUtLWNvbnRlbnQgZGl2LmNvbHVtbnMtMywuYXJ0aWNsZS0tY29udGVudCBkaXYuY29sdW1ucy00e2NvbHVtbnM6Mn19QGNvbnRhaW5lciBjb2x1bW5zIChtYXgtd2lkdGg6IDM1MHB4KXsuYXJ0aWNsZS0tY29udGVudCBkaXYuY29sdW1ucy0yLC5hcnRpY2xlLS1jb250ZW50IGRpdi5jb2x1bW5zLTMsLmFydGljbGUtLWNvbnRlbnQgZGl2LmNvbHVtbnMtNHtjb2x1bW5zOjF9fS5hcnRpY2xlLS1jb250ZW50IC5tZXJtYWlke29wYWNpdHk6MDtjb2xvcjojMTQxNDFGO21hcmdpbjozcmVtIDA7dHJhbnNpdGlvbjpvcGFjaXR5IC41cztmb250LWZhbWlseTpcIlByb3hpbWEgTm92YVwiLHNhbnMtc2VyaWZ9LmFydGljbGUtLWNvbnRlbnQgLm1lcm1haWQgLmFycm93aGVhZFBhdGgsLmFydGljbGUtLWNvbnRlbnQgLm1lcm1haWQgLmFycm93TWFya2VyUGF0aHtmaWxsOiM0MzQ0NTMgIWltcG9ydGFudH0uYXJ0aWNsZS0tY29udGVudCAubWVybWFpZCAuZWRnZVBhdGggLnBhdGgsLmFydGljbGUtLWNvbnRlbnQgLm1lcm1haWQgLmZsb3djaGFydC1saW5re3N0cm9rZTojNDM0NDUzICFpbXBvcnRhbnR9LmFydGljbGUtLWNvbnRlbnQgLm1lcm1haWQgLmxhYmVsLC5hcnRpY2xlLS1jb250ZW50IC5tZXJtYWlkIC5ub2RlTGFiZWx7Y29sb3I6I0Q0RDdERCAhaW1wb3J0YW50fS5hcnRpY2xlLS1jb250ZW50IC5tZXJtYWlkIC5jbHVzdGVyLWxhYmVsIC5ub2RlTGFiZWx7Y29sb3I6I0I3QjhGRiAhaW1wb3J0YW50fS5hcnRpY2xlLS1jb250ZW50IC5tZXJtYWlkIC5lZGdlTGFiZWx7Y29sb3I6I0Q0RDdERCAhaW1wb3J0YW50O2JhY2tncm91bmQ6IzA3MDcwRSAhaW1wb3J0YW50O2ZvbnQtc2l6ZTouODVlbTtmb250LXdlaWdodDo1MDB9LmFydGljbGUtLWNvbnRlbnQgLm1lcm1haWQgLmVkZ2VMYWJlbCBwe2JhY2tncm91bmQ6IzE0MTQxRiAhaW1wb3J0YW50fS5hcnRpY2xlLS1jb250ZW50IC5tZXJtYWlkIC5ub2RlIHJlY3QsLmFydGljbGUtLWNvbnRlbnQgLm1lcm1haWQgLm5vZGUgY2lyY2xlLC5hcnRpY2xlLS1jb250ZW50IC5tZXJtYWlkIC5ub2RlIGVsbGlwc2UsLmFydGljbGUtLWNvbnRlbnQgLm1lcm1haWQgLm5vZGUgcG9seWdvbiwuYXJ0aWNsZS0tY29udGVudCAubWVybWFpZCAubm9kZSBwYXRoe2ZpbGw6IzE0MTQxRiAhaW1wb3J0YW50O3N0cm9rZTojNDM0NDUzICFpbXBvcnRhbnQ7c3Ryb2tlLXdpZHRoOjJweCAhaW1wb3J0YW50fS5hcnRpY2xlLS1jb250ZW50IC5tZXJtYWlkIC5ub2RlIHNwYW4ubGFiZWx7Y29sb3I6I0Q0RDdERCAhaW1wb3J0YW50fS5hcnRpY2xlLS1jb250ZW50IC5tZXJtYWlkIC5jbHVzdGVyIHJlY3QsLmFydGljbGUtLWNvbnRlbnQgLm1lcm1haWQgLmNsdXN0ZXIgY2lyY2xlLC5hcnRpY2xlLS1jb250ZW50IC5tZXJtYWlkIC5jbHVzdGVyIGVsbGlwc2UsLmFydGljbGUtLWNvbnRlbnQgLm1lcm1haWQgLmNsdXN0ZXIgcG9seWdvbiwuYXJ0aWNsZS0tY29udGVudCAubWVybWFpZCAuY2x1c3RlciBwYXRoe2ZpbGw6IzA3MDcwRSAhaW1wb3J0YW50O3N0cm9rZTpub25lICFpbXBvcnRhbnR9LmFydGljbGUtLWNvbnRlbnQgLm1lcm1haWRbZGF0YS1wcm9jZXNzZWQ9XCJ0cnVlXCJde29wYWNpdHk6MX0uYXJ0aWNsZS0tY29udGVudCAuZXhwYW5kLXdyYXBwZXJ7bWFyZ2luOjJyZW0gMCAycmVtfS5hcnRpY2xlLS1jb250ZW50IGg1Ky5leHBhbmQtd3JhcHBlciwuYXJ0aWNsZS0tY29udGVudCBoNisuZXhwYW5kLXdyYXBwZXJ7bWFyZ2luLXRvcDouNzVyZW19LmFydGljbGUtLWNvbnRlbnQgLmV4cGFuZHtwb3NpdGlvbjpyZWxhdGl2ZTtib3JkZXItdG9wOjFweCBzb2xpZCAjMzgzODQ2O3BhZGRpbmc6Ljc1cmVtIDB9LmFydGljbGUtLWNvbnRlbnQgLmV4cGFuZDpsYXN0LW9mLXR5cGUsLmFydGljbGUtLWNvbnRlbnQgLmV4cGFuZDpvbmx5LWNoaWxke2JvcmRlci1ib3R0b206MXB4IHNvbGlkICMzODM4NDZ9LmFydGljbGUtLWNvbnRlbnQgLmV4cGFuZC1sYWJlbHtkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2ZvbnQtd2VpZ2h0OmJvbGQ7bWFyZ2luLWJvdHRvbTowO3BhZGRpbmctcmlnaHQ6Mi41cmVtO2N1cnNvcjpwb2ludGVyfS5hcnRpY2xlLS1jb250ZW50IC5leHBhbmQtbGFiZWw6aG92ZXIgLmV4cGFuZC10b2dnbGV7YmFja2dyb3VuZDojMDBDOUZGfS5hcnRpY2xlLS1jb250ZW50IC5leHBhbmQtbGlua3tkaXNwbGF5OmJsb2NrO3Bvc2l0aW9uOmFic29sdXRlO3RvcDoxcmVtO3JpZ2h0Oi43NXJlbTttaW4taGVpZ2h0OjIwcHg7bWluLXdpZHRoOjIwcHg7Zm9udC1zaXplOjEuMjVyZW07Y29sb3I6I0ZBRkFGQztvcGFjaXR5Oi4zO3RyYW5zaXRpb246b3BhY2l0eSAuMnN9LmFydGljbGUtLWNvbnRlbnQgLmV4cGFuZC1saW5rOmhvdmVye2NvbG9yOiNGQUZBRkM7b3BhY2l0eToxfS5hcnRpY2xlLS1jb250ZW50IC5leHBhbmQtdG9nZ2xle3Bvc2l0aW9uOnJlbGF0aXZlO2Rpc3BsYXk6aW5saW5lLWJsb2NrO21pbi1oZWlnaHQ6MjBweDttaW4td2lkdGg6MjBweDtiYWNrZ3JvdW5kOiMyQUEzRkY7Ym9yZGVyLXJhZGl1czo1MCU7bWFyZ2luLXJpZ2h0Oi43NXJlbTt0cmFuc2l0aW9uOmJhY2tncm91bmQtY29sb3IgLjJzfS5hcnRpY2xlLS1jb250ZW50IC5leHBhbmQtdG9nZ2xlOmJlZm9yZSwuYXJ0aWNsZS0tY29udGVudCAuZXhwYW5kLXRvZ2dsZTphZnRlcntjb250ZW50OlwiXCI7ZGlzcGxheTpibG9jazt3aWR0aDoxMHB4O2hlaWdodDoycHg7cG9zaXRpb246YWJzb2x1dGU7YmFja2dyb3VuZDojMTQxNDFGO3RyYW5zaXRpb246YWxsIC40czt0b3A6OXB4O2xlZnQ6NXB4fS5hcnRpY2xlLS1jb250ZW50IC5leHBhbmQtdG9nZ2xlOmFmdGVye3RyYW5zZm9ybTpyb3RhdGUoOTBkZWcpfS5hcnRpY2xlLS1jb250ZW50IC5leHBhbmQtdG9nZ2xlLm9wZW46YmVmb3JlLC5hcnRpY2xlLS1jb250ZW50IC5leHBhbmQtdG9nZ2xlLm9wZW46YWZ0ZXJ7dHJhbnNmb3JtOnJvdGF0ZSgxODBkZWcpfS5hcnRpY2xlLS1jb250ZW50IC5leHBhbmQtY29udGVudHtwYWRkaW5nLXRvcDoxcmVtfS5hcnRpY2xlLS1jb250ZW50IC5mZWVkYmFja3tkaXNwbGF5OmZsZXg7anVzdGlmeS1jb250ZW50OnNwYWNlLWJldHdlZW47Ym9yZGVyOm5vbmU7Ym9yZGVyLXJhZGl1czoycHg7Ym94LXNoYWRvdzoxcHggMnB4IDZweCAjMDcwNzBFO2JhY2tncm91bmQ6cmdiYSgyMTIsMjE1LDIyMSwwLjAzKX0uYXJ0aWNsZS0tY29udGVudCAuZmVlZGJhY2sgaDR7Y29sb3I6I2ZmZn0uYXJ0aWNsZS0tY29udGVudCAuc3VwcG9ydHtwYWRkaW5nLXJpZ2h0OjJyZW19LmFydGljbGUtLWNvbnRlbnQgLnN1cHBvcnQgdWx7bWFyZ2luLWJvdHRvbToxLjI1cmVtO3BhZGRpbmc6MDtsaXN0LXN0eWxlOm5vbmV9LmFydGljbGUtLWNvbnRlbnQgLnN1cHBvcnQgdWwgYXtjb2xvcjojZmZmO2ZvbnQtd2VpZ2h0OjUwMDtwb3NpdGlvbjpyZWxhdGl2ZX0uYXJ0aWNsZS0tY29udGVudCAuc3VwcG9ydCB1bCBhOjphZnRlcntjb250ZW50OlwiXFxlOTBhXCI7Zm9udC1mYW1pbHk6J2ljb21vb24tdjQnO2ZvbnQtd2VpZ2h0OmJvbGQ7Zm9udC1zaXplOjEuM3JlbTtkaXNwbGF5OmlubGluZS1ibG9jaztwb3NpdGlvbjphYnNvbHV0ZTtiYWNrZ3JvdW5kOmxpbmVhci1ncmFkaWVudCg0NWRlZywgI2QzMDk3MSwjOWIyYWZmKTtiYWNrZ3JvdW5kLWNsaXA6dGV4dDstd2Via2l0LXRleHQtZmlsbC1jb2xvcjp0cmFuc3BhcmVudDtyaWdodDowO3RyYW5zZm9ybTp0cmFuc2xhdGVYKDAuMjVyZW0pO29wYWNpdHk6MDt0cmFuc2l0aW9uOnRyYW5zZm9ybSAuMnMsIG9wYWNpdHkgLjJzfS5hcnRpY2xlLS1jb250ZW50IC5zdXBwb3J0IHVsIGE6aG92ZXI6OmFmdGVye3RyYW5zZm9ybTp0cmFuc2xhdGVYKDEuNXJlbSk7b3BhY2l0eToxfS5hcnRpY2xlLS1jb250ZW50IC5zdXBwb3J0IHVsIGEuZGlzY29yZDpiZWZvcmV7Y29udGVudDp1cmwoXCIvc3Zncy9kaXNjb3JkLnN2Z1wiKTtkaXNwbGF5OmlubGluZS1ibG9jaztoZWlnaHQ6MS4xcmVtO3dpZHRoOjEuMjVyZW07dmVydGljYWwtYWxpZ246dG9wO21hcmdpbjoycHggLjY1cmVtIDAgMH0uYXJ0aWNsZS0tY29udGVudCAuc3VwcG9ydCB1bCBhLmNvbW11bml0eTpiZWZvcmV7Y29udGVudDpcIlxcZTkwMFwiO2NvbG9yOiNmZmY7bWFyZ2luLXJpZ2h0Oi43NXJlbTtmb250LXNpemU6MS4ycmVtO2ZvbnQtZmFtaWx5OidpY29tb29uLXYyJzt2ZXJ0aWNhbC1hbGlnbjptaWRkbGV9LmFydGljbGUtLWNvbnRlbnQgLnN1cHBvcnQgdWwgYS5zbGFjazpiZWZvcmV7Y29udGVudDp1cmwoXCIvc3Zncy9zbGFjay5zdmdcIik7ZGlzcGxheTppbmxpbmUtYmxvY2s7aGVpZ2h0OjEuMXJlbTt3aWR0aDoxLjFyZW07dmVydGljYWwtYWxpZ246dGV4dC10b3A7bWFyZ2luLXJpZ2h0Oi44cmVtfS5hcnRpY2xlLS1jb250ZW50IC5zdXBwb3J0IHVsIGEucmVkZGl0OmJlZm9yZXtjb250ZW50OnVybChcIi9zdmdzL3JlZGRpdC5zdmdcIik7ZGlzcGxheTppbmxpbmUtYmxvY2s7aGVpZ2h0OjEuMXJlbTt3aWR0aDoxLjJyZW07dmVydGljYWwtYWxpZ246dG9wO21hcmdpbjoycHggLjc1cmVtIDAgMH0uYXJ0aWNsZS0tY29udGVudCAuYWN0aW9uc3ttaW4td2lkdGg6MjMwcHg7cGFkZGluZy1ib3R0b206MS43NXJlbX0uYXJ0aWNsZS0tY29udGVudCAuYWN0aW9ucyBhe2Rpc3BsYXk6YmxvY2s7cGFkZGluZy1sZWZ0OjFyZW07Zm9udC1zaXplOi45NXJlbX0uYXJ0aWNsZS0tY29udGVudCAuYWN0aW9ucyBhLmJ0bntjb2xvcjojRDREN0REICFpbXBvcnRhbnQ7YmFja2dyb3VuZDojMzMzMzQ2ICFpbXBvcnRhbnR9LmFydGljbGUtLWNvbnRlbnQgLmFjdGlvbnMgYS5idG46YWZ0ZXJ7YmFja2dyb3VuZDpsaW5lYXItZ3JhZGllbnQoNDVkZWcsICMwNjZGQzUsIzAwQTNGRil9LmFydGljbGUtLWNvbnRlbnQgLmFjdGlvbnMgYS5idG46aG92ZXJ7Y29sb3I6I2ZmZiAhaW1wb3J0YW50fS5hcnRpY2xlLS1jb250ZW50IC5hY3Rpb25zIGE6YmVmb3Jle2Rpc3BsYXk6aW5saW5lLWJsb2NrO21hcmdpbi1yaWdodDouN3JlbTtmb250LWZhbWlseTonaWNvbW9vbi12Mid9LmFydGljbGUtLWNvbnRlbnQgLmFjdGlvbnMgYS5lZGl0OmJlZm9yZXtjb250ZW50OlwiXFxlOTJmXCI7Zm9udC1zaXplOi44NXJlbX0uYXJ0aWNsZS0tY29udGVudCAuYWN0aW9ucyBhLmlzc3VlOmJlZm9yZXtjb250ZW50OlwiXFxlOTM0XCI7Zm9udC1zaXplOjFyZW19LmFydGljbGUtLWNvbnRlbnQgLmhlbHBmdWx7cG9zaXRpb246cmVsYXRpdmU7ZGlzcGxheTpmbGV4O2ZsZXgtZGlyZWN0aW9uOnJvdztqdXN0aWZ5LWNvbnRlbnQ6c3BhY2UtYmV0d2Vlbn0uYXJ0aWNsZS0tY29udGVudCAuaGVscGZ1bCBwe21hcmdpbi1ib3R0b206MH0uYXJ0aWNsZS0tY29udGVudCAuaGVscGZ1bCBsYWJlbC5yYWRpby1idG5ze3Bvc2l0aW9uOnJlbGF0aXZlO2Rpc3BsYXk6aW5saW5lLWJsb2NrO21pbi13aWR0aDo0cmVtO3BhZGRpbmc6LjVyZW0gMXJlbTtmb250LXNpemU6Ljk1cmVtO2ZvbnQtd2VpZ2h0OjUwMDt0ZXh0LWFsaWduOmNlbnRlcjtjb2xvcjojRkFGQUZDO2JvcmRlci1yYWRpdXM6M3B4O2JhY2tncm91bmQ6cmdiYSgyMTIsMjE1LDIyMSwwLjEpO2N1cnNvcjpwb2ludGVyO3otaW5kZXg6MX0uYXJ0aWNsZS0tY29udGVudCAuaGVscGZ1bCBsYWJlbC5yYWRpby1idG5zOmFmdGVye2NvbnRlbnQ6XCJcIjtkaXNwbGF5OmJsb2NrO3Bvc2l0aW9uOmFic29sdXRlO21hcmdpbjowO3BhZGRpbmc6MDt0b3A6MDtsZWZ0OjA7d2lkdGg6MTAwJTtoZWlnaHQ6MTAwJTtib3JkZXItcmFkaXVzOjNweDttaW4td2lkdGg6NHJlbTt6LWluZGV4Oi0xO29wYWNpdHk6MDt0cmFuc2l0aW9uOm9wYWNpdHkgLjJzLCBjb2xvciAuMnN9LmFydGljbGUtLWNvbnRlbnQgLmhlbHBmdWwgbGFiZWwucmFkaW8tYnRucyNoZWxwZnVsOmFmdGVye2JhY2tncm91bmQ6bGluZWFyLWdyYWRpZW50KDQ1ZGVnLCAjMDA5RjVGLCMzNEJCNTUpfS5hcnRpY2xlLS1jb250ZW50IC5oZWxwZnVsIGxhYmVsLnJhZGlvLWJ0bnMjbm90LWhlbHBmdWw6YWZ0ZXJ7YmFja2dyb3VuZDpsaW5lYXItZ3JhZGllbnQoNDVkZWcsICNGOTVGNTMsI0ZGODU2NCl9LmFydGljbGUtLWNvbnRlbnQgLmhlbHBmdWwgbGFiZWwucmFkaW8tYnRuczpob3Zlcntjb2xvcjojZmZmfS5hcnRpY2xlLS1jb250ZW50IC5oZWxwZnVsIGxhYmVsLnJhZGlvLWJ0bnM6aG92ZXI6YWZ0ZXJ7b3BhY2l0eToxfS5hcnRpY2xlLS1jb250ZW50IC5oZWxwZnVsIGlucHV0W3R5cGU9J3JhZGlvJ117ZGlzcGxheTpub25lfS5hcnRpY2xlLS1jb250ZW50IC5oZWxwZnVsIC5sb2FkZXItd3JhcHBlciwuYXJ0aWNsZS0tY29udGVudCAuaGVscGZ1bCAjdGhhbmsteW91e3Bvc2l0aW9uOmFic29sdXRlO2Rpc3BsYXk6bm9uZTt0b3A6MDtsZWZ0OjA7d2lkdGg6MTAwJTtoZWlnaHQ6MTAwJTtiYWNrZ3JvdW5kLWNvbG9yOiMxNDE0MUZ9LmFydGljbGUtLWNvbnRlbnQgLmhlbHBmdWwgLmxvYWRlci13cmFwcGVye3otaW5kZXg6NX0uYXJ0aWNsZS0tY29udGVudCAuaGVscGZ1bCAubG9hZGVyLXdyYXBwZXIgLmxvYWRlcnttYXJnaW46MCBhdXRvfS5hcnRpY2xlLS1jb250ZW50IC5oZWxwZnVsICN0aGFuay15b3V7ei1pbmRleDoxMH0uYXJ0aWNsZS0tY29udGVudCAuaGVscGZ1bCAjdGhhbmsteW91IHB7dGV4dC1hbGlnbjpjZW50ZXJ9QG1lZGlhIChtYXgtd2lkdGg6IDgwMHB4KXsuYXJ0aWNsZS0tY29udGVudCAuZmVlZGJhY2t7ZmxleC1kaXJlY3Rpb246Y29sdW1ufX1AbWVkaWEgKG1heC13aWR0aDogNjAwcHgpey5hcnRpY2xlLS1jb250ZW50IC5hY3Rpb25ze3BhZGRpbmctYm90dG9tOjFyZW19fS5hcnRpY2xlLS1jb250ZW50IC5mbGV4LXdyYXBwZXJ7ZGlzcGxheTpmbGV4O2ZsZXgtd3JhcDp3cmFwO21hcmdpbjoxLjVyZW0gMH0uYXJ0aWNsZS0tY29udGVudCAuZmxleC1jb250YWluZXJ7bWFyZ2luLXJpZ2h0OjEuNXJlbX0uYXJ0aWNsZS0tY29udGVudCAuZmxleC1jb250YWluZXIuaGFsZnt3aWR0aDpjYWxjKDUwJSAtIDEuNXJlbSl9LmFydGljbGUtLWNvbnRlbnQgLmZsZXgtY29udGFpbmVyLnRoaXJke3dpZHRoOmNhbGMoMzMuMzMlIC0gMS41cmVtKX0uYXJ0aWNsZS0tY29udGVudCAuZmxleC1jb250YWluZXIucXVhcnRlcnt3aWR0aDpjYWxjKDI1JSAtIDEuNXJlbSl9LmFydGljbGUtLWNvbnRlbnQgLmZsZXgtY29udGFpbmVyLnR3by10aGlyZHN7d2lkdGg6Y2FsYyg2NiUgLSAycmVtKX0uYXJ0aWNsZS0tY29udGVudCAuZmxleC1jb250YWluZXIuaGFsZiB0YWJsZTpub3QoOmxhc3QtY2hpbGQpLC5hcnRpY2xlLS1jb250ZW50IC5mbGV4LWNvbnRhaW5lci50aGlyZCB0YWJsZTpub3QoOmxhc3QtY2hpbGQpLC5hcnRpY2xlLS1jb250ZW50IC5mbGV4LWNvbnRhaW5lci5xdWFydGVyIHRhYmxlOm5vdCg6bGFzdC1jaGlsZCl7bWFyZ2luLXJpZ2h0OjEuNXJlbX0uYXJ0aWNsZS0tY29udGVudCAuZmxleC1jb250YWluZXIgaW1ne21hcmdpbi1ib3R0b206MH0uYXJ0aWNsZS0tY29udGVudCAuZmxleC1jb250YWluZXIgdGFibGV7ZGlzcGxheTp0YWJsZX0uYXJ0aWNsZS0tY29udGVudCAuZmxleC1jb250YWluZXIgcDpsYXN0LWNoaWxke21hcmdpbi1ib3R0b206MC41cmVtfS5hcnRpY2xlLS1jb250ZW50IC5mbGV4LWNvbnRhaW5lci5vcGVyYXRvci1leGFtcGxlIC5oaWdobGlnaHQ6Zmlyc3QtY2hpbGQgLmNvZGVibG9jayBwcmV7bWFyZ2luLXRvcDowO21hcmdpbi1ib3R0b206MS41cmVtfS5hcnRpY2xlLS1jb250ZW50IC5mbGV4LWNvbnRhaW5lci5vcGVyYXRvci1leGFtcGxlIHRhYmxlOmZpcnN0LWNoaWxke21hcmdpbi10b3A6MDttYXJnaW4tYm90dG9tOjEuNXJlbX0uYXJ0aWNsZS0tY29udGVudCAuZmxleC1jb250YWluZXIub3BlcmF0b3ItZXhhbXBsZSB0YWJsZTpmaXJzdC1jaGlsZCB0aHtmb250LXNpemU6MS4wNXJlbX0uYXJ0aWNsZS0tY29udGVudCAuZmxleC1jb250YWluZXIub3BlcmF0b3ItZXhhbXBsZSB0YWJsZTpmaXJzdC1jaGlsZCB0aCwuYXJ0aWNsZS0tY29udGVudCAuZmxleC1jb250YWluZXIub3BlcmF0b3ItZXhhbXBsZSB0YWJsZTpmaXJzdC1jaGlsZCB0ZHtwYWRkaW5nOi42NXJlbSAxLjE1cmVtfUBtZWRpYSAobWF4LXdpZHRoOiA2MDBweCl7LmFydGljbGUtLWNvbnRlbnQgLmZsZXgtY29udGFpbmVyLmhhbGYsLmFydGljbGUtLWNvbnRlbnQgLmZsZXgtY29udGFpbmVyLnRoaXJkLC5hcnRpY2xlLS1jb250ZW50IC5mbGV4LWNvbnRhaW5lci50d28tdGhpcmRze3dpZHRoOmNhbGMoMTAwJSAtIDFyZW0pfS5hcnRpY2xlLS1jb250ZW50IC5mbGV4LWNvbnRhaW5lci5xdWFydGVye3dpZHRoOmNhbGMoNTAlIC0gMXJlbSl9LmFydGljbGUtLWNvbnRlbnQgLmZsZXgtY29udGFpbmVyIHA6bGFzdC1jaGlsZHttYXJnaW4tYm90dG9tOjEuNXJlbX19LmFydGljbGUtLWNvbnRlbnQgaDI6YWZ0ZXIsLmFydGljbGUtLWNvbnRlbnQgaDM6YWZ0ZXIsLmFydGljbGUtLWNvbnRlbnQgaDQ6YWZ0ZXJ7Y29udGVudDphdHRyKGRhdGEtdHlwZSk7ZGlzcGxheTppbmxpbmUtYmxvY2s7bWFyZ2luLWxlZnQ6LjVyZW07Zm9udC1zdHlsZTppdGFsaWM7Zm9udC1zaXplOi42MmVtO2ZvbnQtd2VpZ2h0OjIwMDtvcGFjaXR5Oi41fS5hcnRpY2xlLS1jb250ZW50IC5mdW5jdGlvbi1saXN0IGEuZXhwZXJpbWVudGFsOjphZnRlcntjb250ZW50OidcXGU5MDMnO2ZvbnQtZmFtaWx5OidpY29tb29uLXY0JzttYXJnaW4tbGVmdDouNDVyZW07Y29sb3I6cmdiYSgyMTIsMjE1LDIyMSwwLjM1KTtmb250LXN0eWxlOm5vcm1hbDtkaXNwbGF5OmlubGluZS1ibG9jazt2ZXJ0aWNhbC1hbGlnbjptaWRkbGV9LmFydGljbGUtLWNvbnRlbnQgI2ZsdXgtZ3JvdXAta2V5cy1kZW1vIHRhYmxle21hcmdpbi1ib3R0b206MS4yNXJlbX0uYXJ0aWNsZS0tY29udGVudCAjZmx1eC1ncm91cC1rZXlzLWRlbW8gdGFibGUgdGQ6Zmlyc3QtY2hpbGQsLmFydGljbGUtLWNvbnRlbnQgI2ZsdXgtZ3JvdXAta2V5cy1kZW1vIHRhYmxlIHRoOmZpcnN0LWNoaWxke3RleHQtYWxpZ246bGVmdH0uYXJ0aWNsZS0tY29udGVudCAjZmx1eC1ncm91cC1rZXlzLWRlbW8gdGFibGUgdGQ6bGFzdC1jaGlsZCwuYXJ0aWNsZS0tY29udGVudCAjZmx1eC1ncm91cC1rZXlzLWRlbW8gdGFibGUgdGg6bGFzdC1jaGlsZHt0ZXh0LWFsaWduOnJpZ2h0fS5hcnRpY2xlLS1jb250ZW50ICNmbHV4LWdyb3VwLWtleXMtZGVtbyB0YWJsZSB0ZC5ncm91cGVkLWJ5LC5hcnRpY2xlLS1jb250ZW50ICNmbHV4LWdyb3VwLWtleXMtZGVtbyB0YWJsZSB0aC5ncm91cGVkLWJ5e2ZvbnQtd2VpZ2h0OmJvbGR9LmFydGljbGUtLWNvbnRlbnQgI2ZsdXgtZ3JvdXAta2V5cy1kZW1vIHRhYmxlIHRoLmdyb3VwZWQtYnl7Y29sb3I6I0Q2RjYyMn0uYXJ0aWNsZS0tY29udGVudCAjZmx1eC1ncm91cC1rZXlzLWRlbW8gdGFibGUgdGQuZ3JvdXBlZC1ieXtjb2xvcjojRDZGNjIyfS5hcnRpY2xlLS1jb250ZW50ICNmbHV4LWdyb3VwLWtleXMtZGVtbyAjZ3JvdXAtYnktY29sdW1ucyAuY29sdW1uLWxpc3R7cGFkZGluZzowO21hcmdpbjouNXJlbSAwIDA7bGlzdC1zdHlsZTpub25lfS5hcnRpY2xlLS1jb250ZW50ICNmbHV4LWdyb3VwLWtleXMtZGVtbyAjZ3JvdXAtYnktY29sdW1ucyAuY29sdW1uLWxpc3QgbGl7bWFyZ2luOjA7bGluZS1oZWlnaHQ6MS4zNXJlbX0uYXJ0aWNsZS0tY29udGVudCAjZmx1eC1ncm91cC1rZXlzLWRlbW8gI2dyb3VwLWJ5LWNvbHVtbnMgbGFiZWx7ZGlzcGxheTppbmxpbmUtYmxvY2s7cGFkZGluZzouMjVyZW0gMDtjb2xvcjojRDREN0REO3Bvc2l0aW9uOnJlbGF0aXZlfS5hcnRpY2xlLS1jb250ZW50ICNmbHV4LWdyb3VwLWtleXMtZGVtbyAjZ3JvdXAtYnktY29sdW1ucyBsYWJlbDphZnRlcntjb250ZW50OmF0dHIoZGF0YS1jb3VudCk7bWFyZ2luLWxlZnQ6MDtmb250LXNpemU6Ljg1cmVtO29wYWNpdHk6LjV9LmFydGljbGUtLWNvbnRlbnQgI2ZsdXgtZ3JvdXAta2V5cy1kZW1vICNncm91cC1ieS1jb2x1bW5zIC5jaGVja2JveHtkaXNwbGF5OmlubGluZS1ibG9jaztwb3NpdGlvbjpyZWxhdGl2ZTtoZWlnaHQ6MS4xNWVtO3dpZHRoOjEuMTVlbTtiYWNrZ3JvdW5kOnJnYmEoMjEyLDIxNSwyMjEsMC4wNSk7bWFyZ2luLXJpZ2h0Oi4zcmVtO3ZlcnRpY2FsLWFsaWduOnRleHQtdG9wO2JvcmRlci1yYWRpdXM6MnB4O2N1cnNvcjpwb2ludGVyO2JvcmRlcjoxLjVweCBzb2xpZCByZ2JhKDIxMiwyMTUsMjIxLDAuMik7dXNlci1zZWxlY3Q6bm9uZX0uYXJ0aWNsZS0tY29udGVudCAjZmx1eC1ncm91cC1rZXlzLWRlbW8gI2dyb3VwLWJ5LWNvbHVtbnMgaW5wdXRbdHlwZT0nY2hlY2tib3gnXXttYXJnaW4tcmlnaHQ6LTEuMXJlbTtwYWRkaW5nOjA7dmVydGljYWwtYWxpZ246dG9wO29wYWNpdHk6MDtjdXJzb3I6cG9pbnRlcn0uYXJ0aWNsZS0tY29udGVudCAjZmx1eC1ncm91cC1rZXlzLWRlbW8gI2dyb3VwLWJ5LWNvbHVtbnMgaW5wdXRbdHlwZT0nY2hlY2tib3gnXSsuY2hlY2tib3g6YWZ0ZXJ7Y29udGVudDpcIlwiO2Rpc3BsYXk6YmxvY2s7cG9zaXRpb246YWJzb2x1dGU7aGVpZ2h0Oi41cmVtO3dpZHRoOi41cmVtO2JvcmRlci1yYWRpdXM6NTAlO2JhY2tncm91bmQ6IzAwQTNGRjt0b3A6NTAlO2xlZnQ6NTAlO29wYWNpdHk6MDt0cmFuc2Zvcm06c2NhbGUoMikgdHJhbnNsYXRlKC0yMCUsIC0yMCUpO3RyYW5zaXRpb246YWxsIC4yc30uYXJ0aWNsZS0tY29udGVudCAjZmx1eC1ncm91cC1rZXlzLWRlbW8gI2dyb3VwLWJ5LWNvbHVtbnMgaW5wdXRbdHlwZT0nY2hlY2tib3gnXTpjaGVja2VkKy5jaGVja2JveDphZnRlcntvcGFjaXR5OjE7dHJhbnNmb3JtOnNjYWxlKDEpIHRyYW5zbGF0ZSgtNTAlLCAtNTAlKX0uYXJ0aWNsZS0tY29udGVudCAjZmx1eC1ncm91cC1rZXlzLWRlbW8gcHJlI2dyb3VwLWJ5LWV4YW1wbGV7bGluZS1oZWlnaHQ6MS40cmVtO2ZvbnQtc2l6ZTouOTVyZW19LmFydGljbGUtLWNvbnRlbnQgI2ZsdXgtZ3JvdXAta2V5cy1kZW1vIHByZSNncm91cC1ieS1leGFtcGxlIC5ueHtjb2xvcjojMDBBM0ZGfS5hcnRpY2xlLS1jb250ZW50ICNmbHV4LWdyb3VwLWtleXMtZGVtbyBwcmUjZ3JvdXAtYnktZXhhbXBsZSAuczJ7Y29sb3I6IzAwOUY1Rn0uYXJ0aWNsZS0tY29udGVudCAuZmx1eC13YXRlci1kaWFncmFte2JhY2tncm91bmQ6dXJsKFwiL2ltZy9mbHV4LzAteC13YXRlci1wcm9jZXNzLWRhcmsuc3ZnXCIpO21hcmdpbjoycmVtIDAgLjVyZW07d2lkdGg6MTAwJTtoZWlnaHQ6MDtwYWRkaW5nLXRvcDo2My43MSU7YmFja2dyb3VuZC1yZXBlYXQ6bm8tcmVwZWF0fS5hcnRpY2xlLS1jb250ZW50ICNmbHV4LWRhdGEtbW9kZWx7bWF4LXdpZHRoOjUwMHB4O21hcmdpbjozcmVtIDB9LmFydGljbGUtLWNvbnRlbnQgI2ZsdXgtZGF0YS1tb2RlbCAuc3RyZWFtLW9mLXRhYmxlc3twb3NpdGlvbjpyZWxhdGl2ZTtib3JkZXI6MXB4IGRhc2hlZCAjRDREN0REO3BhZGRpbmc6MXJlbTtib3JkZXItcmFkaXVzOjRweH0uYXJ0aWNsZS0tY29udGVudCAjZmx1eC1kYXRhLW1vZGVsIC5zdHJlYW0tb2YtdGFibGVzOmJlZm9yZXtjb250ZW50OlwiU3RyZWFtIG9mIHRhYmxlc1wiO2ZvbnQtd2VpZ2h0OjUwMDtjb2xvcjojRkFGQUZDO2JhY2tncm91bmQ6IzE0MTQxRjtwb3NpdGlvbjphYnNvbHV0ZTtwYWRkaW5nOjAgMXJlbTt0b3A6LS42NXJlbX0uYXJ0aWNsZS0tY29udGVudCAjZmx1eC1kYXRhLW1vZGVsIHRhYmxle2Rpc3BsYXk6dGFibGU7d2lkdGg6MTAwJTtvdmVyZmxvdzp2aXNpYmxlO21hcmdpbjowfS5hcnRpY2xlLS1jb250ZW50ICNmbHV4LWRhdGEtbW9kZWwgdGFibGUgdGgsLmFydGljbGUtLWNvbnRlbnQgI2ZsdXgtZGF0YS1tb2RlbCB0YWJsZSB0ZHtib3JkZXItcmlnaHQ6MXB4IGRhc2hlZCByZ2JhKDIxMiwyMTUsMjIxLDAuMjUpfS5hcnRpY2xlLS1jb250ZW50ICNmbHV4LWRhdGEtbW9kZWwgdGFibGUgdGg6bGFzdC1jaGlsZCwuYXJ0aWNsZS0tY29udGVudCAjZmx1eC1kYXRhLW1vZGVsIHRhYmxlIHRkOmxhc3QtY2hpbGR7Ym9yZGVyOm5vbmV9LmFydGljbGUtLWNvbnRlbnQgI2ZsdXgtZGF0YS1tb2RlbCB0YWJsZSB0aHtib3JkZXItY29sb3I6cmdiYSgyNTUsMjU1LDI1NSwwLjI1KX0uYXJ0aWNsZS0tY29udGVudCAjZmx1eC1kYXRhLW1vZGVsIC50YWJsZS1ncm91cHtwYWRkaW5nOjFyZW19LmFydGljbGUtLWNvbnRlbnQgI2ZsdXgtZGF0YS1tb2RlbCAudGFibGUtZ3JvdXA6Zmlyc3QtY2hpbGR7Ym9yZGVyOjFweCBkYXNoZWQgI0Q0RDdERDtib3JkZXItcmFkaXVzOjJweDtwb3NpdGlvbjpyZWxhdGl2ZTttYXJnaW4tYm90dG9tOi4yNXJlbX0uYXJ0aWNsZS0tY29udGVudCAjZmx1eC1kYXRhLW1vZGVsIC50YWJsZS1ncm91cDpmaXJzdC1jaGlsZDpiZWZvcmV7Y29udGVudDpcIlRhYmxlXCI7Zm9udC13ZWlnaHQ6NTAwO2NvbG9yOiNGQUZBRkM7YmFja2dyb3VuZDojMTQxNDFGO3Bvc2l0aW9uOmFic29sdXRlO3BhZGRpbmc6MCAuNzVyZW07dG9wOi0uNjVyZW07cmlnaHQ6MXJlbX0uYXJ0aWNsZS0tY29udGVudCAjZmx1eC1kYXRhLW1vZGVsIC50YWJsZS1ncm91cDpudGgtY2hpbGQoMikgdGg6Zmlyc3QtY2hpbGR7Ym9yZGVyOm5vbmV9LmFydGljbGUtLWNvbnRlbnQgI2ZsdXgtZGF0YS1tb2RlbCAudGFibGUtZ3JvdXA6bnRoLWNoaWxkKDIpIHRoOm50aC1jaGlsZCgyKXtib3JkZXItdG9wOjFweCBkYXNoZWQgI0Q0RDdERDtib3JkZXItbGVmdDoxcHggZGFzaGVkIHJnYmEoMjU1LDI1NSwyNTUsMC44NSk7Ym9yZGVyLXJpZ2h0OjFweCBkYXNoZWQgcmdiYSgyNTUsMjU1LDI1NSwwLjg1KTtwb3NpdGlvbjpyZWxhdGl2ZX0uYXJ0aWNsZS0tY29udGVudCAjZmx1eC1kYXRhLW1vZGVsIC50YWJsZS1ncm91cDpudGgtY2hpbGQoMikgdGg6bnRoLWNoaWxkKDIpOmJlZm9yZXtjb250ZW50OlwiQ29sdW1uXCI7Zm9udC13ZWlnaHQ6NTAwO2NvbG9yOiNmZmYsMC44NTtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6LjJyZW07bGVmdDouNXJlbX0uYXJ0aWNsZS0tY29udGVudCAjZmx1eC1kYXRhLW1vZGVsIC50YWJsZS1ncm91cDpudGgtY2hpbGQoMikgdGQ6Zmlyc3QtY2hpbGR7Ym9yZGVyOm5vbmV9LmFydGljbGUtLWNvbnRlbnQgI2ZsdXgtZGF0YS1tb2RlbCAudGFibGUtZ3JvdXA6bnRoLWNoaWxkKDIpIHRkOm50aC1jaGlsZCgyKXtib3JkZXItbGVmdDoxcHggZGFzaGVkICNENEQ3REQ7Ym9yZGVyLXJpZ2h0OjFweCBkYXNoZWQgI0Q0RDdERH0uYXJ0aWNsZS0tY29udGVudCAjZmx1eC1kYXRhLW1vZGVsIC50YWJsZS1ncm91cDpudGgtY2hpbGQoMikgdHI6bGFzdC1jaGlsZCB0ZDpudGgtY2hpbGQoMil7Ym9yZGVyLWJvdHRvbToxcHggZGFzaGVkICNENEQ3RER9LmFydGljbGUtLWNvbnRlbnQgI2ZsdXgtZGF0YS1tb2RlbCAudGFibGUtZ3JvdXA6bnRoLWNoaWxkKDMpIHRyOm50aC1jaGlsZCgyKXtib3JkZXItdG9wOjFweCBkYXNoZWQgI0Q0RDdERDtib3JkZXItYm90dG9tOjFweCBkYXNoZWQgI0Q0RDdERH0uYXJ0aWNsZS0tY29udGVudCAjZmx1eC1kYXRhLW1vZGVsIC50YWJsZS1ncm91cDpudGgtY2hpbGQoMykgdHI6bnRoLWNoaWxkKDIpIHRkOmZpcnN0LWNoaWxke2JvcmRlci1sZWZ0OjFweCBkYXNoZWQgI0Q0RDdERDtwb3NpdGlvbjpyZWxhdGl2ZX0uYXJ0aWNsZS0tY29udGVudCAjZmx1eC1kYXRhLW1vZGVsIC50YWJsZS1ncm91cDpudGgtY2hpbGQoMykgdHI6bnRoLWNoaWxkKDIpIHRkOmZpcnN0LWNoaWxkOmJlZm9yZXtjb250ZW50OlwiUm93XCI7Zm9udC13ZWlnaHQ6NTAwO2NvbG9yOiNGQUZBRkM7cG9zaXRpb246YWJzb2x1dGU7dG9wOi4xNXJlbTtsZWZ0Oi41cmVtfS5hcnRpY2xlLS1jb250ZW50ICNmbHV4LWRhdGEtbW9kZWwgLnRhYmxlLWdyb3VwOm50aC1jaGlsZCgzKSB0cjpudGgtY2hpbGQoMikgdGQ6bGFzdC1jaGlsZHtib3JkZXItcmlnaHQ6MXB4IGRhc2hlZCAjRDREN0REfS5hcnRpY2xlLS1jb250ZW50ICNmbHV4LXRhYmxlLW9wc3tkaXNwbGF5OmZsZXg7anVzdGlmeS1jb250ZW50OnNwYWNlLWJldHdlZW47YWxpZ24taXRlbXM6Y2VudGVyO21heC13aWR0aDo2NTBweDttYXJnaW4tYm90dG9tOjJyZW19LmFydGljbGUtLWNvbnRlbnQgI2ZsdXgtdGFibGUtb3BzIC5zdHJlYW0tb2YtdGFibGVze2ZsZXgtZ3JvdzoxfS5hcnRpY2xlLS1jb250ZW50ICNmbHV4LXRhYmxlLW9wcyAuc3RyZWFtLW9mLXRhYmxlczpmaXJzdC1jaGlsZHtwYWRkaW5nLWxlZnQ6MH0uYXJ0aWNsZS0tY29udGVudCAjZmx1eC10YWJsZS1vcHMgLnN0cmVhbS1vZi10YWJsZXM6bGFzdC1jaGlsZHtwYWRkaW5nLXJpZ2h0OjB9LmFydGljbGUtLWNvbnRlbnQgI2ZsdXgtdGFibGUtb3BzIC5vcGVyYXRpb257ZGlzcGxheTpmbGV4O2ZsZXgtZ3JvdzoxO2FsaWduLWl0ZW1zOmNlbnRlcn0uYXJ0aWNsZS0tY29udGVudCAjZmx1eC10YWJsZS1vcHMgLm9wZXJhdGlvbiAuYXJyb3d7cG9zaXRpb246cmVsYXRpdmU7YmFja2dyb3VuZDojRDREN0REO2ZsZXgtZ3JvdzoxO2hlaWdodDoxcHg7bWFyZ2luOjAgLjc1cmVtO29wYWNpdHk6LjM1fS5hcnRpY2xlLS1jb250ZW50ICNmbHV4LXRhYmxlLW9wcyAub3BlcmF0aW9uIC5hcnJvdzphZnRlcntjb250ZW50OlwiXCI7cG9zaXRpb246YWJzb2x1dGU7d2lkdGg6MDtoZWlnaHQ6MDtib3JkZXItc3R5bGU6c29saWQ7Ym9yZGVyLXdpZHRoOjdweCAwIDdweCA4cHg7Ym9yZGVyLWNvbG9yOnRyYW5zcGFyZW50IHRyYW5zcGFyZW50IHRyYW5zcGFyZW50ICNENEQ3REQ7cmlnaHQ6LTFweDt0b3A6LTdweH0uYXJ0aWNsZS0tY29udGVudCAjZmx1eC10YWJsZS1vcHMgLm9wZXJhdGlvbiBwe21hcmdpbjowO3RleHQtYWxpZ246Y2VudGVyfS5hcnRpY2xlLS1jb250ZW50ICNmbHV4LXRhYmxlLW9wcyB0YWJsZXtkaXNwbGF5OnRhYmxlO3dpZHRoOjEwMCU7b3ZlcmZsb3c6dmlzaWJsZTttYXJnaW46MXJlbSAwfS5hcnRpY2xlLS1jb250ZW50ICNmbHV4LXRhYmxlLW9wcyB0YWJsZSB0aCwuYXJ0aWNsZS0tY29udGVudCAjZmx1eC10YWJsZS1vcHMgdGFibGUgdGR7Ym9yZGVyLXJpZ2h0OjFweCBkYXNoZWQgcmdiYSgyMTIsMjE1LDIyMSwwLjI1KX0uYXJ0aWNsZS0tY29udGVudCAjZmx1eC10YWJsZS1vcHMgdGFibGUgdGg6bGFzdC1jaGlsZCwuYXJ0aWNsZS0tY29udGVudCAjZmx1eC10YWJsZS1vcHMgdGFibGUgdGQ6bGFzdC1jaGlsZHtib3JkZXI6bm9uZX0uYXJ0aWNsZS0tY29udGVudCAjZmx1eC10YWJsZS1vcHMgdGFibGUgdGh7Ym9yZGVyLWNvbG9yOnJnYmEoMjU1LDI1NSwyNTUsMC4yNSl9QG1lZGlhIChtYXgtd2lkdGg6IDYwMHB4KXsuYXJ0aWNsZS0tY29udGVudCAjZmx1eC10YWJsZS1vcHMgdGg6bGFzdC1jaGlsZCwuYXJ0aWNsZS0tY29udGVudCAjZmx1eC10YWJsZS1vcHMgdGQ6bGFzdC1jaGlsZHtkaXNwbGF5Om5vbmV9LmFydGljbGUtLWNvbnRlbnQgI2ZsdXgtdGFibGUtb3BzIHRoOm50aC1jaGlsZCgyKSwuYXJ0aWNsZS0tY29udGVudCAjZmx1eC10YWJsZS1vcHMgdGQ6bnRoLWNoaWxkKDIpe2JvcmRlcjpub25lfS5hcnRpY2xlLS1jb250ZW50ICNmbHV4LXRhYmxlLW9wcyB0aDpudGgtY2hpbGQoMil7Ym9yZGVyLXJhZGl1czowIDJweCAwIDB9LmFydGljbGUtLWNvbnRlbnQgI2ZsdXgtdGFibGUtb3BzIHRyOmxhc3QtY2hpbGQgdGQ6bnRoLWNoaWxkKDIpe2JvcmRlci1yYWRpdXM6MCAwIDJweCAwfX0uYXJ0aWNsZS0tY29udGVudCAuZnMtZGlhZ3JhbXtkaXNwbGF5OmlubGluZS1ibG9jazttYXJnaW46MXJlbSAwIDJyZW07cGFkZGluZzoxLjVyZW0gMi41cmVtIDEuNXJlbSAxLjVyZW07Zm9udC1mYW1pbHk6XCJJQk0gUGxleCBNb25vXCIsbW9ub3NwYWNlO2JvcmRlci1yYWRpdXM6MnB4O2JveC1zaGFkb3c6MXB4IDNweCAxMHB4ICMwNzA3MEV9LmFydGljbGUtLWNvbnRlbnQgLmZzLWRpYWdyYW0+dWx7cGFkZGluZzowO21hcmdpbjowfS5hcnRpY2xlLS1jb250ZW50IC5mcy1kaWFncmFtPnVsIGxpe2xpbmUtaGVpZ2h0OjJyZW07Y29sb3I6I0I3QjhGRn0uYXJ0aWNsZS0tY29udGVudCAuZnMtZGlhZ3JhbT51bCB1bHtwYWRkaW5nLWxlZnQ6MnJlbTttYXJnaW46MH0uYXJ0aWNsZS0tY29udGVudCAuZnMtZGlhZ3JhbT51bCB1bCBsaXtwb3NpdGlvbjpyZWxhdGl2ZTttYXJnaW46MCAwIDAgLTEuNDVyZW07cGFkZGluZy1sZWZ0OjEuNDVyZW07bGluZS1oZWlnaHQ6Mi41cmVtO2JvcmRlci1sZWZ0OjFweCBzb2xpZCAjQjdCOEZGfS5hcnRpY2xlLS1jb250ZW50IC5mcy1kaWFncmFtPnVsIHVsIGxpOmJlZm9yZXtjb250ZW50OlwiXCI7ZGlzcGxheTppbmxpbmUtYmxvY2s7d2lkdGg6MXJlbTtoZWlnaHQ6LjI1cmVtO21hcmdpbi1yaWdodDouNTVyZW07bWFyZ2luLWxlZnQ6LTEuNDVyZW07Ym9yZGVyLXRvcDoxcHggc29saWQgI0I3QjhGRn0uYXJ0aWNsZS0tY29udGVudCAuZnMtZGlhZ3JhbT51bCB1bCBsaTpsYXN0LWNoaWxke2JvcmRlcjpub25lfS5hcnRpY2xlLS1jb250ZW50IC5mcy1kaWFncmFtPnVsIHVsIGxpOmxhc3QtY2hpbGQ6YWZ0ZXJ7Y29udGVudDpcIlwiO3Bvc2l0aW9uOmFic29sdXRlO21hcmdpbjowO3BhZGRpbmc6MDtsZWZ0OjA7dG9wOjA7aGVpZ2h0OjEuNHJlbTtib3JkZXItbGVmdDoxcHggc29saWQgI0I3QjhGRn0uYXJ0aWNsZS0tY29udGVudCAuZnMtZGlhZ3JhbSB1bHtsaXN0LXN0eWxlOm5vbmV9LmFydGljbGUtLWNvbnRlbnQgI3NoYXJkLWRpYWdyYW0sLmFydGljbGUtLWNvbnRlbnQgI2RhdGEtcmV0ZW50aW9ue2Rpc3BsYXk6ZmxleDtmbGV4LWRpcmVjdGlvbjpjb2x1bW47bWF4LXdpZHRoOjU1MHB4O21hcmdpbjoyLjVyZW0gYXV0byAzcmVtfS5hcnRpY2xlLS1jb250ZW50ICNzaGFyZC1kaWFncmFtIHAsLmFydGljbGUtLWNvbnRlbnQgI2RhdGEtcmV0ZW50aW9uIHB7bWFyZ2luLWJvdHRvbTowO2xpbmUtaGVpZ2h0OjEuMjVlbX0uYXJ0aWNsZS0tY29udGVudCAjc2hhcmQtZGlhZ3JhbSAucGVyaW9kcywuYXJ0aWNsZS0tY29udGVudCAjZGF0YS1yZXRlbnRpb24gLnBlcmlvZHN7ZGlzcGxheTpmbGV4O2ZsZXgtZGlyZWN0aW9uOnJvdztqdXN0aWZ5LWNvbnRlbnQ6c3BhY2UtYmV0d2Vlbn0uYXJ0aWNsZS0tY29udGVudCAjc2hhcmQtZGlhZ3JhbSAudGltZWxpbmUsLmFydGljbGUtLWNvbnRlbnQgI2RhdGEtcmV0ZW50aW9uIC50aW1lbGluZXtkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246cm93O21hcmdpbi10b3A6LjI1cmVtO3BhZGRpbmc6MCAuNXJlbX0uYXJ0aWNsZS0tY29udGVudCAjc2hhcmQtZGlhZ3JhbSAudGltZWxpbmUgLmludGVydmFsLC5hcnRpY2xlLS1jb250ZW50ICNkYXRhLXJldGVudGlvbiAudGltZWxpbmUgLmludGVydmFse2JvcmRlci10b3A6MXB4IHNvbGlkICNENEQ3REQ7Ym9yZGVyLXJpZ2h0OjFweCBzb2xpZCAjRDREN0REO2hlaWdodDouNzVyZW07ZmxleC1ncm93OjF9LmFydGljbGUtLWNvbnRlbnQgI3NoYXJkLWRpYWdyYW0gLnRpbWVsaW5lIC5pbnRlcnZhbDpmaXJzdC1jaGlsZCwuYXJ0aWNsZS0tY29udGVudCAjZGF0YS1yZXRlbnRpb24gLnRpbWVsaW5lIC5pbnRlcnZhbDpmaXJzdC1jaGlsZHtib3JkZXItbGVmdDoxcHggc29saWQgI0Q0RDdERH0uYXJ0aWNsZS0tY29udGVudCAjc2hhcmQtZGlhZ3JhbSAudGltZWxpbmUgLm9uZS1xdWFydGVyLC5hcnRpY2xlLS1jb250ZW50ICNkYXRhLXJldGVudGlvbiAudGltZWxpbmUgLm9uZS1xdWFydGVye3dpZHRoOjI1JTtoZWlnaHQ6Ljc1cmVtfS5hcnRpY2xlLS1jb250ZW50ICNzaGFyZC1kaWFncmFtIC50aW1lbGluZSAudGhyZWUtcXVhcnRlcnMsLmFydGljbGUtLWNvbnRlbnQgI2RhdGEtcmV0ZW50aW9uIC50aW1lbGluZSAudGhyZWUtcXVhcnRlcnN7d2lkdGg6NzUlO2hlaWdodDouNzVyZW19LmFydGljbGUtLWNvbnRlbnQgI3NoYXJkLWRpYWdyYW0gLnRpbWVsaW5lIC5ib3JkZXItbGVmdCwuYXJ0aWNsZS0tY29udGVudCAjZGF0YS1yZXRlbnRpb24gLnRpbWVsaW5lIC5ib3JkZXItbGVmdHtib3JkZXItbGVmdDoxcHggc29saWQgI0Q0RDdERH0uYXJ0aWNsZS0tY29udGVudCAjc2hhcmQtZGlhZ3JhbSAudGltZWxpbmUgLnJldGVudGlvbi1sYWJlbCwuYXJ0aWNsZS0tY29udGVudCAjZGF0YS1yZXRlbnRpb24gLnRpbWVsaW5lIC5yZXRlbnRpb24tbGFiZWx7cG9zaXRpb246cmVsYXRpdmV9LmFydGljbGUtLWNvbnRlbnQgI3NoYXJkLWRpYWdyYW0gLnRpbWVsaW5lIC5yZXRlbnRpb24tbGFiZWw6YmVmb3JlLC5hcnRpY2xlLS1jb250ZW50ICNkYXRhLXJldGVudGlvbiAudGltZWxpbmUgLnJldGVudGlvbi1sYWJlbDpiZWZvcmV7Y29udGVudDpcIlwiO2Rpc3BsYXk6aW5saW5lLWJsb2NrO3dpZHRoOi42NXJlbTttYXJnaW4tcmlnaHQ6LjVyZW07Ym9yZGVyLXRvcDoxcHggc29saWQgI0Q0RDdERDt2ZXJ0aWNhbC1hbGlnbjptaWRkbGV9LmFydGljbGUtLWNvbnRlbnQgI3NoYXJkLWRpYWdyYW0gLnRpbWVsaW5lIC5kZWxldGVkLWxhYmVsLC5hcnRpY2xlLS1jb250ZW50ICNkYXRhLXJldGVudGlvbiAudGltZWxpbmUgLmRlbGV0ZWQtbGFiZWx7Y29sb3I6I0JGM0Q1RTt0ZXh0LWFsaWduOmNlbnRlcjtmb250LXNpemU6LjlyZW19LmFydGljbGUtLWNvbnRlbnQgI3NoYXJkLWRpYWdyYW0gLnNoYXJkLWdyb3VwcywuYXJ0aWNsZS0tY29udGVudCAjZGF0YS1yZXRlbnRpb24gLnNoYXJkLWdyb3Vwc3tkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246cm93O2p1c3RpZnktY29udGVudDpzcGFjZS1hcm91bmQ7bWFyZ2luLXRvcDouMjVyZW07cGFkZGluZzouNXJlbTtsaW5lLWhlaWdodDoxcmVtfS5hcnRpY2xlLS1jb250ZW50ICNzaGFyZC1kaWFncmFtIC5zaGFyZC1ncm91cHMgLnNoYXJkLWdyb3VwLC5hcnRpY2xlLS1jb250ZW50ICNkYXRhLXJldGVudGlvbiAuc2hhcmQtZ3JvdXBzIC5zaGFyZC1ncm91cHttYXJnaW46MCAuMjVyZW07dGV4dC1hbGlnbjpjZW50ZXI7cGFkZGluZzouNXJlbTtib3JkZXItcmFkaXVzOi41cmVtO2JhY2tncm91bmQ6IzI2MjczODtmbGV4LWdyb3c6MTtib3gtc2hhZG93OjJweCAycHggOHB4ICMwNzA3MEV9LmFydGljbGUtLWNvbnRlbnQgI3NoYXJkLWRpYWdyYW0gLnNoYXJkLWdyb3VwcyAuc2hhcmQtZ3JvdXAgcDpmaXJzdC1jaGlsZCwuYXJ0aWNsZS0tY29udGVudCAjZGF0YS1yZXRlbnRpb24gLnNoYXJkLWdyb3VwcyAuc2hhcmQtZ3JvdXAgcDpmaXJzdC1jaGlsZHttYXJnaW4tYm90dG9tOi43NXJlbX0uYXJ0aWNsZS0tY29udGVudCAjc2hhcmQtZGlhZ3JhbSAuc2hhcmQtZ3JvdXBzIC5zaGFyZC1ncm91cCAuc2hhcmQsLmFydGljbGUtLWNvbnRlbnQgI2RhdGEtcmV0ZW50aW9uIC5zaGFyZC1ncm91cHMgLnNoYXJkLWdyb3VwIC5zaGFyZHtkaXNwbGF5OmJsb2NrO21hcmdpbi10b3A6LjVyZW07cGFkZGluZzouNjVyZW0gMXJlbTtjb2xvcjojZmZmO2JvcmRlci1yYWRpdXM6LjI1cmVtO2JhY2tncm91bmQ6bGluZWFyLWdyYWRpZW50KDkwZGVnLCAjOEUxRkMzLCMwNjZGQzUpO2JhY2tncm91bmQtYXR0YWNobWVudDpmaXhlZH0uYXJ0aWNsZS0tY29udGVudCAjc2hhcmQtZGlhZ3JhbSAuc2hhcmQtZ3JvdXBzIC5zaGFyZC1ncm91cC5kZWxldGVkLC5hcnRpY2xlLS1jb250ZW50ICNkYXRhLXJldGVudGlvbiAuc2hhcmQtZ3JvdXBzIC5zaGFyZC1ncm91cC5kZWxldGVke29wYWNpdHk6LjN9LmFydGljbGUtLWNvbnRlbnQgI3NoYXJkLWRpYWdyYW0gLnNoYXJkLWdyb3VwcyAuc2hhcmQtZ3JvdXAuZGVsZXRlZCAuc2hhcmQsLmFydGljbGUtLWNvbnRlbnQgI2RhdGEtcmV0ZW50aW9uIC5zaGFyZC1ncm91cHMgLnNoYXJkLWdyb3VwLmRlbGV0ZWQgLnNoYXJke2JhY2tncm91bmQ6bGluZWFyLWdyYWRpZW50KDQ1ZGVnLCAjQkYzRDVFLCNEQzRFNTgpfS5hcnRpY2xlLS1jb250ZW50IC5zZXJpZXMtZGlhZ3JhbXtkaXNwbGF5OmZsZXg7d2lkdGg6Zml0LWNvbnRlbnQ7bWF4LXdpZHRoOjEwMCU7bWFyZ2luOjFyZW0gMy4yNXJlbSAxLjc1cmVtIDA7cGFkZGluZy1yaWdodDoxLjVyZW07Ym9yZGVyLXJpZ2h0OjJweCBzb2xpZCAjRDZGNjIyfS5hcnRpY2xlLS1jb250ZW50IC5zZXJpZXMtZGlhZ3JhbSB0YWJsZXttYXJnaW46MH0uYXJ0aWNsZS0tY29udGVudCAuc2VyaWVzLWRpYWdyYW06YWZ0ZXJ7Y29udGVudDpcIlNlcmllc1wiO3RvcDo0cmVtO3JpZ2h0Oi0zLjVyZW19LmFydGljbGUtLWNvbnRlbnQgLnNlcmllcy1kaWFncmFtOmxhc3QtY2hpbGR7bWFyZ2luLWJvdHRvbTozcmVtfS5hcnRpY2xlLS1jb250ZW50IHRhYmxlIHRyLnBvaW50e2JvcmRlcjoycHggc29saWQgI0Q2RjYyMn0uYXJ0aWNsZS0tY29udGVudCB0YWJsZSB0ci5wb2ludDphZnRlcntjb250ZW50OlwiUG9pbnRcIjtib3R0b206LS44cmVtO2xlZnQ6MXJlbX0uYXJ0aWNsZS0tY29udGVudCAuc2VyaWVzLWRpYWdyYW0sLmFydGljbGUtLWNvbnRlbnQgdGFibGUgdHIucG9pbnR7cG9zaXRpb246cmVsYXRpdmV9LmFydGljbGUtLWNvbnRlbnQgLnNlcmllcy1kaWFncmFtOmFmdGVyLC5hcnRpY2xlLS1jb250ZW50IHRhYmxlIHRyLnBvaW50OmFmdGVye2NvbG9yOiMyMDIwMjg7YmFja2dyb3VuZDojRDZGNjIyO2JvcmRlci1yYWRpdXM6MnB4O3Bvc2l0aW9uOmFic29sdXRlO2ZvbnQtc2l6ZTouOXJlbTtmb250LXdlaWdodDo1MDA7cGFkZGluZzouMnJlbSAuNXJlbTtsaW5lLWhlaWdodDouOXJlbX0uYXJ0aWNsZS0tY29udGVudCAuc3FsIHRhYmxlIHRyLnBvaW50c3twb3NpdGlvbjpyZWxhdGl2ZX0uYXJ0aWNsZS0tY29udGVudCAuc3FsIHRhYmxlIHRyLnBvaW50cyB0ZDpmaXJzdC1jaGlsZDpiZWZvcmUsLmFydGljbGUtLWNvbnRlbnQgLnNxbCB0YWJsZSB0ci5wb2ludHMgdGQ6Zmlyc3QtY2hpbGQ6YWZ0ZXJ7ZGlzcGxheTpibG9jaztib3JkZXItcmFkaXVzOjJweDtwb3NpdGlvbjphYnNvbHV0ZTtmb250LXNpemU6LjlyZW07Zm9udC13ZWlnaHQ6NTAwO3BhZGRpbmc6LjJyZW0gLjVyZW07bGluZS1oZWlnaHQ6LjlyZW07ei1pbmRleDoxO3RvcDotLjI1cmVtO29wYWNpdHk6MDt0cmFuc2l0aW9uOm9wYWNpdHkgLjJzLCB0b3AgLjJzfS5hcnRpY2xlLS1jb250ZW50IC5zcWwgdGFibGUgdHIucG9pbnRzIHRkOmZpcnN0LWNoaWxkOmJlZm9yZXtjb250ZW50OlwiUG9pbnQgMVwiO2NvbG9yOiNmZmY7YmFja2dyb3VuZDojZDMwOTcxfS5hcnRpY2xlLS1jb250ZW50IC5zcWwgdGFibGUgdHIucG9pbnRzIHRkOmZpcnN0LWNoaWxkOmFmdGVye2NvbnRlbnQ6XCJQb2ludCAyXCI7Y29sb3I6IzIwMjAyODtiYWNrZ3JvdW5kOiNENkY2MjI7bGVmdDo1cmVtfS5hcnRpY2xlLS1jb250ZW50IC5zcWwgdGFibGUgdHIucG9pbnRzOmhvdmVyIHRkOmZpcnN0LWNoaWxkOmJlZm9yZSwuYXJ0aWNsZS0tY29udGVudCAuc3FsIHRhYmxlIHRyLnBvaW50czpob3ZlciB0ZDpmaXJzdC1jaGlsZDphZnRlcntvcGFjaXR5OjE7dG9wOi0uNjVyZW19LmFydGljbGUtLWNvbnRlbnQgLnNxbCB0YWJsZSBzcGFuLnBvaW50e3Bvc2l0aW9uOnJlbGF0aXZlO2Rpc3BsYXk6aW5saW5lLWJsb2NrfS5hcnRpY2xlLS1jb250ZW50IC5zcWwgdGFibGUgc3Bhbi5wb2ludC5vbmU6YmVmb3Jle2NvbnRlbnQ6XCJcIjtkaXNwbGF5OmJsb2NrO3Bvc2l0aW9uOmFic29sdXRlO3dpZHRoOjEwMCU7aGVpZ2h0OjJweDtib3JkZXItdG9wOjJweCBzb2xpZCAjZDMwOTcxO2JvdHRvbTotMnB4fS5hcnRpY2xlLS1jb250ZW50IC5zcWwgdGFibGUgc3Bhbi5wb2ludC50d286YWZ0ZXJ7Y29udGVudDpcIlwiO2Rpc3BsYXk6YmxvY2s7cG9zaXRpb246YWJzb2x1dGU7d2lkdGg6MTAwJTtoZWlnaHQ6MnB4O2JvcmRlci10b3A6MnB4IHNvbGlkICNENkY2MjI7Ym90dG9tOi04cHh9LmFydGljbGUtLWNvbnRlbnQgI2xpbmUtcHJvdG9jb2wtYW5hdG9teXtvdmVyZmxvdzpzY3JvbGw7bWFyZ2luOjNyZW0gMCAyLjVyZW19LmFydGljbGUtLWNvbnRlbnQgI2xpbmUtcHJvdG9jb2wtYW5hdG9teSBwe3BhZGRpbmc6M3JlbSAwIDJyZW07d2hpdGUtc3BhY2U6bm93cmFwO2ZvbnQtZmFtaWx5OlwiSUJNIFBsZXggTW9ub1wiLG1vbm9zcGFjZTtvdmVyZmxvdzp2aXNpYmxlO3RleHQtYWxpZ246Y2VudGVyfS5hcnRpY2xlLS1jb250ZW50ICNsaW5lLXByb3RvY29sLWFuYXRvbXkgcCBzcGFue3BhZGRpbmc6Ljc1cmVtIDAgLjc1cmVtfS5hcnRpY2xlLS1jb250ZW50ICNsaW5lLXByb3RvY29sLWFuYXRvbXkgcCBzcGFuLmVse3Bvc2l0aW9uOnJlbGF0aXZlO2JvcmRlci10b3A6MnB4IHNvbGlkICNENkY2MjJ9LmFydGljbGUtLWNvbnRlbnQgI2xpbmUtcHJvdG9jb2wtYW5hdG9teSBwIHNwYW4uZWw6YmVmb3Jle2Rpc3BsYXk6YmxvY2s7cG9zaXRpb246YWJzb2x1dGU7Zm9udC1mYW1pbHk6XCJQcm94aW1hIE5vdmFcIixzYW5zLXNlcmlmO2ZvbnQtc2l6ZTouOTVyZW07Y29sb3I6I0Q2RjYyMjtmb250LXdlaWdodDo1MDA7dG9wOi0yLjc1cmVtO2xlZnQ6NTAlO3RyYW5zZm9ybTp0cmFuc2xhdGVYKC01MCUpfS5hcnRpY2xlLS1jb250ZW50ICNsaW5lLXByb3RvY29sLWFuYXRvbXkgcCBzcGFuLmVsOmFmdGVye2NvbnRlbnQ6XCJcIjtkaXNwbGF5OmJsb2NrO3Bvc2l0aW9uOmFic29sdXRlO2hlaWdodDoxcmVtO3dpZHRoOjJweDt0b3A6LTFyZW07bGVmdDo1MCU7dHJhbnNmb3JtOnRyYW5zbGF0ZVgoLTUwJSk7YmFja2dyb3VuZDojRDZGNjIyfS5hcnRpY2xlLS1jb250ZW50ICNsaW5lLXByb3RvY29sLWFuYXRvbXkgcCBzcGFuLmVsLm1lYXN1cmVtZW50OmJlZm9yZXtjb250ZW50OlwibWVhc3VyZW1lbnRcIn0uYXJ0aWNsZS0tY29udGVudCAjbGluZS1wcm90b2NvbC1hbmF0b215IHAgc3Bhbi5lbC50YWdzZXQ6YmVmb3Jle2NvbnRlbnQ6XCJ0YWcgc2V0XCJ9LmFydGljbGUtLWNvbnRlbnQgI2xpbmUtcHJvdG9jb2wtYW5hdG9teSBwIHNwYW4uZWwuZmllbGRzZXQ6YmVmb3Jle2NvbnRlbnQ6XCJmaWVsZCBzZXRcIn0uYXJ0aWNsZS0tY29udGVudCAjbGluZS1wcm90b2NvbC1hbmF0b215IHAgc3Bhbi5lbC50aW1lc3RhbXA6YmVmb3Jle2NvbnRlbnQ6XCJ0aW1lc3RhbXBcIn0uYXJ0aWNsZS0tY29udGVudCAjbGluZS1wcm90b2NvbC1hbmF0b215IHAgc3Bhbi53aGl0ZXNwYWNlLC5hcnRpY2xlLS1jb250ZW50ICNsaW5lLXByb3RvY29sLWFuYXRvbXkgcCBzcGFuLmNvbW1he3Bvc2l0aW9uOnJlbGF0aXZlO2JvcmRlci1ib3R0b206MnB4IHNvbGlkICNENkY2MjJ9LmFydGljbGUtLWNvbnRlbnQgI2xpbmUtcHJvdG9jb2wtYW5hdG9teSBwIHNwYW4ud2hpdGVzcGFjZTpiZWZvcmUsLmFydGljbGUtLWNvbnRlbnQgI2xpbmUtcHJvdG9jb2wtYW5hdG9teSBwIHNwYW4uY29tbWE6YmVmb3Jle3doaXRlLXNwYWNlOm5vd3JhcDtkaXNwbGF5OmJsb2NrO3Bvc2l0aW9uOmFic29sdXRlO2ZvbnQtZmFtaWx5OlwiUHJveGltYSBOb3ZhXCIsc2Fucy1zZXJpZjtmb250LXNpemU6Ljk1cmVtO2NvbG9yOiNENkY2MjI7Zm9udC13ZWlnaHQ6NTAwO2JvdHRvbTotMi43NXJlbTtsZWZ0OjUwJTt0cmFuc2Zvcm06dHJhbnNsYXRlWCgtNTAlKX0uYXJ0aWNsZS0tY29udGVudCAjbGluZS1wcm90b2NvbC1hbmF0b215IHAgc3Bhbi53aGl0ZXNwYWNlOmFmdGVyLC5hcnRpY2xlLS1jb250ZW50ICNsaW5lLXByb3RvY29sLWFuYXRvbXkgcCBzcGFuLmNvbW1hOmFmdGVye2NvbnRlbnQ6XCJcIjtkaXNwbGF5OmJsb2NrO3Bvc2l0aW9uOmFic29sdXRlO2hlaWdodDoxcmVtO3dpZHRoOjJweDtib3R0b206LTFyZW07bGVmdDo1MCU7dHJhbnNmb3JtOnRyYW5zbGF0ZVgoLTUwJSk7YmFja2dyb3VuZDojRDZGNjIyfS5hcnRpY2xlLS1jb250ZW50ICNsaW5lLXByb3RvY29sLWFuYXRvbXkgcCBzcGFuLndoaXRlc3BhY2Uud2hpdGVzcGFjZTpiZWZvcmUsLmFydGljbGUtLWNvbnRlbnQgI2xpbmUtcHJvdG9jb2wtYW5hdG9teSBwIHNwYW4uY29tbWEud2hpdGVzcGFjZTpiZWZvcmV7Y29udGVudDphdHRyKGRhdGEtd2hpdGVzcGFjZSkgXCIgd2hpdGVzcGFjZVwifS5hcnRpY2xlLS1jb250ZW50ICNsaW5lLXByb3RvY29sLWFuYXRvbXkgcCBzcGFuLndoaXRlc3BhY2UuY29tbWE6YmVmb3JlLC5hcnRpY2xlLS1jb250ZW50ICNsaW5lLXByb3RvY29sLWFuYXRvbXkgcCBzcGFuLmNvbW1hLmNvbW1hOmJlZm9yZXtjb250ZW50OmF0dHIoZGF0YS13aGl0ZXNwYWNlKSBcIjFzdCBjb21tYVwifS5hcnRpY2xlLS1jb250ZW50ICNsaW5lLXByb3RvY29sLWFuYXRvbXkudjMgcCBzcGFuLm1lYXN1cmVtZW50OjpiZWZvcmV7Y29udGVudDpcInRhYmxlXCJ9LmFydGljbGUtLWNvbnRlbnQgI2xpbmUtcHJvdG9jb2wtYW5hdG9teS5oaWRlLWVsZW1lbnRzIHAgc3Bhbi5lbHtib3JkZXI6bm9uZX0uYXJ0aWNsZS0tY29udGVudCAjbGluZS1wcm90b2NvbC1hbmF0b215LmhpZGUtZWxlbWVudHMgcCBzcGFuLmVsOmJlZm9yZSwuYXJ0aWNsZS0tY29udGVudCAjbGluZS1wcm90b2NvbC1hbmF0b215LmhpZGUtZWxlbWVudHMgcCBzcGFuLmVsOmFmdGVye2Rpc3BsYXk6bm9uZX0uYXJ0aWNsZS0tY29udGVudCAjbGluZS1wcm90b2NvbC1hbmF0b215LmhpZGUtY29tbWFzIHAgc3Bhbi5jb21tYXtib3JkZXI6bm9uZX0uYXJ0aWNsZS0tY29udGVudCAjbGluZS1wcm90b2NvbC1hbmF0b215LmhpZGUtY29tbWFzIHAgc3Bhbi5jb21tYTpiZWZvcmUsLmFydGljbGUtLWNvbnRlbnQgI2xpbmUtcHJvdG9jb2wtYW5hdG9teS5oaWRlLWNvbW1hcyBwIHNwYW4uY29tbWE6YWZ0ZXJ7ZGlzcGxheTpub25lfS5hcnRpY2xlLS1jb250ZW50ICNsaW5lLXByb3RvY29sLWFuYXRvbXkuaGlkZS13aGl0ZXNwYWNlIHAgc3Bhbi53aGl0ZXNwYWNle2JvcmRlcjpub25lfS5hcnRpY2xlLS1jb250ZW50ICNsaW5lLXByb3RvY29sLWFuYXRvbXkuaGlkZS13aGl0ZXNwYWNlIHAgc3Bhbi53aGl0ZXNwYWNlOmJlZm9yZSwuYXJ0aWNsZS0tY29udGVudCAjbGluZS1wcm90b2NvbC1hbmF0b215LmhpZGUtd2hpdGVzcGFjZSBwIHNwYW4ud2hpdGVzcGFjZTphZnRlcntkaXNwbGF5Om5vbmV9LmFydGljbGUtLWNvbnRlbnQgI2luZmx1eHFsLXdpbmRvdy1kaWFncmFte21pbi13aWR0aDo1MjBweDtvdmVyZmxvdzpzY3JvbGw7ZGlzcGxheTpmbGV4O2ZsZXgtZGlyZWN0aW9uOnJvd30uYXJ0aWNsZS0tY29udGVudCAjaW5mbHV4cWwtd2luZG93LWRpYWdyYW0gI3RpbWVyYW5nZS1sYWJlbHtwb3NpdGlvbjpyZWxhdGl2ZTt3aWR0aDouN3JlbTttYXJnaW46MTAuNXJlbSAuNXJlbSA2LjVyZW0gLjVyZW07Ym9yZGVyLXdpZHRoOjFweCAwIDFweCAxcHg7Ym9yZGVyLXN0eWxlOnNvbGlkO2JvcmRlci1jb2xvcjpyZ2JhKDIxMiwyMTUsMjIxLDAuMyl9LmFydGljbGUtLWNvbnRlbnQgI2luZmx1eHFsLXdpbmRvdy1kaWFncmFtICN0aW1lcmFuZ2UtbGFiZWw6OmJlZm9yZXtjb250ZW50OlwiUXVlcmllZCB0aW1lIHJhbmdlXCI7ZGlzcGxheTpibG9jaztwb3NpdGlvbjphYnNvbHV0ZTtiYWNrZ3JvdW5kOiMxNDE0MUY7cGFkZGluZzowIC43NXJlbTtmb250LXdlaWdodDo1MDA7Zm9udC1zaXplOi45cmVtO2NvbG9yOnJnYmEoMjEyLDIxNSwyMjEsMC41KTt0cmFuc2Zvcm06cm90YXRlKC05MGRlZyk7d2hpdGUtc3BhY2U6bm93cmFwO3RvcDoxMy41cmVtO2xlZnQ6LTQuN3JlbX0uYXJ0aWNsZS0tY29udGVudCAjaW5mbHV4cWwtd2luZG93LWRpYWdyYW0gdGR7Zm9udC13ZWlnaHQ6bWVkaXVtO2NvbG9yOiNGQUZBRkN9LmFydGljbGUtLWNvbnRlbnQgI2luZmx1eHFsLXdpbmRvdy1kaWFncmFtIHRkIHNwYW4uZXhjbHVkZXtvcGFjaXR5Oi4zNTtmb250LXdlaWdodDpub3JtYWx9LmFydGljbGUtLWNvbnRlbnQgI2luZmx1eHFsLXdpbmRvdy1kaWFncmFtIC53aW5kb3dze2Rpc3BsYXk6ZmxleDtmbGV4LWRpcmVjdGlvbjpjb2x1bW47anVzdGlmeS1jb250ZW50OnNwYWNlLWJldHdlZW47cGFkZGluZzo0cmVtIDAgMi41cmVtIC4yNXJlbX0uYXJ0aWNsZS0tY29udGVudCAjaW5mbHV4cWwtd2luZG93LWRpYWdyYW0gLndpbmRvdy1ob3Vye2p1c3RpZnktY29udGVudDpzcGFjZS1iZXR3ZWVuO2hlaWdodDoxMDAlO21hcmdpbi1ib3R0b206LjVyZW07Ym9yZGVyLWxlZnQ6MXB4IHNvbGlkIHJnYmEoMjEyLDIxNSwyMjEsMC4zKTtmbGV4OjEgMSAwO3Bvc2l0aW9uOnJlbGF0aXZlfS5hcnRpY2xlLS1jb250ZW50ICNpbmZsdXhxbC13aW5kb3ctZGlhZ3JhbSAud2luZG93LWhvdXI6OmJlZm9yZSwuYXJ0aWNsZS0tY29udGVudCAjaW5mbHV4cWwtd2luZG93LWRpYWdyYW0gLndpbmRvdy1ob3VyOjphZnRlcntjb250ZW50OlwiXCI7cG9zaXRpb246YWJzb2x1dGU7ZGlzcGxheTpibG9jazt3aWR0aDo5cHg7aGVpZ2h0OjFweDtsZWZ0Oi0xMHB4O2JvcmRlci10b3A6MXB4IHNvbGlkIHJnYmEoMjEyLDIxNSwyMjEsMC4zKX0uYXJ0aWNsZS0tY29udGVudCAjaW5mbHV4cWwtd2luZG93LWRpYWdyYW0gLndpbmRvdy1ob3VyOjpiZWZvcmV7dG9wOjB9LmFydGljbGUtLWNvbnRlbnQgI2luZmx1eHFsLXdpbmRvdy1kaWFncmFtIC53aW5kb3ctaG91cjo6YWZ0ZXJ7Ym90dG9tOi0xcHh9LmFydGljbGUtLWNvbnRlbnQgI2luZmx1eHFsLXdpbmRvdy1kaWFncmFtIC53aW5kb3ctaG91ciBwe3doaXRlLXNwYWNlOm5vd3JhcDttYXJnaW4tdG9wOi41NXJlbTtwb3NpdGlvbjpyZWxhdGl2ZX0uYXJ0aWNsZS0tY29udGVudCAjaW5mbHV4cWwtd2luZG93LWRpYWdyYW0gLndpbmRvdy1ob3VyIHA6OmJlZm9yZXtjb250ZW50OlwiXCI7ZGlzcGxheTppbmxpbmUtYmxvY2s7bWFyZ2luLXJpZ2h0Oi41cmVtO3dpZHRoOjFyZW07aGVpZ2h0OjA7Ym9yZGVyLXRvcDoxcHggc29saWQgcmdiYSgyMTIsMjE1LDIyMSwwLjMpO3ZlcnRpY2FsLWFsaWduOm1pZGRsZX0uYXJ0aWNsZS0tY29udGVudCAjaW5mbHV4cWwtd2luZG93LWRpYWdyYW0gLndpbmRvdy1ob3VyIHA6OmFmdGVye2NvbnRlbnQ6XCJQcmVkZWZpbmVkIHdpbmRvdyBib3VuZGFyeVwiO2Rpc3BsYXk6YmxvY2s7cG9zaXRpb246YWJzb2x1dGU7dG9wOjEuMjVyZW07bGVmdDoxLjVyZW07Zm9udC1zaXplOi45cmVtO2ZvbnQtd2VpZ2h0OjUwMDtjb2xvcjpyZ2JhKDIxMiwyMTUsMjIxLDAuNSl9LmFydGljbGUtLWNvbnRlbnQgLnNjYWxpbmctc3RyYXRlZ3l7bWFyZ2luOjJyZW0gMCAzcmVtfS5hcnRpY2xlLS1jb250ZW50IC5zY2FsaW5nLXN0cmF0ZWd5IC5ub2Rle2JvcmRlcjoycHggc29saWQgI0Q0RDdERDtib3JkZXItcmFkaXVzOjZweDtoZWlnaHQ6NnJlbTt3aWR0aDo0cmVtfS5hcnRpY2xlLS1jb250ZW50IC5zY2FsaW5nLXN0cmF0ZWd5IC5kYXNoZWR7Ym9yZGVyLXN0eWxlOmRhc2hlZDtib3JkZXItY29sb3I6cmdiYSgyMTIsMjE1LDIyMSwwLjUpfS5hcnRpY2xlLS1jb250ZW50IC5zY2FsaW5nLXN0cmF0ZWd5IC5vdXRlcntoZWlnaHQ6YXV0bzt3aWR0aDpmaXQtY29udGVudDtwb3NpdGlvbjpyZWxhdGl2ZX0uYXJ0aWNsZS0tY29udGVudCAuc2NhbGluZy1zdHJhdGVneSAuaW5uZXJ7bWFyZ2luOjJyZW0gMS4yNXJlbSAtMnB4fS5hcnRpY2xlLS1jb250ZW50IC5zY2FsaW5nLXN0cmF0ZWd5Lmhvcml6b250YWx7ZGlzcGxheTpmbGV4fS5hcnRpY2xlLS1jb250ZW50IC5zY2FsaW5nLXN0cmF0ZWd5Lmhvcml6b250YWwgLm5vZGU6bm90KDpmaXJzdC1jaGlsZCl7bWFyZ2luLWxlZnQ6MS4yNXJlbX0uYXJ0aWNsZS0tY29udGVudCAjcXVlcnktcGxhbi1kaWFncmFte2Rpc3BsYXk6ZmxleDtmbGV4LWRpcmVjdGlvbjpjb2x1bW47Zm9udC1zaXplOjFyZW07bWFyZ2luOjNyZW0gMCAzLjVyZW07bWF4LXdpZHRoOjgwMHB4fS5hcnRpY2xlLS1jb250ZW50ICNxdWVyeS1wbGFuLWRpYWdyYW0gLnBsYW4tY29sdW1ue3BhZGRpbmc6MCAuNXJlbX0uYXJ0aWNsZS0tY29udGVudCAjcXVlcnktcGxhbi1kaWFncmFtIC5wbGFuLWJsb2Nre2JhY2tncm91bmQ6IzA3MDcwRTtjb2xvcjojQjdCOEZGO3RleHQtYWxpZ246Y2VudGVyO3BhZGRpbmc6MXJlbSAxLjVyZW07Ym9yZGVyLXJhZGl1czo0cHh9LmFydGljbGUtLWNvbnRlbnQgI3F1ZXJ5LXBsYW4tZGlhZ3JhbSAucGxhbi1hcnJvd3ttYXJnaW46LjVyZW0gYXV0bztoZWlnaHQ6MS41cmVtO3dpZHRoOjFweDtib3JkZXItbGVmdDoxcHggc29saWQgI0I3QjhGRjtwb3NpdGlvbjpyZWxhdGl2ZX0uYXJ0aWNsZS0tY29udGVudCAjcXVlcnktcGxhbi1kaWFncmFtIC5wbGFuLWFycm93OmJlZm9yZXtjb250ZW50OlwiXFwyNUIyXCI7cG9zaXRpb246YWJzb2x1dGU7dG9wOi4yNXJlbTtsZWZ0Oi0uMzJyZW07Y29sb3I6I0I3QjhGRjtsaW5lLWhlaWdodDowfS5hcnRpY2xlLS1jb250ZW50ICNxdWVyeS1wbGFuLWRpYWdyYW0gLnBsYW4tYXJyb3cuc3BsaXR7d2lkdGg6NTAlO21hcmdpbi10b3A6MnJlbTtoZWlnaHQ6MXJlbTtkaXNwbGF5OmZsZXg7anVzdGlmeS1jb250ZW50OmNlbnRlcjtib3JkZXItd2lkdGg6MXB4IDFweCAwIDFweDtib3JkZXItc3R5bGU6c29saWQ7Ym9yZGVyLWNvbG9yOiNCN0I4RkZ9LmFydGljbGUtLWNvbnRlbnQgI3F1ZXJ5LXBsYW4tZGlhZ3JhbSAucGxhbi1hcnJvdy5zcGxpdDpiZWZvcmV7cG9zaXRpb246cmVsYXRpdmU7dG9wOi0xLjI1cmVtO2xlZnQ6LTAuMjZyZW07d2lkdGg6MDttYXJnaW4tbGVmdDouMnJlbX0uYXJ0aWNsZS0tY29udGVudCAjcXVlcnktcGxhbi1kaWFncmFtIC5wbGFuLWFycm93LnNwbGl0OmFmdGVye2NvbnRlbnQ6XCJcIjtkaXNwbGF5OmJsb2NrO2hlaWdodDoxcmVtO3dpZHRoOjA7Ym9yZGVyLWxlZnQ6MXB4IHNvbGlkICNCN0I4RkY7bWFyZ2luOi0xcmVtIDB9LmFydGljbGUtLWNvbnRlbnQgI3F1ZXJ5LXBsYW4tZGlhZ3JhbSAucGxhbi1zaW5nbGUtY29sdW1ue2Rpc3BsYXk6ZmxleDtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyfS5hcnRpY2xlLS1jb250ZW50ICNxdWVyeS1wbGFuLWRpYWdyYW0gLnBsYW4tZG91YmxlLWNvbHVtbntkaXNwbGF5OmZsZXg7anVzdGlmeS1jb250ZW50OnNwYWNlLWFyb3VuZH0uYXJ0aWNsZS0tY29udGVudCAjc3NvLWF1dGgtZmxvd3ttYXgtd2lkdGg6NjUwcHg7bWFyZ2luOjJyZW0gYXV0b30uYXJ0aWNsZS0tY29udGVudCAjc3NvLWF1dGgtZmxvdyAucm93e2Rpc3BsYXk6ZmxleH0uYXJ0aWNsZS0tY29udGVudCAjc3NvLWF1dGgtZmxvdyAucm93LmxlZnR7anVzdGlmeS1jb250ZW50OnN0YXJ0fS5hcnRpY2xlLS1jb250ZW50ICNzc28tYXV0aC1mbG93IC5yb3cuY2VudGVye2p1c3RpZnktY29udGVudDpjZW50ZXJ9LmFydGljbGUtLWNvbnRlbnQgI3Nzby1hdXRoLWZsb3cgLnJvdy5yaWdodHtqdXN0aWZ5LWNvbnRlbnQ6ZW5kfS5hcnRpY2xlLS1jb250ZW50ICNzc28tYXV0aC1mbG93IC5hdXRoLWl0ZW17bWFyZ2luOjFyZW07Y29sb3I6I2ZmZjtkaXNwbGF5OmZsZXg7anVzdGlmeS1jb250ZW50OmNlbnRlcjthbGlnbi1pdGVtczpjZW50ZXI7ZmxleC1kaXJlY3Rpb246Y29sdW1uO3BhZGRpbmc6MS41cmVtIDEuNzVyZW07YmFja2dyb3VuZDpsaW5lYXItZ3JhZGllbnQoLTEzNWRlZywgIzhFMUZDMywjMDY2RkM1KTtib3JkZXItcmFkaXVzOjRweDttaW4td2lkdGg6MjIwcHg7bWluLWhlaWdodDo5MHB4O3RleHQtYWxpZ246Y2VudGVyO2ZvbnQtd2VpZ2h0OjUwMH0uYXJ0aWNsZS0tY29udGVudCAjc3NvLWF1dGgtZmxvdyAjYXV0aDA6OmFmdGVyLC5hcnRpY2xlLS1jb250ZW50ICNzc28tYXV0aC1mbG93ICNpZHA6OmFmdGVye2Rpc3BsYXk6YmxvY2s7bWFyZ2luLXRvcDouMjVyZW07Zm9udC13ZWlnaHQ6bm9ybWFsO2ZvbnQtc3R5bGU6aXRhbGljO2ZvbnQtc2l6ZToxcmVtO29wYWNpdHk6Ljc1fS5hcnRpY2xlLS1jb250ZW50ICNzc28tYXV0aC1mbG93ICNhdXRoMDo6YWZ0ZXJ7Y29udGVudDpcIk1hbmFnZWQgYnkgSW5mbHV4RGF0YVwifS5hcnRpY2xlLS1jb250ZW50ICNzc28tYXV0aC1mbG93ICNpZHA6OmFmdGVye2NvbnRlbnQ6XCJNYW5hZ2VkIGJ5IHlvdVwifS5hcnRpY2xlLS1jb250ZW50ICNzc28tYXV0aC1mbG93IC5hcnJvd3tkaXNwbGF5OmJsb2NrO3dpZHRoOjY1cHg7aGVpZ2h0OjY1cHg7cG9zaXRpb246cmVsYXRpdmU7ZGlzcGxheTpmbGV4O2p1c3RpZnktY29udGVudDpjZW50ZXI7YWxpZ24taXRlbXM6Y2VudGVyO2NvbG9yOiNENEQ3REQ7Ym9yZGVyLXN0eWxlOmRhc2hlZDtib3JkZXItY29sb3I6I0Q0RDdERH0uYXJ0aWNsZS0tY29udGVudCAjc3NvLWF1dGgtZmxvdyAuYXJyb3cucmlnaHQ6YmVmb3JlLC5hcnRpY2xlLS1jb250ZW50ICNzc28tYXV0aC1mbG93IC5hcnJvdy5sZWZ0OmJlZm9yZXtjb250ZW50OmF0dHIoc3RlcCk7YmFja2dyb3VuZDojMTQxNDFGO2ZvbnQtc2l6ZTouOXJlbTt3aWR0aDoxLjVyZW07aGVpZ2h0OjEuNXJlbTtib3JkZXI6MXB4IHNvbGlkICNENEQ3REQ7dGV4dC1hbGlnbjpjZW50ZXI7bGluZS1oZWlnaHQ6MS41cmVtO2JvcmRlci1yYWRpdXM6NTAlfS5hcnRpY2xlLS1jb250ZW50ICNzc28tYXV0aC1mbG93IC5hcnJvdy5yaWdodDphZnRlciwuYXJ0aWNsZS0tY29udGVudCAjc3NvLWF1dGgtZmxvdyAuYXJyb3cubGVmdDphZnRlcntwb3NpdGlvbjphYnNvbHV0ZTtsaW5lLWhlaWdodDowO2ZvbnQtc2l6ZToxLjM1cmVtfS5hcnRpY2xlLS1jb250ZW50ICNzc28tYXV0aC1mbG93IC5hcnJvdy5yaWdodHtib3JkZXItcmFkaXVzOjAgMTAwJSAwIDA7Ym9yZGVyLXdpZHRoOjJweCAycHggMCAwO2FsaWduLXNlbGY6ZmxleC1lbmR9LmFydGljbGUtLWNvbnRlbnQgI3Nzby1hdXRoLWZsb3cgLmFycm93LnJpZ2h0OmJlZm9yZXt0cmFuc2xhdGU6NDUlIC00NSV9LmFydGljbGUtLWNvbnRlbnQgI3Nzby1hdXRoLWZsb3cgLmFycm93LnJpZ2h0OmFmdGVye2NvbnRlbnQ6XCLij7dcIjtib3R0b206MDtyaWdodDotLjRyZW19LmFydGljbGUtLWNvbnRlbnQgI3Nzby1hdXRoLWZsb3cgLmFycm93LmxlZnR7Ym9yZGVyLXJhZGl1czowIDAgMCAxMDAlO2JvcmRlci13aWR0aDowIDAgMnB4IDJweDthbGlnbi1zZWxmOmZsZXgtc3RhcnR9LmFydGljbGUtLWNvbnRlbnQgI3Nzby1hdXRoLWZsb3cgLmFycm93LmxlZnQ6YmVmb3Jle3RyYW5zbGF0ZTotNDUlIDQ1JX0uYXJ0aWNsZS0tY29udGVudCAjc3NvLWF1dGgtZmxvdyAuYXJyb3cubGVmdDphZnRlcntjb250ZW50Olwi4o+2XCI7dG9wOjA7bGVmdDotLjRyZW19QG1lZGlhIChtYXgtd2lkdGg6IDYwMHB4KXsuYXJ0aWNsZS0tY29udGVudCAjc3NvLWF1dGgtZmxvd3ttYXgtd2lkdGg6MzUwcHg7bWFyZ2luOjZyZW0gYXV0b30uYXJ0aWNsZS0tY29udGVudCAjc3NvLWF1dGgtZmxvdyAucm93e2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjttYXJnaW46LTUwcHggMH0uYXJ0aWNsZS0tY29udGVudCAjc3NvLWF1dGgtZmxvdyAuYXV0aC1pdGVte21hcmdpbjouNXJlbSAwfS5hcnRpY2xlLS1jb250ZW50ICNzc28tYXV0aC1mbG93IC5hcnJvd3t3aWR0aDoycmVtO2hlaWdodDo1NXB4fS5hcnRpY2xlLS1jb250ZW50ICNzc28tYXV0aC1mbG93IC5hcnJvdy5yaWdodCwuYXJ0aWNsZS0tY29udGVudCAjc3NvLWF1dGgtZmxvdyAuYXJyb3cubGVmdHtib3JkZXItd2lkdGg6MCAycHggMCAwO2JvcmRlci1yYWRpdXM6MH0uYXJ0aWNsZS0tY29udGVudCAjc3NvLWF1dGgtZmxvdyAuYXJyb3cucmlnaHR7YWxpZ24tc2VsZjpmbGV4LXN0YXJ0O21hcmdpbi1sZWZ0OjRyZW19LmFydGljbGUtLWNvbnRlbnQgI3Nzby1hdXRoLWZsb3cgLmFycm93LnJpZ2h0OmJlZm9yZXt0cmFuc2xhdGU6NjAlIC0xNSV9LmFydGljbGUtLWNvbnRlbnQgI3Nzby1hdXRoLWZsb3cgLmFycm93LmxlZnR7YWxpZ24tc2VsZjpmbGV4LWVuZDttYXJnaW4tcmlnaHQ6NnJlbX0uYXJ0aWNsZS0tY29udGVudCAjc3NvLWF1dGgtZmxvdyAuYXJyb3cubGVmdDpiZWZvcmV7dHJhbnNsYXRlOjYwJSAxMCV9LmFydGljbGUtLWNvbnRlbnQgI3Nzby1hdXRoLWZsb3cgLmFycm93LmxlZnQ6YWZ0ZXJ7cmlnaHQ6LS40cmVtO2xlZnQ6dW5zZXR9fS5hcnRpY2xlLS1jb250ZW50ICNxdWl4LWRvd25zYW1wbGUtcGlwZWxpbmV7bWFyZ2luOjNyZW0gYXV0b30uYXJ0aWNsZS0tY29udGVudCAjcXVpeC1kb3duc2FtcGxlLXBpcGVsaW5lIC5sb2dvLXJvd3tkaXNwbGF5OmZsZXh9LmFydGljbGUtLWNvbnRlbnQgI3F1aXgtZG93bnNhbXBsZS1waXBlbGluZSAubG9nby1yb3cudG9we2p1c3RpZnktY29udGVudDpmbGV4LXN0YXJ0O21hcmdpbi1ib3R0b206LTIuNnJlbX0uYXJ0aWNsZS0tY29udGVudCAjcXVpeC1kb3duc2FtcGxlLXBpcGVsaW5lIC5sb2dvLXJvdy50b3AgLnF1aXgtY29ubmVjdG9ye21hcmdpbi10b3A6LjVyZW19LmFydGljbGUtLWNvbnRlbnQgI3F1aXgtZG93bnNhbXBsZS1waXBlbGluZSAubG9nby1yb3cuYm90dG9te2p1c3RpZnktY29udGVudDpmbGV4LWVuZDttYXJnaW4tdG9wOi0yLjZyZW19LmFydGljbGUtLWNvbnRlbnQgI3F1aXgtZG93bnNhbXBsZS1waXBlbGluZSAuaW5mbHV4ZGItY29ubmVjdG9ye2Rpc3BsYXk6ZmxleDtmbGV4LWRpcmVjdGlvbjpjb2x1bW47YWxpZ24taXRlbXM6Y2VudGVyO3dpZHRoOjI5JX0uYXJ0aWNsZS0tY29udGVudCAjcXVpeC1kb3duc2FtcGxlLXBpcGVsaW5lIC5pbmZsdXhkYi1sb2dve2JhY2tncm91bmQ6dXJsKFwiL3N2Z3MvaW5mbHV4ZGItbG9nby13aGl0ZS5zdmdcIik7d2lkdGg6MTc1cHg7aGVpZ2h0OjU1cHg7YmFja2dyb3VuZC1yZXBlYXQ6bm8tcmVwZWF0O2JhY2tncm91bmQtc2l6ZTpjb250YWluO3Bvc2l0aW9uOnJlbGF0aXZlfS5hcnRpY2xlLS1jb250ZW50ICNxdWl4LWRvd25zYW1wbGUtcGlwZWxpbmUgLmluZmx1eGRiLWxvZ286YWZ0ZXJ7Y29udGVudDphdHRyKGRhdGEtcHJlY2lzaW9uKSBcIiBkYXRhIGRiXCI7cG9zaXRpb246YWJzb2x1dGU7Ym90dG9tOi0ycHg7bGVmdDo0NXB4O3dpZHRoOjEwMCU7Y29sb3I6I0Q0RDdERDtmb250LXN0eWxlOml0YWxpYztmb250LXNpemU6MXJlbX0uYXJ0aWNsZS0tY29udGVudCAjcXVpeC1kb3duc2FtcGxlLXBpcGVsaW5lIC5xdWl4LWNvbm5lY3RvcntkaXNwbGF5OmJsb2NrO2hlaWdodDo4MHB4O3dpZHRoOjIwcHg7cG9zaXRpb246cmVsYXRpdmV9LmFydGljbGUtLWNvbnRlbnQgI3F1aXgtZG93bnNhbXBsZS1waXBlbGluZSAucXVpeC1jb25uZWN0b3I6YmVmb3Jle2NvbnRlbnQ6XCJcIjtkaXNwbGF5OmJsb2NrO2hlaWdodDoxMDAlO3dpZHRoOjEwMCU7YmFja2dyb3VuZC1jb2xvcjojRDREN0REO21hc2staW1hZ2U6dXJsKFwiL3N2Z3MvcXVpeC1jb25uZWN0b3ItcGx1Zy5zdmdcIik7bWFzay1yZXBlYXQ6bm8tcmVwZWF0O2JhY2tncm91bmQtc2l6ZTpjb250YWlufS5hcnRpY2xlLS1jb250ZW50ICNxdWl4LWRvd25zYW1wbGUtcGlwZWxpbmUgLnF1aXgtY29ubmVjdG9yOmFmdGVye2NvbnRlbnQ6XCJDb25uZWN0b3JcIjtkaXNwbGF5OmJsb2NrO3Bvc2l0aW9uOmFic29sdXRlO3RvcDoxLjVyZW07bGVmdDoxLjc1cmVtO3BhZGRpbmc6LjI1cmVtIC41cmVtO2NvbG9yOiNENEQ3REQ7Zm9udC1zaXplOjFyZW07Zm9udC1zdHlsZTppdGFsaWM7YmFja2dyb3VuZC1jb2xvcjojMTQxNDFGO2JvcmRlci1yYWRpdXM6NnB4O2JvcmRlcjoxLjVweCBzb2xpZCByZ2JhKDIxMiwyMTUsMjIxLDAuNSk7Ym94LXNoYWRvdzoycHggMnB4IDZweCByZ2JhKDE1LDE0LDIxLDAuNSl9LmFydGljbGUtLWNvbnRlbnQgI3F1aXgtZG93bnNhbXBsZS1waXBlbGluZSAucXVpeC1zdHJlYW0tY29udGFpbmVye2Rpc3BsYXk6ZmxleDtmbGV4LWRpcmVjdGlvbjpyb3c7Ym9yZGVyOjJweCBkYXNoZWQgI0Q0RDdERDtiYWNrZ3JvdW5kOnJnYmEoMjEyLDIxNSwyMjEsMC4xKTtib3JkZXItcmFkaXVzOjhweDtwYWRkaW5nOjIuNXJlbTtqdXN0aWZ5LWNvbnRlbnQ6c3BhY2UtYmV0d2VlbjthbGlnbi1pdGVtczpjZW50ZXJ9LmFydGljbGUtLWNvbnRlbnQgI3F1aXgtZG93bnNhbXBsZS1waXBlbGluZSAucXVpeC1zdHJlYW0tY29tcG9uZW50e3BhZGRpbmc6MXJlbTtib3JkZXItcmFkaXVzOjRweDtib3JkZXItc3R5bGU6ZGFzaGVkO2JvcmRlci13aWR0aDoycHg7cG9zaXRpb246cmVsYXRpdmV9LmFydGljbGUtLWNvbnRlbnQgI3F1aXgtZG93bnNhbXBsZS1waXBlbGluZSAucXVpeC1zdHJlYW0tY29tcG9uZW50IHB7bWFyZ2luOjA7bGluZS1oZWlnaHQ6MS4ycmVtO2ZvbnQtc2l6ZToxcmVtO3RleHQtYWxpZ246Y2VudGVyO2NvbG9yOiNGQUZBRkN9LmFydGljbGUtLWNvbnRlbnQgI3F1aXgtZG93bnNhbXBsZS1waXBlbGluZSAucXVpeC1zdHJlYW0tY29tcG9uZW50OmJlZm9yZXtjb250ZW50OnVybChcIi9zdmdzL3F1aXgtcHl0aG9uLWhlYXJ0LnN2Z1wiKTtkaXNwbGF5OmJsb2NrO3Bvc2l0aW9uOmFic29sdXRlO3dpZHRoOjQwcHg7aGVpZ2h0OjQwcHg7dG9wOi0xNXB4O2xlZnQ6LTE1cHg7ZmlsdGVyOmRyb3Atc2hhZG93KDJweCAwcHggMHB4ICMxNDE0MUYpIGRyb3Atc2hhZG93KC0ycHggMHB4IDBweCAjMTQxNDFGKSBkcm9wLXNoYWRvdygwcHggMnB4IDBweCAjMTQxNDFGKSBkcm9wLXNoYWRvdygwcHggLTJweCAwcHggIzE0MTQxRil9LmFydGljbGUtLWNvbnRlbnQgI3F1aXgtZG93bnNhbXBsZS1waXBlbGluZSAucXVpeC1zdHJlYW0tY29tcG9uZW50I3NvdXJjZS1wcm9kdWNlcntiYWNrZ3JvdW5kOnJnYmEoNDIsMTYzLDI1NSwwLjIpO2JvcmRlci1jb2xvcjojMkFBM0ZGfS5hcnRpY2xlLS1jb250ZW50ICNxdWl4LWRvd25zYW1wbGUtcGlwZWxpbmUgLnF1aXgtc3RyZWFtLWNvbXBvbmVudCNkb3duc2FtcGxpbmctcHJvY2Vzc3tiYWNrZ3JvdW5kOnJnYmEoMTkxLDQ3LDIyOSwwLjIpO2JvcmRlci1jb2xvcjojQkYyRkU1fS5hcnRpY2xlLS1jb250ZW50ICNxdWl4LWRvd25zYW1wbGUtcGlwZWxpbmUgLnF1aXgtc3RyZWFtLWNvbXBvbmVudCNzaW5rLWNvbnN1bWVye2JhY2tncm91bmQ6cmdiYSgyNDQsMTQxLDU2LDAuMik7Ym9yZGVyLWNvbG9yOiNGNDhEMzh9LmFydGljbGUtLWNvbnRlbnQgI3F1aXgtZG93bnNhbXBsZS1waXBlbGluZSAuYXJyb3d7bWFyZ2luOi41cmVtIC43NXJlbSAuNXJlbSAuNXJlbTtoZWlnaHQ6MnB4O3dpZHRoOmF1dG87bWluLXdpZHRoOjI1cHg7YmFja2dyb3VuZDojRDREN0REO3Bvc2l0aW9uOnJlbGF0aXZlfS5hcnRpY2xlLS1jb250ZW50ICNxdWl4LWRvd25zYW1wbGUtcGlwZWxpbmUgLmFycm93OmFmdGVye2NvbnRlbnQ6XCLilrZcIjtwb3NpdGlvbjphYnNvbHV0ZTtyaWdodDotNHB4O3RvcDotLjQ4ZW07Zm9udC1zaXplOi43NXJlbTtjb2xvcjojRDREN0REfS5hcnRpY2xlLS1jb250ZW50ICNxdWl4LWRvd25zYW1wbGUtcGlwZWxpbmUgLmthZmthLXRvZ2dsZXtkaXNwbGF5OmZsZXg7anVzdGlmeS1jb250ZW50OmZsZXgtZW5kO3dpZHRoOjYwcHg7bWluLXdpZHRoOjYwcHg7aGVpZ2h0OjQwcHg7Ym9yZGVyLXJhZGl1czoyMHB4O2JhY2tncm91bmQ6IzA3MDcwRTtwb3NpdGlvbjpyZWxhdGl2ZX0uYXJ0aWNsZS0tY29udGVudCAjcXVpeC1kb3duc2FtcGxlLXBpcGVsaW5lIC5rYWZrYS10b2dnbGU6YWZ0ZXJ7Y29udGVudDpcIlRPUElDOlxcYVwiIGF0dHIodG9waWMpO3Bvc2l0aW9uOmFic29sdXRlO3dpZHRoOjIxNSU7Y29sb3I6I0Q0RDdERDt0ZXh0LWFsaWduOmNlbnRlcjtmb250LXN0eWxlOml0YWxpYztib3R0b206LTQycHg7Zm9udC1zaXplOi45cmVtO2xlZnQ6LTYwJTt3aGl0ZS1zcGFjZTpwcmUtd3JhcH0uYXJ0aWNsZS0tY29udGVudCAjcXVpeC1kb3duc2FtcGxlLXBpcGVsaW5lIC5rYWZrYS10b2dnbGUgLnRvZ2dsZS1pY29ue2Rpc3BsYXk6YmxvY2s7aGVpZ2h0OjM0cHg7d2lkdGg6MzRweDttYXJnaW46M3B4O2JvcmRlci1yYWRpdXM6NTAlO2JhY2tncm91bmQ6dXJsKFwiL3N2Z3MvYXBhY2hlLWthZmthLWljb24uc3ZnXCIpO2JhY2tncm91bmQtY29sb3I6I2ZmZjtiYWNrZ3JvdW5kLXNpemU6ODYlO2JhY2tncm91bmQtcG9zaXRpb246OTAlO2JhY2tncm91bmQtcmVwZWF0Om5vLXJlcGVhdH0uYXJ0aWNsZS0tY29udGVudCAjcXVpeC1kb3duc2FtcGxlLXBpcGVsaW5lICNxdWl4LWJyYW5kLWljb25ze2hlaWdodDo1MHB4O2Rpc3BsYXk6ZmxleDthbGlnbi1pdGVtczpmbGV4LXN0YXJ0O21hcmdpbi10b3A6LTNyZW19LmFydGljbGUtLWNvbnRlbnQgI3F1aXgtZG93bnNhbXBsZS1waXBlbGluZSAjcXVpeC1icmFuZC1pY29ucz4qe2hlaWdodDo0NXB4O2Rpc3BsYXk6aW5saW5lLWJsb2NrO2JhY2tncm91bmQtY29sb3I6IzBGMEUxNTtib3JkZXItcmFkaXVzOjZweDttYXJnaW4tcmlnaHQ6LjI1cmVtO2JveC1zaGFkb3c6MCAxcHggMTBweCByZ2JhKDI1NSwyNTUsMjU1LDAuMSl9LmFydGljbGUtLWNvbnRlbnQgI3F1aXgtZG93bnNhbXBsZS1waXBlbGluZSAjcXVpeC1icmFuZC1pY29ucz4qIGltZ3ttYXJnaW46MDtib3gtc2hhZG93Om5vbmU7Ym9yZGVyLXJhZGl1czowO2hlaWdodDoxMDAlfS5hcnRpY2xlLS1jb250ZW50ICNxdWl4LWRvd25zYW1wbGUtcGlwZWxpbmUgI3F1aXgtYnJhbmQtaWNvbnMgLnF1aXgtbG9nb3twYWRkaW5nOi43NXJlbX0uYXJ0aWNsZS0tY29udGVudCAjcXVpeC1kb3duc2FtcGxlLXBpcGVsaW5lICNxdWl4LWJyYW5kLWljb25zIC5xdWl4LXN0cmVhbXMtbG9nb3twb3NpdGlvbjpyZWxhdGl2ZTtwYWRkaW5nOi42cmVtfS5hcnRpY2xlLS1jb250ZW50ICNxdWl4LWRvd25zYW1wbGUtcGlwZWxpbmUgI3F1aXgtYnJhbmQtaWNvbnMgLnF1aXgtc3RyZWFtcy1sb2dvOjphZnRlcntjb250ZW50OlwiUXVpeFxcQSBTdHJlYW1zXCI7ZGlzcGxheTppbmxpbmUtYmxvY2s7d2hpdGUtc3BhY2U6cHJlLXdyYXA7Zm9udC1zaXplOi45MnJlbTtmb250LXdlaWdodDo1MDA7Y29sb3I6I2ZmZjtsaW5lLWhlaWdodDouOXJlbTttYXJnaW4tbGVmdDouMTVyZW19LmFydGljbGUtLWNvbnRlbnQgdGFibGUud2luZG93LWZyYW1lLXVuaXRzLmdyb3VwcyAuZ3JvdXB7cG9zaXRpb246cmVsYXRpdmU7b3V0bGluZS1zdHlsZTpzb2xpZDtvdXRsaW5lLXdpZHRoOjNweDtvdXRsaW5lLW9mZnNldDotNXB4O2JvcmRlci1yYWRpdXM6MTBweH0uYXJ0aWNsZS0tY29udGVudCB0YWJsZS53aW5kb3ctZnJhbWUtdW5pdHMuZ3JvdXBzIC5ncm91cDo6YmVmb3Jle2NvbnRlbnQ6XCJSb3cgR3JvdXBcIjtkaXNwbGF5OmJsb2NrO3BhZGRpbmc6LjI1cmVtIC41cmVtO3Bvc2l0aW9uOmFic29sdXRlO3RvcDozcHg7bGVmdDozcHg7Ym9yZGVyLXJhZGl1czo0cHg7Y29sb3I6I2ZmZjtmb250LXNpemU6LjhyZW07Zm9udC13ZWlnaHQ6Ym9sZDt0ZXh0LXRyYW5zZm9ybTp1cHBlcmNhc2U7bGV0dGVyLXNwYWNpbmc6LjAyZW07Ym94LXNoYWRvdzo0cHggNHB4IDRweCAjMTQxNDFGfS5hcnRpY2xlLS1jb250ZW50IHRhYmxlLndpbmRvdy1mcmFtZS11bml0cy5ncm91cHMgLmdyb3VwIHRkOm50aC1jaGlsZCgyKSwuYXJ0aWNsZS0tY29udGVudCB0YWJsZS53aW5kb3ctZnJhbWUtdW5pdHMuZ3JvdXBzIC5ncm91cCB0ZDpudGgtY2hpbGQoMyl7Zm9udC13ZWlnaHQ6Ym9sZDt0ZXh0LWRlY29yYXRpb246dW5kZXJsaW5lO3RleHQtZGVjb3JhdGlvbi10aGlja25lc3M6MnB4O3RleHQtdW5kZXJsaW5lLW9mZnNldDo1cHh9LmFydGljbGUtLWNvbnRlbnQgdGFibGUud2luZG93LWZyYW1lLXVuaXRzLmdyb3VwcyAuZ3JvdXA6bnRoLW9mLXR5cGUoMSl7b3V0bGluZS1jb2xvcjojZDMwOTcxfS5hcnRpY2xlLS1jb250ZW50IHRhYmxlLndpbmRvdy1mcmFtZS11bml0cy5ncm91cHMgLmdyb3VwOm50aC1vZi10eXBlKDEpOjpiZWZvcmV7YmFja2dyb3VuZDojZDMwOTcxfS5hcnRpY2xlLS1jb250ZW50IHRhYmxlLndpbmRvdy1mcmFtZS11bml0cy5ncm91cHMgLmdyb3VwOm50aC1vZi10eXBlKDEpIHRkOm50aC1jaGlsZCgyKSwuYXJ0aWNsZS0tY29udGVudCB0YWJsZS53aW5kb3ctZnJhbWUtdW5pdHMuZ3JvdXBzIC5ncm91cDpudGgtb2YtdHlwZSgxKSB0ZDpudGgtY2hpbGQoMyl7dGV4dC1kZWNvcmF0aW9uLWNvbG9yOiNkMzA5NzF9LmFydGljbGUtLWNvbnRlbnQgdGFibGUud2luZG93LWZyYW1lLXVuaXRzLmdyb3VwcyAuZ3JvdXA6bnRoLW9mLXR5cGUoMil7b3V0bGluZS1jb2xvcjojOWIyYWZmfS5hcnRpY2xlLS1jb250ZW50IHRhYmxlLndpbmRvdy1mcmFtZS11bml0cy5ncm91cHMgLmdyb3VwOm50aC1vZi10eXBlKDIpOjpiZWZvcmV7YmFja2dyb3VuZDojOWIyYWZmfS5hcnRpY2xlLS1jb250ZW50IHRhYmxlLndpbmRvdy1mcmFtZS11bml0cy5ncm91cHMgLmdyb3VwOm50aC1vZi10eXBlKDIpIHRkOm50aC1jaGlsZCgyKSwuYXJ0aWNsZS0tY29udGVudCB0YWJsZS53aW5kb3ctZnJhbWUtdW5pdHMuZ3JvdXBzIC5ncm91cDpudGgtb2YtdHlwZSgyKSB0ZDpudGgtY2hpbGQoMyl7dGV4dC1kZWNvcmF0aW9uLWNvbG9yOiM5YjJhZmZ9LmFydGljbGUtLWNvbnRlbnQgdGFibGUud2luZG93LWZyYW1lLXVuaXRzLmdyb3VwcyAuZ3JvdXA6bnRoLW9mLXR5cGUoMyl7b3V0bGluZS1jb2xvcjojMkFBM0ZGfS5hcnRpY2xlLS1jb250ZW50IHRhYmxlLndpbmRvdy1mcmFtZS11bml0cy5ncm91cHMgLmdyb3VwOm50aC1vZi10eXBlKDMpOjpiZWZvcmV7YmFja2dyb3VuZDojMkFBM0ZGfS5hcnRpY2xlLS1jb250ZW50IHRhYmxlLndpbmRvdy1mcmFtZS11bml0cy5ncm91cHMgLmdyb3VwOm50aC1vZi10eXBlKDMpIHRkOm50aC1jaGlsZCgyKSwuYXJ0aWNsZS0tY29udGVudCB0YWJsZS53aW5kb3ctZnJhbWUtdW5pdHMuZ3JvdXBzIC5ncm91cDpudGgtb2YtdHlwZSgzKSB0ZDpudGgtY2hpbGQoMyl7dGV4dC1kZWNvcmF0aW9uLWNvbG9yOiMyQUEzRkZ9LmFydGljbGUtLWNvbnRlbnQgdGFibGUud2luZG93LWZyYW1lLXVuaXRzLmdyb3VwcyAuZ3JvdXA6bnRoLW9mLXR5cGUoNCl7b3V0bGluZS1jb2xvcjojMEIzQThEfS5hcnRpY2xlLS1jb250ZW50IHRhYmxlLndpbmRvdy1mcmFtZS11bml0cy5ncm91cHMgLmdyb3VwOm50aC1vZi10eXBlKDQpOjpiZWZvcmV7YmFja2dyb3VuZDojMEIzQThEfS5hcnRpY2xlLS1jb250ZW50IHRhYmxlLndpbmRvdy1mcmFtZS11bml0cy5ncm91cHMgLmdyb3VwOm50aC1vZi10eXBlKDQpIHRkOm50aC1jaGlsZCgyKSwuYXJ0aWNsZS0tY29udGVudCB0YWJsZS53aW5kb3ctZnJhbWUtdW5pdHMuZ3JvdXBzIC5ncm91cDpudGgtb2YtdHlwZSg0KSB0ZDpudGgtY2hpbGQoMyl7dGV4dC1kZWNvcmF0aW9uLWNvbG9yOiMwQjNBOER9LmFydGljbGUtLWNvbnRlbnQgdGFibGUud2luZG93LWZyYW1lLXVuaXRzLmdyb3Vwcy13aXRoLWZyYW1lIC5mcmFtZSwuYXJ0aWNsZS0tY29udGVudCB0YWJsZS53aW5kb3ctZnJhbWUtdW5pdHMuZ3JvdXBzLXdpdGgtZnJhbWUgdHIuY3VycmVudC1yb3d7cG9zaXRpb246cmVsYXRpdmU7b3V0bGluZS1zdHlsZTpzb2xpZDtvdXRsaW5lLXdpZHRoOjNweDtvdXRsaW5lLW9mZnNldDotNXB4O2JvcmRlci1yYWRpdXM6MTBweH0uYXJ0aWNsZS0tY29udGVudCB0YWJsZS53aW5kb3ctZnJhbWUtdW5pdHMuZ3JvdXBzLXdpdGgtZnJhbWUgLmZyYW1lOjphZnRlciwuYXJ0aWNsZS0tY29udGVudCB0YWJsZS53aW5kb3ctZnJhbWUtdW5pdHMuZ3JvdXBzLXdpdGgtZnJhbWUgdHIuY3VycmVudC1yb3c6OmFmdGVye2Rpc3BsYXk6YmxvY2s7cGFkZGluZzouMjVyZW0gLjVyZW07cG9zaXRpb246YWJzb2x1dGU7dG9wOjNweDtsZWZ0OjNweDtib3JkZXItcmFkaXVzOjRweDtjb2xvcjojZmZmO2ZvbnQtc2l6ZTouOHJlbTtmb250LXdlaWdodDpib2xkO3RleHQtdHJhbnNmb3JtOnVwcGVyY2FzZTtsZXR0ZXItc3BhY2luZzouMDJlbTtib3gtc2hhZG93OjRweCA0cHggNHB4ICMxNDE0MUZ9LmFydGljbGUtLWNvbnRlbnQgdGFibGUud2luZG93LWZyYW1lLXVuaXRzLmdyb3Vwcy13aXRoLWZyYW1lIC5mcmFtZSB0cjpudGgtY2hpbGQobiArIDEpOm50aC1jaGlsZCgtbiArIDMpIHRkLC5hcnRpY2xlLS1jb250ZW50IHRhYmxlLndpbmRvdy1mcmFtZS11bml0cy5ncm91cHMtd2l0aC1mcmFtZSB0ci5jdXJyZW50LXJvdyB0cjpudGgtY2hpbGQobiArIDEpOm50aC1jaGlsZCgtbiArIDMpIHRke3RleHQtZGVjb3JhdGlvbi1jb2xvcjojZDMwOTcxfS5hcnRpY2xlLS1jb250ZW50IHRhYmxlLndpbmRvdy1mcmFtZS11bml0cy5ncm91cHMtd2l0aC1mcmFtZSAuZnJhbWUgdHI6bnRoLWNoaWxkKG4gKyA0KTpudGgtY2hpbGQoLW4gKyA2KSB0ZCwuYXJ0aWNsZS0tY29udGVudCB0YWJsZS53aW5kb3ctZnJhbWUtdW5pdHMuZ3JvdXBzLXdpdGgtZnJhbWUgdHIuY3VycmVudC1yb3cgdHI6bnRoLWNoaWxkKG4gKyA0KTpudGgtY2hpbGQoLW4gKyA2KSB0ZHt0ZXh0LWRlY29yYXRpb24tY29sb3I6I0JGMkZFNX0uYXJ0aWNsZS0tY29udGVudCB0YWJsZS53aW5kb3ctZnJhbWUtdW5pdHMuZ3JvdXBzLXdpdGgtZnJhbWUgLmZyYW1lIHRyOm50aC1jaGlsZChuICsgNyk6bnRoLWNoaWxkKC1uICsgOCkgdGQsLmFydGljbGUtLWNvbnRlbnQgdGFibGUud2luZG93LWZyYW1lLXVuaXRzLmdyb3Vwcy13aXRoLWZyYW1lIHRyLmN1cnJlbnQtcm93IHRyOm50aC1jaGlsZChuICsgNyk6bnRoLWNoaWxkKC1uICsgOCkgdGR7dGV4dC1kZWNvcmF0aW9uLWNvbG9yOiMyQUEzRkZ9LmFydGljbGUtLWNvbnRlbnQgdGFibGUud2luZG93LWZyYW1lLXVuaXRzLmdyb3Vwcy13aXRoLWZyYW1lIC5mcmFtZSB0ZDpudGgtY2hpbGQobiArIDIpOm50aC1jaGlsZCgtbiArIDMpLC5hcnRpY2xlLS1jb250ZW50IHRhYmxlLndpbmRvdy1mcmFtZS11bml0cy5ncm91cHMtd2l0aC1mcmFtZSB0ci5jdXJyZW50LXJvdyB0ZDpudGgtY2hpbGQobiArIDIpOm50aC1jaGlsZCgtbiArIDMpe2ZvbnQtd2VpZ2h0OmJvbGQ7dGV4dC1kZWNvcmF0aW9uOnVuZGVybGluZTt0ZXh0LWRlY29yYXRpb24tdGhpY2tuZXNzOjJweDt0ZXh0LXVuZGVybGluZS1vZmZzZXQ6NXB4fS5hcnRpY2xlLS1jb250ZW50IHRhYmxlLndpbmRvdy1mcmFtZS11bml0cy5ncm91cHMtd2l0aC1mcmFtZSB0ci5jdXJyZW50LXJvd3tvdXRsaW5lLWNvbG9yOiNkMzA5NzF9LmFydGljbGUtLWNvbnRlbnQgdGFibGUud2luZG93LWZyYW1lLXVuaXRzLmdyb3Vwcy13aXRoLWZyYW1lIHRyLmN1cnJlbnQtcm93OjphZnRlcntjb250ZW50OlwiQ3VycmVudCBSb3dcIjtiYWNrZ3JvdW5kOiNkMzA5NzF9LmFydGljbGUtLWNvbnRlbnQgdGFibGUud2luZG93LWZyYW1lLXVuaXRzLmdyb3Vwcy13aXRoLWZyYW1lIHRyLmN1cnJlbnQtcm93IHRke3RleHQtZGVjb3JhdGlvbi1jb2xvcjojMkFBM0ZGICFpbXBvcnRhbnR9LmFydGljbGUtLWNvbnRlbnQgdGFibGUud2luZG93LWZyYW1lLXVuaXRzLmdyb3Vwcy13aXRoLWZyYW1lIC5mcmFtZXtvdXRsaW5lLWNvbG9yOiM5YjJhZmZ9LmFydGljbGUtLWNvbnRlbnQgdGFibGUud2luZG93LWZyYW1lLXVuaXRzLmdyb3Vwcy13aXRoLWZyYW1lIC5mcmFtZTo6YWZ0ZXJ7Y29udGVudDpcIkZyYW1lXCI7YmFja2dyb3VuZDojOWIyYWZmfS5hcnRpY2xlLS1jb250ZW50IHRhYmxlLndpbmRvdy1mcmFtZS11bml0cy5ncm91cHMtd2l0aC1mcmFtZSAuZ3JvdXB7cG9zaXRpb246cmVsYXRpdmU7b3V0bGluZS1jb2xvcjojMEIzQThEfS5hcnRpY2xlLS1jb250ZW50IHRhYmxlLndpbmRvdy1mcmFtZS11bml0cy5ncm91cHMtd2l0aC1mcmFtZSAuZ3JvdXAgdGQ6bnRoLWNoaWxkKDIpLC5hcnRpY2xlLS1jb250ZW50IHRhYmxlLndpbmRvdy1mcmFtZS11bml0cy5ncm91cHMtd2l0aC1mcmFtZSAuZ3JvdXAgdGQ6bnRoLWNoaWxkKDMpe2ZvbnQtd2VpZ2h0OmJvbGQ7dGV4dC1kZWNvcmF0aW9uOnVuZGVybGluZTt0ZXh0LWRlY29yYXRpb24tdGhpY2tuZXNzOjJweDt0ZXh0LXVuZGVybGluZS1vZmZzZXQ6NXB4O3RleHQtZGVjb3JhdGlvbi1jb2xvcjojMEIzQThEfS5hcnRpY2xlLS1jb250ZW50IHRhYmxlLndpbmRvdy1mcmFtZS11bml0cy5yYW5nZS1pbnRlcnZhbCAuZnJhbWUsLmFydGljbGUtLWNvbnRlbnQgdGFibGUud2luZG93LWZyYW1lLXVuaXRzLnJhbmdlLWludGVydmFsIHRyLmN1cnJlbnQtcm93e3Bvc2l0aW9uOnJlbGF0aXZlO291dGxpbmUtc3R5bGU6c29saWQ7b3V0bGluZS13aWR0aDozcHg7b3V0bGluZS1vZmZzZXQ6LTVweDtib3JkZXItcmFkaXVzOjEwcHh9LmFydGljbGUtLWNvbnRlbnQgdGFibGUud2luZG93LWZyYW1lLXVuaXRzLnJhbmdlLWludGVydmFsIC5mcmFtZSB0ZDpmaXJzdC1jaGlsZCwuYXJ0aWNsZS0tY29udGVudCB0YWJsZS53aW5kb3ctZnJhbWUtdW5pdHMucmFuZ2UtaW50ZXJ2YWwgdHIuY3VycmVudC1yb3cgdGQ6Zmlyc3QtY2hpbGR7Zm9udC13ZWlnaHQ6Ym9sZDt0ZXh0LWRlY29yYXRpb246dW5kZXJsaW5lO3RleHQtZGVjb3JhdGlvbi10aGlja25lc3M6MnB4O3RleHQtdW5kZXJsaW5lLW9mZnNldDo1cHg7dGV4dC1kZWNvcmF0aW9uLWNvbG9yOiM5YjJhZmZ9LmFydGljbGUtLWNvbnRlbnQgdGFibGUud2luZG93LWZyYW1lLXVuaXRzLnJhbmdlLWludGVydmFsIC5mcmFtZTo6YWZ0ZXIsLmFydGljbGUtLWNvbnRlbnQgdGFibGUud2luZG93LWZyYW1lLXVuaXRzLnJhbmdlLWludGVydmFsIHRyLmN1cnJlbnQtcm93OjphZnRlcntkaXNwbGF5OmJsb2NrO3BhZGRpbmc6LjI1cmVtIC41cmVtO3Bvc2l0aW9uOmFic29sdXRlO3RvcDozcHg7cmlnaHQ6M3B4O2JvcmRlci1yYWRpdXM6NHB4O2NvbG9yOiNmZmY7Zm9udC1zaXplOi44cmVtO2ZvbnQtd2VpZ2h0OmJvbGQ7dGV4dC10cmFuc2Zvcm06dXBwZXJjYXNlO2xldHRlci1zcGFjaW5nOi4wMmVtO2JveC1zaGFkb3c6LTRweCA0cHggNHB4ICMxNDE0MUZ9LmFydGljbGUtLWNvbnRlbnQgdGFibGUud2luZG93LWZyYW1lLXVuaXRzLnJhbmdlLWludGVydmFsIHRyLmN1cnJlbnQtcm93e291dGxpbmUtY29sb3I6I2QzMDk3MX0uYXJ0aWNsZS0tY29udGVudCB0YWJsZS53aW5kb3ctZnJhbWUtdW5pdHMucmFuZ2UtaW50ZXJ2YWwgdHIuY3VycmVudC1yb3cgdGQ6Zmlyc3QtY2hpbGR7dGV4dC1kZWNvcmF0aW9uLWNvbG9yOiNkMzA5NzF9LmFydGljbGUtLWNvbnRlbnQgdGFibGUud2luZG93LWZyYW1lLXVuaXRzLnJhbmdlLWludGVydmFsIHRyLmN1cnJlbnQtcm93OjphZnRlcntjb250ZW50OlwiQ3VycmVudCBSb3dcIjtiYWNrZ3JvdW5kOiNkMzA5NzE7Ym94LXNoYWRvdzotNHB4IDRweCA0cHggIzI2MjczOH0uYXJ0aWNsZS0tY29udGVudCB0YWJsZS53aW5kb3ctZnJhbWUtdW5pdHMucmFuZ2UtaW50ZXJ2YWwgLmZyYW1le291dGxpbmUtY29sb3I6IzliMmFmZn0uYXJ0aWNsZS0tY29udGVudCB0YWJsZS53aW5kb3ctZnJhbWUtdW5pdHMucmFuZ2UtaW50ZXJ2YWwgLmZyYW1lOjphZnRlcntjb250ZW50OlwiRnJhbWVcIjtiYWNrZ3JvdW5kOiM5YjJhZmZ9LmFydGljbGUtLWNvbnRlbnQgdGFibGUud2luZG93LWZyYW1lLXVuaXRzLnJhbmdlLW51bWVyaWMgLmZyYW1lLC5hcnRpY2xlLS1jb250ZW50IHRhYmxlLndpbmRvdy1mcmFtZS11bml0cy5yYW5nZS1udW1lcmljIHRyLmN1cnJlbnQtcm93LC5hcnRpY2xlLS1jb250ZW50IHRhYmxlLndpbmRvdy1mcmFtZS11bml0cy5yb3dzIC5mcmFtZSwuYXJ0aWNsZS0tY29udGVudCB0YWJsZS53aW5kb3ctZnJhbWUtdW5pdHMucm93cyB0ci5jdXJyZW50LXJvd3twb3NpdGlvbjpyZWxhdGl2ZTtvdXRsaW5lLXN0eWxlOnNvbGlkO291dGxpbmUtd2lkdGg6M3B4O291dGxpbmUtb2Zmc2V0Oi01cHg7Ym9yZGVyLXJhZGl1czoxMHB4fS5hcnRpY2xlLS1jb250ZW50IHRhYmxlLndpbmRvdy1mcmFtZS11bml0cy5yYW5nZS1udW1lcmljIC5mcmFtZTo6YWZ0ZXIsLmFydGljbGUtLWNvbnRlbnQgdGFibGUud2luZG93LWZyYW1lLXVuaXRzLnJhbmdlLW51bWVyaWMgdHIuY3VycmVudC1yb3c6OmFmdGVyLC5hcnRpY2xlLS1jb250ZW50IHRhYmxlLndpbmRvdy1mcmFtZS11bml0cy5yb3dzIC5mcmFtZTo6YWZ0ZXIsLmFydGljbGUtLWNvbnRlbnQgdGFibGUud2luZG93LWZyYW1lLXVuaXRzLnJvd3MgdHIuY3VycmVudC1yb3c6OmFmdGVye2Rpc3BsYXk6YmxvY2s7cGFkZGluZzouMjVyZW0gLjVyZW07cG9zaXRpb246YWJzb2x1dGU7dG9wOjNweDtsZWZ0OjNweDtib3JkZXItcmFkaXVzOjRweDtjb2xvcjojZmZmO2ZvbnQtc2l6ZTouOHJlbTtmb250LXdlaWdodDpib2xkO3RleHQtdHJhbnNmb3JtOnVwcGVyY2FzZTtsZXR0ZXItc3BhY2luZzouMDJlbTtib3gtc2hhZG93OjRweCA0cHggNHB4ICMxNDE0MUZ9LmFydGljbGUtLWNvbnRlbnQgdGFibGUud2luZG93LWZyYW1lLXVuaXRzLnJhbmdlLW51bWVyaWMgdHIuY3VycmVudC1yb3csLmFydGljbGUtLWNvbnRlbnQgdGFibGUud2luZG93LWZyYW1lLXVuaXRzLnJvd3MgdHIuY3VycmVudC1yb3d7b3V0bGluZS1jb2xvcjojZDMwOTcxfS5hcnRpY2xlLS1jb250ZW50IHRhYmxlLndpbmRvdy1mcmFtZS11bml0cy5yYW5nZS1udW1lcmljIHRyLmN1cnJlbnQtcm93OjphZnRlciwuYXJ0aWNsZS0tY29udGVudCB0YWJsZS53aW5kb3ctZnJhbWUtdW5pdHMucm93cyB0ci5jdXJyZW50LXJvdzo6YWZ0ZXJ7Y29udGVudDpcIkN1cnJlbnQgUm93XCI7YmFja2dyb3VuZDojZDMwOTcxfS5hcnRpY2xlLS1jb250ZW50IHRhYmxlLndpbmRvdy1mcmFtZS11bml0cy5yYW5nZS1udW1lcmljIC5mcmFtZSwuYXJ0aWNsZS0tY29udGVudCB0YWJsZS53aW5kb3ctZnJhbWUtdW5pdHMucm93cyAuZnJhbWV7b3V0bGluZS1jb2xvcjojOWIyYWZmfS5hcnRpY2xlLS1jb250ZW50IHRhYmxlLndpbmRvdy1mcmFtZS11bml0cy5yYW5nZS1udW1lcmljIC5mcmFtZTo6YWZ0ZXIsLmFydGljbGUtLWNvbnRlbnQgdGFibGUud2luZG93LWZyYW1lLXVuaXRzLnJvd3MgLmZyYW1lOjphZnRlcntjb250ZW50OlwiRnJhbWVcIjtiYWNrZ3JvdW5kOiM5YjJhZmZ9LmFydGljbGUtLWNvbnRlbnQgdGFibGUud2luZG93LWZyYW1lLXVuaXRzLnJhbmdlLW51bWVyaWMgLmZyYW1lIHRkOm50aC1jaGlsZCgzKXtmb250LXdlaWdodDpib2xkO3RleHQtZGVjb3JhdGlvbjp1bmRlcmxpbmU7dGV4dC1kZWNvcmF0aW9uLXRoaWNrbmVzczoycHg7dGV4dC11bmRlcmxpbmUtb2Zmc2V0OjVweDt0ZXh0LWRlY29yYXRpb24tY29sb3I6IzliMmFmZn0uYXJ0aWNsZS0tY29udGVudCB0YWJsZS53aW5kb3ctZnJhbWUtdW5pdHMucmFuZ2UtbnVtZXJpYyAuZnJhbWUgdHIuY3VycmVudC1yb3cgdGQ6bnRoLWNoaWxkKDMpe3RleHQtZGVjb3JhdGlvbi1jb2xvcjojZDMwOTcxfUBtZWRpYSAobWF4LXdpZHRoOiAxMjgwcHgpey5hcnRpY2xlLS1jb250ZW50ICNxdWl4LWRvd25zYW1wbGUtcGlwZWxpbmV7bWF4LXdpZHRoOjMyNXB4fS5hcnRpY2xlLS1jb250ZW50ICNxdWl4LWRvd25zYW1wbGUtcGlwZWxpbmUgLmxvZ28tcm93IC5pbmZsdXhkYi1jb25uZWN0b3J7d2lkdGg6MTAwJX0uYXJ0aWNsZS0tY29udGVudCAjcXVpeC1kb3duc2FtcGxlLXBpcGVsaW5lIC5xdWl4LXN0cmVhbS1jb250YWluZXJ7ZmxleC1kaXJlY3Rpb246Y29sdW1ufS5hcnRpY2xlLS1jb250ZW50ICNxdWl4LWRvd25zYW1wbGUtcGlwZWxpbmUgLmFycm93e21hcmdpbjouNXJlbSAuNXJlbSAuNzVyZW0gLjVyZW07d2lkdGg6MnB4O21pbi13aWR0aDoycHg7aGVpZ2h0OmF1dG87bWluLWhlaWdodDoyNXB4fS5hcnRpY2xlLS1jb250ZW50ICNxdWl4LWRvd25zYW1wbGUtcGlwZWxpbmUgLmFycm93OmFmdGVye2NvbnRlbnQ6XCLilrxcIjtyaWdodDotNC4yNXB4O2JvdHRvbTotLjVlbTt0b3A6dW5zZXQ7Zm9udC1zaXplOjFyZW19LmFydGljbGUtLWNvbnRlbnQgI3F1aXgtZG93bnNhbXBsZS1waXBlbGluZSAua2Fma2EtdG9nZ2xle21hcmdpbi1ib3R0b206MS41cmVtfS5hcnRpY2xlLS1jb250ZW50ICNxdWl4LWRvd25zYW1wbGUtcGlwZWxpbmUgLmthZmthLXRvZ2dsZTphZnRlcntjb250ZW50OlwiVE9QSUM6IFwiIGF0dHIodG9waWMpO3dpZHRoOjQwMCU7Ym90dG9tOi0yNXB4O2xlZnQ6LTE1MCV9LmFydGljbGUtLWNvbnRlbnQgI3F1aXgtZG93bnNhbXBsZS1waXBlbGluZSAjcXVpeC1icmFuZC1pY29uc3ttYXJnaW4tdG9wOjEuNXJlbTthbGlnbi1pdGVtczpjZW50ZXI7anVzdGlmeS1jb250ZW50OmNlbnRlcn19QG1lZGlhIChtYXgtd2lkdGg6IDYwMHB4KXsuYXJ0aWNsZS0tY29udGVudCAjc2hhcmQtZGlhZ3JhbXtmbGV4LWRpcmVjdGlvbjpyb3d9LmFydGljbGUtLWNvbnRlbnQgI3NoYXJkLWRpYWdyYW0gLnBlcmlvZHN7ZmxleC1kaXJlY3Rpb246Y29sdW1uO21hcmdpbi1yaWdodDouNXJlbX0uYXJ0aWNsZS0tY29udGVudCAjc2hhcmQtZGlhZ3JhbSAudGltZWxpbmV7ZmxleC1kaXJlY3Rpb246Y29sdW1uO3BhZGRpbmc6LjVyZW0gMH0uYXJ0aWNsZS0tY29udGVudCAjc2hhcmQtZGlhZ3JhbSAudGltZWxpbmUgLmludGVydmFse3dpZHRoOi43NXJlbTtib3JkZXItdG9wOm5vbmU7Ym9yZGVyLXJpZ2h0Om5vbmU7Ym9yZGVyLWxlZnQ6MXB4IHNvbGlkICNENEQ3REQ7Ym9yZGVyLWJvdHRvbToxcHggc29saWQgI0Q0RDdERH0uYXJ0aWNsZS0tY29udGVudCAjc2hhcmQtZGlhZ3JhbSAudGltZWxpbmUgLmludGVydmFsOmZpcnN0LWNoaWxke2JvcmRlci10b3A6MXB4IHNvbGlkICNENEQ3RER9LmFydGljbGUtLWNvbnRlbnQgI3NoYXJkLWRpYWdyYW0gLnNoYXJkLWdyb3Vwc3tmbGV4LWRpcmVjdGlvbjpjb2x1bW59LmFydGljbGUtLWNvbnRlbnQgI3NoYXJkLWRpYWdyYW0gLnNoYXJkLWdyb3VwcyAuc2hhcmQtZ3JvdXB7bWFyZ2luOi4yNXJlbSAwfS5hcnRpY2xlLS1jb250ZW50IC5zZXJpZXMtZGlhZ3JhbXt3aWR0aDphdXRvfS5hcnRpY2xlLS1jb250ZW50ICNpbmZsdXhxbC13aW5kb3ctZGlhZ3JhbXtqdXN0aWZ5LWNvbnRlbnQ6ZmxleC1zdGFydDttaW4td2lkdGg6MzAwcHh9LmFydGljbGUtLWNvbnRlbnQgI2luZmx1eHFsLXdpbmRvdy1kaWFncmFtIC53aW5kb3ctaG91cnt3aWR0aDo2MHB4fS5hcnRpY2xlLS1jb250ZW50ICNpbmZsdXhxbC13aW5kb3ctZGlhZ3JhbSAud2luZG93LWhvdXIgcHt0cmFuc2Zvcm06cm90YXRlKC05MGRlZyk7cG9zaXRpb246cmVsYXRpdmU7bWFyZ2luLXRvcDo4Ljc1cmVtO2ZvbnQtc2l6ZTouOTVyZW19LmFydGljbGUtLWNvbnRlbnQgI2luZmx1eHFsLXdpbmRvdy1kaWFncmFtIC53aW5kb3ctaG91ciBwOjpiZWZvcmV7dHJhbnNmb3JtOnJvdGF0ZSg5MGRlZyk7cG9zaXRpb246YWJzb2x1dGU7dG9wOi0uNXJlbTtsZWZ0OjQuNXJlbX0uYXJ0aWNsZS0tY29udGVudCAjaW5mbHV4cWwtd2luZG93LWRpYWdyYW0gLndpbmRvdy1ob3VyIHA6OmFmdGVye2xlZnQ6MH19LmFydGljbGUtLWNvbnRlbnQgLmluZmx1eGRidS1iYW5uZXJ7YmFja2dyb3VuZC1jb2xvcjojMDIwYTQ3O21hcmdpbjoyLjVyZW0gMCAzcmVtO3BhZGRpbmc6Mi41cmVtO2JvcmRlci1yYWRpdXM6MS41cmVtO2JveC1zaGFkb3c6MnB4IDJweCA4cHggIzA3MDcwRTtiYWNrZ3JvdW5kLWltYWdlOnVybChcIi9zdmdzL2hvbWUtYmctY2lyY2xlLXJpZ2h0LnN2Z1wiKTtiYWNrZ3JvdW5kLXNpemU6Y292ZXI7ZGlzcGxheTpmbGV4O2p1c3RpZnktY29udGVudDpzcGFjZS1iZXR3ZWVuO2FsaWduLWl0ZW1zOmNlbnRlcn0uYXJ0aWNsZS0tY29udGVudCAuaW5mbHV4ZGJ1LWJhbm5lciAuaW5mbHV4ZGJ1LWxvZ297bWF4LXdpZHRoOjE3MHB4O21hcmdpbjowIDAgMXJlbTtib3gtc2hhZG93Om5vbmV9LmFydGljbGUtLWNvbnRlbnQgLmluZmx1eGRidS1iYW5uZXIgLmJhbm5lci1jb250ZW50e21hcmdpbi1yaWdodDoxcmVtO21heC13aWR0aDo2NSV9LmFydGljbGUtLWNvbnRlbnQgLmluZmx1eGRidS1iYW5uZXIgLmJhbm5lci1jb250ZW50IGg0e21hcmdpbi10b3A6LTEuNzVyZW07Zm9udC1zaXplOjEuNXJlbTtmb250LXN0eWxlOm5vcm1hbDtjb2xvcjojZmZmfS5hcnRpY2xlLS1jb250ZW50IC5pbmZsdXhkYnUtYmFubmVyIC5iYW5uZXItY29udGVudCBwe21hcmdpbi1ib3R0b206MDtjb2xvcjojZmZmfS5hcnRpY2xlLS1jb250ZW50IC5pbmZsdXhkYnUtYmFubmVyIC5iYW5uZXItY29udGVudCBwIHN0cm9uZ3tjb2xvcjojZmZmfS5hcnRpY2xlLS1jb250ZW50IC5pbmZsdXhkYnUtYmFubmVyIC5iYW5uZXItY3Rhe3Bvc2l0aW9uOnJlbGF0aXZlfS5hcnRpY2xlLS1jb250ZW50IC5pbmZsdXhkYnUtYmFubmVyIC5iYW5uZXItY3RhIGF7ZGlzcGxheTpibG9jaztwb3NpdGlvbjpyZWxhdGl2ZTtwYWRkaW5nOjFyZW0gMS41cmVtO2NvbG9yOiNmZmY7dGV4dC1hbGlnbjpjZW50ZXI7Ym9yZGVyLXJhZGl1czoycHg7YmFja2dyb3VuZDpsaW5lYXItZ3JhZGllbnQoNDVkZWcsICNkMzA5NzEsIzliMmFmZik7ei1pbmRleDoxfS5hcnRpY2xlLS1jb250ZW50IC5pbmZsdXhkYnUtYmFubmVyIC5iYW5uZXItY3RhIGE6YWZ0ZXJ7Y29udGVudDpcIlwiO3Bvc2l0aW9uOmFic29sdXRlO3BhZGRpbmc6MDt0b3A6MDtyaWdodDowO3dpZHRoOjEwMCU7aGVpZ2h0OjEwMCU7Ym9yZGVyLXJhZGl1czoycHg7YmFja2dyb3VuZDpsaW5lYXItZ3JhZGllbnQoMjcwZGVnLCAjNzcxY2M3LCNiMjAyNWIpO3RyYW5zaXRpb246b3BhY2l0eSAuMnM7ei1pbmRleDotMTtvcGFjaXR5OjB9LmFydGljbGUtLWNvbnRlbnQgLmluZmx1eGRidS1iYW5uZXIgLmJhbm5lci1jdGEgYTpob3ZlcjphZnRlcntvcGFjaXR5OjF9QG1lZGlhIChtYXgtd2lkdGg6IDYwMHB4KXsuYXJ0aWNsZS0tY29udGVudCAuaW5mbHV4ZGJ1LWJhbm5lcntmbGV4LWRpcmVjdGlvbjpjb2x1bW59LmFydGljbGUtLWNvbnRlbnQgLmluZmx1eGRidS1iYW5uZXIgLmJhbm5lci1jb250ZW50e21heC13aWR0aDoxMDAlfS5hcnRpY2xlLS1jb250ZW50IC5pbmZsdXhkYnUtYmFubmVyIC5iYW5uZXItY29udGVudCBoNHttYXJnaW4tdG9wOi0xLjI1cmVtfS5hcnRpY2xlLS1jb250ZW50IC5pbmZsdXhkYnUtYmFubmVyIC5iYW5uZXItY3Rhe21hcmdpbi10b3A6MS43NXJlbTt3aWR0aDoxMDAlfX0uYXJ0aWNsZS0tY29udGVudCAuaW5mbHV4cWwtdGFibGUtbWV0YSBwe2ZvbnQtc2l6ZTouOXJlbTtsaW5lLWhlaWdodDoxLjI1cmVtfS5hcnRpY2xlLS1jb250ZW50IC5pbmZsdXhxbC10YWJsZS1tZXRhIHA6bGFzdC1jaGlsZHttYXJnaW4tYm90dG9tOjByZW19LmFydGljbGUtLWNvbnRlbnQgdGFibGUrLmluZmx1eHFsLXRhYmxlLW1ldGF7bWFyZ2luLXRvcDotMS41cmVtfS5hcnRpY2xlLS1jb250ZW50IC5rZXliaW5kaW5ne2ZvbnQtZmFtaWx5OlwiUHJveGltYSBOb3ZhXCIsc2Fucy1zZXJpZn0uYXJ0aWNsZS0tY29udGVudCAua2V5YmluZGluZyBjb2Rle2ZvbnQtZmFtaWx5OlwiUHJveGltYSBOb3ZhXCIsc2Fucy1zZXJpZn0uYXJ0aWNsZS0tY29udGVudCAua2V5YmluZGluZy5vc3ggY29kZXtmb250LWZhbWlseTotYXBwbGUtc3lzdGVtLEJsaW5rTWFjU3lzdGVtRm9udCxcIlByb3hpbWEgTm92YVwiLHNhbnMtc2VyaWYsXCJIZWx2ZXRpY2EgTmV1ZVwiLEFyaWFsLHNhbnMtc2VyaWZ9LmFydGljbGUtLWNvbnRlbnQgLmtleWJpbmRpbmcgY29kZS5vc3h7Zm9udC1mYW1pbHk6LWFwcGxlLXN5c3RlbSxCbGlua01hY1N5c3RlbUZvbnQsXCJQcm94aW1hIE5vdmFcIixzYW5zLXNlcmlmLFwiSGVsdmV0aWNhIE5ldWVcIixBcmlhbCxzYW5zLXNlcmlmfS5hcnRpY2xlLS1jb250ZW50ICNsaXN0LWZpbHRlcnN7ZGlzcGxheTpmbGV4O2ZsZXgtZmxvdzpyb3cgd3JhcDthbGlnbi1pdGVtczpmbGV4LXN0YXJ0fS5hcnRpY2xlLS1jb250ZW50ICNsaXN0LWZpbHRlcnMgLmZpbHRlci1jYXRlZ29yeXtmbGV4OjEgMSAyMDBweDttYXJnaW46MCAxLjI1cmVtIDEuMjVyZW0gMDttYXgtd2lkdGg6MzMlfS5hcnRpY2xlLS1jb250ZW50ICNsaXN0LWZpbHRlcnMgLmZpbHRlci1jYXRlZ29yeS50d28tY29sdW1uc3tmbGV4OjEgMiA0MDBweDttYXgtd2lkdGg6NjYlfS5hcnRpY2xlLS1jb250ZW50ICNsaXN0LWZpbHRlcnMgLmZpbHRlci1jYXRlZ29yeS50d28tY29sdW1ucyAuZmlsdGVyLWxpc3R7Y29sdW1uczoyfS5hcnRpY2xlLS1jb250ZW50ICNsaXN0LWZpbHRlcnMgaDV7Ym9yZGVyLWJvdHRvbToxcHggc29saWQgcmdiYSgyMTIsMjE1LDIyMSwwLjI1KTtwYWRkaW5nLWJvdHRvbTouNjVyZW19LmFydGljbGUtLWNvbnRlbnQgI2xpc3QtZmlsdGVycyAuZmlsdGVyLWxpc3R7cGFkZGluZzowO21hcmdpbjouNXJlbSAwIDA7bGlzdC1zdHlsZTpub25lfS5hcnRpY2xlLS1jb250ZW50ICNsaXN0LWZpbHRlcnMgLmZpbHRlci1saXN0IGxpe21hcmdpbjowO2xpbmUtaGVpZ2h0OjEuMzVyZW19LmFydGljbGUtLWNvbnRlbnQgI2xpc3QtZmlsdGVycyBsYWJlbHtkaXNwbGF5OmJsb2NrO3BhZGRpbmc6LjI1cmVtIDA7Y29sb3I6I0Q0RDdERDtwb3NpdGlvbjpyZWxhdGl2ZX0uYXJ0aWNsZS0tY29udGVudCAjbGlzdC1maWx0ZXJzIGxhYmVsOmFmdGVye2NvbnRlbnQ6YXR0cihkYXRhLWNvdW50KTttYXJnaW4tbGVmdDowO2ZvbnQtc2l6ZTouODVyZW07b3BhY2l0eTouNX0uYXJ0aWNsZS0tY29udGVudCAjbGlzdC1maWx0ZXJzIC5jaGVja2JveHtkaXNwbGF5OmlubGluZS1ibG9jaztwb3NpdGlvbjpyZWxhdGl2ZTtoZWlnaHQ6MS4xNWVtO3dpZHRoOjEuMTVlbTtiYWNrZ3JvdW5kOnJnYmEoMjEyLDIxNSwyMjEsMC4wNSk7bWFyZ2luLXJpZ2h0Oi4zcmVtO3ZlcnRpY2FsLWFsaWduOnRleHQtdG9wO2JvcmRlci1yYWRpdXM6MnB4O2N1cnNvcjpwb2ludGVyO2JvcmRlcjoxLjVweCBzb2xpZCByZ2JhKDIxMiwyMTUsMjIxLDAuMik7dXNlci1zZWxlY3Q6bm9uZX0uYXJ0aWNsZS0tY29udGVudCAjbGlzdC1maWx0ZXJzIGlucHV0W3R5cGU9J2NoZWNrYm94J117bWFyZ2luLXJpZ2h0Oi0xLjFyZW07cGFkZGluZzowO3ZlcnRpY2FsLWFsaWduOnRvcDtvcGFjaXR5OjA7Y3Vyc29yOnBvaW50ZXJ9LmFydGljbGUtLWNvbnRlbnQgI2xpc3QtZmlsdGVycyBpbnB1dFt0eXBlPSdjaGVja2JveCddKy5jaGVja2JveDphZnRlcntjb250ZW50OlwiXCI7ZGlzcGxheTpibG9jaztwb3NpdGlvbjphYnNvbHV0ZTtoZWlnaHQ6LjVyZW07d2lkdGg6LjVyZW07Ym9yZGVyLXJhZGl1czo1MCU7YmFja2dyb3VuZDojMDBBM0ZGO3RvcDo1MCU7bGVmdDo1MCU7b3BhY2l0eTowO3RyYW5zZm9ybTpzY2FsZSgyKSB0cmFuc2xhdGUoLTIwJSwgLTIwJSk7dHJhbnNpdGlvbjphbGwgLjJzfS5hcnRpY2xlLS1jb250ZW50ICNsaXN0LWZpbHRlcnMgaW5wdXRbdHlwZT0nY2hlY2tib3gnXTpjaGVja2VkKy5jaGVja2JveDphZnRlcntvcGFjaXR5OjE7dHJhbnNmb3JtOnNjYWxlKDEpIHRyYW5zbGF0ZSgtNTAlLCAtNTAlKX1AbWVkaWEgKG1heC13aWR0aDogMTEwMHB4KXsuYXJ0aWNsZS0tY29udGVudCAjbGlzdC1maWx0ZXJzIC5maWx0ZXItY2F0ZWdvcnl7bWF4LXdpZHRoOjUwJX0uYXJ0aWNsZS0tY29udGVudCAjbGlzdC1maWx0ZXJzIC5maWx0ZXItY2F0ZWdvcnkudHdvLWNvbHVtbnMsLmFydGljbGUtLWNvbnRlbnQgI2xpc3QtZmlsdGVycyAuZmlsdGVyLWNhdGVnb3J5LnRocmVlLWNvbHVtbnN7bWF4LXdpZHRoOjEwMCV9fUBtZWRpYSAobWF4LXdpZHRoOiA2MDBweCl7LmFydGljbGUtLWNvbnRlbnQgI2xpc3QtZmlsdGVycyAuZmlsdGVyLWNhdGVnb3J5e21heC13aWR0aDoxMDAlfX0uYXJ0aWNsZS0tY29udGVudCBvbCwuYXJ0aWNsZS0tY29udGVudCB1bHtwYWRkaW5nLWxlZnQ6MS42cmVtO21hcmdpbjoxcmVtIDAgMS41cmVtIDB9LmFydGljbGUtLWNvbnRlbnQgb2wgb2wsLmFydGljbGUtLWNvbnRlbnQgb2wgdWwsLmFydGljbGUtLWNvbnRlbnQgdWwgb2wsLmFydGljbGUtLWNvbnRlbnQgdWwgdWx7bWFyZ2luOjB9LmFydGljbGUtLWNvbnRlbnQgdWx7bGlzdC1zdHlsZS10eXBlOmRpc2N9LmFydGljbGUtLWNvbnRlbnQgdWwgbGk6YmVmb3Jle2NvbnRlbnQ6XCJcIiAhaW1wb3J0YW50O2Rpc3BsYXk6bm9uZX0uYXJ0aWNsZS0tY29udGVudCB1bCBvbHtsaXN0LXN0eWxlOnJldmVydH0uYXJ0aWNsZS0tY29udGVudCB1bCBvbCBsaTo6bWFya2Vye2ZvbnQtd2VpZ2h0OmJvbGQ7Y29sb3I6I0ZBRkFGQ30uYXJ0aWNsZS0tY29udGVudCBvbHtsaXN0LXN0eWxlOm5vbmU7Y291bnRlci1yZXNldDppdGVtfS5hcnRpY2xlLS1jb250ZW50IG9sIGxpe3Bvc2l0aW9uOnJlbGF0aXZlO2NvdW50ZXItaW5jcmVtZW50Oml0ZW19LmFydGljbGUtLWNvbnRlbnQgb2wgbGk6YmVmb3Jle2NvbnRlbnQ6Y291bnRlcihpdGVtKSBcIi4gXCI7cG9zaXRpb246YWJzb2x1dGU7bGVmdDotMS42ZW07Y29sb3I6I0ZBRkFGQztmb250LXdlaWdodDpib2xkfS5hcnRpY2xlLS1jb250ZW50IG9sIGxpPm9sIGxpOmJlZm9yZXtjb250ZW50OmNvdW50ZXIoaXRlbSwgbG93ZXItbGF0aW4pIFwiLiBcIn0uYXJ0aWNsZS0tY29udGVudCBvbCBsaT5vbCBsaSBvbCBsaTpiZWZvcmV7Y29udGVudDpjb3VudGVyKGl0ZW0pIFwiLiBcIn0uYXJ0aWNsZS0tY29udGVudCBvbCBsaT5vbCBsaSBvbCBsaSBvbCBsaTpiZWZvcmV7Y29udGVudDpjb3VudGVyKGl0ZW0sIGxvd2VyLWxhdGluKSBcIi4gXCJ9LmFydGljbGUtLWNvbnRlbnQgb2wgbGk+b2wgbGkgb2wgbGkgb2wgbGkgb2wgbGk6YmVmb3Jle2NvbnRlbnQ6Y291bnRlcihpdGVtKSBcIi4gXCJ9LmFydGljbGUtLWNvbnRlbnQgb2wgbGkgdWx7Y291bnRlci1yZXNldDppdGVtfS5hcnRpY2xlLS1jb250ZW50IG9sIGxpIHVsPm9se2NvdW50ZXItcmVzZXQ6aXRlbX0uYXJ0aWNsZS0tY29udGVudCBsaXttYXJnaW46LjI1cmVtIDB9LmFydGljbGUtLWNvbnRlbnQgbGk6bm90KDpsYXN0LWNoaWxkKT5wOm9ubHktY2hpbGR7bWFyZ2luLWJvdHRvbTowfS5hcnRpY2xlLS1jb250ZW50IGxpIHArdWwsLmFydGljbGUtLWNvbnRlbnQgbGkgcCtvbHttYXJnaW46LS45cmVtIDAgLjVyZW19LmFydGljbGUtLWNvbnRlbnQgbGkgLmxpc3Qtbm90ZXtmb250LXNpemU6Ljg1cmVtfS5hcnRpY2xlLS1jb250ZW50IGxpIGg0LC5hcnRpY2xlLS1jb250ZW50IGxpIGg1LC5hcnRpY2xlLS1jb250ZW50IGxpIGg2e21hcmdpbi10b3A6MWVtO3BhZGRpbmctdG9wOjB9LmFydGljbGUtLWNvbnRlbnQgZW0ub3A5MCwuYXJ0aWNsZS0tY29udGVudCBzcGFuLm9wOTAsLmFydGljbGUtLWNvbnRlbnQgc3Ryb25nLm9wOTB7b3BhY2l0eTouOX0uYXJ0aWNsZS0tY29udGVudCBlbS5vcDg1LC5hcnRpY2xlLS1jb250ZW50IHNwYW4ub3A4NSwuYXJ0aWNsZS0tY29udGVudCBzdHJvbmcub3A4NXtvcGFjaXR5Oi44NX0uYXJ0aWNsZS0tY29udGVudCBlbS5vcDgwLC5hcnRpY2xlLS1jb250ZW50IHNwYW4ub3A4MCwuYXJ0aWNsZS0tY29udGVudCBzdHJvbmcub3A4MHtvcGFjaXR5Oi44fS5hcnRpY2xlLS1jb250ZW50IGVtLm9wNzUsLmFydGljbGUtLWNvbnRlbnQgc3Bhbi5vcDc1LC5hcnRpY2xlLS1jb250ZW50IHN0cm9uZy5vcDc1e29wYWNpdHk6Ljc1fS5hcnRpY2xlLS1jb250ZW50IGVtLm9wNzAsLmFydGljbGUtLWNvbnRlbnQgc3Bhbi5vcDcwLC5hcnRpY2xlLS1jb250ZW50IHN0cm9uZy5vcDcwe29wYWNpdHk6Ljd9LmFydGljbGUtLWNvbnRlbnQgZW0ub3A2NSwuYXJ0aWNsZS0tY29udGVudCBzcGFuLm9wNjUsLmFydGljbGUtLWNvbnRlbnQgc3Ryb25nLm9wNjV7b3BhY2l0eTouNjV9LmFydGljbGUtLWNvbnRlbnQgZW0ub3A2MCwuYXJ0aWNsZS0tY29udGVudCBzcGFuLm9wNjAsLmFydGljbGUtLWNvbnRlbnQgc3Ryb25nLm9wNjB7b3BhY2l0eTouNn0uYXJ0aWNsZS0tY29udGVudCBlbS5vcDU1LC5hcnRpY2xlLS1jb250ZW50IHNwYW4ub3A1NSwuYXJ0aWNsZS0tY29udGVudCBzdHJvbmcub3A1NXtvcGFjaXR5Oi41NX0uYXJ0aWNsZS0tY29udGVudCBlbS5vcDUwLC5hcnRpY2xlLS1jb250ZW50IHNwYW4ub3A1MCwuYXJ0aWNsZS0tY29udGVudCBzdHJvbmcub3A1MHtvcGFjaXR5Oi41fS5hcnRpY2xlLS1jb250ZW50IGVtLm9wNDUsLmFydGljbGUtLWNvbnRlbnQgc3Bhbi5vcDQ1LC5hcnRpY2xlLS1jb250ZW50IHN0cm9uZy5vcDQ1e29wYWNpdHk6LjQ1fS5hcnRpY2xlLS1jb250ZW50IGVtLm9wNDAsLmFydGljbGUtLWNvbnRlbnQgc3Bhbi5vcDQwLC5hcnRpY2xlLS1jb250ZW50IHN0cm9uZy5vcDQwe29wYWNpdHk6LjR9LmFydGljbGUtLWNvbnRlbnQgZW0ub3AzNSwuYXJ0aWNsZS0tY29udGVudCBzcGFuLm9wMzUsLmFydGljbGUtLWNvbnRlbnQgc3Ryb25nLm9wMzV7b3BhY2l0eTouMzV9LmFydGljbGUtLWNvbnRlbnQgZW0ub3AzMCwuYXJ0aWNsZS0tY29udGVudCBzcGFuLm9wMzAsLmFydGljbGUtLWNvbnRlbnQgc3Ryb25nLm9wMzB7b3BhY2l0eTouM30uYXJ0aWNsZS0tY29udGVudCBlbS5vcDI1LC5hcnRpY2xlLS1jb250ZW50IHNwYW4ub3AyNSwuYXJ0aWNsZS0tY29udGVudCBzdHJvbmcub3AyNXtvcGFjaXR5Oi4yNX0uYXJ0aWNsZS0tY29udGVudCBlbS5vcDIwLC5hcnRpY2xlLS1jb250ZW50IHNwYW4ub3AyMCwuYXJ0aWNsZS0tY29udGVudCBzdHJvbmcub3AyMHtvcGFjaXR5Oi4yfS5hcnRpY2xlLS1jb250ZW50IGVtLm9wMTUsLmFydGljbGUtLWNvbnRlbnQgc3Bhbi5vcDE1LC5hcnRpY2xlLS1jb250ZW50IHN0cm9uZy5vcDE1e29wYWNpdHk6LjE1fS5hcnRpY2xlLS1jb250ZW50IGVtLm9wMTAsLmFydGljbGUtLWNvbnRlbnQgc3Bhbi5vcDEwLC5hcnRpY2xlLS1jb250ZW50IHN0cm9uZy5vcDEwe29wYWNpdHk6LjF9LmFydGljbGUtLWNvbnRlbnQgLnBhZ2UtbmF2LWJ0bnN7ZGlzcGxheTpmbGV4O2p1c3RpZnktY29udGVudDpzcGFjZS1iZXR3ZWVuO21hcmdpbjozcmVtIDAgMXJlbX0uYXJ0aWNsZS0tY29udGVudCAucGFnZS1uYXYtYnRucyAuYnRue2Rpc3BsYXk6ZmxleDttYXgtd2lkdGg6NDklO3RleHQtYWxpZ246Y2VudGVyO2FsaWduLWl0ZW1zOmNlbnRlcn0uYXJ0aWNsZS0tY29udGVudCAucGFnZS1uYXYtYnRucyAuYnRuLnByZXZ7bWFyZ2luOjAgYXV0byAwIDA7cGFkZGluZzouNzVyZW0gMS4yNXJlbSAuNzVyZW0gLjc1cmVtfS5hcnRpY2xlLS1jb250ZW50IC5wYWdlLW5hdi1idG5zIC5idG4ucHJldjpiZWZvcmV7Y29udGVudDpcIlxcZTkwYVwiO2Rpc3BsYXk6aW5saW5lLWJsb2NrO2ZvbnQtZmFtaWx5OlwiaWNvbW9vbi12MlwiO21hcmdpbi1yaWdodDouNXJlbTt2ZXJ0aWNhbC1hbGlnbjptaWRkbGV9LmFydGljbGUtLWNvbnRlbnQgLnBhZ2UtbmF2LWJ0bnMgLmJ0bi5uZXh0e21hcmdpbjowIDAgMCBhdXRvO3BhZGRpbmc6Ljc1cmVtIC43NXJlbSAuNzVyZW0gMS4yNXJlbTtmbGV4LWRpcmVjdGlvbjpyb3ctcmV2ZXJzZX0uYXJ0aWNsZS0tY29udGVudCAucGFnZS1uYXYtYnRucyAuYnRuLm5leHQ6YmVmb3Jle2NvbnRlbnQ6XCJcXGU5MGNcIjtkaXNwbGF5OmlubGluZS1ibG9jaztmb250LWZhbWlseTpcImljb21vb24tdjJcIjttYXJnaW4tbGVmdDouNXJlbTt2ZXJ0aWNhbC1hbGlnbjptaWRkbGV9LmFydGljbGUtLWNvbnRlbnQgLnBhZ2UtbmF2LWJ0bnMgLmJ0bjpvbmx5LWNoaWxke21heC13aWR0aDpub25lfS5hcnRpY2xlLS1jb250ZW50IC5yZWxhdGVke2JvcmRlci10b3A6MXB4IHNvbGlkICMzODM4NDY7cGFkZGluZy10b3A6MS41cmVtfS5hcnRpY2xlLS1jb250ZW50IC5yZWxhdGVkIGg0e2ZvbnQtc2l6ZToxLjE1cmVtfS5hcnRpY2xlLS1jb250ZW50IC5yZWxhdGVkIHVse2xpc3Qtc3R5bGU6bm9uZTtwYWRkaW5nOjA7bWFyZ2luLXRvcDowfS5hcnRpY2xlLS1jb250ZW50IC5yZWxhdGVkIGxpe21hcmdpbjouNXJlbSAwO2xpbmUtaGVpZ2h0OjEuMjVyZW19LmFydGljbGUtLWNvbnRlbnQgLmV4cGFuZC13cmFwcGVyKy5yZWxhdGVke2JvcmRlci10b3A6bm9uZTttYXJnaW4tdG9wOi0ycmVtfS5hcnRpY2xlLS1jb250ZW50ICNyZWxlYXNlLXRvY3ttYXJnaW46MnJlbSAwIDNyZW19LmFydGljbGUtLWNvbnRlbnQgI3JlbGVhc2UtdG9jIHVse2xpc3Qtc3R5bGU6bm9uZTtvdmVyZmxvdzpoaWRkZW47cGFkZGluZy1sZWZ0OjA7bWFyZ2luLWJvdHRvbTouNzVyZW07dHJhbnNpdGlvbjpoZWlnaHQgLjJzfS5hcnRpY2xlLS1jb250ZW50ICNyZWxlYXNlLXRvYyB1bCBsaXtsaW5lLWhlaWdodDoxLjJlbTttYXJnaW46LjVyZW0gMH0uYXJ0aWNsZS0tY29udGVudCAjcmVsZWFzZS10b2MgdWwgbGk6OmFmdGVye2NvbnRlbnQ6YXR0cihkYXRlKTtmb250LXNpemU6MXJlbTttYXJnaW4tbGVmdDouNXJlbTtjb2xvcjpyZ2JhKDIxMiwyMTUsMjIxLDAuNSl9LmFydGljbGUtLWNvbnRlbnQgI3JlbGVhc2UtdG9jLmNsdXN0ZXJlZCB1bHtwYWRkaW5nLWxlZnQ6MS41cmVtfS5hcnRpY2xlLS1jb250ZW50ICNyZWxlYXNlLXRvYy5jbHVzdGVyZWQgdWwgLmNoZWNrcG9pbnR7bWFyZ2luLWxlZnQ6LTEuNXJlbX0uYXJ0aWNsZS0tY29udGVudCAjcmVsZWFzZS10b2MuY2x1c3RlcmVkIHVsIC5jaGVja3BvaW50OjpiZWZvcmV7Y29udGVudDonXFxlOTNiJyAhaW1wb3J0YW50O2ZvbnQtZmFtaWx5OidpY29tb29uLXY0Jztjb2xvcjojZDMwOTcxO2Rpc3BsYXk6aW5saW5lLWJsb2NrO21hcmdpbjowIC41cmVtIDAgMDt2ZXJ0aWNhbC1hbGlnbjp0b3B9LmFydGljbGUtLWNvbnRlbnQgI3JlbGVhc2UtdG9jIC5zaG93LW1vcmV7Y29sb3I6IzAwQTNGRjt0cmFuc2l0aW9uOmNvbG9yIC4ycztmb250LXdlaWdodDo1MDA7Zm9udC1zaXplOjFyZW19LmFydGljbGUtLWNvbnRlbnQgI3JlbGVhc2UtdG9jIC5zaG93LW1vcmU6OmJlZm9yZXtjb250ZW50OidcXGU5MzUnO2ZvbnQtZmFtaWx5OidpY29tb29uLXY0Jztmb250LXNpemU6LjlyZW07Y29sb3I6IzE0MTQxRjtiYWNrZ3JvdW5kOiMwMEEzRkY7Ym9yZGVyLXJhZGl1czo1MCU7bWFyZ2luLXJpZ2h0Oi41cmVtO3RyYW5zaXRpb246YmFja2dyb3VuZCAuMTVzfS5hcnRpY2xlLS1jb250ZW50ICNyZWxlYXNlLXRvYyAuc2hvdy1tb3JlOmhvdmVye2N1cnNvcjpwb2ludGVyO2NvbG9yOiNmZmZ9LmFydGljbGUtLWNvbnRlbnQgI3JlbGVhc2UtdG9jIC5zaG93LW1vcmU6aG92ZXI6OmJlZm9yZXtiYWNrZ3JvdW5kOiNmZmZ9LmFydGljbGUtLWNvbnRlbnQgcHJlOjotd2Via2l0LXNjcm9sbGJhcntiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoNyw3LDE0LDApO3dpZHRoOjEycHg7aGVpZ2h0OjEycHh9LmFydGljbGUtLWNvbnRlbnQgcHJlOjotd2Via2l0LXNjcm9sbGJhci10cmFja3tiYWNrZ3JvdW5kLWNvbG9yOiMwNzA3MEU7Ym9yZGVyLXJhZGl1czowIDAgMnB4IDJweH0uYXJ0aWNsZS0tY29udGVudCBwcmU6Oi13ZWJraXQtc2Nyb2xsYmFyLXRodW1ie2JhY2tncm91bmQtY29sb3I6IzI5MjkzMztib3JkZXI6M3B4IHNvbGlkICMwNzA3MEU7Ym9yZGVyLXJhZGl1czo2cHh9LmFydGljbGUtLWNvbnRlbnQgdGFibGU6Oi13ZWJraXQtc2Nyb2xsYmFye2JhY2tncm91bmQtY29sb3I6cmdiYSgzOCwzOSw1NiwwKTt3aWR0aDoxMnB4O2hlaWdodDoxMnB4fS5hcnRpY2xlLS1jb250ZW50IHRhYmxlOjotd2Via2l0LXNjcm9sbGJhci10cmFja3tiYWNrZ3JvdW5kLWNvbG9yOiMyNjI3Mzg7Ym9yZGVyLXJhZGl1czowIDAgMnB4IDJweH0uYXJ0aWNsZS0tY29udGVudCB0YWJsZTo6LXdlYmtpdC1zY3JvbGxiYXItdGh1bWJ7YmFja2dyb3VuZC1jb2xvcjojMEYwRTE1O2JvcmRlcjozcHggc29saWQgIzI2MjczODtib3JkZXItcmFkaXVzOjZweH0uYXJ0aWNsZS0tY29udGVudCBzdmdbaWRePSdnZW8tczItY2VsbHMtJ117bWF4LXdpZHRoOjI1MHB4fS5hcnRpY2xlLS1jb250ZW50IHN2Z1tpZF49J2dlby1zMi1jZWxscy0nXSAuZ2VvLWNlbGx7ZmlsbDpyZ2JhKDQyLDE2MywyNTUsMC4yNSk7c3Ryb2tlOiMyQUEzRkY7c3Ryb2tlLXdpZHRoOjM7c3Ryb2tlLWxpbmVqb2luOnJvdW5kO3N0cm9rZS1taXRlcmxpbWl0OjEwfS5hcnRpY2xlLS1jb250ZW50IHN2Z1tpZF49J2dlby1zMi1jZWxscy0nXSAuZ2VvLXJlZ2lvbntmaWxsOnJnYmEoMjA2LDg4LDIzNSwwLjM1KTtzdHJva2U6I0NFNThFQjtzdHJva2Utd2lkdGg6MztzdHJva2UtbGluZWpvaW46cm91bmQ7c3Ryb2tlLW1pdGVybGltaXQ6MTB9LmFydGljbGUtLWNvbnRlbnQgc3ZnW2lkXj0nZ2VvLXMyLWNlbGxzLSddIC5nZW8tcG9pbnR7ZmlsbDojRDZGNjIyfS5hcnRpY2xlLS1jb250ZW50IHN2ZyN0aW1lZC1tb3ZpbmctYXZlcmFnZXttYXJnaW46MXJlbSAwIDNyZW07bWF4LXdpZHRoOjQyNXB4fS5hcnRpY2xlLS1jb250ZW50IHN2ZyN0aW1lZC1tb3ZpbmctYXZlcmFnZSAuc3Qwe3N0cm9rZTojRDREN0REfS5hcnRpY2xlLS1jb250ZW50IHN2ZyN0aW1lZC1tb3ZpbmctYXZlcmFnZSAuc3Qxe2ZpbGw6I0Q0RDdERH0uYXJ0aWNsZS0tY29udGVudCBzdmcjdGltZWQtbW92aW5nLWF2ZXJhZ2UgLnN0Mntmb250LWZhbWlseTpcIlByb3hpbWEgTm92YVwiLHNhbnMtc2VyaWY7Zm9udC13ZWlnaHQ6NTAwfS5hcnRpY2xlLS1jb250ZW50IHN2ZyNqb2luLWRpYWdyYW17ZGlzcGxheTpibG9jazttYXgtd2lkdGg6MjUwcHg7bWFyZ2luOjFyZW0gMCAycmVtfS5hcnRpY2xlLS1jb250ZW50IHN2ZyNqb2luLWRpYWdyYW0uY2VudGVye21hcmdpbjowIGF1dG8gMnJlbSBhdXRvfS5hcnRpY2xlLS1jb250ZW50IHN2ZyNqb2luLWRpYWdyYW0uc21hbGx7bWF4LXdpZHRoOjEyNXB4fS5hcnRpY2xlLS1jb250ZW50IHN2ZyNqb2luLWRpYWdyYW0uc21hbGwgcGF0aHtzdHJva2Utd2lkdGg6M30uYXJ0aWNsZS0tY29udGVudCBzdmcjam9pbi1kaWFncmFtIHBhdGh7c3Ryb2tlOiNENEQ3REQ7c3Ryb2tlLXdpZHRoOjI7c3Ryb2tlLW1pdGVybGltaXQ6MTA7ZmlsbDpub25lfS5hcnRpY2xlLS1jb250ZW50IHN2ZyNqb2luLWRpYWdyYW0uaW5uZXIgcGF0aCNjZW50ZXJ7ZmlsbDpyZ2JhKDIxMiwyMTUsMjIxLDAuMzUpfS5hcnRpY2xlLS1jb250ZW50IHN2ZyNqb2luLWRpYWdyYW0ubGVmdCBwYXRoI2xlZnQsLmFydGljbGUtLWNvbnRlbnQgc3ZnI2pvaW4tZGlhZ3JhbS5sZWZ0IHBhdGgjY2VudGVye2ZpbGw6cmdiYSgyMTIsMjE1LDIyMSwwLjM1KX0uYXJ0aWNsZS0tY29udGVudCBzdmcjam9pbi1kaWFncmFtLnJpZ2h0IHBhdGgjY2VudGVyLC5hcnRpY2xlLS1jb250ZW50IHN2ZyNqb2luLWRpYWdyYW0ucmlnaHQgcGF0aCNyaWdodHtmaWxsOnJnYmEoMjEyLDIxNSwyMjEsMC4zNSl9LmFydGljbGUtLWNvbnRlbnQgc3ZnI2pvaW4tZGlhZ3JhbS5mdWxsIHBhdGgjbGVmdCwuYXJ0aWNsZS0tY29udGVudCBzdmcjam9pbi1kaWFncmFtLmZ1bGwgcGF0aCNjZW50ZXIsLmFydGljbGUtLWNvbnRlbnQgc3ZnI2pvaW4tZGlhZ3JhbS5mdWxsIHBhdGgjcmlnaHR7ZmlsbDpyZ2JhKDIxMiwyMTUsMjIxLDAuMzUpfS5hcnRpY2xlLS1jb250ZW50IHN2ZyNpbmZsdXhkYi12My1zdG9yYWdlLWFyY2hpdGVjdHVyZXttYXJnaW46MnJlbSAwIDNyZW07bWF4LXdpZHRoOjc1MHB4fS5hcnRpY2xlLS1jb250ZW50IHN2ZyNpbmZsdXhkYi12My1zdG9yYWdlLWFyY2hpdGVjdHVyZSAuc2hhcGV7ZmlsbDpub25lO3N0cm9rZTojRDREN0REO3N0cm9rZS13aWR0aDoxLjU7c3Ryb2tlLW1pdGVybGltaXQ6MTB9LmFydGljbGUtLWNvbnRlbnQgc3ZnI2luZmx1eGRiLXYzLXN0b3JhZ2UtYXJjaGl0ZWN0dXJlIC5zaGFwZS5vcDcwe29wYWNpdHk6MC43fS5hcnRpY2xlLS1jb250ZW50IHN2ZyNpbmZsdXhkYi12My1zdG9yYWdlLWFyY2hpdGVjdHVyZSAuc2hhcGUub3A1MHtvcGFjaXR5OjAuNX0uYXJ0aWNsZS0tY29udGVudCBzdmcjaW5mbHV4ZGItdjMtc3RvcmFnZS1hcmNoaXRlY3R1cmUgLnNoYXBlLm9wMjV7b3BhY2l0eTowLjI1fS5hcnRpY2xlLS1jb250ZW50IHN2ZyNpbmZsdXhkYi12My1zdG9yYWdlLWFyY2hpdGVjdHVyZSAuc2hhcGUuZGFzaGVke3N0cm9rZS13aWR0aDoxO3N0cm9rZS1kYXNoYXJyYXk6NCwzfS5hcnRpY2xlLS1jb250ZW50IHN2ZyNpbmZsdXhkYi12My1zdG9yYWdlLWFyY2hpdGVjdHVyZSAudGl0bGV7ZmlsbDojOTM5NEZGO2ZvbnQtd2VpZ2h0OjUwMDtmb250LXNpemU6MjBweH0uYXJ0aWNsZS0tY29udGVudCBzdmcjaW5mbHV4ZGItdjMtc3RvcmFnZS1hcmNoaXRlY3R1cmUgLnRleHR7ZmlsbDojRDREN0REO2ZvbnQtc2l6ZToxOHB4fS5hcnRpY2xlLS1jb250ZW50IHN2ZyNpbmZsdXhkYi12My1zdG9yYWdlLWFyY2hpdGVjdHVyZSAudGV4dC5zbWFsbHtmb250LXNpemU6MTZweH0uYXJ0aWNsZS0tY29udGVudCBzdmcjaW5mbHV4ZGItdjMtc3RvcmFnZS1hcmNoaXRlY3R1cmUgLnRleHQuYm9sZHtmb250LXdlaWdodDo1MDA7Y29sb3I6I0ZBRkFGQ30uYXJ0aWNsZS0tY29udGVudCBzdmcjaW5mbHV4ZGItdjMtc3RvcmFnZS1hcmNoaXRlY3R1cmUgLnRleHQuaXRhbGlje2ZvbnQtc3R5bGU6aXRhbGljfS5hcnRpY2xlLS1jb250ZW50IHN2ZyNpbmZsdXhkYi12My1zdG9yYWdlLWFyY2hpdGVjdHVyZSAuZGlhZ3JhbS1saW5le2ZpbGw6bm9uZTtzdHJva2U6I0Q2RjYyMjtzdHJva2Utd2lkdGg6MS41O3N0cm9rZS1taXRlcmxpbWl0OjEwfS5hcnRpY2xlLS1jb250ZW50IHN2ZyNpbmZsdXhkYi12My1zdG9yYWdlLWFyY2hpdGVjdHVyZSAuZGlhZ3JhbS1saW5lLmRhc2hlZHtzdHJva2UtZGFzaGFycmF5OjIsNH0uYXJ0aWNsZS0tY29udGVudCBzdmcjaW5mbHV4ZGItdjMtc3RvcmFnZS1hcmNoaXRlY3R1cmUgLmFycm93e2ZpbGw6I0Q2RjYyMn1AbWVkaWEgKG1heC13aWR0aDogNjAwcHgpey5hcnRpY2xlLS1jb250ZW50IHN2ZyNqb2luLWRpYWdyYW17bWFyZ2luOjFyZW0gYXV0byAycmVtfX0uYXJ0aWNsZS0tY29udGVudCBzcGFuLmtleS1nZW8tY2VsbHtkaXNwbGF5OmlubGluZS1ibG9jazt2ZXJ0aWNhbC1hbGlnbjptaWRkbGU7bWFyZ2luOjAgLjVyZW0gLjI1cmVtIDA7d2lkdGg6MS4xZW07aGVpZ2h0OjEuMWVtO2JvcmRlcjoycHggc29saWQgIzJBQTNGRjtiYWNrZ3JvdW5kOnJnYmEoNDIsMTYzLDI1NSwwLjI1KTtib3JkZXItcmFkaXVzOjJweH0uYXJ0aWNsZS0tY29udGVudCBzcGFuLmtleS1nZW8tcmVnaW9ue2Rpc3BsYXk6aW5saW5lLWJsb2NrO3ZlcnRpY2FsLWFsaWduOm1pZGRsZTttYXJnaW46MCAuNXJlbSAuMjVyZW0gMDt3aWR0aDoxLjFlbTtoZWlnaHQ6MS4xZW07Ym9yZGVyOjJweCBzb2xpZCAjQ0U1OEVCO2JhY2tncm91bmQ6cmdiYSgyMDYsODgsMjM1LDAuMzUpO2JvcmRlci1yYWRpdXM6MnB4fS5hcnRpY2xlLS1jb250ZW50IHNwYW4ua2V5LWdlby1wb2ludHtkaXNwbGF5OmlubGluZS1ibG9jazttYXJnaW46MCAuN3JlbSAwIC4yNXJlbTt3aWR0aDouNjVyZW07aGVpZ2h0Oi42NXJlbTtib3JkZXItcmFkaXVzOjUwJTtiYWNrZ3JvdW5kOiNENkY2MjJ9LmFydGljbGUtLWNvbnRlbnQgLnRhYnMtd3JhcHBlcnttYXJnaW46Mi41cmVtIDAgLjVyZW19LmFydGljbGUtLWNvbnRlbnQgLmNvZGUtdGFicy13cmFwcGVye21hcmdpbjoxLjVyZW0gMCAuNXJlbX0uYXJ0aWNsZS0tY29udGVudCAudGFicyBwe2Rpc3BsYXk6ZmxleDtmbGV4LXdyYXA6d3JhcH0uYXJ0aWNsZS0tY29udGVudCAudGFicyBhe2ZsZXgtZ3JvdzoxO21hcmdpbjoycHg7cG9zaXRpb246cmVsYXRpdmU7Zm9udC1zaXplOjFyZW07Zm9udC13ZWlnaHQ6NTAwO3BhZGRpbmc6LjY1cmVtIDEuMjVyZW07ZGlzcGxheTppbmxpbmUtYmxvY2s7d2hpdGUtc3BhY2U6bm93cmFwO3RleHQtYWxpZ246Y2VudGVyO2NvbG9yOiNBNEE4QjYgIWltcG9ydGFudDtib3JkZXItcmFkaXVzOjJweDtiYWNrZ3JvdW5kLWNvbG9yOiMwNzA3MEU7dHJhbnNpdGlvbjpiYWNrZ3JvdW5kLWNvbG9yIC4ycywgY29sb3IgLjJzO3otaW5kZXg6MX0uYXJ0aWNsZS0tY29udGVudCAudGFicyBhOmFmdGVye2NvbnRlbnQ6XCJcIjtwb3NpdGlvbjphYnNvbHV0ZTtkaXNwbGF5OmJsb2NrO3RvcDowO3JpZ2h0OjA7d2lkdGg6MTAwJTtoZWlnaHQ6MTAwJTtib3JkZXItcmFkaXVzOjJweDtiYWNrZ3JvdW5kOmxpbmVhci1ncmFkaWVudCg0NWRlZywgIzA2NkZDNSwjMDBBM0ZGKTtvcGFjaXR5OjA7dHJhbnNpdGlvbjpvcGFjaXR5IC4yczt6LWluZGV4Oi0xfS5hcnRpY2xlLS1jb250ZW50IC50YWJzIGE6aG92ZXJ7Y29sb3I6I2ZmZiAhaW1wb3J0YW50fS5hcnRpY2xlLS1jb250ZW50IC50YWJzIGE6aG92ZXI6YWZ0ZXJ7b3BhY2l0eToxfS5hcnRpY2xlLS1jb250ZW50IC50YWJzIGEuaXMtYWN0aXZle2NvbG9yOiNmZmYgIWltcG9ydGFudH0uYXJ0aWNsZS0tY29udGVudCAudGFicyBhLmlzLWFjdGl2ZTphZnRlcntvcGFjaXR5OjE7YmFja2dyb3VuZDpsaW5lYXItZ3JhZGllbnQoNDVkZWcsICMwNjZGQzUsIzAwQTNGRil9LmFydGljbGUtLWNvbnRlbnQgLnRhYnMuc21hbGwgcHtqdXN0aWZ5LWNvbnRlbnQ6ZmxleC1zdGFydH0uYXJ0aWNsZS0tY29udGVudCAudGFicy5zbWFsbCBhe2ZsZXgtZ3Jvdzp1bnNldDtwYWRkaW5nOi4zNXJlbSAxcmVtfS5hcnRpY2xlLS1jb250ZW50IC50YWJzLnNtYWxsIC50YWItdmlldy1vdXRwdXR7cGFkZGluZzouNXJlbSAuNXJlbSAwO2ZvbnQtc2l6ZTouOXJlbTtvcGFjaXR5Oi42NTtmb250LXN0eWxlOml0YWxpYzt0cmFuc2l0aW9uOm9wYWNpdHkgLjJzfS5hcnRpY2xlLS1jb250ZW50IC50YWJzLnNtYWxsIC50YWItdmlldy1vdXRwdXQ6YmVmb3Jle2NvbnRlbnQ6XCJcXGU5N2FcIjttYXJnaW4tcmlnaHQ6MC4yNWVtO2ZvbnQtZmFtaWx5OidpY29tb29uLXYzJztmb250LXN0eWxlOm5vcm1hbH0uYXJ0aWNsZS0tY29udGVudCAudGFicy5zbWFsbCBhLmlzLWFjdGl2ZSsudGFiLXZpZXctb3V0cHV0e29wYWNpdHk6MH0uYXJ0aWNsZS0tY29udGVudCAudGFicy5tZWRpdW0gcHtqdXN0aWZ5LWNvbnRlbnQ6ZmxleC1zdGFydH0uYXJ0aWNsZS0tY29udGVudCAudGFicy5tZWRpdW0gYXtmbGV4LWdyb3c6dW5zZXR9LmFydGljbGUtLWNvbnRlbnQgLnRhYnMuZXZlbi13cmFwIGF7ZmxleC1iYXNpczoyNSV9LmFydGljbGUtLWNvbnRlbnQgLmNvZGUtdGFicyBwe21hcmdpbjowO3RleHQtYWxpZ246cmlnaHQ7ZGlzcGxheTpibG9ja30uYXJ0aWNsZS0tY29udGVudCAuY29kZS10YWJzIGF7cGFkZGluZzouMXJlbSAuNzVyZW07bWFyZ2luOjA7Ym9yZGVyLXJhZGl1czoycHggMnB4IDAgMDtkaXNwbGF5OmlubGluZS1ibG9jaztmb250LXNpemU6MXJlbTtiYWNrZ3JvdW5kOiMxNDE0MUY7Y29sb3I6cmdiYSgyNTUsMjU1LDI1NSwwLjUpfS5hcnRpY2xlLS1jb250ZW50IC5jb2RlLXRhYnMgYTpob3Zlcntjb2xvcjojZmZmfS5hcnRpY2xlLS1jb250ZW50IC5jb2RlLXRhYnMgYS5pcy1hY3RpdmV7YmFja2dyb3VuZC1jb2xvcjojMDcwNzBFO2NvbG9yOiNmZmZ9LmFydGljbGUtLWNvbnRlbnQgLmNvZGUtdGFiLWNvbnRlbnR7cGFkZGluZzowfS5hcnRpY2xlLS1jb250ZW50IC5jb2RlLXRhYi1jb250ZW50IHByZXttYXJnaW46MCAwIDNyZW07Ym9yZGVyLXJhZGl1czoycHggMCAycHggMnB4fS5hcnRpY2xlLS1jb250ZW50IC50YWItY29udGVudCwuYXJ0aWNsZS0tY29udGVudCAuY29kZS10YWJzLWNvbnRlbnR7bWFyZ2luOi43NXJlbSAwIDNyZW07d2lkdGg6MTAwJX0uYXJ0aWNsZS0tY29udGVudCAudGFiLWNvbnRlbnQ+Om5vdCh0YWJsZSwuZnMtZGlhZ3JhbSxpbWcpLC5hcnRpY2xlLS1jb250ZW50IC5jb2RlLXRhYnMtY29udGVudD46bm90KHRhYmxlLC5mcy1kaWFncmFtLGltZyl7d2lkdGg6MTAwJTttYXJnaW4tbGVmdDowfS5hcnRpY2xlLS1jb250ZW50IC50YWItY29udGVudCB0YWJsZTpsYXN0LWNoaWxkLC5hcnRpY2xlLS1jb250ZW50IC5jb2RlLXRhYnMtY29udGVudCB0YWJsZTpsYXN0LWNoaWxke21hcmdpbi1ib3R0b206MH0uYXJ0aWNsZS0tY29udGVudCAudGFiLWNvbnRlbnQ6bm90KDpmaXJzdC1vZi10eXBlKXtkaXNwbGF5Om5vbmV9LmFydGljbGUtLWNvbnRlbnQgLmNvZGUtdGFiLWNvbnRlbnQ6bm90KDpmaXJzdC1vZi10eXBlKXtkaXNwbGF5Om5vbmV9LmFydGljbGUtLWNvbnRlbnQgdGFibGV7ZGlzcGxheTppbmxpbmUtYmxvY2s7bWFyZ2luOjFyZW0gMXJlbSAzcmVtIDA7Ym9yZGVyLXNwYWNpbmc6MDtjb2xvcjojRDREN0REO21heC13aWR0aDoxMDAlO292ZXJmbG93LXg6YXV0bztvdmVyZmxvdy15OmhpZGRlbjtib3gtc2hhZG93OjFweCAzcHggMTBweCAjMDcwNzBFO2JvcmRlci1yYWRpdXM6MnB4fS5hcnRpY2xlLS1jb250ZW50IHRhYmxlIHRoLC5hcnRpY2xlLS1jb250ZW50IHRhYmxlIHRke3BhZGRpbmc6Ljg1cmVtIDEuMjVyZW19LmFydGljbGUtLWNvbnRlbnQgdGFibGUgdGhlYWR7YmFja2dyb3VuZDpsaW5lYXItZ3JhZGllbnQoOTBkZWcsICM4RTFGQzMsIzA2NkZDNSk7YmFja2dyb3VuZC1hdHRhY2htZW50OmZpeGVkfS5hcnRpY2xlLS1jb250ZW50IHRhYmxlIHRoe2NvbG9yOiNmZmZ9LmFydGljbGUtLWNvbnRlbnQgdGFibGUgdGggc3Ryb25ne2NvbG9yOiNmZmZ9LmFydGljbGUtLWNvbnRlbnQgdGFibGUgdGg6Zmlyc3QtY2hpbGR7Ym9yZGVyLXJhZGl1czoycHggMCAwIDB9LmFydGljbGUtLWNvbnRlbnQgdGFibGUgdGg6bGFzdC1jaGlsZHtib3JkZXItcmFkaXVzOjAgMnB4IDAgMH0uYXJ0aWNsZS0tY29udGVudCB0YWJsZSB0ZHtmb250LXNpemU6MS4wNXJlbTtsaW5lLWhlaWdodDoxLjVlbX0uYXJ0aWNsZS0tY29udGVudCB0YWJsZSB0ZCBjb2Rle2ZvbnQtc2l6ZTouOTVyZW19LmFydGljbGUtLWNvbnRlbnQgdGFibGUgdHI6bnRoLWNoaWxkKGV2ZW4pe2JhY2tncm91bmQ6IzI2MjczOH0uYXJ0aWNsZS0tY29udGVudCB0YWJsZSB0cjpsYXN0LWNoaWxkIHRkOmZpcnN0LWNoaWxke2JvcmRlci1yYWRpdXM6MCAwIDAgMnB4fS5hcnRpY2xlLS1jb250ZW50IHRhYmxlIHRyOmxhc3QtY2hpbGQgdGQ6bGFzdC1jaGlsZHtib3JkZXItcmFkaXVzOjAgMCAycHggMH0uYXJ0aWNsZS0tY29udGVudCB0YWJsZSBpbWd7bWFyZ2luLWJvdHRvbTowfS5hcnRpY2xlLS1jb250ZW50IHRhYmxlLmNsb3VkLXVybHMgYXt3aGl0ZS1zcGFjZTpub3dyYXB9LmFydGljbGUtLWNvbnRlbnQgdGFibGUuY2xvdWQtdXJscyBwe21hcmdpbjowIDAgLjVyZW0gMH0uYXJ0aWNsZS0tY29udGVudCB0YWJsZS5jbG91ZC11cmxzIHA6bGFzdC1jaGlsZHttYXJnaW4tYm90dG9tOjB9LmFydGljbGUtLWNvbnRlbnQgdGFibGUuY2xvdWQtdXJscyAuY2x1c3Rlci1uYW1le2ZvbnQtd2VpZ2h0OjUwMDtjb2xvcjojRkFGQUZDfS5hcnRpY2xlLS1jb250ZW50IHRhYmxlK3RhYmxle21hcmdpbi10b3A6LTEuNXJlbX0uYXJ0aWNsZS0tY29udGVudCAjZmxhZ3M6bm90KC5uby1zaG9ydGhhbmQpK3RhYmxlIHRkOm50aC1jaGlsZCgyKSBjb2RlLC5hcnRpY2xlLS1jb250ZW50ICNvcHRpb25zOm5vdCgubm8tc2hvcnRoYW5kKSt0YWJsZSB0ZDpudGgtY2hpbGQoMikgY29kZSwuYXJ0aWNsZS0tY29udGVudCAjZ2xvYmFsLWZsYWdzK3RhYmxlIHRkOm50aC1jaGlsZCgyKSBjb2RlLC5hcnRpY2xlLS1jb250ZW50ICNnbG9iYWwtb3B0aW9ucyt0YWJsZSB0ZDpudGgtY2hpbGQoMikgY29kZSwuYXJ0aWNsZS0tY29udGVudCAuc2hvcnRoYW5kLWZsYWdzK3RhYmxlIHRkOm50aC1jaGlsZCgyKSBjb2Rle21hcmdpbi1sZWZ0Oi0ycmVtfS5hcnRpY2xlLS1jb250ZW50IHAudGFibGUtZ3JvdXAta2V5e21hcmdpbjoxcmVtIDAgLS43NXJlbTtmb250LXdlaWdodDo1MDA7Zm9udC1zaXplOi45NXJlbX0uYXJ0aWNsZS0tY29udGVudCB0YWJsZSsudGFibGUtZ3JvdXAta2V5e21hcmdpbi10b3A6LTJyZW19LmFydGljbGUtLWNvbnRlbnQgdGFibGUuZmx1eC1pbmZsdXhkYi12ZXJzaW9ucyB0Ym9keXtkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246Y29sdW1uLXJldmVyc2V9LmFydGljbGUtLWNvbnRlbnQgdGFibGUuZmx1eC1pbmZsdXhkYi12ZXJzaW9ucyB0Ym9keSB0cntkaXNwbGF5OmZsZXg7anVzdGlmeS1jb250ZW50OnNwYWNlLWJldHdlZW59LmFydGljbGUtLWNvbnRlbnQgLnRhZ3N7Ym9yZGVyLXRvcDoxcHggc29saWQgIzM4Mzg0NjtwYWRkaW5nLXRvcDoxLjc1cmVtO21hcmdpbjoycmVtIDAgMXJlbX0uYXJ0aWNsZS0tY29udGVudCAudGFncyAudGFne2JhY2tncm91bmQ6IzA3MDcwRTttYXJnaW46LjEycmVtIDA7cGFkZGluZzouNHJlbSAuNjVyZW07Zm9udC1zdHlsZTppdGFsaWM7Zm9udC13ZWlnaHQ6NTAwO2NvbG9yOnJnYmEoMjEyLDIxNSwyMjEsMC43NSkgIWltcG9ydGFudDtmb250LXNpemU6LjlyZW07Ym9yZGVyLXJhZGl1czoxcmVtfS5hcnRpY2xlLS1jb250ZW50IC50YWdzIC50YWc6YWZ0ZXJ7Ym9yZGVyLXJhZGl1czoxcmVtO2JhY2tncm91bmQ6bGluZWFyLWdyYWRpZW50KDQ1ZGVnLCAjQkYyRkU1LCM5Mzk0RkYpfS5hcnRpY2xlLS1jb250ZW50IC50YWdzIC50YWc6aG92ZXJ7Y29sb3I6I2ZmZiAhaW1wb3J0YW50fS5hcnRpY2xlLS1jb250ZW50IC5yZWxhdGVkKy50YWdzLC5hcnRpY2xlLS1jb250ZW50IC5leHBhbmQtd3JhcHBlcisudGFnc3tib3JkZXI6bm9uZTtwYWRkaW5nLXRvcDowO21hcmdpbjoxLjVyZW0gMCAxcmVtfS5hcnRpY2xlLS1jb250ZW50IC5wbHVnaW4tY2FyZHtwb3NpdGlvbjpyZWxhdGl2ZTtwYWRkaW5nOjFyZW0gMS41cmVtO21hcmdpbi1ib3R0b206LjVyZW07anVzdGlmeS1jb250ZW50OmNlbnRlcjthbGlnbi1pdGVtczpjZW50ZXI7YmFja2dyb3VuZDpyZ2JhKDcsNywxNCwwLjQpO2JvcmRlci1yYWRpdXM6MnB4fS5hcnRpY2xlLS1jb250ZW50IC5wbHVnaW4tY2FyZCBoM3twYWRkaW5nOjA7bWFyZ2luLXRvcDouMjVyZW19LmFydGljbGUtLWNvbnRlbnQgLnBsdWdpbi1jYXJkLm5ldyBoMzphZnRlcntjb250ZW50OlwiTmV3XCI7bWFyZ2luLWxlZnQ6LjNyZW07cGFkZGluZzouMjVyZW0gLjVyZW07Zm9udC1zdHlsZTppdGFsaWM7Y29sb3I6I0Q2RjYyMjtmb250LXNpemU6MS4ycmVtO29wYWNpdHk6MX0uYXJ0aWNsZS0tY29udGVudCAucGx1Z2luLWNhcmQgcC5tZXRhe21hcmdpbjouNzVyZW0gMDtmb250LXdlaWdodDo1MDA7bGluZS1oZWlnaHQ6MS43NXJlbX0uYXJ0aWNsZS0tY29udGVudCAucGx1Z2luLWNhcmQgcC5tZXRhIC5kZXByZWNhdGVke21hcmdpbi1sZWZ0Oi41cmVtO2ZvbnQtc3R5bGU6aXRhbGljO2NvbG9yOiNlOTB9LmFydGljbGUtLWNvbnRlbnQgLnBsdWdpbi1jYXJkIC5pbmZvPnA6bGFzdC1jaGlsZHttYXJnaW4tYm90dG9tOi41cmVtfS5hcnRpY2xlLS1jb250ZW50IC5wbHVnaW4tY2FyZCAuaW5mbz51bDpsYXN0LWNoaWxke21hcmdpbi1ib3R0b206LjVyZW19LmFydGljbGUtLWNvbnRlbnQgLnBsdWdpbi1jYXJkIC5pbmZvPm9sOmxhc3QtY2hpbGR7bWFyZ2luLWJvdHRvbTouNXJlbX0uYXJ0aWNsZS0tY29udGVudCAucGx1Z2luLWNhcmQgLnBsdWdpbi1saW5re3Bvc2l0aW9uOmFic29sdXRlO3RvcDowO3JpZ2h0OjAuNXJlbTtvcGFjaXR5OjAuMjU7dHJhbnNpdGlvbjpvcGFjaXR5IC4ycywgYmFja2dyb3VuZCAuMnMsIGNvbG9yIC4ycztiYWNrZ3JvdW5kOmxpbmVhci1ncmFkaWVudCg0NWRlZywgIzA2NkZDNSwjMDBBM0ZGKX0uYXJ0aWNsZS0tY29udGVudCAucGx1Z2luLWNhcmQ6aG92ZXIgLnBsdWdpbi1saW5re29wYWNpdHk6MTtiYWNrZ3JvdW5kOmxpbmVhci1ncmFkaWVudCg0NWRlZywgIzA2NkZDNSwjMDBBM0ZGKX0uYXJ0aWNsZS0tY29udGVudCAucGx1Z2luLWNhcmQgYmxvY2txdW90ZXtib3JkZXItY29sb3I6IzAwQTNGRjtiYWNrZ3JvdW5kOnJnYmEoMCwxNjMsMjU1LDAuMTIpfS5hcnRpY2xlLS1jb250ZW50IC5wbHVnaW4tY2FyZCBibG9ja3F1b3RlIGgzLC5hcnRpY2xlLS1jb250ZW50IC5wbHVnaW4tY2FyZCBibG9ja3F1b3RlIGg0LC5hcnRpY2xlLS1jb250ZW50IC5wbHVnaW4tY2FyZCBibG9ja3F1b3RlIGg1LC5hcnRpY2xlLS1jb250ZW50IC5wbHVnaW4tY2FyZCBibG9ja3F1b3RlIGg2e2NvbG9yOiNmZmZ9LmFydGljbGUtLWNvbnRlbnQgLnBsdWdpbi1jYXJkIGJsb2NrcXVvdGUgcCwuYXJ0aWNsZS0tY29udGVudCAucGx1Z2luLWNhcmQgYmxvY2txdW90ZSBsaXtjb2xvcjojQkVGMEZGO2ZvbnQtc2l6ZToxcmVtO2ZvbnQtc3R5bGU6bm9ybWFsfS5hcnRpY2xlLS1jb250ZW50IC5wbHVnaW4tY2FyZCBibG9ja3F1b3RlIHN0cm9uZ3tjb2xvcjppbmhlcml0fS5hcnRpY2xlLS1jb250ZW50IC5wbHVnaW4tY2FyZCBibG9ja3F1b3RlIGF7Y29sb3I6I2ZmZn0uYXJ0aWNsZS0tY29udGVudCAucGx1Z2luLWNhcmQgYmxvY2txdW90ZSBhIGNvZGU6YWZ0ZXJ7Ym9yZGVyLWNvbG9yOnRyYW5zcGFyZW50IHJnYmEoMCwyMDEsMjU1LDAuMzUpIHRyYW5zcGFyZW50IHRyYW5zcGFyZW50fS5hcnRpY2xlLS1jb250ZW50IC5wbHVnaW4tY2FyZCBibG9ja3F1b3RlIGE6aG92ZXJ7Y29sb3I6IzZCREZGRn0uYXJ0aWNsZS0tY29udGVudCAucGx1Z2luLWNhcmQgYmxvY2txdW90ZSBhOmhvdmVyIGNvZGU6YWZ0ZXJ7Ym9yZGVyLWNvbG9yOnRyYW5zcGFyZW50ICM2QkRGRkYgdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnR9LmFydGljbGUtLWNvbnRlbnQgLnBsdWdpbi1jYXJkIGJsb2NrcXVvdGUgb2wgbGk6YmVmb3Jle2NvbG9yOiNCRUYwRkZ9LmFydGljbGUtLWNvbnRlbnQgLnBsdWdpbi1jYXJkIGJsb2NrcXVvdGUgY29kZSwuYXJ0aWNsZS0tY29udGVudCAucGx1Z2luLWNhcmQgYmxvY2txdW90ZSBwcmV7Y29sb3I6IzAwQzlGRjtiYWNrZ3JvdW5kOiMwYTA3MWN9QG1lZGlhIChtYXgtd2lkdGg6IDYwMHB4KXsuYXJ0aWNsZS0tY29udGVudCAucGx1Z2luLWNhcmQgLnBsdWdpbi1saW5re29wYWNpdHk6MTtiYWNrZ3JvdW5kOmxpbmVhci1ncmFkaWVudCg0NWRlZywgIzA2NkZDNSwjMDBBM0ZGKTtwYWRkaW5nOi4yNXJlbSAuMzVyZW0gLjM1cmVtO2xpbmUtaGVpZ2h0OjB9LmFydGljbGUtLWNvbnRlbnQgLnBsdWdpbi1jYXJkIC5wbHVnaW4tbGluayAuaWNvbi1naXRodWJ7bWFyZ2luOjB9LmFydGljbGUtLWNvbnRlbnQgLnBsdWdpbi1jYXJkIC5wbHVnaW4tbGluayAuaGlkZXtkaXNwbGF5Om5vbmV9fS5hcnRpY2xlLS1jb250ZW50IC50aXRsZXttYXJnaW4tYm90dG9tOjIuNjVyZW19LmFydGljbGUtLWNvbnRlbnQgLnRpdGxlIC5tZXRhZGF0YXtwYWRkaW5nOjA7bWFyZ2luOjB9LmFydGljbGUtLWNvbnRlbnQgLnRpdGxlIC5tZXRhZGF0YSBsaXttYXJnaW4tYm90dG9tOjA7cGFkZGluZzouNDVlbSAuNzVlbTtjb2xvcjojZmZmO2JhY2tncm91bmQ6cmdiYSgyNTUsMjU1LDI1NSwwLjA3KTtmb250LXNpemU6Ljk1cmVtO2ZvbnQtd2VpZ2h0OjUwMDtsaW5lLWhlaWdodDoxLjFyZW07Ym9yZGVyLXJhZGl1czoxLjFlbTtkaXNwbGF5OmlubGluZS1ibG9ja30uYXJ0aWNsZS0tY29udGVudCAudGl0bGUgLm1ldGFkYXRhIGxpLnVwZGF0ZWQtaW4sLmFydGljbGUtLWNvbnRlbnQgLnRpdGxlIC5tZXRhZGF0YSBsaS5kYXRlLC5hcnRpY2xlLS1jb250ZW50IC50aXRsZSAubWV0YWRhdGEgbGkuZmx1eC1pbmZsdXhkYntwYWRkaW5nOjAgMCAwIC40ZW07YmFja2dyb3VuZDpub25lO2ZvbnQtd2VpZ2h0Om5vcm1hbDtmb250LXN0eWxlOml0YWxpYztjb2xvcjpyZ2JhKDI1NSwyNTUsMjU1LDAuNil9LmFydGljbGUtLWNvbnRlbnQgLnRpdGxlIC5tZXRhZGF0YSAudXBkYXRlZC1pbisuZGF0ZTo6YmVmb3Jle2NvbnRlbnQ6XCLigKJcIiAhaW1wb3J0YW50O2Rpc3BsYXk6aW5saW5lO21hcmdpbi1yaWdodDouNXJlbX0uYXJ0aWNsZS0tY29udGVudCAudGl0bGUgLm1ldGFkYXRhIC5mbHV4LWluZmx1eGRiIGF7Y3Vyc29yOnBvaW50ZXI7b3BhY2l0eTouOTt0cmFuc2l0aW9uOmNvbG9yIC4ycywgb3BhY2l0eSAuMnN9LmFydGljbGUtLWNvbnRlbnQgLnRpdGxlIC5tZXRhZGF0YSAuZmx1eC1pbmZsdXhkYiBhOmhvdmVye29wYWNpdHk6MX1AbWVkaWEgKG1heC13aWR0aDogNjAwcHgpey5hcnRpY2xlLS1jb250ZW50IC50aXRsZXttYXJnaW4tYm90dG9tOjJyZW19LmFydGljbGUtLWNvbnRlbnQgLnRpdGxlIGgxe21hcmdpbjouMzVlbSAwIC4yZW07Zm9udC1zaXplOjIuNHJlbX19LmFydGljbGUtLWNvbnRlbnQgLnRydW5jYXRle3Bvc2l0aW9uOnJlbGF0aXZlO21hcmdpbi1ib3R0b206My41cmVtfS5hcnRpY2xlLS1jb250ZW50IC50cnVuY2F0ZSAudHJ1bmNhdGUtY29udGVudHtvdmVyZmxvdzpoaWRkZW47bWF4LWhlaWdodDo5OTk5cHg7dHJhbnNpdGlvbjptYXgtaGVpZ2h0IC40c30uYXJ0aWNsZS0tY29udGVudCAudHJ1bmNhdGUgLnRydW5jYXRlLWNvbnRlbnQuY2xvc2Vke21pbi1oZWlnaHQ6MjUwcHg7bWF4LWhlaWdodDoyNXZofS5hcnRpY2xlLS1jb250ZW50IC50cnVuY2F0ZSAudHJ1bmNhdGUtYm90dG9te3Bvc2l0aW9uOmFic29sdXRlO2JvdHRvbTotMzBweDt3aWR0aDoxMDAlO3otaW5kZXg6MTAwO2hlaWdodDphdXRvfS5hcnRpY2xlLS1jb250ZW50IC50cnVuY2F0ZSBhLnRydW5jYXRlLXRvZ2dsZXtkaXNwbGF5OmJsb2NrO3dpZHRoOjEwMHB4O21hcmdpbjowIGF1dG87Y29sb3I6I0Q0RDdERDtiYWNrZ3JvdW5kOiMxNDE0MUY7cGFkZGluZzouNDVyZW07dGV4dC1hbGlnbjpjZW50ZXI7Zm9udC1zaXplOi43NXJlbTt0ZXh0LXRyYW5zZm9ybTp1cHBlcmNhc2U7Ym9yZGVyLXJhZGl1czoycHg7dHJhbnNpdGlvbjpjb2xvciAuMnN9LmFydGljbGUtLWNvbnRlbnQgLnRydW5jYXRlIGEudHJ1bmNhdGUtdG9nZ2xlOmJlZm9yZXtjb250ZW50OlwiU2hvdyBMZXNzXCJ9LmFydGljbGUtLWNvbnRlbnQgLnRydW5jYXRlIGEudHJ1bmNhdGUtdG9nZ2xlOmhvdmVye2NvbG9yOiMwMEEzRkZ9LmFydGljbGUtLWNvbnRlbnQgLnRydW5jYXRlLmNsb3NlZCAudHJ1bmNhdGUtYm90dG9te2JvdHRvbTowO2JhY2tncm91bmQtaW1hZ2U6bGluZWFyLWdyYWRpZW50KHRvIGJvdHRvbSwgcmdiYSgyMCwyMCwzMSwwKSwgIzE0MTQxZik7aGVpZ2h0OjEwMHB4fS5hcnRpY2xlLS1jb250ZW50IC50cnVuY2F0ZS5jbG9zZWQgYS50cnVuY2F0ZS10b2dnbGV7bWFyZ2luLXRvcDo3NXB4fS5hcnRpY2xlLS1jb250ZW50IC50cnVuY2F0ZS5jbG9zZWQgYS50cnVuY2F0ZS10b2dnbGU6YmVmb3Jle2NvbnRlbnQ6XCJTaG93IE1vcmVcIn0uYXJ0aWNsZS0tY29udGVudCAudmlkZW9zLXdyYXBwZXJ7ZGlzcGxheTpmbGV4O2ZsZXgtd3JhcDp3cmFwO21hcmdpbi10b3A6MS41cmVtfS5hcnRpY2xlLS1jb250ZW50IC52aWRlby1jYXJke21heC13aWR0aDoyNDBweDttYXJnaW46MCAxLjc1cmVtIC43NXJlbSAwfS5hcnRpY2xlLS1jb250ZW50IC52aWRlby1jYXJkIGF7ZGlzcGxheTpibG9jaztwb3NpdGlvbjpyZWxhdGl2ZX0uYXJ0aWNsZS0tY29udGVudCAudmlkZW8tY2FyZCBhOmFmdGVye2NvbnRlbnQ6XCJcXGU5MTRcIjtwb3NpdGlvbjphYnNvbHV0ZTtkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2p1c3RpZnktY29udGVudDpjZW50ZXI7Zm9udC1mYW1pbHk6XCJpY29tb29uXCI7dG9wOi42NXJlbTtyaWdodDouNjVyZW07aGVpZ2h0OjEuNXJlbTt3aWR0aDoxLjVyZW07Y29sb3I6I2ZmZjtwYWRkaW5nOi4zNXJlbTtib3JkZXItcmFkaXVzOjUwJTtiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMjU1LDI1NSwyNTUsMC4yNSk7b3BhY2l0eTowO3RyYW5zaXRpb246b3BhY2l0eSAuM3N9LmFydGljbGUtLWNvbnRlbnQgLnZpZGVvLWNhcmQgYTpob3ZlcjphZnRlcntvcGFjaXR5OjF9LmFydGljbGUtLWNvbnRlbnQgLnZpZGVvLWNhcmQgaW1ne21hcmdpbi1ib3R0b206MH0uYXJ0aWNsZS0tY29udGVudCAudmlkZW8tY2FyZCAudmlkZW8tdGl0bGV7bWFyZ2luOi4yNXJlbSAwIDA7Zm9udC13ZWlnaHQ6NTAwO2ZvbnQtc2l6ZTouOXJlbTtjb2xvcjojRkFGQUZDO2xpbmUtaGVpZ2h0OjEuMjVyZW19LmFydGljbGUtLWNvbnRlbnQgLnZpZGVvLWNhcmQgLnZpZGVvLWRhdGV7Zm9udC1zaXplOi44cmVtO2NvbG9yOnJnYmEoMjEyLDIxNSwyMjEsMC42KTtsaW5lLWhlaWdodDoxcmVtfS5hcnRpY2xlLS1jb250ZW50IC52aWRlby1jb250ZW50IC52aWRlby1kYXRle2NvbG9yOnJnYmEoMjEyLDIxNSwyMjEsMC42KTttYXJnaW4tdG9wOi0xLjc1cmVtO2ZvbnQtd2VpZ2h0OjUwMDtmb250LXNpemU6LjlyZW19LmFydGljbGUtLWNvbnRlbnQgLnZpZGVvLWNvbnRlbnQgLnZpZGVve21heC13aWR0aDpub25lO21hcmdpbjowIDAgMnJlbX0uYXJ0aWNsZS0tY29udGVudCAudmlkZW97d2lkdGg6MTAwJTttYXgtd2lkdGg6NjIwcHg7bWFyZ2luOjJyZW0gMH1AbWVkaWEgKG1heC13aWR0aDogNjAwcHgpey5hcnRpY2xlLS1jb250ZW50IC52aWRlby1jYXJke21heC13aWR0aDoxMDAlO21hcmdpbi1yaWdodDowfX0uYXJ0aWNsZS0tY29udGVudCAucmVxdWlyZWQsLmFydGljbGUtLWNvbnRlbnQgLnJlcXtjb2xvcjojRkY4NTY0O2ZvbnQtd2VpZ2h0OjUwMDtmb250LXN0eWxlOml0YWxpYzttYXJnaW46MCAuMTVyZW0gMCAuMXJlbX0uYXJ0aWNsZS0tY29udGVudCAucmVxdWlyZWQuYXN0ZXJpc2ssLmFydGljbGUtLWNvbnRlbnQgLnJlcS5hc3Rlcmlza3ttYXJnaW46MCAtLjFyZW0gMCAtLjVyZW19LmFydGljbGUtLWNvbnRlbnQgLnJlcXVpcmVkLmtleSwuYXJ0aWNsZS0tY29udGVudCAucmVxLmtleXtmb250LXNpemU6LjlyZW07Zm9udC13ZWlnaHQ6NTAwfS5hcnRpY2xlLS1jb250ZW50IC5yZXF1aXJlZC5ub3JtYWwsLmFydGljbGUtLWNvbnRlbnQgLnJlcS5ub3JtYWx7Zm9udC1zdHlsZTpub3JtYWx9LmFydGljbGUtLWNvbnRlbnQgLnJlcXVpcmVkLmJsdWUsLmFydGljbGUtLWNvbnRlbnQgLnJlcS5ibHVle2NvbG9yOiMyQUEzRkZ9LmFydGljbGUtLWNvbnRlbnQgLnJlcXVpcmVkLmdyZWVuLC5hcnRpY2xlLS1jb250ZW50IC5yZXEuZ3JlZW57Y29sb3I6IzAwOUY1Rn0uYXJ0aWNsZS0tY29udGVudCAucmVxdWlyZWQubWFnZW50YSwuYXJ0aWNsZS0tY29udGVudCAucmVxLm1hZ2VudGF7Y29sb3I6I0NFNThFQn0uYXJ0aWNsZS0tY29udGVudCAucmVxdWlyZWQucGluaywuYXJ0aWNsZS0tY29udGVudCAucmVxLnBpbmt7Y29sb3I6I2QzMDk3MX0uYXJ0aWNsZS0tY29udGVudCBoMisua2VlcC11cmwsLmFydGljbGUtLWNvbnRlbnQgaDMrLmtlZXAtdXJsLC5hcnRpY2xlLS1jb250ZW50IGg0Ky5rZWVwLXVybCwuYXJ0aWNsZS0tY29udGVudCBoNSsua2VlcC11cmwsLmFydGljbGUtLWNvbnRlbnQgaDYrLmtlZXAtdXJse21hcmdpbi10b3A6LTEuNXJlbTt6LWluZGV4Oi0xMDB9LmFydGljbGUtLWNvbnRlbnQgYS5xLWxpbmt7Zm9udC1zaXplOi44cmVtO3ZlcnRpY2FsLWFsaWduOnN1cGVyO2xpbmUtaGVpZ2h0OjA7Y29sb3I6I2ZmZjtvcGFjaXR5Oi41O3RyYW5zaXRpb246b3BhY2l0eSAuMnN9LmFydGljbGUtLWNvbnRlbnQgYS5xLWxpbms6aG92ZXJ7b3BhY2l0eToxfS5hcnRpY2xlLS1jb250ZW50IHAucmVhZC1tb3Jle3RleHQtYWxpZ246cmlnaHQ7Zm9udC1zdHlsZTppdGFsaWN9LmFydGljbGUtLWNvbnRlbnQgLmhpZ2hsaWdodCtwLnJlYWQtbW9yZSwuYXJ0aWNsZS0tY29udGVudCBwcmUrcC5yZWFkLW1vcmUsLmFydGljbGUtLWNvbnRlbnQgY29kZStwLnJlYWQtbW9yZSwuYXJ0aWNsZS0tY29udGVudCAuZmxleC13cmFwcGVyK3AucmVhZC1tb3Jle21hcmdpbjotLjc1cmVtIDAgLjVyZW19LmFydGljbGUtLWNvbnRlbnQgLm5vd3JhcHt3aGl0ZS1zcGFjZTpub3dyYXB9LmFydGljbGUtLWNvbnRlbnQgLmFsbC1jYXBze3RleHQtdHJhbnNmb3JtOnVwcGVyY2FzZTtmb250LXNpemU6MS4wNXJlbTtsZXR0ZXItc3BhY2luZzouMWVtO2ZvbnQtd2VpZ2h0OjUwMCAhaW1wb3J0YW50fS5hcnRpY2xlLS1jb250ZW50IHNwYW4ub3JhbmdlLC5hcnRpY2xlLS1jb250ZW50IHN0cm9uZy5vcmFuZ2UsLmFydGljbGUtLWNvbnRlbnQgZW0ub3Jhbmdle2NvbG9yOiNGRjg1NjR9LmFydGljbGUtLWNvbnRlbnQgc3Bhbi5ibHVlLC5hcnRpY2xlLS1jb250ZW50IHN0cm9uZy5ibHVlLC5hcnRpY2xlLS1jb250ZW50IGVtLmJsdWV7Y29sb3I6IzJBQTNGRn0uYXJ0aWNsZS0tY29udGVudCBzcGFuLmdyZWVuLC5hcnRpY2xlLS1jb250ZW50IHN0cm9uZy5ncmVlbiwuYXJ0aWNsZS0tY29udGVudCBlbS5ncmVlbntjb2xvcjojMDA5RjVGfS5hcnRpY2xlLS1jb250ZW50IHNwYW4ubWFnZW50YSwuYXJ0aWNsZS0tY29udGVudCBzdHJvbmcubWFnZW50YSwuYXJ0aWNsZS0tY29udGVudCBlbS5tYWdlbnRhe2NvbG9yOiNDRTU4RUJ9LmFydGljbGUtLWNvbnRlbnQgc3Bhbi5waW5rLC5hcnRpY2xlLS1jb250ZW50IHN0cm9uZy5waW5rLC5hcnRpY2xlLS1jb250ZW50IGVtLnBpbmt7Y29sb3I6I2QzMDk3MX0uYXJ0aWNsZS0tY29udGVudCAuZ2V0LXN0YXJ0ZWQtYnRuc3tkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246Y29sdW1uO2p1c3RpZnktY29udGVudDpzcGFjZS1hcm91bmQ7YWxpZ24taXRlbXM6ZmxleC1zdGFydDttYXJnaW4tYm90dG9tOjJyZW19LmFydGljbGUtLWNvbnRlbnQgLmdldC1zdGFydGVkLWJ0bnMgYS5idG57bWF4LXdpZHRoOjMwMHB4O3dpZHRoOjEwMCU7dGV4dC1hbGlnbjpjZW50ZXI7cGFkZGluZzoxcmVtfUBtZWRpYSAobWF4LXdpZHRoOiA2MDBweCl7LmFydGljbGV7cGFkZGluZzoxLjVyZW0gMS41cmVtIDNyZW19LmFydGljbGUgaDJ7Zm9udC1zaXplOjEuOXJlbX0uYXJ0aWNsZSBoM3tmb250LXNpemU6MS41NXJlbX0uYXJ0aWNsZSBoNHtmb250LXNpemU6MS4zcmVtfX0uYXJ0aWNsZS0tY29udGVudCAuaW5saW5le21hcmdpbjowIC4xNXJlbX0uYXJ0aWNsZS0tY29udGVudCAuaW5saW5lLm1pZGRsZTpiZWZvcmV7dmVydGljYWwtYWxpZ246bWlkZGxlfS5hcnRpY2xlLS1jb250ZW50IC5pbmxpbmUudG9wOmJlZm9yZXt2ZXJ0aWNhbC1hbGlnbjp0ZXh0LXRvcH0uYXJ0aWNsZS0tY29udGVudCAuaW5saW5lLmJvdHRvbTpiZWZvcmV7dmVydGljYWwtYWxpZ246Ym90dG9tfS5hcnRpY2xlLS1jb250ZW50IC5pbmxpbmUueHNtYWxsOmJlZm9yZXtmb250LXNpemU6LjhyZW19LmFydGljbGUtLWNvbnRlbnQgLmlubGluZS5zbWFsbDpiZWZvcmV7Zm9udC1zaXplOi45cmVtfS5hcnRpY2xlLS1jb250ZW50IC5pbmxpbmUubGFyZ2U6YmVmb3Jle2ZvbnQtc2l6ZToxLjFyZW19LmFydGljbGUtLWNvbnRlbnQgLmlubGluZS5hZGQtYnRuLXJvdW5ke2ZvbnQtZmFtaWx5OlwiaWNvbW9vbi12MlwiO2NvbG9yOiNmZmY7YmFja2dyb3VuZDpsaW5lYXItZ3JhZGllbnQoNDVkZWcsICM1YzEwYTAsICM4ZTFmYzMpO2JvcmRlci1yYWRpdXM6NTAlO21hcmdpbjowIC4yNXJlbTtkaXNwbGF5OmlubGluZS1ibG9jazt2ZXJ0aWNhbC1hbGlnbjp0ZXh0LXRvcDtmb250LXNpemU6LjdyZW07d2lkdGg6MjBweDtoZWlnaHQ6MjBweDtwYWRkaW5nLWxlZnQ6LjI5cmVtO2xpbmUtaGVpZ2h0OjEuMjVyZW19LmFydGljbGUtLWNvbnRlbnQgLmlubGluZS5hZGQtYnRuLXJvdW5kLnYzLC5hcnRpY2xlLS1jb250ZW50IC5pbmxpbmUuYWRkLWJ0bi1yb3VuZC52NHtwb3NpdGlvbjpyZWxhdGl2ZTtiYWNrZ3JvdW5kOiMzODM4NDY7d2lkdGg6MThweDtoZWlnaHQ6MThweDtmb250LXNpemU6LjY1cmVtO2xpbmUtaGVpZ2h0OjByZW07cGFkZGluZzo5cHggMCAwIDRweH0uYXJ0aWNsZS0tY29udGVudCAuaW5saW5lLnVpLXRvZ2dsZXtkaXNwbGF5OmlubGluZS1ibG9jaztwb3NpdGlvbjpyZWxhdGl2ZTt3aWR0aDoyOHB4O2hlaWdodDoxNnB4O2JvcmRlci1yYWRpdXM6LjdyZW07dmVydGljYWwtYWxpZ246dGV4dC10b3A7bWFyZ2luLXRvcDoycHh9LmFydGljbGUtLWNvbnRlbnQgLmlubGluZS51aS10b2dnbGUgLmNpcmNsZXtkaXNwbGF5OmlubGluZS1ibG9jaztwb3NpdGlvbjphYnNvbHV0ZTtib3JkZXItcmFkaXVzOjUwJTtoZWlnaHQ6OHB4O3dpZHRoOjhweDtiYWNrZ3JvdW5kOiNmZmY7dG9wOjRweDtyaWdodDo0cHh9LmFydGljbGUtLWNvbnRlbnQgLmlubGluZS51aS10b2dnbGUuYmx1ZXtiYWNrZ3JvdW5kOiMwMEEzRkZ9LmFydGljbGUtLWNvbnRlbnQgLmlubGluZS51aS10b2dnbGUuZ3JlZW57YmFja2dyb3VuZDojMDA5RjVGfS5hcnRpY2xlLS1jb250ZW50IC5pbmxpbmUudWktdG9nZ2xlLm9mZntiYWNrZ3JvdW5kOiMzMzMzNDZ9LmFydGljbGUtLWNvbnRlbnQgLmlubGluZS51aS10b2dnbGUub2ZmIC5jaXJjbGV7bGVmdDo0cHh9LmFydGljbGUtLWNvbnRlbnQgLmlubGluZS51aS10b2dnbGUudjMsLmFydGljbGUtLWNvbnRlbnQgLmlubGluZS51aS10b2dnbGUudjR7d2lkdGg6MjZweH0uYXJ0aWNsZS0tY29udGVudCAuaW5saW5lLnVpLXRvZ2dsZS52MyAuY2lyY2xlLC5hcnRpY2xlLS1jb250ZW50IC5pbmxpbmUudWktdG9nZ2xlLnY0IC5jaXJjbGV7aGVpZ2h0OjEycHg7d2lkdGg6MTJweDt0b3A6MnB4O3JpZ2h0OjJweH0uYXJ0aWNsZS0tY29udGVudCAuaW5saW5lLnVpLXRvZ2dsZS52My5vZmYgLmNpcmNsZSwuYXJ0aWNsZS0tY29udGVudCAuaW5saW5lLnVpLXRvZ2dsZS52NC5vZmYgLmNpcmNsZXtsZWZ0OjJweH0uYXJ0aWNsZS0tY29udGVudCAuaW5saW5lLm5vdGVib29rLWFkZC1jZWxse2Rpc3BsYXk6aW5saW5lLWJsb2NrO3Bvc2l0aW9uOnJlbGF0aXZlO2JvcmRlci1yYWRpdXM6NTAlO2hlaWdodDoxLjNyZW07d2lkdGg6MS4zcmVtO2JhY2tncm91bmQ6bGluZWFyLWdyYWRpZW50KDQ1ZGVnLCAjNWMxMGEwIDAlLCAjOGUxZmMzIDEwMCUpO3ZlcnRpY2FsLWFsaWduOnRleHQtYm90dG9tO3RleHQtYWxpZ246Y2VudGVyO2NvbG9yOiNmZmY7Zm9udC1zaXplOi44cmVtfS5hcnRpY2xlLS1jb250ZW50IC5pbmxpbmUubm90ZWJvb2stYWRkLWNlbGw+c3BhbntkaXNwbGF5OmJsb2NrO21hcmdpbjowLjNyZW0gMH0uYXJ0aWNsZS0tY29udGVudCAubmF2LWl0ZW17ZGlzcGxheTppbmxpbmUtYmxvY2s7cG9zaXRpb246cmVsYXRpdmU7dmVydGljYWwtYWxpZ246dG9wO21hcmdpbi1ib3R0b206MS4yNXJlbX0uYXJ0aWNsZS0tY29udGVudCAubmF2LWl0ZW06YWZ0ZXJ7Y29udGVudDpcIlwiO3Bvc2l0aW9uOmFic29sdXRlO3RvcDowO2xlZnQ6MDt3aWR0aDoycHg7aGVpZ2h0OjEwMCU7YmFja2dyb3VuZDojYmUyZWU0O2JhY2tncm91bmQ6bGluZWFyLWdyYWRpZW50KDE4MGRlZywgI2JlMmVlNCAwLCAjMDBhM2ZmKX0uYXJ0aWNsZS0tY29udGVudCAubmF2LWl0ZW06Zmlyc3QtY2hpbGR7bWFyZ2luLXJpZ2h0OjEuMjVyZW19LmFydGljbGUtLWNvbnRlbnQgLm5hdi1pdGVtLmFjY291bnR7cGFkZGluZzouMjVyZW07cG9zaXRpb246cmVsYXRpdmU7d2lkdGg6MjEwcHg7aGVpZ2h0OjU2cHh9LmFydGljbGUtLWNvbnRlbnQgLm5hdi1pdGVtLmFjY291bnQ6YWZ0ZXJ7ZGlzcGxheTpub25lfS5hcnRpY2xlLS1jb250ZW50IC5uYXYtaXRlbS5hY2NvdW50IC5hY2N0LWlubmVye2Rpc3BsYXk6ZmxleDtwb3NpdGlvbjpyZWxhdGl2ZTthbGlnbi1pdGVtczpjZW50ZXI7d2lkdGg6MTAwJTtoZWlnaHQ6MTAwJTtiYWNrZ3JvdW5kOiMyOTI5MzM7Ym9yZGVyLXJhZGl1czo2cHg7Ym9yZGVyOjNweCBzb2xpZCAjNjc2OTc4fS5hcnRpY2xlLS1jb250ZW50IC5uYXYtaXRlbS5hY2NvdW50IC5hY2N0LWlubmVyOmFmdGVye2NvbnRlbnQ6XCJcIjtwb3NpdGlvbjphYnNvbHV0ZTtyaWdodDoxcmVtO3dpZHRoOjA7aGVpZ2h0OjA7Ym9yZGVyLXN0eWxlOnNvbGlkO2JvcmRlci13aWR0aDo1cHggNXB4IDAgNXB4O2JvcmRlci1jb2xvcjojRTdFOEVCIHRyYW5zcGFyZW50IHRyYW5zcGFyZW50IHRyYW5zcGFyZW50fS5hcnRpY2xlLS1jb250ZW50IC5uYXYtaXRlbS5hY2NvdW50IC5hY2N0LWljb257bWFyZ2luOjAgLjlyZW0gMCAuNXJlbTtib3JkZXItcmFkaXVzOjUwJTtoZWlnaHQ6MjhweDt3aWR0aDoyOHB4O2JhY2tncm91bmQ6bGluZWFyLWdyYWRpZW50KDQ1ZGVnLCAjMDBhM2ZmLCAjNjdkNzRlKTtjb2xvcjojZmZmO3RleHQtYWxpZ246Y2VudGVyO2xpbmUtaGVpZ2h0OjA7b3ZlcmZsb3c6aGlkZGVufS5hcnRpY2xlLS1jb250ZW50IC5uYXYtaXRlbS5hY2NvdW50IC5hY2N0LWljb24gLmljb257bWFyZ2luLWxlZnQ6LS4xcmVtO2ZvbnQtc2l6ZToycmVtfS5hcnRpY2xlLS1jb250ZW50IC5uYXYtaXRlbS5hY2NvdW50IC5hY2N0LWxhYmVsIC51c2VybmFtZXtjb2xvcjojRTdFOEVCO2ZvbnQtd2VpZ2h0OjUwMDtmb250LXNpemU6Ljg1cmVtO2xpbmUtaGVpZ2h0OjEuMnJlbX0uYXJ0aWNsZS0tY29udGVudCAubmF2LWl0ZW0uYWNjb3VudCAuYWNjdC1sYWJlbCAub3JnbmFtZXtjb2xvcjojOTk5REFCO2ZvbnQtc2l6ZTouNzVyZW07bGluZS1oZWlnaHQ6Ljc1cmVtfS5hcnRpY2xlLS1jb250ZW50IC5uYXYtaXRlbS5hY2NvdW50LnNtYWxse3dpZHRoOjU2cHh9LmFydGljbGUtLWNvbnRlbnQgLm5hdi1pdGVtLmFjY291bnQuc21hbGwgLmFjY3QtaW5uZXJ7anVzdGlmeS1jb250ZW50OmNlbnRlcjthbGlnbi1pdGVtczpjZW50ZXJ9LmFydGljbGUtLWNvbnRlbnQgLm5hdi1pdGVtLmFjY291bnQuc21hbGwgLmFjY3QtaW5uZXI6YWZ0ZXJ7ZGlzcGxheTpub25lfS5hcnRpY2xlLS1jb250ZW50IC5uYXYtaXRlbS5hY2NvdW50LnNtYWxsIC5hY2N0LWljb257bWFyZ2luOjB9LmFydGljbGUtLWNvbnRlbnQgLm5hdi1pY29ue2Rpc3BsYXk6ZmxleDtqdXN0aWZ5LWNvbnRlbnQ6bGVmdDthbGlnbi1pdGVtczpjZW50ZXI7Y29sb3I6I2ZmZjt3aWR0aDoyMTBweDtoZWlnaHQ6NTZweDtmb250LWZhbWlseTpcIlJ1YmlrXCIsc2Fucy1zZXJpZjtmb250LXdlaWdodDo1MDA7cGFkZGluZzouOXJlbSAxLjFyZW07Zm9udC1zaXplOjFyZW07cG9zaXRpb246cmVsYXRpdmU7YmFja2dyb3VuZDojMzgzODQ2fS5hcnRpY2xlLS1jb250ZW50IC5uYXYtaWNvbiAuaWNvbntkaXNwbGF5OmlubGluZS1ibG9jaztmb250LXNpemU6MS4zNXJlbTttYXJnaW4tcmlnaHQ6MXJlbX0uYXJ0aWNsZS0tY29udGVudCAubmF2LWljb24gLm5hdi1pY29uLWxhYmVse2Rpc3BsYXk6aW5saW5lLWJsb2NrO3BhZGRpbmc6MDtmb250LXNpemU6MXJlbX0uYXJ0aWNsZS0tY29udGVudCAubmF2LWljb246YmVmb3JlLC5hcnRpY2xlLS1jb250ZW50IC5uYXYtaWNvbjphZnRlcntjb250ZW50OlwiXCI7cG9zaXRpb246YWJzb2x1dGU7bGVmdDowO2hlaWdodDoycHg7ei1pbmRleDoyO3dpZHRoOjEycHh9LmFydGljbGUtLWNvbnRlbnQgLm5hdi1pY29uOmJlZm9yZXt0b3A6MDtiYWNrZ3JvdW5kOiNiZTJlZTQ7YmFja2dyb3VuZDpsaW5lYXItZ3JhZGllbnQoOTBkZWcsICNiZTJlZTQgMCwgcmdiYSgxOTAsNDYsMjI4LDApKX0uYXJ0aWNsZS0tY29udGVudCAubmF2LWljb246YWZ0ZXJ7Ym90dG9tOjA7YmFja2dyb3VuZDojMDBhM2ZmO2JhY2tncm91bmQ6bGluZWFyLWdyYWRpZW50KDkwZGVnLCAjMDBhM2ZmIDAsIHJnYmEoMTkwLDQ2LDIyOCwwKSl9LmFydGljbGUtLWNvbnRlbnQgLm5hdi1pY29uLnNtYWxse2Rpc3BsYXk6ZmxleDtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO2FsaWduLWl0ZW1zOmNlbnRlcjtwYWRkaW5nOjA7d2lkdGg6NTZweDtmbGV4LWRpcmVjdGlvbjpjb2x1bW59LmFydGljbGUtLWNvbnRlbnQgLm5hdi1pY29uLnNtYWxsIC5pY29ue3Bvc2l0aW9uOnJlbGF0aXZlO21hcmdpbjowfS5hcnRpY2xlLS1jb250ZW50IC5uYXYtaWNvbi5zbWFsbCAubmF2LWljb24tbGFiZWx7cGFkZGluZzowO21hcmdpbi10b3A6Ljc1cmVtO2ZvbnQtc2l6ZTouNjdyZW07bGluZS1oZWlnaHQ6MH0ubmF2LWl0ZW1zLXYzIC5uYXYtaXRlbS12MywubmF2LWl0ZW1zLXYzIC5uYXYtaXRlbS12NCwubmF2LWl0ZW1zLXY0IC5uYXYtaXRlbS12MywubmF2LWl0ZW1zLXY0IC5uYXYtaXRlbS12NHtkaXNwbGF5OmlubGluZS1mbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjttYXJnaW46MCAxcmVtIDEuMjVyZW0gMDttYXgtd2lkdGg6MjI1cHg7YmFja2dyb3VuZDpsaW5lYXItZ3JhZGllbnQocmdiYSg1LDQxLDY3LDAuOSksIHJnYmEoNiwzNCw1NiwwLjkpKTtjb2xvcjojZmZmO2hlaWdodDo2MHB4O2JvcmRlci1yYWRpdXM6MnB4fS5uYXYtaXRlbXMtdjMgLm5hdi1pdGVtLXYzLmFjY291bnQsLm5hdi1pdGVtcy12MyAubmF2LWl0ZW0tdjQuYWNjb3VudCwubmF2LWl0ZW1zLXY0IC5uYXYtaXRlbS12My5hY2NvdW50LC5uYXYtaXRlbXMtdjQgLm5hdi1pdGVtLXY0LmFjY291bnR7cGFkZGluZzo4cHh9Lm5hdi1pdGVtcy12MyAubmF2LWl0ZW0tdjMuYWNjb3VudCAuYWNjdC1pbm5lci12MywubmF2LWl0ZW1zLXYzIC5uYXYtaXRlbS12My5hY2NvdW50IC5hY2N0LWlubmVyLXY0LC5uYXYtaXRlbXMtdjMgLm5hdi1pdGVtLXY0LmFjY291bnQgLmFjY3QtaW5uZXItdjMsLm5hdi1pdGVtcy12MyAubmF2LWl0ZW0tdjQuYWNjb3VudCAuYWNjdC1pbm5lci12NCwubmF2LWl0ZW1zLXY0IC5uYXYtaXRlbS12My5hY2NvdW50IC5hY2N0LWlubmVyLXYzLC5uYXYtaXRlbXMtdjQgLm5hdi1pdGVtLXYzLmFjY291bnQgLmFjY3QtaW5uZXItdjQsLm5hdi1pdGVtcy12NCAubmF2LWl0ZW0tdjQuYWNjb3VudCAuYWNjdC1pbm5lci12MywubmF2LWl0ZW1zLXY0IC5uYXYtaXRlbS12NC5hY2NvdW50IC5hY2N0LWlubmVyLXY0e2Rpc3BsYXk6ZmxleDtiYWNrZ3JvdW5kLWNvbG9yOiNmMWYxZjMwZDtib3JkZXItcmFkaXVzOjJweH0ubmF2LWl0ZW1zLXYzIC5uYXYtaXRlbS12My5hY2NvdW50IC5hY2N0LWljb24tdjMsLm5hdi1pdGVtcy12MyAubmF2LWl0ZW0tdjMuYWNjb3VudCAuYWNjdC1pY29uLXY0LC5uYXYtaXRlbXMtdjMgLm5hdi1pdGVtLXY0LmFjY291bnQgLmFjY3QtaWNvbi12MywubmF2LWl0ZW1zLXYzIC5uYXYtaXRlbS12NC5hY2NvdW50IC5hY2N0LWljb24tdjQsLm5hdi1pdGVtcy12NCAubmF2LWl0ZW0tdjMuYWNjb3VudCAuYWNjdC1pY29uLXYzLC5uYXYtaXRlbXMtdjQgLm5hdi1pdGVtLXYzLmFjY291bnQgLmFjY3QtaWNvbi12NCwubmF2LWl0ZW1zLXY0IC5uYXYtaXRlbS12NC5hY2NvdW50IC5hY2N0LWljb24tdjMsLm5hdi1pdGVtcy12NCAubmF2LWl0ZW0tdjQuYWNjb3VudCAuYWNjdC1pY29uLXY0e2Rpc3BsYXk6ZmxleDthbGlnbi1jb250ZW50OmNlbnRlcjtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO2ZvbnQtd2VpZ2h0OmJvbGQ7d2lkdGg6NDRweDtoZWlnaHQ6NDRweDtiYWNrZ3JvdW5kOmxpbmVhci1ncmFkaWVudCg1NGRlZywgI0JFMkVFNCwjMDBBM0ZGKTtib3JkZXItcmFkaXVzOjJweH0ubmF2LWl0ZW1zLXYzIC5uYXYtaXRlbS12My5hY2NvdW50IC5hY2N0LWljb24tdjMgLmluaXRpYWwsLm5hdi1pdGVtcy12MyAubmF2LWl0ZW0tdjMuYWNjb3VudCAuYWNjdC1pY29uLXY0IC5pbml0aWFsLC5uYXYtaXRlbXMtdjMgLm5hdi1pdGVtLXY0LmFjY291bnQgLmFjY3QtaWNvbi12MyAuaW5pdGlhbCwubmF2LWl0ZW1zLXYzIC5uYXYtaXRlbS12NC5hY2NvdW50IC5hY2N0LWljb24tdjQgLmluaXRpYWwsLm5hdi1pdGVtcy12NCAubmF2LWl0ZW0tdjMuYWNjb3VudCAuYWNjdC1pY29uLXYzIC5pbml0aWFsLC5uYXYtaXRlbXMtdjQgLm5hdi1pdGVtLXYzLmFjY291bnQgLmFjY3QtaWNvbi12NCAuaW5pdGlhbCwubmF2LWl0ZW1zLXY0IC5uYXYtaXRlbS12NC5hY2NvdW50IC5hY2N0LWljb24tdjMgLmluaXRpYWwsLm5hdi1pdGVtcy12NCAubmF2LWl0ZW0tdjQuYWNjb3VudCAuYWNjdC1pY29uLXY0IC5pbml0aWFse2FsaWduLXNlbGY6Y2VudGVyfS5uYXYtaXRlbXMtdjMgLm5hdi1pdGVtLXYzLmFjY291bnQgLmFjY3QtbGFiZWwtdjMsLm5hdi1pdGVtcy12MyAubmF2LWl0ZW0tdjMuYWNjb3VudCAuYWNjdC1sYWJlbC12NCwubmF2LWl0ZW1zLXYzIC5uYXYtaXRlbS12NC5hY2NvdW50IC5hY2N0LWxhYmVsLXYzLC5uYXYtaXRlbXMtdjMgLm5hdi1pdGVtLXY0LmFjY291bnQgLmFjY3QtbGFiZWwtdjQsLm5hdi1pdGVtcy12NCAubmF2LWl0ZW0tdjMuYWNjb3VudCAuYWNjdC1sYWJlbC12MywubmF2LWl0ZW1zLXY0IC5uYXYtaXRlbS12My5hY2NvdW50IC5hY2N0LWxhYmVsLXY0LC5uYXYtaXRlbXMtdjQgLm5hdi1pdGVtLXY0LmFjY291bnQgLmFjY3QtbGFiZWwtdjMsLm5hdi1pdGVtcy12NCAubmF2LWl0ZW0tdjQuYWNjb3VudCAuYWNjdC1sYWJlbC12NHtkaXNwbGF5OmlubGluZS1ibG9jaztwYWRkaW5nOjhweCAwcHggMHB4IDhweDt3aWR0aDoxNjVweH0ubmF2LWl0ZW1zLXYzIC5uYXYtaXRlbS12My5hY2NvdW50IC5hY2N0LWxhYmVsLXYzIC51c2VybmFtZSwubmF2LWl0ZW1zLXYzIC5uYXYtaXRlbS12My5hY2NvdW50IC5hY2N0LWxhYmVsLXY0IC51c2VybmFtZSwubmF2LWl0ZW1zLXYzIC5uYXYtaXRlbS12NC5hY2NvdW50IC5hY2N0LWxhYmVsLXYzIC51c2VybmFtZSwubmF2LWl0ZW1zLXYzIC5uYXYtaXRlbS12NC5hY2NvdW50IC5hY2N0LWxhYmVsLXY0IC51c2VybmFtZSwubmF2LWl0ZW1zLXY0IC5uYXYtaXRlbS12My5hY2NvdW50IC5hY2N0LWxhYmVsLXYzIC51c2VybmFtZSwubmF2LWl0ZW1zLXY0IC5uYXYtaXRlbS12My5hY2NvdW50IC5hY2N0LWxhYmVsLXY0IC51c2VybmFtZSwubmF2LWl0ZW1zLXY0IC5uYXYtaXRlbS12NC5hY2NvdW50IC5hY2N0LWxhYmVsLXYzIC51c2VybmFtZSwubmF2LWl0ZW1zLXY0IC5uYXYtaXRlbS12NC5hY2NvdW50IC5hY2N0LWxhYmVsLXY0IC51c2VybmFtZXtmb250LXNpemU6Ljc1cmVtO2xpbmUtaGVpZ2h0Oi43NXJlbTtmb250LXdlaWdodDo1MDA7Y29sb3I6IzllOWVhZH0ubmF2LWl0ZW1zLXYzIC5uYXYtaXRlbS12My5hY2NvdW50IC5hY2N0LWxhYmVsLXYzIC5vcmduYW1lLC5uYXYtaXRlbXMtdjMgLm5hdi1pdGVtLXYzLmFjY291bnQgLmFjY3QtbGFiZWwtdjQgLm9yZ25hbWUsLm5hdi1pdGVtcy12MyAubmF2LWl0ZW0tdjQuYWNjb3VudCAuYWNjdC1sYWJlbC12MyAub3JnbmFtZSwubmF2LWl0ZW1zLXYzIC5uYXYtaXRlbS12NC5hY2NvdW50IC5hY2N0LWxhYmVsLXY0IC5vcmduYW1lLC5uYXYtaXRlbXMtdjQgLm5hdi1pdGVtLXYzLmFjY291bnQgLmFjY3QtbGFiZWwtdjMgLm9yZ25hbWUsLm5hdi1pdGVtcy12NCAubmF2LWl0ZW0tdjMuYWNjb3VudCAuYWNjdC1sYWJlbC12NCAub3JnbmFtZSwubmF2LWl0ZW1zLXY0IC5uYXYtaXRlbS12NC5hY2NvdW50IC5hY2N0LWxhYmVsLXYzIC5vcmduYW1lLC5uYXYtaXRlbXMtdjQgLm5hdi1pdGVtLXY0LmFjY291bnQgLmFjY3QtbGFiZWwtdjQgLm9yZ25hbWV7Zm9udC1zaXplOi44NXJlbTtsaW5lLWhlaWdodDoxcmVtfS5uYXYtaXRlbXMtdjMgLm5hdi1pY29uLXYzLC5uYXYtaXRlbXMtdjMgLm5hdi1pY29uLXY0LC5uYXYtaXRlbXMtdjQgLm5hdi1pY29uLXYzLC5uYXYtaXRlbXMtdjQgLm5hdi1pY29uLXY0e2Rpc3BsYXk6ZmxleDtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO2FsaWduLWl0ZW1zOmNlbnRlcjtoZWlnaHQ6MTAwJTt3aWR0aDo2MHB4O2ZsZXgtc2hyaW5rOjB9Lm5hdi1pdGVtcy12MyBwLm5hdi1sYWJlbC12MywubmF2LWl0ZW1zLXYzIHAubmF2LWxhYmVsLXY0LC5uYXYtaXRlbXMtdjQgcC5uYXYtbGFiZWwtdjMsLm5hdi1pdGVtcy12NCBwLm5hdi1sYWJlbC12NHtkaXNwbGF5OmlubGluZS1ibG9jazttYXJnaW46MDtwYWRkaW5nOjA7Zm9udC1mYW1pbHk6XCJSdWJpa1wiLHNhbnMtc2VyaWY7Zm9udC13ZWlnaHQ6NTAwO2ZvbnQtc2l6ZToxLjE1cmVtO21pbi13aWR0aDoyMjVweDtjb2xvcjojZmZmfS5uYXYtaXRlbXMtdjMgLmNmLWljb24sLm5hdi1pdGVtcy12NCAuY2YtaWNvbntkaXNwbGF5OmlubGluZS1ibG9jaztmb250LXNpemU6MS4zNXJlbX0ubmF2LWl0ZW1zLXYzIC5jZi1pY29uLnYzLC5uYXYtaXRlbXMtdjQgLmNmLWljb24udjN7Zm9udC1mYW1pbHk6J2ljb21vb24tdjMnfS5uYXYtaXRlbXMtdjMgLmNmLWljb24udjQsLm5hdi1pdGVtcy12NCAuY2YtaWNvbi52NHtmb250LWZhbWlseTonaWNvbW9vbi12NCd9QG1lZGlhIChtYXgtd2lkdGg6IDYwMHB4KXsuYXJ0aWNsZS0tY29udGVudC5uYXYtaXRlbTpudGgtY2hpbGQoMil7ZGlzcGxheTpub25lfS5hcnRpY2xlLS1jb250ZW50Lm5hdi1pdGVtLXYzOm50aC1jaGlsZCgyKXtkaXNwbGF5Om5vbmV9LmFydGljbGUtLWNvbnRlbnQubmF2LWl0ZW0tdjQ6bnRoLWNoaWxkKDIpe2Rpc3BsYXk6bm9uZX19cHJle2xpbmUtaGVpZ2h0OjEuMjVyZW19Y29kZVtjbGFzcyo9XCJsYW5ndWFnZS1cIl0scHJlW2NsYXNzKj1cImxhbmd1YWdlLVwiXXtkaXJlY3Rpb246bHRyO3RleHQtYWxpZ246bGVmdDt3b3JkLXNwYWNpbmc6bm9ybWFsO3dvcmQtYnJlYWs6bm9ybWFsO3dvcmQtd3JhcDpub3JtYWw7LW1vei10YWItc2l6ZTo0Oy1vLXRhYi1zaXplOjQ7dGFiLXNpemU6NDstd2Via2l0LWh5cGhlbnM6bm9uZTstbW96LWh5cGhlbnM6bm9uZTstbXMtaHlwaGVuczpub25lO2h5cGhlbnM6bm9uZX1wcmVbY2xhc3MqPVwibGFuZ3VhZ2UtXCJdOjotbW96LXNlbGVjdGlvbixwcmVbY2xhc3MqPVwibGFuZ3VhZ2UtXCJdIDo6LW1vei1zZWxlY3Rpb24sY29kZVtjbGFzcyo9XCJsYW5ndWFnZS1cIl06Oi1tb3otc2VsZWN0aW9uLGNvZGVbY2xhc3MqPVwibGFuZ3VhZ2UtXCJdIDo6LW1vei1zZWxlY3Rpb257YmFja2dyb3VuZDpyZ2JhKDAsMTYzLDI1NSwwLjI1KX1wcmVbY2xhc3MqPVwibGFuZ3VhZ2UtXCJdOjpzZWxlY3Rpb24scHJlW2NsYXNzKj1cImxhbmd1YWdlLVwiXSA6OnNlbGVjdGlvbixjb2RlW2NsYXNzKj1cImxhbmd1YWdlLVwiXTo6c2VsZWN0aW9uLGNvZGVbY2xhc3MqPVwibGFuZ3VhZ2UtXCJdIDo6c2VsZWN0aW9ue2JhY2tncm91bmQ6cmdiYSgwLDE2MywyNTUsMC4yNSl9QG1lZGlhIHByaW50e2NvZGVbY2xhc3MqPVwibGFuZ3VhZ2UtXCJdLHByZVtjbGFzcyo9XCJsYW5ndWFnZS1cIl17dGV4dC1zaGFkb3c6bm9uZX19cHJlW2NsYXNzKj1cImxhbmd1YWdlLVwiXXtvdmVyZmxvdzphdXRvfTpub3QocHJlKT5jb2RlW2NsYXNzKj1cImxhbmd1YWdlLVwiXXt3aGl0ZS1zcGFjZTpub3JtYWx9LmhpZ2hsaWdodHtjb2xvcjojQjdCOEZGfS5oaWdobGlnaHQgLmdoLC5oaWdobGlnaHQgLmdvLC5oaWdobGlnaHQgLm5hLC5oaWdobGlnaHQgLm50LC5oaWdobGlnaHQgLm52LC5oaWdobGlnaHQgLm93e2NvbG9yOiNCN0I4RkZ9LmhpZ2hsaWdodCAuYywuaGlnaGxpZ2h0IC5jaCwuaGlnaGxpZ2h0IC5jbSwuaGlnaGxpZ2h0IC5jcGYsLmhpZ2hsaWdodCAuYzEsLmhpZ2hsaWdodCAuY3MsLmhpZ2hsaWdodCAud3tjb2xvcjojNTQ1NjY3fS5oaWdobGlnaHQgLmdpe2JhY2tncm91bmQtY29sb3I6IzU0NTY2N30uaGlnaGxpZ2h0IC5rLC5oaWdobGlnaHQgLmtjLC5oaWdobGlnaHQgLmtkLC5oaWdobGlnaHQgLmtuLC5oaWdobGlnaHQgLmtwLC5oaWdobGlnaHQgLmtyLC5oaWdobGlnaHQgLm5ue2NvbG9yOiMwMEEzRkZ9LmhpZ2hsaWdodCAuYnAsLmhpZ2hsaWdodCAuY3AsLmhpZ2hsaWdodCAuZGwsLmhpZ2hsaWdodCAuZ3QsLmhpZ2hsaWdodCAuZ3UsLmhpZ2hsaWdodCAua3QsLmhpZ2hsaWdodCAubmIsLmhpZ2hsaWdodCAubmMsLmhpZ2hsaWdodCAubm8sLmhpZ2hsaWdodCAuc2EsLmhpZ2hsaWdodCAuc2IsLmhpZ2hsaWdodCAuc2MsLmhpZ2hsaWdodCAuc2QsLmhpZ2hsaWdodCAuc2UsLmhpZ2hsaWdodCAuc2gsLmhpZ2hsaWdodCAuc3gsLmhpZ2hsaWdodCAuc3IsLmhpZ2hsaWdodCAuczEsLmhpZ2hsaWdodCAuczJ7Y29sb3I6IzAwOUY1Rn0uaGlnaGxpZ2h0IC5lcnIsLmhpZ2hsaWdodCAuZm0sLmhpZ2hsaWdodCAuZ3IsLmhpZ2hsaWdodCAuZ2QsLmhpZ2hsaWdodCAubmQsLmhpZ2hsaWdodCAubmUsLmhpZ2hsaWdodCAubmYsLmhpZ2hsaWdodCAubmwsLmhpZ2hsaWdodCAuc2l7Y29sb3I6I0JGM0Q1RX0uaGlnaGxpZ2h0IC5nZHt0ZXh0LWRlY29yYXRpb246bGluZS10aHJvdWdofS5oaWdobGlnaHQgLm0sLmhpZ2hsaWdodCAubmksLmhpZ2hsaWdodCAubWIsLmhpZ2hsaWdodCAubWYsLmhpZ2hsaWdodCAubWgsLmhpZ2hsaWdodCAubWksLmhpZ2hsaWdodCAubW8sLmhpZ2hsaWdodCAudmMsLmhpZ2hsaWdodCAudmcsLmhpZ2hsaWdodCAudmksLmhpZ2hsaWdodCAudm0sLmhpZ2hsaWdodCAuaWx7Y29sb3I6I2ZmNmRiMH0uaGlnaGxpZ2h0IC5ncCwuaGlnaGxpZ2h0IC5ve2NvbG9yOiMwMEEzRkZ9LmhpZ2hsaWdodCAuc3N7Y29sb3I6I2U5MH0uaGlnaGxpZ2h0IC5jcyAuZ2gsLmhpZ2hsaWdodCAuZ3UsLmhpZ2hsaWdodCAuZ3AsLmhpZ2hsaWdodCAuZ3MsLmhpZ2hsaWdodCAuaywuaGlnaGxpZ2h0IC5rYywuaGlnaGxpZ2h0IC5rZCwuaGlnaGxpZ2h0IC5rbiwuaGlnaGxpZ2h0IC5rcCwuaGlnaGxpZ2h0IC5rciwuaGlnaGxpZ2h0IC5rdCwuaGlnaGxpZ2h0IC5uYywuaGlnaGxpZ2h0IC5uZSwuaGlnaGxpZ2h0IC5uaSwuaGlnaGxpZ2h0IC5ubiAubnQsLmhpZ2hsaWdodCAub3csLmhpZ2hsaWdodCAuc2V7Zm9udC13ZWlnaHQ6Ym9sZH0uaGlnaGxpZ2h0IC5jLC5oaWdobGlnaHQgLmNoLC5oaWdobGlnaHQgLmNtLC5oaWdobGlnaHQgLmNwZiwuaGlnaGxpZ2h0IC5jMSwuaGlnaGxpZ2h0IC5jcywuaGlnaGxpZ2h0IC5nZSwuaGlnaGxpZ2h0IC5zZCwuaGlnaGxpZ2h0IC53e2ZvbnQtc3R5bGU6aXRhbGljfS5oaWdobGlnaHQgLmxhbmd1YWdlLWpzIC5taSsubngsLmhpZ2hsaWdodCAubGFuZ3VhZ2UtanMgLm1mKy5ueHtjb2xvcjojZmY2ZGIwfS5oaWdobGlnaHQgLmxhbmd1YWdlLXNxbCAubWkrLm57Y29sb3I6I2ZmNmRiMH0uYWxnb2xpYS1hdXRvY29tcGxldGV7d2lkdGg6MTAwJX0uYWxnb2xpYS1hdXRvY29tcGxldGUgI2FsZ29saWEtc2VhcmNoLWlucHV0e2JhY2tncm91bmQ6IzFBMUEyQSAhaW1wb3J0YW50fS5hbGdvbGlhLWF1dG9jb21wbGV0ZSAuZHMtZHJvcGRvd24tbWVudXt3aWR0aDo3NHZ3O21heC13aWR0aDo4MDBweDtiYWNrZ3JvdW5kOiMxQTFBMkE7YmFja2dyb3VuZC1jb2xvcjojMUExQTJBO2JvcmRlcjpub25lO2JveC1zaGFkb3c6MnB4IDJweCAxMHB4IHJnYmEoMTUsMTQsMjEsMC41KTt0cmFuc2l0aW9uOmJhY2tncm91bmQtY29sb3IgMC4yc30uYWxnb2xpYS1hdXRvY29tcGxldGUgLmRzLWRyb3Bkb3duLW1lbnUgW2NsYXNzXj1kcy1kYXRhc2V0LV17Ym9yZGVyOm5vbmU7YmFja2dyb3VuZDojMUExQTJBO2JhY2tncm91bmQtY29sb3I6IzFBMUEyQX0uYWxnb2xpYS1hdXRvY29tcGxldGUgLmRzLWRyb3Bkb3duLW1lbnU6YmVmb3Jle2Rpc3BsYXk6bm9uZX0uYWxnb2xpYS1hdXRvY29tcGxldGUgLmRzLWRyb3Bkb3duLW1lbnUgLmRzLXN1Z2dlc3Rpb25ze3BhZGRpbmc6LjVyZW0gMnJlbSAycmVtfS5hbGdvbGlhLWF1dG9jb21wbGV0ZSAuYWxnb2xpYS1kb2NzZWFyY2gtc3VnZ2VzdGlvbntiYWNrZ3JvdW5kOiMxQTFBMkF9LmFsZ29saWEtYXV0b2NvbXBsZXRlIC5hbGdvbGlhLWRvY3NlYXJjaC1zdWdnZXN0aW9uLS1jYXRlZ29yeS1oZWFkZXJ7Y29sb3I6I2ZmZjtib3JkZXItY29sb3I6IzM4Mzg0Njt0ZXh0LWRlY29yYXRpb246bm9uZX0uYWxnb2xpYS1hdXRvY29tcGxldGUgLmFsZ29saWEtZG9jc2VhcmNoLXN1Z2dlc3Rpb24tLWNhdGVnb3J5LWhlYWRlci1sdmwwe2ZvbnQtc2l6ZToxLjVyZW07Zm9udC13ZWlnaHQ6Ym9sZCAhaW1wb3J0YW50O3BhZGRpbmctYm90dG9tOjFyZW19LmFsZ29saWEtYXV0b2NvbXBsZXRlIC5hbGdvbGlhLWRvY3NlYXJjaC1zdWdnZXN0aW9uLS1zdWJjYXRlZ29yeS1jb2x1bW57Y29sb3I6cmdiYSgyMTIsMjE1LDIyMSwwLjUpICFpbXBvcnRhbnR9LmFsZ29saWEtYXV0b2NvbXBsZXRlIC5hbGdvbGlhLWRvY3NlYXJjaC1zdWdnZXN0aW9uLS1zdWJjYXRlZ29yeS1jb2x1bW46YmVmb3Jle2JhY2tncm91bmQ6IzM4Mzg0Nn0uYWxnb2xpYS1hdXRvY29tcGxldGUgLmFsZ29saWEtZG9jc2VhcmNoLXN1Z2dlc3Rpb24tLXRpdGxle2ZvbnQtd2VpZ2h0OmJvbGQ7Y29sb3I6I2ZmZn0uYWxnb2xpYS1hdXRvY29tcGxldGUgLmFsZ29saWEtZG9jc2VhcmNoLXN1Z2dlc3Rpb24tLXRleHR7Zm9udC1zaXplOjAuOHJlbTtjb2xvcjojRDREN0REfS5hbGdvbGlhLWF1dG9jb21wbGV0ZSAuYWxnb2xpYS1kb2NzZWFyY2gtc3VnZ2VzdGlvbi0taGlnaGxpZ2h0e2NvbG9yOiMwMEEzRkZ9LmFsZ29saWEtYXV0b2NvbXBsZXRlIC5hbGdvbGlhLWRvY3NlYXJjaC1zdWdnZXN0aW9uLS1jb250ZW50OmJlZm9yZXtiYWNrZ3JvdW5kOiMzODM4NDZ9LmFsZ29saWEtYXV0b2NvbXBsZXRlIC5hbGdvbGlhLWRvY3NlYXJjaC1zdWdnZXN0aW9uLmFsZ29saWEtZG9jc2VhcmNoLXN1Z2dlc3Rpb25fX21haW4gLmFsZ29saWEtZG9jc2VhcmNoLXN1Z2dlc3Rpb24tLWNhdGVnb3J5LWhlYWRlciwuYWxnb2xpYS1hdXRvY29tcGxldGUgLmFsZ29saWEtZG9jc2VhcmNoLXN1Z2dlc3Rpb24uYWxnb2xpYS1kb2NzZWFyY2gtc3VnZ2VzdGlvbl9fc2Vjb25kYXJ5e3RleHQtZGVjb3JhdGlvbjpub25lfS5hbGdvbGlhLWF1dG9jb21wbGV0ZSAuYWxnb2xpYS1kb2NzZWFyY2gtc3VnZ2VzdGlvbi5hbGdvbGlhLWRvY3NlYXJjaC1zdWdnZXN0aW9uX19tYWluIC5hbGdvbGlhLWRvY3NlYXJjaC1zdWdnZXN0aW9uLS1jYXRlZ29yeS1oZWFkZXJ7cGFkZGluZy1ib3R0b206Ljc1cmVtO21hcmdpbi1ib3R0b206LjVyZW19LmFsZ29saWEtYXV0b2NvbXBsZXRlLmFsZ29saWEtYXV0b2NvbXBsZXRlLWxlZnQgLmRzLWRyb3Bkb3duLW1lbnV7bGVmdDoyNHZ3ICFpbXBvcnRhbnQ7dG9wOi0uNDVyZW0gIWltcG9ydGFudH0uZHMtc3VnZ2VzdGlvbjpub3QoOmZpcnN0LWNoaWxkKSAuYWxnb2xpYS1kb2NzZWFyY2gtc3VnZ2VzdGlvbi0tY2F0ZWdvcnktaGVhZGVye21hcmdpbi10b3A6MS41cmVtfS5hbGdvbGlhLWF1dG9jb21wbGV0ZSAuYWxnb2xpYS1kb2NzZWFyY2gtc3VnZ2VzdGlvbiAuYWxnb2xpYS1kb2NzZWFyY2gtc3VnZ2VzdGlvbi0td3JhcHBlcntwYWRkaW5nOjB9LmFsZ29saWEtYXV0b2NvbXBsZXRlIC5hbGdvbGlhLWRvY3NlYXJjaC1zdWdnZXN0aW9uIC5hbGdvbGlhLWRvY3NlYXJjaC1zdWdnZXN0aW9uLS1zdWJjYXRlZ29yeS1jb2x1bW57ZGlzcGxheTpub25lfS5hbGdvbGlhLWF1dG9jb21wbGV0ZSAuYWxnb2xpYS1kb2NzZWFyY2gtc3VnZ2VzdGlvbiAuYWxnb2xpYS1kb2NzZWFyY2gtc3VnZ2VzdGlvbi0tY29udGVudHttYXJnaW46MnB4IDA7cGFkZGluZzouNzVyZW07d2lkdGg6MTAwJTtmbG9hdDpub25lfS5hbGdvbGlhLWF1dG9jb21wbGV0ZSAuYWxnb2xpYS1kb2NzZWFyY2gtc3VnZ2VzdGlvbiAuYWxnb2xpYS1kb2NzZWFyY2gtc3VnZ2VzdGlvbi0tY29udGVudDpiZWZvcmV7ZGlzcGxheTpub25lfS5hbGdvbGlhLWRvY3NlYXJjaC1zdWdnZXN0aW9uLS1jb250ZW50LmFsZ29saWEtZG9jc2VhcmNoLXN1Z2dlc3Rpb24tLW5vLXJlc3VsdHN7dGV4dC1hbGlnbjpjZW50ZXJ9LmFsZ29saWEtYXV0b2NvbXBsZXRlIC5hbGdvbGlhLWRvY3NlYXJjaC1zdWdnZXN0aW9uIC5zZWFyY2gtcHJvZHVjdC12ZXJzaW9ue2ZvbnQtc2l6ZTouOGVtO2ZvbnQtd2VpZ2h0OjUwMDtvcGFjaXR5Oi41O21hcmdpbi1sZWZ0Oi4zNXJlbX0uYWxnb2xpYS1hdXRvY29tcGxldGUgLmFsZ29saWEtZG9jc2VhcmNoLXN1Z2dlc3Rpb24tLXRpdGxlIC5zZWFyY2gtcHJvZHVjdC12ZXJzaW9ue2Rpc3BsYXk6bm9uZX0uc2VhcmNoLWFsbC1jb250ZW50e3BhZGRpbmc6MC41cmVtIDAuNzVyZW07Zm9udC1zaXplOjAuOHJlbTt0ZXh0LWFsaWduOnJpZ2h0fS5zZWFyY2gtYWxsLWNvbnRlbnQgYXtjb2xvcjojRDREN0REO29wYWNpdHk6LjY7dGV4dC1kZWNvcmF0aW9uOm5vbmU7dHJhbnNpdGlvbjpvcGFjaXR5IC4yc30uc2VhcmNoLWFsbC1jb250ZW50IGE6aG92ZXJ7b3BhY2l0eToxfS5zZWFyY2gtbm8tcmVzdWx0c3twYWRkaW5nOjJyZW07dGV4dC1hbGlnbjpjZW50ZXI7Zm9udC1zaXplOjEuMXJlbTtjb2xvcjpyZ2JhKDIxMiwyMTUsMjIxLDAuNzUpO2ZvbnQtc3R5bGU6aXRhbGljfS5zZWFyY2gtbm8tcmVzdWx0cyBhe3Bvc2l0aW9uOnJlbGF0aXZlO2Rpc3BsYXk6aW5saW5lLWJsb2NrO21hcmdpbjouNXJlbSAuMjVyZW0gLjVyZW0gMDtwYWRkaW5nOjAuODVyZW0gMS41cmVtO2NvbG9yOiNmZmYgIWltcG9ydGFudDtib3JkZXItcmFkaXVzOjJweDtmb250LXNpemU6MS4xcmVtO2ZvbnQtd2VpZ2h0OjUwMDtmb250LXN0eWxlOm5vcm1hbDt0ZXh0LWRlY29yYXRpb246bm9uZTt6LWluZGV4OjE7YmFja2dyb3VuZDpsaW5lYXItZ3JhZGllbnQoNDVkZWcsICMwNjZGQzUsIzAwQTNGRil9LnNlYXJjaC1uby1yZXN1bHRzIGE6YWZ0ZXJ7Y29udGVudDpcIlwiO3Bvc2l0aW9uOmFic29sdXRlO2Rpc3BsYXk6YmxvY2s7dG9wOjA7cmlnaHQ6MDt3aWR0aDoxMDAlO2hlaWdodDoxMDAlO2JvcmRlci1yYWRpdXM6MnB4O2JhY2tncm91bmQ6bGluZWFyLWdyYWRpZW50KDQ1ZGVnLCAjMDBBM0ZGLCM2QkRGRkYpO29wYWNpdHk6MDt0cmFuc2l0aW9uOm9wYWNpdHkgLjJzO3otaW5kZXg6LTF9LnNlYXJjaC1uby1yZXN1bHRzIGE6aG92ZXJ7Y3Vyc29yOnBvaW50ZXJ9LnNlYXJjaC1uby1yZXN1bHRzIGE6aG92ZXI6YWZ0ZXJ7b3BhY2l0eToxfUBtZWRpYSAobWluLXdpZHRoOiA4MDFweCkgYW5kIChtYXgtd2lkdGg6IDEyMDBweCl7LmFsZ29saWEtYXV0b2NvbXBsZXRlIC5kcy1kcm9wZG93bi1tZW51e21heC13aWR0aDo3MHZ3fS5hbGdvbGlhLWF1dG9jb21wbGV0ZS5hbGdvbGlhLWF1dG9jb21wbGV0ZS1sZWZ0IC5kcy1kcm9wZG93bi1tZW51e2xlZnQ6MjguNXZ3ICFpbXBvcnRhbnQ7dG9wOi0uNDVyZW0gIWltcG9ydGFudH19QG1lZGlhIChtYXgtd2lkdGg6IDgwMHB4KXsuYWxnb2xpYS1hdXRvY29tcGxldGUgLmRzLWRyb3Bkb3duLW1lbnV7bWF4LXdpZHRoOjEwMHZ3O3dpZHRoOjEwMHZ3O21pbi13aWR0aDowfS5hbGdvbGlhLWF1dG9jb21wbGV0ZS5hbGdvbGlhLWF1dG9jb21wbGV0ZS1sZWZ0IC5kcy1kcm9wZG93bi1tZW51e2xlZnQ6LTFyZW0gIWltcG9ydGFudDt0b3A6MTEyJSAhaW1wb3J0YW50fX1AbWVkaWEgKG1heC13aWR0aDogNjAwcHgpey5hbGdvbGlhLWF1dG9jb21wbGV0ZSAuZHMtZHJvcGRvd24tbWVudXt3aWR0aDoxMDB2d30uYWxnb2xpYS1hdXRvY29tcGxldGUgLmRzLWRyb3Bkb3duLW1lbnUgLmRzLXN1Z2dlc3Rpb25ze3BhZGRpbmc6LjVyZW19fS5jYXJkc3tkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246cm93O3Bvc2l0aW9uOnJlbGF0aXZlO292ZXJmbG93OnZpc2libGU7Ym9yZGVyLXJhZGl1czoycHggMCAwIDJweDttaW4taGVpZ2h0OjcwMHB4O2JhY2tncm91bmQ6bGluZWFyLWdyYWRpZW50KDQ1ZGVnLCAjMTMwMDJELCM4RTFGQzMpfS5jYXJkcyBhe3RleHQtZGVjb3JhdGlvbjpub25lO2NvbG9yOmluaGVyaXR9LmNhcmRzICNsYW5kaW5nLWhpdmV7cG9zaXRpb246YWJzb2x1dGU7dG9wOjA7bGVmdDowO3otaW5kZXg6MH0uY2FyZHMgI2xhbmRpbmctaGl2ZSBwYXRoLC5jYXJkcyAjbGFuZGluZy1oaXZlIGVsbGlwc2V7ZmlsbDpyZ2JhKDE0NywxNDgsMjU1LDAuMjUpfS5jYXJkcyAubWFpbnt3aWR0aDo2NiU7cGFkZGluZzo1cmVtIDJ2dyA1cmVtIDQuNXZ3O2Rpc3BsYXk6ZmxleDtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO2FsaWduLWl0ZW1zOmNlbnRlcjtmbGV4LWRpcmVjdGlvbjpjb2x1bW47dGV4dC1hbGlnbjpjZW50ZXI7ei1pbmRleDoxfS5jYXJkcyAuZ3JvdXB7ZGlzcGxheTpmbGV4O2ZsZXgtd3JhcDp3cmFwO3dpZHRoOjM0JTtqdXN0aWZ5LWNvbnRlbnQ6ZmxleC1lbmR9LmNhcmRzIC5jYXJkLnNte2Rpc3BsYXk6ZmxleDtmbGV4LWRpcmVjdGlvbjpjb2x1bW47anVzdGlmeS1jb250ZW50OmNlbnRlcjt0ZXh0LWFsaWduOmxlZnQ7d2lkdGg6OTAlO3Bvc2l0aW9uOnJlbGF0aXZlO21hcmdpbi1ib3R0b206MXB4O3BhZGRpbmc6MCAzLjV2dyAwIDN2dzttaW4taGVpZ2h0OjE0MHB4O2JhY2tncm91bmQ6cmdiYSgyNCwyNCwzMiwwLjQpO3RyYW5zaXRpb246YmFja2dyb3VuZC1jb2xvciAuNHMsIHdpZHRoIC4yc30uY2FyZHMgLmNhcmQuc206bGFzdC1jaGlsZHttYXJnaW4tYm90dG9tOjB9LmNhcmRzIC5jYXJkLnNtOmhvdmVye2JhY2tncm91bmQ6IzAwQTNGRjt3aWR0aDoxMDAlfS5jYXJkcyAuY2FyZC5zbTpob3ZlciBoM3tmb250LXdlaWdodDo1MDA7Zm9udC1zaXplOjEuMnJlbX0uY2FyZHMgLmNhcmQuc206aG92ZXIgcHtvcGFjaXR5OjE7bWF4LWhlaWdodDozLjc1cmVtfS5jYXJkcyAuY2FyZC5zbSBoM3tmb250LXNpemU6MS4xcmVtO3RyYW5zaXRpb246YWxsIC4yczttYXJnaW46MH0uY2FyZHMgLmNhcmQuc20gcHttYXJnaW46LjVyZW0gMCAwO21heC1oZWlnaHQ6MDt3aWR0aDo4MCU7Y29sb3I6I2ZmZjtmb250LXNpemU6Ljk1cmVtO2xpbmUtaGVpZ2h0OjEuMjVyZW07b3BhY2l0eTowO3RyYW5zaXRpb246b3BhY2l0eSAuMnMgLjFzLCBtYXgtaGVpZ2h0IC4yc30uY2FyZHMgLmNhcmQgaDEsLmNhcmRzIC5jYXJkIGgyLC5jYXJkcyAuY2FyZCBoMywuY2FyZHMgLmNhcmQgaDR7Zm9udC13ZWlnaHQ6MzAwO2NvbG9yOiNmZmZ9LmNhcmRzIC5jYXJkIGgxe21hcmdpbjowIDAgMS4yNXJlbTtmb250LXNpemU6Mi41cmVtO3otaW5kZXg6MX0uY2FyZHMgLmNhcmQjZ2V0LXN0YXJ0ZWQgLmF2b2lkLXdyYXB7ZGlzcGxheTppbmxpbmUtYmxvY2t9LmNhcmRzIC5jYXJkI2dldC1zdGFydGVkIC5idG57cG9zaXRpb246cmVsYXRpdmU7ZGlzcGxheTpibG9jaztwYWRkaW5nOjEuMjVyZW0gNHJlbTtjb2xvcjojZmZmO2ZvbnQtc2l6ZToxLjJyZW07Zm9udC13ZWlnaHQ6NTAwO2JhY2tncm91bmQ6bGluZWFyLWdyYWRpZW50KDQ1ZGVnLCAjMDY2RkM1LCMwMEEzRkYpO3RyYW5zaXRpb246YmFja2dyb3VuZC1jb2xvciAuMnMsIGNvbG9yIC4ycztib3JkZXItcmFkaXVzOjJweDt6LWluZGV4OjF9LmNhcmRzIC5jYXJkI2dldC1zdGFydGVkIC5idG46YmVmb3Jle2NvbnRlbnQ6XCJcIjtwb3NpdGlvbjphYnNvbHV0ZTtkaXNwbGF5OmJsb2NrO3RvcDowO3JpZ2h0OjA7d2lkdGg6MTAwJTtoZWlnaHQ6MTAwJTtib3JkZXItcmFkaXVzOjJweDtiYWNrZ3JvdW5kOmxpbmVhci1ncmFkaWVudCg0NWRlZywgIzAwQTNGRiwjNkJERkZGKTtvcGFjaXR5OjA7dHJhbnNpdGlvbjpvcGFjaXR5IC4yczt6LWluZGV4Oi0xfS5jYXJkcyAuY2FyZCNnZXQtc3RhcnRlZCAuYnRuOmhvdmVyOmJlZm9yZXtvcGFjaXR5OjF9LmNhcmRzIC5jYXJkI2dldC1zdGFydGVkIC5iZXRhOmFmdGVye2NvbnRlbnQ6J2JldGEnO2Rpc3BsYXk6aW5saW5lLWJsb2NrO3ZlcnRpY2FsLWFsaWduOm1pZGRsZTtmb250LXN0eWxlOml0YWxpYztmb250LXNpemU6LjQ1ZW07bWFyZ2luOi04cHggMCAwIC41ZW07cGFkZGluZzouMXJlbSAuNnJlbSAuMTJyZW07Ym9yZGVyLXJhZGl1czoxcmVtO2JvcmRlcjowLjE1cmVtIHNvbGlkIHJnYmEoMjU1LDI1NSwyNTUsMC41KTt0cmFuc2l0aW9uOmJvcmRlci1jb2xvciAuMnN9QG1lZGlhIChtYXgtd2lkdGg6IDEyODBweCl7LmNhcmRzIC5jYXJkLmZ1bGx7cGFkZGluZzozLjVyZW19LmNhcmRzIC5jYXJkLnF1YXJ0ZXJ7d2lkdGg6NDglfX1AbWVkaWEgKG1heC13aWR0aDogMTE1MHB4KXsuY2FyZHN7ZmxleC1kaXJlY3Rpb246Y29sdW1ufS5jYXJkcyAubWFpbnt3aWR0aDoxMDAlfS5jYXJkcyAuZ3JvdXB7d2lkdGg6MTAwJX0uY2FyZHMgLmdyb3VwIC5jYXJkLnNte21hcmdpbi1yaWdodDoxcHg7cGFkZGluZzoycmVtO2ZsZXgtZ3JvdzoyO3dpZHRoOjQ5JTt0ZXh0LWFsaWduOmNlbnRlcn0uY2FyZHMgLmdyb3VwIC5jYXJkLnNtIGgze21hcmdpbjowIDAgLjVyZW07Zm9udC1zaXplOjEuMXJlbTtmb250LXdlaWdodDo1MDB9LmNhcmRzIC5ncm91cCAuY2FyZC5zbSBwe29wYWNpdHk6LjY7cG9zaXRpb246cmVsYXRpdmU7bWF4LWhlaWdodDpmaXQtY29udGVudDt3aWR0aDphdXRvO21hcmdpbjowfS5jYXJkcyAuZ3JvdXAgLmNhcmQuc206aG92ZXJ7YmFja2dyb3VuZDojMDBBM0ZGfS5jYXJkcyAuZ3JvdXAgLmNhcmQuc206aG92ZXIgaDN7dHJhbnNmb3JtOm5vbmV9LmNhcmRzIC5ncm91cCAuY2FyZC5zbTpob3ZlciBwe29wYWNpdHk6MTttYXgtaGVpZ2h0OmZpdC1jb250ZW50fX1AbWVkaWEgKG1heC13aWR0aDogNjAwcHgpey5jYXJkcyAuZ3JvdXB7ZmxleC1kaXJlY3Rpb246Y29sdW1ufS5jYXJkcyAuZ3JvdXAgLmNhcmQuc217d2lkdGg6MTAwJTttYXgtd2lkdGg6MTAwJTtwYWRkaW5nOjEuMjVyZW19LmNhcmRzIC5jYXJkIGgxe2ZvbnQtc2l6ZToycmVtfS5jYXJkcyAuY2FyZC5tYWlue3BhZGRpbmc6Mi41cmVtfS5jYXJkcyAuY2FyZC5tYWluI2dldC1zdGFydGVkIC5idG57Zm9udC1zaXplOjFyZW07bWFyZ2luOjAgMCAuMzVyZW19fS5jdXJyZW50LXRpbWVzdGFtcCwuY3VycmVudC1kYXRlLC5jdXJyZW50LXRpbWUsLmVudGVycHJpc2UtZW9sLWRhdGV7Y29sb3I6I0Q0RDdERDtkaXNwbGF5OmlubGluZS1ibG9jaztmb250LWZhbWlseTpcIlByb3hpbWEgTm92YVwiLHNhbnMtc2VyaWY7d2hpdGUtc3BhY2U6bm93cmFwfS5ub3dyYXB7d2hpdGUtc3BhY2U6bm93cmFwfS5lcnJvci1wYWdle3BhZGRpbmc6MXJlbTtkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO3ZlcnRpY2FsLWFsaWduOm1pZGRsZTtqdXN0aWZ5LWNvbnRlbnQ6c3BhY2UtYXJvdW5kfS5lcnJvci1wYWdlIC5lcnJvci1jb250ZW50e21hcmdpbi10b3A6MTB2aDttYXgtd2lkdGg6MzgwcHh9LmVycm9yLXBhZ2UgLmVycm9yLWNvZGV7ZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtqdXN0aWZ5LWNvbnRlbnQ6c3BhY2UtYXJvdW5kO21hcmdpbjowIGF1dG87d2lkdGg6MTVyZW07aGVpZ2h0OjE1cmVtO21heC13aWR0aDo4MHZ3O21heC1oZWlnaHQ6ODB2dztib3JkZXItcmFkaXVzOjUwJTtib3gtc2hhZG93OjVweCA1cHggMzBweCByZ2JhKDE1LDE0LDIxLDAuNSl9LmVycm9yLXBhZ2UgLmVycm9yLWNvZGUgLmVycm9yLWNvZGUtYm9yZGVye2Rpc3BsYXk6ZmxleDthbGlnbi1pdGVtczpjZW50ZXI7anVzdGlmeS1jb250ZW50OnNwYWNlLWFyb3VuZDtib3JkZXI6MnB4IHNvbGlkIHJnYmEoMCwxNjMsMjU1LDAuNSk7d2lkdGg6OTAlO2hlaWdodDo5MCU7Ym9yZGVyLXJhZGl1czo1MCV9LmVycm9yLXBhZ2UgLmVycm9yLWNvZGUgaDF7Y29sb3I6IzAwQTNGRjtmb250LXNpemU6NXJlbTtmb250LXdlaWdodDozMDA7dGV4dC1hbGlnbjpjZW50ZXJ9LmVycm9yLXBhZ2UgYXtjb2xvcjojMDBBM0ZGO3RleHQtZGVjb3JhdGlvbjpub25lO2ZvbnQtd2VpZ2h0OmJvbGR9LmVycm9yLXBhZ2UgYTpob3Zlcntjb2xvcjojZmZmfS5lcnJvci1wYWdlIC53YXlmaW5kaW5ne2Rpc3BsYXk6ZmxleDtqdXN0aWZ5LWNvbnRlbnQ6c3BhY2UtYXJvdW5kO2FsaWduLWNvbnRlbnQ6Y2VudGVyO21hcmdpbjoycmVtIDAgMS41cmVtfS5lcnJvci1wYWdlIC53YXlmaW5kaW5nIC5idG57ZGlzcGxheTpmbGV4O3Bvc2l0aW9uOnJlbGF0aXZlO2ZsZXgtZ3JvdzoxO21hcmdpbi1yaWdodDo0cHg7cGFkZGluZzouNzVyZW0gMXJlbTtib3JkZXItcmFkaXVzOjJweDt0ZXh0LWFsaWduOmNlbnRlcjtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO2FsaWduLWl0ZW1zOmNlbnRlcjtjb2xvcjojZmZmO3RyYW5zaXRpb246YmFja2dyb3VuZC1jb2xvciAuMnM7ei1pbmRleDoxO2JhY2tncm91bmQ6bGluZWFyLWdyYWRpZW50KDQ1ZGVnLCAjMDY2RkM1LCMwMEEzRkYpfS5lcnJvci1wYWdlIC53YXlmaW5kaW5nIC5idG4uYmFjazpiZWZvcmV7Y29udGVudDpcIlxcZTkwYVwiO2ZvbnQtZmFtaWx5OlwiaWNvbW9vbi12MlwiO21hcmdpbi1yaWdodDouMzVyZW07dmVydGljYWwtYWxpZ246dGV4dC10b3B9LmVycm9yLXBhZ2UgLndheWZpbmRpbmcgLmJ0bjphZnRlcntjb250ZW50OlwiXCI7cG9zaXRpb246YWJzb2x1dGU7ZGlzcGxheTpibG9jazt0b3A6MDtyaWdodDowO3dpZHRoOjEwMCU7aGVpZ2h0OjEwMCU7Ym9yZGVyLXJhZGl1czoycHg7YmFja2dyb3VuZDpsaW5lYXItZ3JhZGllbnQoNDVkZWcsICMwMEEzRkYsIzZCREZGRik7b3BhY2l0eTowO3RyYW5zaXRpb246b3BhY2l0eSAuMnM7ei1pbmRleDotMX0uZXJyb3ItcGFnZSAud2F5ZmluZGluZyAuYnRuOmhvdmVye2N1cnNvcjpwb2ludGVyfS5lcnJvci1wYWdlIC53YXlmaW5kaW5nIC5idG46aG92ZXI6YWZ0ZXJ7b3BhY2l0eToxfS5lcnJvci1wYWdlIHB7Y29sb3I6I0Q0RDdERDtsaW5lLWhlaWdodDoxLjVyZW19LmZvb3Rlci13aWRnZXRze3Bvc2l0aW9uOmZpeGVkO2JvdHRvbToxcmVtO3JpZ2h0OjFyZW07d2lkdGg6YXV0bztoZWlnaHQ6YXV0bztkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246Y29sdW1uO2p1c3RpZnktY29udGVudDpmbGV4LWVuZDthbGlnbi1pdGVtczpmbGV4LWVuZDt6LWluZGV4OjEwMH0uZm9vdGVyLXdpZGdldHMgLndpZGdldHtoZWlnaHQ6NTBweDt3aWR0aDo1MHB4O2JvcmRlci1yYWRpdXM6NnB4O3Bvc2l0aW9uOnJlbGF0aXZlO2JveC1zaGFkb3c6MnB4IDJweCA2cHggcmdiYSgxNSwxNCwyMSwwLjUpO2NvbG9yOiNmZmZ9LmZvb3Rlci13aWRnZXRzIC53aWRnZXQ6bm90KDpsYXN0LWNoaWxkKXttYXJnaW4tYm90dG9tOjVweH0uZm9vdGVyLXdpZGdldHMgLndpZGdldDpiZWZvcmV7Y29udGVudDphdHRyKGRhdGEtdG9vbHRpcCk7cGFkZGluZzouMjVyZW0gLjVyZW07ZGlzcGxheTpmbGV4O3Bvc2l0aW9uOmFic29sdXRlO3RvcDoxMXB4O3JpZ2h0OjYwcHg7d2lkdGg6YXV0bzt3aGl0ZS1zcGFjZTpub3dyYXA7Zm9udC1zaXplOi45cmVtO2ZvbnQtd2VpZ2h0OmJvbGQ7Ym9yZGVyLXJhZGl1czo2cHg7YmFja2dyb3VuZDpsaW5lYXItZ3JhZGllbnQoMjcwZGVnLCAjZDMwOTcxLCM5YjJhZmYpO3BvaW50ZXItZXZlbnRzOm5vbmU7ei1pbmRleDotMTtvcGFjaXR5OjA7dHJhbnNmb3JtOnRyYW5zbGF0ZVgoMTVweCk7dHJhbnNpdGlvbjpvcGFjaXR5IC4ycywgdHJhbnNmb3JtIC4yc30uZm9vdGVyLXdpZGdldHMgLndpZGdldDphZnRlcntjb250ZW50OlwiXCI7cG9zaXRpb246YWJzb2x1dGU7dG9wOjE0cHg7cmlnaHQ6NTZweDt3aWR0aDowcHg7aGVpZ2h0OjBweDtvcGFjaXR5OjA7dHJhbnNmb3JtOnRyYW5zbGF0ZVgoMTVweCk7dHJhbnNpdGlvbjpvcGFjaXR5IC4ycywgdHJhbnNmb3JtIC4yc30uZm9vdGVyLXdpZGdldHMgLndpZGdldDpob3ZlcntjdXJzb3I6cG9pbnRlcn0uZm9vdGVyLXdpZGdldHMgLndpZGdldDpob3ZlcjpiZWZvcmUsLmZvb3Rlci13aWRnZXRzIC53aWRnZXQ6aG92ZXI6YWZ0ZXJ7b3BhY2l0eToxO3RyYW5zZm9ybTp0cmFuc2xhdGVYKDApfS5mb290ZXItd2lkZ2V0cyAud2lkZ2V0Lm1hZ2VudGF7YmFja2dyb3VuZDpsaW5lYXItZ3JhZGllbnQoOTBkZWcsICNkMzA5NzEsIzliMmFmZil9LmZvb3Rlci13aWRnZXRzIC53aWRnZXQubWFnZW50YTpiZWZvcmV7YmFja2dyb3VuZDpsaW5lYXItZ3JhZGllbnQoMjcwZGVnLCAjZDMwOTcxLCM5YjJhZmYpfS5mb290ZXItd2lkZ2V0cyAud2lkZ2V0Lm1hZ2VudGE6YWZ0ZXJ7Ym9yZGVyLXN0eWxlOnNvbGlkO2JvcmRlci13aWR0aDoxMHB4IDAgMTBweCA1cHg7Ym9yZGVyLWNvbG9yOnRyYW5zcGFyZW50IHRyYW5zcGFyZW50IHRyYW5zcGFyZW50ICNkMzA5NzF9LmZvb3Rlci13aWRnZXRzIC53aWRnZXQuYmx1ZXtjb2xvcjpyZ2JhKDIsMTAsNzEsMC43KTtiYWNrZ3JvdW5kOmxpbmVhci1ncmFkaWVudCgyNzBkZWcsICMwMEEzRkYsIzVlZTRlNCl9LmZvb3Rlci13aWRnZXRzIC53aWRnZXQuYmx1ZTpiZWZvcmV7YmFja2dyb3VuZDpsaW5lYXItZ3JhZGllbnQoOTBkZWcsICMwMEEzRkYsIzVlZTRlNCl9LmZvb3Rlci13aWRnZXRzIC53aWRnZXQuYmx1ZTphZnRlcntib3JkZXItc3R5bGU6c29saWQ7Ym9yZGVyLXdpZHRoOjEwcHggMCAxMHB4IDVweDtib3JkZXItY29sb3I6dHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQgIzVlZTRlNH0uY3VzdG9tLXRpbWUtdHJpZ2dlciBhe2Rpc3BsYXk6ZmxleDtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO2FsaWduLWl0ZW1zOmNlbnRlcjt3aWR0aDoxMDAlO2hlaWdodDoxMDAlO2ZvbnQtc2l6ZToxLjJyZW07Y29sb3I6cmdiYSgyLDEwLDcxLDAuOCk7dGV4dC1kZWNvcmF0aW9uOm5vbmV9LmFzay1haS10cmlnZ2VyIC5hc2stYWktb3Blbnt3aWR0aDoxMDAlO2hlaWdodDoxMDAlO2Rpc3BsYXk6ZmxleDtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO3RleHQtYWxpZ246Y2VudGVyO2FsaWduLWl0ZW1zOmNlbnRlcjtmbGV4LWRpcmVjdGlvbjpjb2x1bW47Zm9udC1zaXplOi44cmVtO2ZvbnQtd2VpZ2h0OmJvbGR9LmFzay1haS10cmlnZ2VyIC5hc2stYWktb3BlbiAuaWNvbi1pbmZsdXgtbG9nb3ttYXJnaW4tYm90dG9tOi4xNXJlbTtmb250LXNpemU6MXJlbX0uYXNrLWFpLXRyaWdnZXIgLmFzay1haS1vcGVuOmhvdmVye2N1cnNvcjpwb2ludGVyfUBrZXlmcmFtZXMgZmFkZUluQW5pbWF0aW9uezAle29wYWNpdHk6MH0xMDAle29wYWNpdHk6MX19QG1lZGlhIChtYXgtd2lkdGg6IDYwMHB4KXsuZm9vdGVyLXdpZGdldHN7Ym90dG9tOi43NXJlbTtyaWdodDouNzVyZW19fS5tb2RhbHtkaXNwbGF5Om5vbmU7cGFkZGluZzoxcmVtO3Bvc2l0aW9uOmZpeGVkO3RvcDowO3dpZHRoOjEwMCU7aGVpZ2h0OjEwMCU7ei1pbmRleDoxMDF9Lm1vZGFsIC5tb2RhbC1vdmVybGF5e3Bvc2l0aW9uOmFic29sdXRlO3RvcDowO2xlZnQ6MDt3aWR0aDoxMDAlO2hlaWdodDoxMDAlO2JhY2tncm91bmQ6bGluZWFyLWdyYWRpZW50KDQ1ZGVnLCAjQkUyRUU0LCMwMEEzRkYpO29wYWNpdHk6Ljg1fS5tb2RhbCAubW9kYWwtd3JhcHBlcntkaXNwbGF5OmZsZXg7anVzdGlmeS1jb250ZW50OmNlbnRlcjthbGlnbi1pdGVtczpmbGV4LXN0YXJ0fS5tb2RhbCAubW9kYWwtYm9keXtwb3NpdGlvbjpyZWxhdGl2ZTtkaXNwbGF5OmZsZXg7b3ZlcmZsb3cteTphdXRvO292ZXJmbG93LXg6aGlkZGVuO21heC13aWR0aDo2NTBweDttYXgtaGVpZ2h0Ojk3LjV2aDttYXJnaW4tdG9wOjEwdmg7cGFkZGluZzouNzVyZW0gMnJlbSAxLjVyZW07Ym9yZGVyLXJhZGl1czozcHg7YmFja2dyb3VuZDojMTQxNDFGO2NvbG9yOiNENEQ3REQ7Zm9udC1zaXplOjFyZW07dHJhbnNpdGlvbjptYXJnaW4gLjRzO3Njcm9sbC1iZWhhdmlvcjpzbW9vdGg7LXdlYmtpdC1vdmVyZmxvdy1zY3JvbGxpbmc6dG91Y2h9Lm1vZGFsIC5tb2RhbC1ib2R5Ojotd2Via2l0LXNjcm9sbGJhcnt3aWR0aDo4cHh9Lm1vZGFsIC5tb2RhbC1ib2R5Ojotd2Via2l0LXNjcm9sbGJhci10cmFja3tiYWNrZ3JvdW5kOnJnYmEoNTYsNTYsNzAsMC4yKTtib3JkZXItcmFkaXVzOjRweH0ubW9kYWwgLm1vZGFsLWJvZHk6Oi13ZWJraXQtc2Nyb2xsYmFyLXRodW1ie2JhY2tncm91bmQ6cmdiYSgyMTIsMjE1LDIyMSwwLjMpO2JvcmRlci1yYWRpdXM6NHB4fS5tb2RhbCAubW9kYWwtYm9keTo6LXdlYmtpdC1zY3JvbGxiYXItdGh1bWI6aG92ZXJ7YmFja2dyb3VuZDpyZ2JhKDIxMiwyMTUsMjIxLDAuNSl9Lm1vZGFsLm9wZW4gLm1vZGFsLWJvZHl7bWFyZ2luLXRvcDowfS5tb2RhbCAjbW9kYWwtY2xvc2V7cG9zaXRpb246YWJzb2x1dGU7cGFkZGluZzouMjVyZW07dG9wOjFyZW07cmlnaHQ6MXJlbTtjb2xvcjpyZ2JhKDIxMiwyMTUsMjIxLDAuNSk7dHJhbnNpdGlvbjpjb2xvciAuMnM7dGV4dC1kZWNvcmF0aW9uOm5vbmV9Lm1vZGFsICNtb2RhbC1jbG9zZTpob3Zlcntjb2xvcjojRDREN0REfS5tb2RhbCAubW9kYWwtY29udGVudHtkaXNwbGF5Om5vbmU7b3ZlcmZsb3c6dmlzaWJsZTt3aWR0aDo1ODZweDttYXgtd2lkdGg6MTAwJTtmbGV4LXNocmluazowfS5tb2RhbCAubW9kYWwtY29udGVudCBoM3tjb2xvcjojZmZmO2ZvbnQtd2VpZ2h0OjUwMDtmb250LXNpemU6MS40cmVtO21hcmdpbi1ib3R0b206MXJlbX0ubW9kYWwgLm1vZGFsLWNvbnRlbnQgaDR7Y29sb3I6I2ZmZjtmb250LXdlaWdodDo1MDA7bWFyZ2luOjFyZW0gMCAwLjVyZW0gMnB4fS5tb2RhbCAubW9kYWwtY29udGVudCBoNXttYXJnaW46LjVyZW0gMCAwO2NvbG9yOiNGQUZBRkN9Lm1vZGFsIC5tb2RhbC1jb250ZW50IHAsLm1vZGFsIC5tb2RhbC1jb250ZW50IGxpe21hcmdpbjouMjVyZW0gMDtsaW5lLWhlaWdodDoxLjVyZW19Lm1vZGFsIC5tb2RhbC1jb250ZW50IHAgc3Ryb25nLC5tb2RhbCAubW9kYWwtY29udGVudCBsaSBzdHJvbmd7Zm9udC13ZWlnaHQ6NTAwO2NvbG9yOiNGQUZBRkN9Lm1vZGFsIC5tb2RhbC1jb250ZW50IHAubm90ZSwubW9kYWwgLm1vZGFsLWNvbnRlbnQgbGkubm90ZXtwYWRkaW5nLXRvcDoxLjI1cmVtO21hcmdpbi10b3A6MS41cmVtO2NvbG9yOnJnYmEoMjEyLDIxNSwyMjEsMC41KTtib3JkZXItdG9wOjFweCBzb2xpZCByZ2JhKDIxMiwyMTUsMjIxLDAuMjUpO2ZvbnQtc2l6ZTouOXJlbTtmb250LXN0eWxlOml0YWxpY30ubW9kYWwgLm1vZGFsLWNvbnRlbnQgYXtjb2xvcjojMDBBM0ZGO2ZvbnQtd2VpZ2h0OjUwMDt0ZXh0LWRlY29yYXRpb246bm9uZTt0cmFuc2l0aW9uOmNvbG9yIC4yc30ubW9kYWwgLm1vZGFsLWNvbnRlbnQgYTpob3Zlcntjb2xvcjojZmZmfS5tb2RhbCAucHJvZHVjdHN7ZGlzcGxheTpmbGV4O2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjtmbGV4LXdyYXA6d3JhcDtmbGV4LWdyb3c6MTtqdXN0aWZ5LWNvbnRlbnQ6ZmxleC1zdGFydH0ubW9kYWwgLnByb2R1Y3QgLnByb3ZpZGVyc3tkaXNwbGF5OmZsZXg7ZmxleC13cmFwOndyYXA7cGFkZGluZzouNXJlbSAxcmVtO2JhY2tncm91bmQ6cmdiYSgyMTIsMjE1LDIyMSwwLjA1KTtib3JkZXItcmFkaXVzOjJweH0ubW9kYWwgLnByb2R1Y3QgLnByb3ZpZGVycyAucHJvdmlkZXJ7ZmxleC1ncm93OjF9Lm1vZGFsIC5wcm9kdWN0IC5wcm92aWRlcnMgLnByb3ZpZGVyOm5vdCg6bGFzdC1jaGlsZCl7bWFyZ2luLXJpZ2h0OjFyZW19Lm1vZGFsIC5wcm9kdWN0IC5wcm92aWRlcnMgdWx7bWFyZ2luOi41cmVtIC41cmVtIC41cmVtIDA7cGFkZGluZzowO2xpc3Qtc3R5bGU6bm9uZX0ubW9kYWwgLnByb2R1Y3QgLnByb3ZpZGVycyB1bC5jbHVzdGVyc3twYWRkaW5nLWxlZnQ6MS43NXJlbX0ubW9kYWwgLnByb2R1Y3QgLnByb3ZpZGVycyBwLnJlZ2lvbiAuZmFrZS1yYWRpb3twb3NpdGlvbjpyZWxhdGl2ZTtkaXNwbGF5OmlubGluZS1ibG9jaztoZWlnaHQ6MS4xNWVtO3dpZHRoOjEuMTVlbTttYXJnaW46MCAwLjNyZW0gMCAwLjFyZW07Ym9yZGVyLXJhZGl1czoycHg7Ym9yZGVyOjEuNXB4IHNvbGlkIHRyYW5zcGFyZW50O2JhY2tncm91bmQ6cmdiYSgyMTIsMjE1LDIyMSwwLjA1KTtib3JkZXI6MS41cHggc29saWQgcmdiYSgyMTIsMjE1LDIyMSwwLjIpO3ZlcnRpY2FsLWFsaWduOnRleHQtdG9wO2N1cnNvcjpwb2ludGVyfS5tb2RhbCAucHJvZHVjdCAucHJvdmlkZXJzIHAucmVnaW9uIC5mYWtlLXJhZGlvOmFmdGVye2NvbnRlbnQ6XCJcIjtwb3NpdGlvbjphYnNvbHV0ZTtkaXNwbGF5OmJsb2NrO2hlaWdodDouNXJlbTt3aWR0aDouNXJlbTt0b3A6LjIzcmVtO2xlZnQ6LjIzcmVtO2JvcmRlci1yYWRpdXM6NTAlO2JhY2tncm91bmQ6cmdiYSgyMTIsMjE1LDIyMSwwLjMpO29wYWNpdHk6MDt0cmFuc2l0aW9uOm9wYWNpdHkgLjJzfS5tb2RhbCAucHJvZHVjdCAucHJvdmlkZXJzIHAucmVnaW9uIC5mYWtlLXJhZGlvLmNoZWNrZWQ6YWZ0ZXJ7b3BhY2l0eToxfS5tb2RhbCBsaS5jdXN0b217ZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOmNlbnRlcn0ubW9kYWwgI2N1c3RvbS11cmx7ZGlzcGxheTppbmxpbmUtYmxvY2s7d2lkdGg6MTAwJTtwYWRkaW5nLWxlZnQ6LjVyZW07cG9zaXRpb246cmVsYXRpdmV9Lm1vZGFsICNjdXN0b20tdXJsOmFmdGVye2Rpc3BsYXk6bm9uZTtjb250ZW50OmF0dHIoZGF0YS1tZXNzYWdlKTtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6LTEuOHJlbTtyaWdodDowO2ZvbnQtc2l6ZTouODVyZW07Zm9udC13ZWlnaHQ6NTAwO2NvbG9yOiNEQzRFNTh9Lm1vZGFsICNjdXN0b20tdXJsLmVycm9yOmFmdGVye2Rpc3BsYXk6YmxvY2t9Lm1vZGFsICNjdXN0b20tdXJsLmVycm9yIGlucHV0I2N1c3RvbS11cmwtZmllbGQsLm1vZGFsICNjdXN0b20tdXJsLmVycm9yIGlucHV0I2RlZGljYXRlZC11cmwtZmllbGQsLm1vZGFsICNjdXN0b20tdXJsLmVycm9yIGlucHV0I2NsdXN0ZXJlZC11cmwtZmllbGR7Ym9yZGVyLWNvbG9yOiNEQzRFNTh9Lm1vZGFsICNjdXN0b20tdXJsLmVycm9yIGlucHV0I2N1c3RvbS11cmwtZmllbGQ6Zm9jdXMsLm1vZGFsICNjdXN0b20tdXJsLmVycm9yIGlucHV0I2RlZGljYXRlZC11cmwtZmllbGQ6Zm9jdXMsLm1vZGFsICNjdXN0b20tdXJsLmVycm9yIGlucHV0I2NsdXN0ZXJlZC11cmwtZmllbGQ6Zm9jdXN7Ym9yZGVyLWNvbG9yOiNEQzRFNTg7Ym94LXNoYWRvdzoxcHggMXB4IDEwcHggcmdiYSgyMjAsNzgsODgsMC41KX0ubW9kYWwgI2N1c3RvbS11cmwgaW5wdXQjY3VzdG9tLXVybC1maWVsZCwubW9kYWwgI2N1c3RvbS11cmwgaW5wdXQjZGVkaWNhdGVkLXVybC1maWVsZCwubW9kYWwgI2N1c3RvbS11cmwgaW5wdXQjY2x1c3RlcmVkLXVybC1maWVsZHtmb250LWZhbWlseTpcIlByb3hpbWEgTm92YVwiLHNhbnMtc2VyaWY7Zm9udC13ZWlnaHQ6NTAwO2JhY2tncm91bmQ6IzE4MTgyMDtib3JkZXItcmFkaXVzOjJweDtib3JkZXI6MXB4IHNvbGlkICMxQTFBMkE7cGFkZGluZzouNWVtO3dpZHRoOjEwMCU7Y29sb3I6I2ZmZjt0cmFuc2l0aW9uLXByb3BlcnR5OmJvcmRlciwgYm94LXNoYWRvdzt0cmFuc2l0aW9uLWR1cmF0aW9uOi4ycztib3gtc2hhZG93OjJweCAycHggNnB4IHJnYmEoMTUsMTQsMjEsMC41KX0ubW9kYWwgI2N1c3RvbS11cmwgaW5wdXQjY3VzdG9tLXVybC1maWVsZDpmb2N1cywubW9kYWwgI2N1c3RvbS11cmwgaW5wdXQjZGVkaWNhdGVkLXVybC1maWVsZDpmb2N1cywubW9kYWwgI2N1c3RvbS11cmwgaW5wdXQjY2x1c3RlcmVkLXVybC1maWVsZDpmb2N1c3tvdXRsaW5lOm5vbmU7Ym9yZGVyLWNvbG9yOiMwMEEzRkY7Ym94LXNoYWRvdzoxcHggMXB4IDEwcHggcmdiYSgwLDE2MywyNTUsMC41KTtib3JkZXItcmFkaXVzOjJweH0ubW9kYWwgI2N1c3RvbS11cmwgaW5wdXQjY3VzdG9tLXVybC1maWVsZDo6cGxhY2Vob2xkZXIsLm1vZGFsICNjdXN0b20tdXJsIGlucHV0I2RlZGljYXRlZC11cmwtZmllbGQ6OnBsYWNlaG9sZGVyLC5tb2RhbCAjY3VzdG9tLXVybCBpbnB1dCNjbHVzdGVyZWQtdXJsLWZpZWxkOjpwbGFjZWhvbGRlcntjb2xvcjpyZ2JhKDI1NSwyNTUsMjU1LDAuNDUpO2ZvbnQtd2VpZ2h0Om5vcm1hbDtmb250LXN0eWxlOml0YWxpY30ubW9kYWwgI2RlZGljYXRlZC11cmxzIC5wcm92aWRlcnMsLm1vZGFsICNjbHVzdGVyZWQtdXJscyAucHJvdmlkZXJze3BhZGRpbmctYm90dG9tOjFyZW19Lm1vZGFsICNkZWRpY2F0ZWQtdXJscyAjY3VzdG9tLXVybCwubW9kYWwgI2NsdXN0ZXJlZC11cmxzICNjdXN0b20tdXJse21hcmdpbi10b3A6LjVyZW07cGFkZGluZzowfS5tb2RhbCAucmFkaW97cG9zaXRpb246cmVsYXRpdmU7ZGlzcGxheTppbmxpbmUtYmxvY2s7aGVpZ2h0OjEuMTVlbTt3aWR0aDoxLjE1ZW07YmFja2dyb3VuZDpyZ2JhKDIxMiwyMTUsMjIxLDAuMDUpO21hcmdpbjowIC4zcmVtIDAgLjFyZW07dmVydGljYWwtYWxpZ246dGV4dC10b3A7Ym9yZGVyLXJhZGl1czoycHg7Y3Vyc29yOnBvaW50ZXI7Ym9yZGVyOjEuNXB4IHNvbGlkIHJnYmEoMjEyLDIxNSwyMjEsMC4yKTt1c2VyLXNlbGVjdDpub25lfS5tb2RhbCBpbnB1dFt0eXBlPSdyYWRpbydde21hcmdpbi1yaWdodDotMS4xcmVtO3BhZGRpbmc6MDt2ZXJ0aWNhbC1hbGlnbjp0b3A7b3BhY2l0eTowO2N1cnNvcjpwb2ludGVyfS5tb2RhbCBpbnB1dFt0eXBlPSdyYWRpbyddKy5yYWRpbzphZnRlcntjb250ZW50OlwiXCI7ZGlzcGxheTpibG9jaztwb3NpdGlvbjphYnNvbHV0ZTtoZWlnaHQ6LjVyZW07d2lkdGg6LjVyZW07Ym9yZGVyLXJhZGl1czo1MCU7YmFja2dyb3VuZDojMDBBM0ZGO3RvcDo1MCU7bGVmdDo1MCU7b3BhY2l0eTowO3RyYW5zZm9ybTpzY2FsZSgyKSB0cmFuc2xhdGUoLTIwJSwgLTIwJSk7dHJhbnNpdGlvbjphbGwgLjJzfS5tb2RhbCBpbnB1dFt0eXBlPSdyYWRpbyddOmNoZWNrZWQrLnJhZGlvOmFmdGVye29wYWNpdHk6MTt0cmFuc2Zvcm06c2NhbGUoMSkgdHJhbnNsYXRlKC01MCUsIC01MCUpfS5tb2RhbCB0ZDphZnRlciwubW9kYWwgbGFiZWw6YWZ0ZXIsLm1vZGFsIGxpOmFmdGVye2Rpc3BsYXk6aW5saW5lO3ZlcnRpY2FsLWFsaWduOm1pZGRsZTtmb250LXN0eWxlOml0YWxpYztmb250LXdlaWdodDo1MDA7Zm9udC1zaXplOi43NWVtO21hcmdpbi1sZWZ0Oi4zNXJlbTtwYWRkaW5nOi4xcmVtIC4zcmVtIC4xMnJlbSAuMzJyZW07bGluZS1oZWlnaHQ6Ljc1cmVtO2JvcmRlci1yYWRpdXM6MXJlbX0ubW9kYWwgdGQuYmV0YTphZnRlciwubW9kYWwgbGFiZWwuYmV0YTphZnRlciwubW9kYWwgbGkuYmV0YTphZnRlcntjb250ZW50OlwiYmV0YVwiO2NvbG9yOiNmZmY7YmFja2dyb3VuZDpsaW5lYXItZ3JhZGllbnQoNDVkZWcsICMwNjZGQzUsIzAwQTNGRil9Lm1vZGFsIGxhYmVsOmFmdGVye21hcmdpbi1sZWZ0Oi4xNXJlbX0ubW9kYWwgI3ByZWYtdGFic3twYWRkaW5nOjA7bWFyZ2luOjAgMCAtNXB4O2xpc3Qtc3R5bGU6bm9uZTtkaXNwbGF5OmZsZXg7anVzdGlmeS1jb250ZW50OnNwYWNlLWJldHdlZW47YWxpZ24taXRlbXM6Y2VudGVyfS5tb2RhbCAucHJlZi10YWJ7cGFkZGluZzouNzVyZW0gMS4yNXJlbTttYXJnaW4tcmlnaHQ6NXB4O3RleHQtYWxpZ246Y2VudGVyO2ZvbnQtd2VpZ2h0OmJvbGQ7d2lkdGg6NDklO2NvbG9yOnJnYmEoMjEyLDIxNSwyMjEsMC43KTtiYWNrZ3JvdW5kOnJnYmEoMjEyLDIxNSwyMjEsMC4wNSk7Ym9yZGVyLXJhZGl1czoycHg7Y3Vyc29yOnBvaW50ZXI7dHJhbnNpdGlvbjpjb2xvciAuMnN9Lm1vZGFsIC5wcmVmLXRhYjpsYXN0LWNoaWxke21hcmdpbi1yaWdodDowfS5tb2RhbCAucHJlZi10YWI6aG92ZXJ7Y29sb3I6IzAwQTNGRn0ubW9kYWwgLnByZWYtdGFiLmFjdGl2ZXtjb2xvcjojZmZmO2JhY2tncm91bmQ6bGluZWFyLWdyYWRpZW50KDQ1ZGVnLCAjMDY2RkM1LCMwMEEzRkYpfS5tb2RhbCAucHJlZi10YWIgc3Bhbi5lcGhlbWVyYWx7ZGlzcGxheTppbmxpbmV9Lm1vZGFsIC5wcmVmLXRhYiBzcGFuLmFiYnI6YWZ0ZXJ7ZGlzcGxheTpub25lO2NvbnRlbnQ6XCIuXCJ9Lm1vZGFsIC5wcm9kdWN0LmFjdGl2ZXtkaXNwbGF5OmJsb2NrfS5tb2RhbCAucHJvZHVjdC5pbmFjdGl2ZXtkaXNwbGF5Om5vbmV9QG1lZGlhIChtYXgtd2lkdGg6IDYwMHB4KXsubW9kYWwgLnByZWYtdGFiIHNwYW4uZXBoZW1lcmFse2Rpc3BsYXk6bm9uZX0ubW9kYWwgLnByZWYtdGFiIHNwYW4uYWJicjphZnRlcntkaXNwbGF5OmlubGluZX19Lm1vZGFsIC5mb3JtLWJ1dHRvbnN7ZGlzcGxheTpmbGV4O2p1c3RpZnktY29udGVudDplbmQ7bWFyZ2luLXRvcDoxcmVtfS5tb2RhbCB0ZXh0YXJlYXtyZXNpemU6dmVydGljYWw7Zm9udC1mYW1pbHk6XCJQcm94aW1hIE5vdmFcIixzYW5zLXNlcmlmO2ZvbnQtd2VpZ2h0OjUwMDtiYWNrZ3JvdW5kOiMxQTFBMkE7Ym9yZGVyLXJhZGl1czoycHg7Ym9yZGVyOjFweCBzb2xpZCAjMUExQTJBO21hcmdpbi10b3A6MXJlbTtwYWRkaW5nOi41ZW07d2lkdGg6MTAwJTtoZWlnaHQ6OHJlbTtjb2xvcjojZmZmO3RyYW5zaXRpb24tcHJvcGVydHk6Ym9yZGVyLCBib3gtc2hhZG93O3RyYW5zaXRpb24tZHVyYXRpb246LjJzO2JveC1zaGFkb3c6MnB4IDJweCA2cHggcmdiYSgxNSwxNCwyMSwwLjUpfS5tb2RhbCB0ZXh0YXJlYTpmb2N1c3tvdXRsaW5lOm5vbmU7Ym9yZGVyLWNvbG9yOiMwMEEzRkY7Ym94LXNoYWRvdzoxcHggMXB4IDEwcHggcmdiYSgwLDE2MywyNTUsMC41KTtib3JkZXItcmFkaXVzOjJweH0ubW9kYWwgdGV4dGFyZWE6OnBsYWNlaG9sZGVye2NvbG9yOnJnYmEoMjU1LDI1NSwyNTUsMC40NSk7Zm9udC13ZWlnaHQ6bm9ybWFsO2ZvbnQtc3R5bGU6aXRhbGljfS5tb2RhbCBpbnB1dFt0eXBlPSdzdWJtaXQnXXtwYWRkaW5nOjAuNjVyZW0gMS4xcmVtO2JhY2tncm91bmQ6bGluZWFyLWdyYWRpZW50KDQ1ZGVnLCAjMDY2RkM1LCMwMEEzRkYpO2JvcmRlcjpub25lO2JvcmRlci1yYWRpdXM6MnB4O2NvbG9yOiNmZmY7Zm9udC13ZWlnaHQ6NTAwO29wYWNpdHk6MTt0cmFuc2l0aW9uOm9wYWNpdHkgLjJzO3otaW5kZXg6MX0ubW9kYWwgaW5wdXRbdHlwZT0nc3VibWl0J106aG92ZXJ7b3BhY2l0eTowfS5tb2RhbCAuc3VibWl0LXdyYXBwZXJ7cG9zaXRpb246cmVsYXRpdmU7YmFja2dyb3VuZDpsaW5lYXItZ3JhZGllbnQoNDVkZWcsICMwMEEzRkYsIzZCREZGRik7Ym9yZGVyLXJhZGl1czoycHg7Y29sb3I6I2ZmZjtmb250LXdlaWdodDo1MDB9Lm1vZGFsIC5zdWJtaXQtd3JhcHBlcjpiZWZvcmV7Y29udGVudDpcIlN1Ym1pdFwiO3Bvc2l0aW9uOmFic29sdXRlO3BvaW50ZXItZXZlbnRzOm5vbmU7dG9wOjA7bGVmdDowO3BhZGRpbmc6MC42NXJlbSAxLjFyZW07ei1pbmRleDowfS5tb2RhbCAjbm8tdGhhbmtze21hcmdpbi1yaWdodDouNXJlbTtwYWRkaW5nOjAuNjVyZW0gMS4xcmVtO2JhY2tncm91bmQ6cmdiYSgyMTIsMjE1LDIyMSwwLjEpO2NvbG9yOnJnYmEoMjUwLDI1MCwyNTIsMC42NSk7Ym9yZGVyLXJhZGl1czoycHg7Y3Vyc29yOnBvaW50ZXI7dHJhbnNpdGlvbjpjb2xvciAuMnN9Lm1vZGFsICNuby10aGFua3M6aG92ZXJ7Y29sb3I6I0ZBRkFGQ30ubW9kYWwgLmxpZmVjeWNsZS13cmFwcGVye3Bvc2l0aW9uOnJlbGF0aXZlfS5tb2RhbCAubG9hZGVyLXdyYXBwZXIsLm1vZGFsICN0aGFuay15b3V7cG9zaXRpb246YWJzb2x1dGU7ZGlzcGxheTpub25lO2p1c3RpZnktY29udGVudDpjZW50ZXI7YWxpZ24taXRlbXM6Y2VudGVyO3RvcDowO2xlZnQ6MDt3aWR0aDoxMDAlO2hlaWdodDoxMDAlO2JhY2tncm91bmQtY29sb3I6IzE0MTQxRn0ubW9kYWwgLmxvYWRlci13cmFwcGVye3otaW5kZXg6NX0ubW9kYWwgLmxvYWRlci13cmFwcGVyIC5sb2FkZXJ7bWFyZ2luOjAgYXV0b30ubW9kYWwgI3RoYW5rLXlvdXt6LWluZGV4OjEwO2ZvbnQtc2l6ZToxLjJyZW07Zm9udC1zdHlsZTppdGFsaWM7Zm9udC13ZWlnaHQ6NTAwO2NvbG9yOnJnYmEoMjEyLDIxNSwyMjEsMC42NSl9Lm1vZGFsICN0aGFuay15b3UgcHt0ZXh0LWFsaWduOmNlbnRlcn0ubW9kYWwgI2ZsdXgtaW5mbHV4ZGItdmVyc2lvbnN7bWF4LXdpZHRoOjM3NXB4fS5tb2RhbCAjZmx1eC1pbmZsdXhkYi12ZXJzaW9ucyAuZmxleC13cmFwcGVye2Rpc3BsYXk6ZmxleDtmbGV4LWRpcmVjdGlvbjpjb2x1bW47aGVpZ2h0OjEwMCV9Lm1vZGFsICNmbHV4LWluZmx1eGRiLXZlcnNpb25zIC5pbmZsdXhkYi12ZXJzaW9uc3ttYXJnaW4tdG9wOjEuNXJlbTtvdmVyZmxvdzpzY3JvbGx9Lm1vZGFsICNmbHV4LWluZmx1eGRiLXZlcnNpb25zIC52ZXJzaW9uLWxpc3R7ZGlzcGxheTpmbGV4O2ZsZXgtZGlyZWN0aW9uOmNvbHVtbi1yZXZlcnNlfS5tb2RhbCAjZmx1eC1pbmZsdXhkYi12ZXJzaW9ucyAudmVyc2lvbi1yb3d7ZGlzcGxheTpmbGV4O2ZsZXgtZGlyZWN0aW9uOnJvdztqdXN0aWZ5LWNvbnRlbnQ6c3BhY2UtYmV0d2VlbjthbGlnbi1pdGVtczpjZW50ZXI7cGFkZGluZzouMTVyZW0gMDtib3JkZXItYm90dG9tOjFweCBzb2xpZCAjMzgzODQ2fS5tb2RhbCAjZmx1eC1pbmZsdXhkYi12ZXJzaW9ucyAudmVyc2lvbi1yb3c6bGFzdC1jaGlsZHtib3JkZXItdG9wOjFweCBzb2xpZCAjMzgzODQ2fS5tb2RhbCAjZmx1eC1pbmZsdXhkYi12ZXJzaW9ucyAudmVyc2lvbi1yb3cgLnZlcnNpb24tY29sOmxhc3QtY2hpbGR7cGFkZGluZy1yaWdodDoxcmVtO3RleHQtYWxpZ246cmlnaHR9Lm1vZGFsICNmbHV4LWluZmx1eGRiLXZlcnNpb25zIGg0e21hcmdpbi10b3A6MS41cmVtfS5tb2RhbCAjZmx1eC1pbmZsdXhkYi12ZXJzaW9ucyBoNCwubW9kYWwgI2ZsdXgtaW5mbHV4ZGItdmVyc2lvbnMgc3Bhbi5tZWRpdW17Zm9udC1zaXplOjEuMTVyZW19Lm1vZGFsICNmbHV4LWluZmx1eGRiLXZlcnNpb25zIGgzIGNvZGV7YmFja2dyb3VuZDojMDcwNzBFO2ZvbnQtZmFtaWx5OlwiSUJNIFBsZXggTW9ub1wiLG1vbm9zcGFjZTtjb2xvcjojQjdCOEZGO3BhZGRpbmc6LjFyZW0gLjRyZW0gLjJyZW07Ym9yZGVyLXJhZGl1czoycHg7d2hpdGUtc3BhY2U6bm93cmFwO2ZvbnQtc2l6ZTouODVlbTtmb250LXN0eWxlOm5vcm1hbH0ubW9kYWwgI2ZsdXgtaW5mbHV4ZGItdmVyc2lvbnMgc3Bhbi5tZWRpdW17Zm9udC13ZWlnaHQ6NTAwO2NvbG9yOiNmZmZ9Lm1vZGFsICNmbHV4LWluZmx1eGRiLXZlcnNpb25zIHNwYW4uZmx1eC12ZXJzaW9ue29wYWNpdHk6LjU7Zm9udC1zaXplOi45cmVtfS5tb2RhbCAjZmx1eC1pbmZsdXhkYi12ZXJzaW9ucyBzcGFuLmRlcHJlY2F0ZWQ6YmVmb3Jle2NvbnRlbnQ6J+KAoic7Y29sb3I6cmdiYSgyMTIsMjE1LDIyMSwwLjUpO21hcmdpbi1yaWdodDouNHJlbX0ubW9kYWwgI2ZsdXgtaW5mbHV4ZGItdmVyc2lvbnMgc3Bhbi5jaGVja21hcmstbmV3e2ZvbnQtc2l6ZToxLjFyZW07Zm9udC13ZWlnaHQ6Ym9sZDtjb2xvcjojMzRCQjU1fS5tb2RhbCAjZmx1eC1pbmZsdXhkYi12ZXJzaW9ucyBzcGFuLmNoZWNrbWFyay1uZXcucGVuZGluZ3tjb2xvcjojMkFBM0ZGfS5tb2RhbCAjZmx1eC1pbmZsdXhkYi12ZXJzaW9ucyAuY29sb3Ita2V5e21hcmdpbi10b3A6MS41cmVtO3BhZGRpbmc6MDtsaXN0LXN0eWxlOm5vbmV9Lm1vZGFsICNmbHV4LWluZmx1eGRiLXZlcnNpb25zIC5jb2xvci1rZXkgbGl7Zm9udC1zdHlsZTppdGFsaWM7Y29sb3I6cmdiYSgyMTIsMjE1LDIyMSwwLjY1KX0ubW9kYWwgI2ZsdXgtaW5mbHV4ZGItdmVyc2lvbnMgLmNvbG9yLWtleSBsaSNkZXByZWNhdGVkLWtleSBzcGFue21hcmdpbi1sZWZ0Oi4yNXJlbX0ubW9kYWwgI2ZsdXgtaW5mbHV4ZGItdmVyc2lvbnMgLm1vcmUtaW5mb3ttYXJnaW4tdG9wOjEuNXJlbX0ubW9kYWwgI2ZsdXgtaW5mbHV4ZGItdmVyc2lvbnMgLm5vLXN1cHBvcnR7bWFyZ2luOjFyZW0gMXJlbSAzcmVtO3RleHQtYWxpZ246Y2VudGVyO2ZvbnQtc2l6ZToxLjE1cmVtO2ZvbnQtc3R5bGU6aXRhbGljO2NvbG9yOnJnYmEoMjEyLDIxNSwyMjEsMC42NSl9Lm1vZGFsICNpbmZsdXhkYi1ncy1kYXRlLXNlbGVjdHt3aWR0aDphdXRvO21heC13aWR0aDoyNjBweH0ubW9kYWwgI2luZmx1eGRiLWdzLWRhdGUtc2VsZWN0IHB7bWFyZ2luLWJvdHRvbToxLjVyZW19Lm1vZGFsICNpbmZsdXhkYi1ncy1kYXRlLXNlbGVjdCBhLmJ0bntwb3NpdGlvbjpyZWxhdGl2ZTtkaXNwbGF5OmlubGluZS1ibG9jazttYXJnaW46MS4yNXJlbSAwIC41cmVtO3BhZGRpbmc6MC44NXJlbSAxLjVyZW07Y29sb3I6I2ZmZiAhaW1wb3J0YW50O2JvcmRlci1yYWRpdXM6MnB4O3RleHQtdHJhbnNmb3JtOnVwcGVyY2FzZTtsZXR0ZXItc3BhY2luZzouMDZyZW07Zm9udC1zaXplOjFyZW07ZmxvYXQ6cmlnaHQ7ei1pbmRleDoxO2JhY2tncm91bmQ6bGluZWFyLWdyYWRpZW50KDQ1ZGVnLCAjMDY2RkM1LCMwMEEzRkYpfS5tb2RhbCAjaW5mbHV4ZGItZ3MtZGF0ZS1zZWxlY3QgYS5idG46YWZ0ZXJ7Y29udGVudDpcIlwiO3Bvc2l0aW9uOmFic29sdXRlO2Rpc3BsYXk6YmxvY2s7dG9wOjA7cmlnaHQ6MDt3aWR0aDoxMDAlO2hlaWdodDoxMDAlO2JvcmRlci1yYWRpdXM6MnB4O2JhY2tncm91bmQ6bGluZWFyLWdyYWRpZW50KDQ1ZGVnLCAjMDBBM0ZGLCM2QkRGRkYpO29wYWNpdHk6MDt0cmFuc2l0aW9uOm9wYWNpdHkgLjJzO3otaW5kZXg6LTF9Lm1vZGFsICNpbmZsdXhkYi1ncy1kYXRlLXNlbGVjdCBhLmJ0bjpob3ZlcntjdXJzb3I6cG9pbnRlcn0ubW9kYWwgI2luZmx1eGRiLWdzLWRhdGUtc2VsZWN0IGEuYnRuOmhvdmVyOmFmdGVye29wYWNpdHk6MX1AbWVkaWEgKG1heC13aWR0aDogNjAwcHgpey5tb2RhbHtwYWRkaW5nOi41cmVtO292ZXJmbG93OnNjcm9sbH0ubW9kYWwgLm1vZGFsLWJvZHl7cGFkZGluZzouNXJlbSAxLjVyZW0gMS41cmVtfX0ubG9hZGVyLC5sb2FkZXI6YWZ0ZXJ7Ym9yZGVyLXJhZGl1czo1MCU7d2lkdGg6MTBlbTtoZWlnaHQ6MTBlbX0ubG9hZGVye2ZvbnQtc2l6ZTozcHg7cG9zaXRpb246cmVsYXRpdmU7Ym9yZGVyLXRvcDoxLjFlbSBzb2xpZCByZ2JhKDIxMiwyMTUsMjIxLDAuMSk7Ym9yZGVyLXJpZ2h0OjEuMWVtIHNvbGlkIHJnYmEoMjEyLDIxNSwyMjEsMC4xKTtib3JkZXItYm90dG9tOjEuMWVtIHNvbGlkIHJnYmEoMjEyLDIxNSwyMjEsMC4xKTtib3JkZXItbGVmdDoxLjFlbSBzb2xpZCAjMkFBM0ZGO3RyYW5zZm9ybTp0cmFuc2xhdGVaKDApO2FuaW1hdGlvbjpsb2FkOCAuNnMgaW5maW5pdGUgbGluZWFyfUBrZXlmcmFtZXMgbG9hZDh7MCV7LXdlYmtpdC10cmFuc2Zvcm06cm90YXRlKDBkZWcpO3RyYW5zZm9ybTpyb3RhdGUoMGRlZyl9MTAwJXstd2Via2l0LXRyYW5zZm9ybTpyb3RhdGUoMzYwZGVnKTt0cmFuc2Zvcm06cm90YXRlKDM2MGRlZyl9fS5mZWF0dXJlLWNhbGxvdXR7cGFkZGluZzouNXJlbSAuNXJlbSAuNXJlbSAuNzVyZW07YmFja2dyb3VuZDpsaW5lYXItZ3JhZGllbnQoNDVkZWcsICNGOTVGNTMsI0JFMkVFNCk7Ym9yZGVyLXJhZGl1czoycHg7Zm9udC1zaXplOi45NXJlbTtmb250LXN0eWxlOml0YWxpYztmb250LXdlaWdodDo1MDA7Y29sb3I6I2ZmZjtib3gtc2hhZG93OjJweCAycHggNnB4IHJnYmEoMzIsMzIsNDAsMC4zNSk7ei1pbmRleDoxMDA7dHJhbnNpdGlvbjptYXJnaW4gLjNzIGVhc2Utb3V0O2Rpc3BsYXk6bm9uZX0uZmVhdHVyZS1jYWxsb3V0IHB7cG9zaXRpb246cmVsYXRpdmU7bWFyZ2luOjB9LmZlYXR1cmUtY2FsbG91dCBwOmFmdGVye2NvbnRlbnQ6XCJcIjtwb3NpdGlvbjphYnNvbHV0ZTt3aWR0aDowO2hlaWdodDowO2JvcmRlci1zdHlsZTpzb2xpZH0uZmVhdHVyZS1jYWxsb3V0IHA6aG92ZXJ7Y3Vyc29yOmRlZmF1bHR9LmZlYXR1cmUtY2FsbG91dCAubmV3e2Rpc3BsYXk6aW5saW5lLWJsb2NrO3Bvc2l0aW9uOnJlbGF0aXZlO21hcmdpbi1yaWdodDouMjVyZW07Zm9udC1zaXplOi44cmVtO3BhZGRpbmc6LjFyZW0gLjM1cmVtO2JhY2tncm91bmQ6cmdiYSgyNTUsMjU1LDI1NSwwLjI1KTtib3JkZXItcmFkaXVzOjFyZW19LmZlYXR1cmUtY2FsbG91dCAuY2xvc2V7bWFyZ2luLWxlZnQ6LjVyZW07Y29sb3I6cmdiYSgyNTUsMjU1LDI1NSwwLjUpO3RleHQtZGVjb3JhdGlvbjpub25lfS5mZWF0dXJlLWNhbGxvdXQgLmNsb3NlOmhvdmVye2NvbG9yOnJnYmEoMjU1LDI1NSwyNTUsMC45KX0uZmVhdHVyZS1jYWxsb3V0ICNpbmZsdXhkYi11cmwtc2VsZWN0b3J7cG9zaXRpb246YWJzb2x1dGU7dG9wOjNyZW07cmlnaHQ6Ljc1cmVtfS5mZWF0dXJlLWNhbGxvdXQgI2luZmx1eGRiLXVybC1zZWxlY3RvciBwOmFmdGVye3RvcDotMXJlbTtyaWdodDoxLjg1cmVtO2JvcmRlci13aWR0aDowIDdweCA4cHggN3B4O2JvcmRlci1jb2xvcjp0cmFuc3BhcmVudCB0cmFuc3BhcmVudCAjQ0IzOUM0IHRyYW5zcGFyZW50fS5mZWF0dXJlLWNhbGxvdXQgI2luZmx1eGRiLXVybC1zZWxlY3Rvci5zdGFydC1wb3NpdGlvbnttYXJnaW4tdG9wOjIuNXJlbX1AbWVkaWEgKG1heC13aWR0aDogNjAwcHgpey5mZWF0dXJlLWNhbGxvdXQjaW5mbHV4ZGItdXJsLXNlbGVjdG9ye3RvcDouNTVyZW07cmlnaHQ6NS4xNXJlbX0uZmVhdHVyZS1jYWxsb3V0I2luZmx1eGRiLXVybC1zZWxlY3RvciBwOmFmdGVye3RvcDouMTVyZW07cmlnaHQ6LTE2cHg7Ym9yZGVyLXdpZHRoOjdweCAwIDdweCA4cHg7Ym9yZGVyLWNvbG9yOnRyYW5zcGFyZW50IHRyYW5zcGFyZW50IHRyYW5zcGFyZW50ICNDMjMxRDl9LmZlYXR1cmUtY2FsbG91dCNpbmZsdXhkYi11cmwtc2VsZWN0b3Iuc3RhcnQtcG9zaXRpb257bWFyZ2luLXRvcDoyLjVyZW19fWJvZHkudjEgLmFydGljbGUgLmFydGljbGUtLWNvbnRlbnQgYmxvY2txdW90ZSxib2R5LnBsYXRmb3JtIC5hcnRpY2xlIC5hcnRpY2xlLS1jb250ZW50IGJsb2NrcXVvdGV7cGFkZGluZzoxLjY1cmVtIDJyZW07bWFyZ2luOjFyZW0gMCAycmVtO2JvcmRlci13aWR0aDowIDAgMCA0cHg7Ym9yZGVyLXN0eWxlOnNvbGlkO2JvcmRlci1yYWRpdXM6MCAycHggMnB4IDA7Ym9yZGVyLWNvbG9yOiMwMEEzRkY7YmFja2dyb3VuZDpyZ2JhKDAsMTYzLDI1NSwwLjEpfWJvZHkudjEgLmFydGljbGUgLmFydGljbGUtLWNvbnRlbnQgYmxvY2txdW90ZSBwLGJvZHkudjEgLmFydGljbGUgLmFydGljbGUtLWNvbnRlbnQgYmxvY2txdW90ZSBsaSxib2R5LnBsYXRmb3JtIC5hcnRpY2xlIC5hcnRpY2xlLS1jb250ZW50IGJsb2NrcXVvdGUgcCxib2R5LnBsYXRmb3JtIC5hcnRpY2xlIC5hcnRpY2xlLS1jb250ZW50IGJsb2NrcXVvdGUgbGl7Zm9udC1zaXplOi45NXJlbTtmb250LXN0eWxlOmluaGVyaXR9Ym9keS52MSAuYXJ0aWNsZSAuYXJ0aWNsZS0tY29udGVudCBibG9ja3F1b3RlIHVsOmxhc3QtY2hpbGQsYm9keS52MSAuYXJ0aWNsZSAuYXJ0aWNsZS0tY29udGVudCBibG9ja3F1b3RlIG9sOmxhc3QtY2hpbGQsYm9keS5wbGF0Zm9ybSAuYXJ0aWNsZSAuYXJ0aWNsZS0tY29udGVudCBibG9ja3F1b3RlIHVsOmxhc3QtY2hpbGQsYm9keS5wbGF0Zm9ybSAuYXJ0aWNsZSAuYXJ0aWNsZS0tY29udGVudCBibG9ja3F1b3RlIG9sOmxhc3QtY2hpbGR7bWFyZ2luLWJvdHRvbToxLjg1cmVtfWJvZHkudjEgLmFydGljbGUgLmFydGljbGUtLWNvbnRlbnQgYmxvY2txdW90ZSBoMSxib2R5LnYxIC5hcnRpY2xlIC5hcnRpY2xlLS1jb250ZW50IGJsb2NrcXVvdGUgaDIsYm9keS52MSAuYXJ0aWNsZSAuYXJ0aWNsZS0tY29udGVudCBibG9ja3F1b3RlIGgzLGJvZHkudjEgLmFydGljbGUgLmFydGljbGUtLWNvbnRlbnQgYmxvY2txdW90ZSBoNCxib2R5LnYxIC5hcnRpY2xlIC5hcnRpY2xlLS1jb250ZW50IGJsb2NrcXVvdGUgaDUsYm9keS52MSAuYXJ0aWNsZSAuYXJ0aWNsZS0tY29udGVudCBibG9ja3F1b3RlIGg2LGJvZHkucGxhdGZvcm0gLmFydGljbGUgLmFydGljbGUtLWNvbnRlbnQgYmxvY2txdW90ZSBoMSxib2R5LnBsYXRmb3JtIC5hcnRpY2xlIC5hcnRpY2xlLS1jb250ZW50IGJsb2NrcXVvdGUgaDIsYm9keS5wbGF0Zm9ybSAuYXJ0aWNsZSAuYXJ0aWNsZS0tY29udGVudCBibG9ja3F1b3RlIGgzLGJvZHkucGxhdGZvcm0gLmFydGljbGUgLmFydGljbGUtLWNvbnRlbnQgYmxvY2txdW90ZSBoNCxib2R5LnBsYXRmb3JtIC5hcnRpY2xlIC5hcnRpY2xlLS1jb250ZW50IGJsb2NrcXVvdGUgaDUsYm9keS5wbGF0Zm9ybSAuYXJ0aWNsZSAuYXJ0aWNsZS0tY29udGVudCBibG9ja3F1b3RlIGg2e2NvbG9yOiNmZmZ9Ym9keS52MSAuYXJ0aWNsZSAuYXJ0aWNsZS0tY29udGVudCBibG9ja3F1b3RlIHAsYm9keS52MSAuYXJ0aWNsZSAuYXJ0aWNsZS0tY29udGVudCBibG9ja3F1b3RlIGxpLGJvZHkucGxhdGZvcm0gLmFydGljbGUgLmFydGljbGUtLWNvbnRlbnQgYmxvY2txdW90ZSBwLGJvZHkucGxhdGZvcm0gLmFydGljbGUgLmFydGljbGUtLWNvbnRlbnQgYmxvY2txdW90ZSBsaXtjb2xvcjojQkVGMEZGfWJvZHkudjEgLmFydGljbGUgLmFydGljbGUtLWNvbnRlbnQgYmxvY2txdW90ZSBzdHJvbmcsYm9keS5wbGF0Zm9ybSAuYXJ0aWNsZSAuYXJ0aWNsZS0tY29udGVudCBibG9ja3F1b3RlIHN0cm9uZ3tjb2xvcjppbmhlcml0fWJvZHkudjEgLmFydGljbGUgLmFydGljbGUtLWNvbnRlbnQgYmxvY2txdW90ZSBhLGJvZHkucGxhdGZvcm0gLmFydGljbGUgLmFydGljbGUtLWNvbnRlbnQgYmxvY2txdW90ZSBhe2NvbG9yOiNmZmZ9Ym9keS52MSAuYXJ0aWNsZSAuYXJ0aWNsZS0tY29udGVudCBibG9ja3F1b3RlIGEgY29kZTphZnRlcixib2R5LnBsYXRmb3JtIC5hcnRpY2xlIC5hcnRpY2xlLS1jb250ZW50IGJsb2NrcXVvdGUgYSBjb2RlOmFmdGVye2JvcmRlci1jb2xvcjp0cmFuc3BhcmVudCByZ2JhKDAsMjAxLDI1NSwwLjM1KSB0cmFuc3BhcmVudCB0cmFuc3BhcmVudH1ib2R5LnYxIC5hcnRpY2xlIC5hcnRpY2xlLS1jb250ZW50IGJsb2NrcXVvdGUgYTpob3Zlcixib2R5LnBsYXRmb3JtIC5hcnRpY2xlIC5hcnRpY2xlLS1jb250ZW50IGJsb2NrcXVvdGUgYTpob3Zlcntjb2xvcjojNkJERkZGfWJvZHkudjEgLmFydGljbGUgLmFydGljbGUtLWNvbnRlbnQgYmxvY2txdW90ZSBhOmhvdmVyIGNvZGU6YWZ0ZXIsYm9keS5wbGF0Zm9ybSAuYXJ0aWNsZSAuYXJ0aWNsZS0tY29udGVudCBibG9ja3F1b3RlIGE6aG92ZXIgY29kZTphZnRlcntib3JkZXItY29sb3I6dHJhbnNwYXJlbnQgIzZCREZGRiB0cmFuc3BhcmVudCB0cmFuc3BhcmVudH1ib2R5LnYxIC5hcnRpY2xlIC5hcnRpY2xlLS1jb250ZW50IGJsb2NrcXVvdGUgb2wgbGk6YmVmb3JlLGJvZHkucGxhdGZvcm0gLmFydGljbGUgLmFydGljbGUtLWNvbnRlbnQgYmxvY2txdW90ZSBvbCBsaTpiZWZvcmV7Y29sb3I6I0JFRjBGRn1ib2R5LnYxIC5hcnRpY2xlIC5hcnRpY2xlLS1jb250ZW50IGJsb2NrcXVvdGUgY29kZSxib2R5LnYxIC5hcnRpY2xlIC5hcnRpY2xlLS1jb250ZW50IGJsb2NrcXVvdGUgcHJlLGJvZHkucGxhdGZvcm0gLmFydGljbGUgLmFydGljbGUtLWNvbnRlbnQgYmxvY2txdW90ZSBjb2RlLGJvZHkucGxhdGZvcm0gLmFydGljbGUgLmFydGljbGUtLWNvbnRlbnQgYmxvY2txdW90ZSBwcmV7Y29sb3I6IzAwQzlGRjtiYWNrZ3JvdW5kOiMwYTA3MWN9Ym9keS52MSAuYXJ0aWNsZSAuYXJ0aWNsZS0tY29udGVudCBibG9ja3F1b3RlIGltZyxib2R5LnBsYXRmb3JtIC5hcnRpY2xlIC5hcnRpY2xlLS1jb250ZW50IGJsb2NrcXVvdGUgaW1ne2JveC1zaGFkb3c6MXB4IDNweCAxMHB4ICMwRjBFMTV9Ym9keS52MSAuYXJ0aWNsZSAuYXJ0aWNsZS0tY29udGVudCBibG9ja3F1b3RlIHRhYmxlLGJvZHkucGxhdGZvcm0gLmFydGljbGUgLmFydGljbGUtLWNvbnRlbnQgYmxvY2txdW90ZSB0YWJsZXtjb2xvcjojQkVGMEZGO2JveC1zaGFkb3c6MXB4IDNweCAxMHB4ICMwRjBFMTV9Ym9keS52MSAuYXJ0aWNsZSAuYXJ0aWNsZS0tY29udGVudCBibG9ja3F1b3RlIHRhYmxlIHRoZWFkLGJvZHkucGxhdGZvcm0gLmFydGljbGUgLmFydGljbGUtLWNvbnRlbnQgYmxvY2txdW90ZSB0YWJsZSB0aGVhZHtiYWNrZ3JvdW5kOmxpbmVhci1ncmFkaWVudCg0NWRlZywgIzBCM0E4RCwjMDY2RkM1KX1ib2R5LnYxIC5hcnRpY2xlIC5hcnRpY2xlLS1jb250ZW50IGJsb2NrcXVvdGUgdGFibGUgdHI6bnRoLWNoaWxkKGV2ZW4pIHRkLGJvZHkucGxhdGZvcm0gLmFydGljbGUgLmFydGljbGUtLWNvbnRlbnQgYmxvY2txdW90ZSB0YWJsZSB0cjpudGgtY2hpbGQoZXZlbikgdGR7YmFja2dyb3VuZDojMWIzYTU4fWJvZHkudjEgLmFydGljbGUgLmFydGljbGUtLWNvbnRlbnQgYmxvY2txdW90ZSBibG9ja3F1b3RlLGJvZHkucGxhdGZvcm0gLmFydGljbGUgLmFydGljbGUtLWNvbnRlbnQgYmxvY2txdW90ZSBibG9ja3F1b3Rle2JvcmRlci1jb2xvcjpyZ2JhKDE5MCwyNDAsMjU1LDAuMjUpfWJvZHkudjEgLmFydGljbGUgLmFydGljbGUtLWNvbnRlbnQgYmxvY2txdW90ZSBibG9ja3F1b3RlIHAsYm9keS5wbGF0Zm9ybSAuYXJ0aWNsZSAuYXJ0aWNsZS0tY29udGVudCBibG9ja3F1b3RlIGJsb2NrcXVvdGUgcHtjb2xvcjpyZ2JhKDE5MCwyNDAsMjU1LDAuNil9Ym9keS52MSAuYXJ0aWNsZSAuYXJ0aWNsZS0tY29udGVudCBibG9ja3F1b3RlIC5jb2RlLXRhYnMtd3JhcHBlciAuY29kZS10YWJzIGEsYm9keS5wbGF0Zm9ybSAuYXJ0aWNsZSAuYXJ0aWNsZS0tY29udGVudCBibG9ja3F1b3RlIC5jb2RlLXRhYnMtd3JhcHBlciAuY29kZS10YWJzIGF7YmFja2dyb3VuZDp0cmFuc3BhcmVudDtjb2xvcjpyZ2JhKDE5MCwyNDAsMjU1LDAuNSl9Ym9keS52MSAuYXJ0aWNsZSAuYXJ0aWNsZS0tY29udGVudCBibG9ja3F1b3RlIC5jb2RlLXRhYnMtd3JhcHBlciAuY29kZS10YWJzIGE6aG92ZXIsYm9keS5wbGF0Zm9ybSAuYXJ0aWNsZSAuYXJ0aWNsZS0tY29udGVudCBibG9ja3F1b3RlIC5jb2RlLXRhYnMtd3JhcHBlciAuY29kZS10YWJzIGE6aG92ZXJ7Y29sb3I6I2JlZjBmZn1ib2R5LnYxIC5hcnRpY2xlIC5hcnRpY2xlLS1jb250ZW50IGJsb2NrcXVvdGUgLmNvZGUtdGFicy13cmFwcGVyIC5jb2RlLXRhYnMgYS5pcy1hY3RpdmUsYm9keS5wbGF0Zm9ybSAuYXJ0aWNsZSAuYXJ0aWNsZS0tY29udGVudCBibG9ja3F1b3RlIC5jb2RlLXRhYnMtd3JhcHBlciAuY29kZS10YWJzIGEuaXMtYWN0aXZle2NvbG9yOiNiZWYwZmY7YmFja2dyb3VuZDojMGEwNzFjfSNkb2NzLW5vdGlmaWNhdGlvbnN7cG9zaXRpb246Zml4ZWQ7dG9wOjY1cHg7cmlnaHQ6MTBweDt6LWluZGV4OjEwMDt3aWR0aDpjYWxjKDEwMHZ3IC0gMjBweCk7bWF4LXdpZHRoOjQ1MHB4O3RyYW5zaXRpb246YWxsIC40cyBlYXNlLCB0b3AgMHN9I2RvY3Mtbm90aWZpY2F0aW9ucyAubm90aWZpY2F0aW9ue2Rpc3BsYXk6bm9uZTtyaWdodDotNTBweDtvcGFjaXR5OjA7cG9zaXRpb246cmVsYXRpdmU7cGFkZGluZzoxLjI1cmVtIDIuNXJlbSAxLjI1cmVtIDEuMjVyZW07Ym9yZGVyLXJhZGl1czoycHg7Ym94LXNoYWRvdzoycHggMnB4IDZweCByZ2JhKDMyLDMyLDQwLDAuMzUpO21hcmdpbi1ib3R0b206MTBweDtjb2xvcjojZmZmfSNkb2NzLW5vdGlmaWNhdGlvbnMgLm5vdGlmaWNhdGlvbiAubm90aWZpY2F0aW9uLXRpdGxlIGgze21hcmdpbi1ib3R0b206MXJlbTt0cmFuc2l0aW9uOmZvbnQtc2l6ZSAuMnN9I2RvY3Mtbm90aWZpY2F0aW9ucyAubm90aWZpY2F0aW9uIC5ub3RpZmljYXRpb24tY29udGVudC13cmFwcGVye3Bvc2l0aW9uOnJlbGF0aXZlfSNkb2NzLW5vdGlmaWNhdGlvbnMgLm5vdGlmaWNhdGlvbiBjb2Rle2ZvbnQtc2l6ZTouODVyZW19I2RvY3Mtbm90aWZpY2F0aW9ucyAubm90aWZpY2F0aW9uIC5ub3RpZmljYXRpb24tc2x1Z3tmb250LXNpemU6Ljk3cmVtO21hcmdpbjotLjVyZW0gMCAxLjVyZW0gMH0jZG9jcy1ub3RpZmljYXRpb25zIC5ub3RpZmljYXRpb24gLm5vdGlmaWNhdGlvbi1zbHVnKy5ub3RpZmljYXRpb24tY29udGVudHtib3JkZXItdG9wOjFweCBkb3R0ZWQgcmdiYSgyNTUsMjU1LDI1NSwwLjUpO3BhZGRpbmctdG9wOjEuMjVyZW19I2RvY3Mtbm90aWZpY2F0aW9ucyAubm90aWZpY2F0aW9uIC5ub3RpZmljYXRpb24tc2x1ZzpsYXN0LWNoaWxke21hcmdpbi1ib3R0b206MH0jZG9jcy1ub3RpZmljYXRpb25zIC5ub3RpZmljYXRpb24gLm5vdGlmaWNhdGlvbi1zbHVnIHA6bGFzdC1jaGlsZHttYXJnaW4tYm90dG9tOjB9I2RvY3Mtbm90aWZpY2F0aW9ucyAubm90aWZpY2F0aW9uIC5ub3RpZmljYXRpb24tY29udGVudHtmb250LXNpemU6MS4wNXJlbTtvcGFjaXR5OjE7bWF4LWhlaWdodDo1MDBweDttYXJnaW4tYm90dG9tOjEuNXJlbTt0cmFuc2l0aW9uOm9wYWNpdHkgLjRzLCBtYXgtaGVpZ2h0IC4ycyBlYXNlLW91dCwgbWFyZ2luIC4ycyBlYXNlLW91dCwgcGFkZGluZyAuMnN9I2RvY3Mtbm90aWZpY2F0aW9ucyAubm90aWZpY2F0aW9uIC5ub3RpZmljYXRpb24tY29udGVudCBoMSwjZG9jcy1ub3RpZmljYXRpb25zIC5ub3RpZmljYXRpb24gLm5vdGlmaWNhdGlvbi1jb250ZW50IGgyLCNkb2NzLW5vdGlmaWNhdGlvbnMgLm5vdGlmaWNhdGlvbiAubm90aWZpY2F0aW9uLWNvbnRlbnQgaDMsI2RvY3Mtbm90aWZpY2F0aW9ucyAubm90aWZpY2F0aW9uIC5ub3RpZmljYXRpb24tY29udGVudCBoNCwjZG9jcy1ub3RpZmljYXRpb25zIC5ub3RpZmljYXRpb24gLm5vdGlmaWNhdGlvbi1jb250ZW50IGg1LCNkb2NzLW5vdGlmaWNhdGlvbnMgLm5vdGlmaWNhdGlvbiAubm90aWZpY2F0aW9uLWNvbnRlbnQgaDZ7bWFyZ2luOjFyZW0gMCAuNzVyZW19I2RvY3Mtbm90aWZpY2F0aW9ucyAubm90aWZpY2F0aW9uIC5ub3RpZmljYXRpb24tY29udGVudCBoMTpmaXJzdC1jaGlsZCwjZG9jcy1ub3RpZmljYXRpb25zIC5ub3RpZmljYXRpb24gLm5vdGlmaWNhdGlvbi1jb250ZW50IGgyOmZpcnN0LWNoaWxkLCNkb2NzLW5vdGlmaWNhdGlvbnMgLm5vdGlmaWNhdGlvbiAubm90aWZpY2F0aW9uLWNvbnRlbnQgaDM6Zmlyc3QtY2hpbGQsI2RvY3Mtbm90aWZpY2F0aW9ucyAubm90aWZpY2F0aW9uIC5ub3RpZmljYXRpb24tY29udGVudCBoNDpmaXJzdC1jaGlsZCwjZG9jcy1ub3RpZmljYXRpb25zIC5ub3RpZmljYXRpb24gLm5vdGlmaWNhdGlvbi1jb250ZW50IGg1OmZpcnN0LWNoaWxkLCNkb2NzLW5vdGlmaWNhdGlvbnMgLm5vdGlmaWNhdGlvbiAubm90aWZpY2F0aW9uLWNvbnRlbnQgaDY6Zmlyc3QtY2hpbGR7bWFyZ2luLXRvcDowfSNkb2NzLW5vdGlmaWNhdGlvbnMgLm5vdGlmaWNhdGlvbiAuY2xvc2Utbm90aWZpY2F0aW9ue3Bvc2l0aW9uOmFic29sdXRlO3RvcDo4cHg7cmlnaHQ6OHB4O2ZvbnQtc2l6ZToxLjdyZW07Y3Vyc29yOnBvaW50ZXI7dHJhbnNpdGlvbjpjb2xvciAuMnM7Zm9udC13ZWlnaHQ6Ym9sZDtjb2xvcjpyZ2JhKDI1NSwyNTUsMjU1LDAuNSl9I2RvY3Mtbm90aWZpY2F0aW9ucyAubm90aWZpY2F0aW9uIC5jbG9zZS1ub3RpZmljYXRpb246aG92ZXJ7Y29sb3I6I2ZmZn0jZG9jcy1ub3RpZmljYXRpb25zIC5ub3RpZmljYXRpb24gLnNob3d7cG9zaXRpb246YWJzb2x1dGU7Ym90dG9tOjFyZW07bGVmdDoxLjI1cmVtO3RleHQtdHJhbnNmb3JtOnVwcGVyY2FzZTtmb250LXNpemU6LjhyZW07Zm9udC13ZWlnaHQ6Ym9sZDtvcGFjaXR5Oi43NTt0cmFuc2l0aW9uOm9wYWNpdHkgLjJzfSNkb2NzLW5vdGlmaWNhdGlvbnMgLm5vdGlmaWNhdGlvbiAuc2hvdzpob3ZlcntjdXJzb3I6cG9pbnRlcjtvcGFjaXR5OjF9I2RvY3Mtbm90aWZpY2F0aW9ucyAubm90aWZpY2F0aW9uIC5zaG93OmJlZm9yZXtjb250ZW50OlwiU2hvdyBsZXNzXCJ9I2RvY3Mtbm90aWZpY2F0aW9ucyAubm90aWZpY2F0aW9uLm5vdGV7YmFja2dyb3VuZDpsaW5lYXItZ3JhZGllbnQoNDVkZWcsICMwMEEzRkYsIzM0QkI1NSl9I2RvY3Mtbm90aWZpY2F0aW9ucyAubm90aWZpY2F0aW9uLm5vdGUgYTpob3Zlcntjb2xvcjojMDAzRTM0fSNkb2NzLW5vdGlmaWNhdGlvbnMgLm5vdGlmaWNhdGlvbi5ub3RlIGNvZGV7Y29sb3I6IzAwM0UzNDtiYWNrZ3JvdW5kOnJnYmEoMCw2Miw1MiwwLjI1KX0jZG9jcy1ub3RpZmljYXRpb25zIC5ub3RpZmljYXRpb24ubm90ZSBwcmV7YmFja2dyb3VuZDpyZ2JhKDAsNjIsNTIsMC4yNSl9I2RvY3Mtbm90aWZpY2F0aW9ucyAubm90aWZpY2F0aW9uLndhcm57YmFja2dyb3VuZDpsaW5lYXItZ3JhZGllbnQoMjI1ZGVnLCAjRjQ4RDM4LCNEQzRFNTgpfSNkb2NzLW5vdGlmaWNhdGlvbnMgLm5vdGlmaWNhdGlvbi53YXJuIGE6aG92ZXJ7Y29sb3I6IzJGMUYyOX0jZG9jcy1ub3RpZmljYXRpb25zIC5ub3RpZmljYXRpb24ud2FybiBjb2Rle2NvbG9yOiNmZmJiZGQ7YmFja2dyb3VuZDpyZ2JhKDQ3LDMxLDQxLDAuMzUpfSNkb2NzLW5vdGlmaWNhdGlvbnMgLm5vdGlmaWNhdGlvbi53YXJuIHByZXtiYWNrZ3JvdW5kOnJnYmEoNDcsMzEsNDEsMC4zNSl9I2RvY3Mtbm90aWZpY2F0aW9ucyAubm90aWZpY2F0aW9uLmdhLWFubm91bmNlbWVudHtiYWNrZ3JvdW5kLWltYWdlOnVybChcIi9zdmdzL2luZmx1eGRiMy1nYS1iYWNrZ3JvdW5kLnN2Z1wiKTtiYWNrZ3JvdW5kLXNpemU6Y292ZXJ9I2RvY3Mtbm90aWZpY2F0aW9ucyAubm90aWZpY2F0aW9uLmdhLWFubm91bmNlbWVudCBhOmhvdmVye2NvbG9yOiMwMjBhNDd9I2RvY3Mtbm90aWZpY2F0aW9ucyAubm90aWZpY2F0aW9uLmdhLWFubm91bmNlbWVudCBjb2Rle2NvbG9yOiMwMDNFMzQ7YmFja2dyb3VuZDpyZ2JhKDAsNjIsNTIsMC4yNSl9I2RvY3Mtbm90aWZpY2F0aW9ucyAubm90aWZpY2F0aW9uLmdhLWFubm91bmNlbWVudCBwcmV7YmFja2dyb3VuZDpyZ2JhKDAsNjIsNTIsMC4yNSl9I2RvY3Mtbm90aWZpY2F0aW9ucyAubm90aWZpY2F0aW9uLmdhLWFubm91bmNlbWVudCBoM3tmb250LXNpemU6MS40cmVtICFpbXBvcnRhbnR9I2RvY3Mtbm90aWZpY2F0aW9ucyAubm90aWZpY2F0aW9uLmdhLWFubm91bmNlbWVudCAubm90aWZpY2F0aW9uLXNsdWd7Zm9udC1zaXplOjEuMTVyZW19I2RvY3Mtbm90aWZpY2F0aW9ucyAubm90aWZpY2F0aW9uLmdhLWFubm91bmNlbWVudCAubm90aWZpY2F0aW9uLXNsdWcgLmJ0bntkaXNwbGF5OmlubGluZS1ibG9jaztiYWNrZ3JvdW5kOiNmZmY7Y29sb3I6IzAyMGE0NztwYWRkaW5nOi41cmVtIDFyZW07Ym9yZGVyLXJhZGl1czo0cHg7Zm9udC1zaXplOjFyZW19I2RvY3Mtbm90aWZpY2F0aW9ucyAubm90aWZpY2F0aW9uIGgxLCNkb2NzLW5vdGlmaWNhdGlvbnMgLm5vdGlmaWNhdGlvbiBoMiwjZG9jcy1ub3RpZmljYXRpb25zIC5ub3RpZmljYXRpb24gaDMsI2RvY3Mtbm90aWZpY2F0aW9ucyAubm90aWZpY2F0aW9uIGg0LCNkb2NzLW5vdGlmaWNhdGlvbnMgLm5vdGlmaWNhdGlvbiBoNSwjZG9jcy1ub3RpZmljYXRpb25zIC5ub3RpZmljYXRpb24gaDZ7Zm9udC13ZWlnaHQ6NTAwO21hcmdpbjoxcmVtIDAgLjc1cmVtfSNkb2NzLW5vdGlmaWNhdGlvbnMgLm5vdGlmaWNhdGlvbiBoMTpmaXJzdC1jaGlsZCwjZG9jcy1ub3RpZmljYXRpb25zIC5ub3RpZmljYXRpb24gaDI6Zmlyc3QtY2hpbGQsI2RvY3Mtbm90aWZpY2F0aW9ucyAubm90aWZpY2F0aW9uIGgzOmZpcnN0LWNoaWxkLCNkb2NzLW5vdGlmaWNhdGlvbnMgLm5vdGlmaWNhdGlvbiBoNDpmaXJzdC1jaGlsZCwjZG9jcy1ub3RpZmljYXRpb25zIC5ub3RpZmljYXRpb24gaDU6Zmlyc3QtY2hpbGQsI2RvY3Mtbm90aWZpY2F0aW9ucyAubm90aWZpY2F0aW9uIGg2OmZpcnN0LWNoaWxke21hcmdpbi10b3A6MH0jZG9jcy1ub3RpZmljYXRpb25zIC5ub3RpZmljYXRpb24gaDEsI2RvY3Mtbm90aWZpY2F0aW9ucyAubm90aWZpY2F0aW9uIGgye2ZvbnQtc2l6ZToxLjZyZW19I2RvY3Mtbm90aWZpY2F0aW9ucyAubm90aWZpY2F0aW9uIGgze2ZvbnQtc2l6ZToxLjM1cmVtfSNkb2NzLW5vdGlmaWNhdGlvbnMgLm5vdGlmaWNhdGlvbiBoNHtmb250LXNpemU6MS4ycmVtfSNkb2NzLW5vdGlmaWNhdGlvbnMgLm5vdGlmaWNhdGlvbiBoNXtmb250LXNpemU6MS4xcmVtfSNkb2NzLW5vdGlmaWNhdGlvbnMgLm5vdGlmaWNhdGlvbiBoNntmb250LXNpemU6MS4wNXJlbTtmb250LXN0eWxlOml0YWxpY30jZG9jcy1ub3RpZmljYXRpb25zIC5ub3RpZmljYXRpb24gcCwjZG9jcy1ub3RpZmljYXRpb25zIC5ub3RpZmljYXRpb24gbGl7bGluZS1oZWlnaHQ6MS41cmVtfSNkb2NzLW5vdGlmaWNhdGlvbnMgLm5vdGlmaWNhdGlvbiBwe21hcmdpbjowIDAgLjc1cmVtfSNkb2NzLW5vdGlmaWNhdGlvbnMgLm5vdGlmaWNhdGlvbiBhe2ZvbnQtd2VpZ2h0OmJvbGQ7dGV4dC1kZWNvcmF0aW9uOm5vbmU7Y29sb3I6I2ZmZjt0cmFuc2l0aW9uOmNvbG9yIC4yc30jZG9jcy1ub3RpZmljYXRpb25zIC5ub3RpZmljYXRpb24gdWwsI2RvY3Mtbm90aWZpY2F0aW9ucyAubm90aWZpY2F0aW9uIG9se3BhZGRpbmctbGVmdDoxLjVyZW19I2RvY3Mtbm90aWZpY2F0aW9ucyAubm90aWZpY2F0aW9uIGNvZGV7cGFkZGluZzouMTVyZW0gLjRyZW07Ym9yZGVyLXJhZGl1czoycHg7Zm9udC13ZWlnaHQ6Ym9sZH0jZG9jcy1ub3RpZmljYXRpb25zIC5ub3RpZmljYXRpb24gcHJle3BhZGRpbmc6MXJlbTtib3JkZXItcmFkaXVzOjJweDtvdmVyZmxvdzpzY3JvbGx9I2RvY3Mtbm90aWZpY2F0aW9ucyAubm90aWZpY2F0aW9uIHByZSBjb2Rle2JhY2tncm91bmQ6dHJhbnNwYXJlbnQgIWltcG9ydGFudH0jZG9jcy1ub3RpZmljYXRpb25zIC5ub3RpZmljYXRpb24gaHJ7Ym9yZGVyLXdpZHRoOjFweCAwIDAgMDtib3JkZXItc3R5bGU6ZG90dGVkO2JvcmRlci1jb2xvcjpyZ2JhKDI1NSwyNTUsMjU1LDAuNSl9I2RvY3Mtbm90aWZpY2F0aW9ucyAubm90aWZpY2F0aW9uLm1pbiAubm90aWZpY2F0aW9uLXRpdGxlIGgze2ZvbnQtc2l6ZToxLjE1cmVtfSNkb2NzLW5vdGlmaWNhdGlvbnMgLm5vdGlmaWNhdGlvbi5taW4gLm5vdGlmaWNhdGlvbi1jb250ZW50e21heC1oZWlnaHQ6MDttYXJnaW46MDtwYWRkaW5nOjA7b3BhY2l0eTowO3BvaW50ZXItZXZlbnRzOm5vbmV9I2RvY3Mtbm90aWZpY2F0aW9ucyAubm90aWZpY2F0aW9uLm1pbiAuc2hvdzo6YmVmb3Jle2NvbnRlbnQ6XCJTaG93IG1vcmVcIn0jZG9jcy1ub3RpZmljYXRpb25zIC5ub3RpZmljYXRpb24gLnRpdGxlLXRhZ3twYWRkaW5nOi4xNXJlbSAuNDVyZW07dGV4dC10cmFuc2Zvcm06dXBwZXJjYXNlO2ZvbnQtc2l6ZTouODVyZW07Ym9yZGVyLXJhZGl1czo0cHg7Zm9udC1mYW1pbHk6XCJJQk0gUGxleCBNb25vXCIsbW9ub3NwYWNlO2JhY2tncm91bmQ6IzAyMGE0N30jZG9jcy1ub3RpZmljYXRpb25zIC5ub3RpZmljYXRpb24gLnRpdGxlLXRhZytoM3ttYXJnaW4tdG9wOi43NXJlbX1AbWVkaWEgKG1heC13aWR0aDogNjAwcHgpeyNkb2NzLW5vdGlmaWNhdGlvbnN7dG9wOjUwcHh9fS5jb2RlYmxvY2t7cG9zaXRpb246cmVsYXRpdmV9LmNvZGUtY29udHJvbHN7cG9zaXRpb246YWJzb2x1dGU7ZGlzcGxheTpmbGV4O2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjthbGlnbi1pdGVtczpmbGV4LWVuZDt0b3A6LjVyZW07cmlnaHQ6LjVyZW19LmNvZGUtY29udHJvbHMgLmNvZGUtY29udHJvbHMtdG9nZ2xle3BhZGRpbmc6LjA1cmVtIC4xNXJlbTtkaXNwbGF5OmlubGluZS1ibG9jaztmb250LXNpemU6MS4xNXJlbTtjb2xvcjojQjdCOEZGO29wYWNpdHk6LjU7dHJhbnNpdGlvbjpvcGFjaXR5IC4ycztib3JkZXItcmFkaXVzOjJweDtib3JkZXI6bm9uZTtiYWNrZ3JvdW5kOm5vbmU7bGluZS1oZWlnaHQ6MDtjdXJzb3I6cG9pbnRlcn0uY29kZS1jb250cm9scyAuY29kZS1jb250cm9scy10b2dnbGU6aG92ZXIsLmNvZGUtY29udHJvbHMgLmNvZGUtY29udHJvbHMtdG9nZ2xlOmZvY3VzLXZpc2libGV7b3BhY2l0eToxO2JhY2tncm91bmQtY29sb3I6cmdiYSgyMTIsMjE1LDIyMSwwLjEpO2JhY2tkcm9wLWZpbHRlcjpibHVyKDE1cHgpfS5jb2RlLWNvbnRyb2xzIHVsLmNvZGUtY29udHJvbC1vcHRpb25ze2xpc3Qtc3R5bGU6bm9uZTtwYWRkaW5nOi41cmVtO21hcmdpbjowO2JvcmRlci1yYWRpdXM6MnB4O2JhY2tncm91bmQtY29sb3I6cmdiYSgyMTIsMjE1LDIyMSwwLjA1KTtiYWNrZHJvcC1maWx0ZXI6Ymx1cigxNXB4KTtkaXNwbGF5Om5vbmV9LmNvZGUtY29udHJvbHMgdWwuY29kZS1jb250cm9sLW9wdGlvbnMgYnV0dG9ue2Rpc3BsYXk6YmxvY2s7d2lkdGg6MTAwJTt0ZXh0LWFsaWduOmxlZnQ7bWFyZ2luOjA7cGFkZGluZzouNHJlbSAuNXJlbSAuNnJlbTtib3JkZXI6bm9uZTtiYWNrZ3JvdW5kOm5vbmU7Ym9yZGVyLXJhZGl1czoycHg7Y29sb3I6I0ZBRkFGQztmb250LXNpemU6Ljg3cmVtO2xpbmUtaGVpZ2h0OjA7Y3Vyc29yOnBvaW50ZXJ9LmNvZGUtY29udHJvbHMgdWwuY29kZS1jb250cm9sLW9wdGlvbnMgYnV0dG9uOmhvdmVyLC5jb2RlLWNvbnRyb2xzIHVsLmNvZGUtY29udHJvbC1vcHRpb25zIGJ1dHRvbjpmb2N1cy12aXNpYmxle2JhY2tncm91bmQtY29sb3I6cmdiYSgyMTIsMjE1LDIyMSwwLjA3KX0uY29kZS1jb250cm9scyB1bC5jb2RlLWNvbnRyb2wtb3B0aW9ucyBidXR0b24gLmNmLWljb257bWFyZ2luLXJpZ2h0Oi4zNXJlbX0uY29kZS1jb250cm9scyB1bC5jb2RlLWNvbnRyb2wtb3B0aW9ucyBidXR0b24uY29weS1jb2RlIC5tZXNzYWdle3RleHQtc2hhZG93OjBweCAwcHggOHB4IHJnYmEoMjEyLDIxNSwyMjEsMCk7Zm9udC13ZWlnaHQ6bm9ybWFsO3RyYW5zaXRpb246Y29sb3IgLjJzLCB0ZXh0LXNoYWRvdyAuMnN9LmNvZGUtY29udHJvbHMgdWwuY29kZS1jb250cm9sLW9wdGlvbnMgYnV0dG9uLmNvcHktY29kZS5zdWNjZXNzPi5tZXNzYWdle3RleHQtc2hhZG93OjBweCAwcHggOHB4IHJnYmEoMjEyLDIxNSwyMjEsMC41KTtmb250LXdlaWdodDpib2xkfS5jb2RlLWNvbnRyb2xzIHVsLmNvZGUtY29udHJvbC1vcHRpb25zIGJ1dHRvbi5jb3B5LWNvZGUuZmFpbGVkPi5tZXNzYWdle2NvbG9yOiNEQzRFNTg7dGV4dC1zaGFkb3c6MHB4IDBweCA4cHggcmdiYSgyMjAsNzgsODgsMC41KTtmb250LXdlaWdodDpib2xkfS5jb2RlLWNvbnRyb2xzIHVsLmNvZGUtY29udHJvbC1vcHRpb25zIGxpe21hcmdpbjowfS5jb2RlLWNvbnRyb2xzLm9wZW4gLmNvZGUtY29udHJvbHMtdG9nZ2xle2Rpc3BsYXk6bm9uZX0uY29kZS1jb250cm9scy5vcGVuIC5jb2RlLWNvbnRyb2wtb3B0aW9uc3tkaXNwbGF5OmJsb2NrfS5mdWxsc2NyZWVuLWNvZGV7ZGlzcGxheTpub25lO3otaW5kZXg6MTAwMDtwb3NpdGlvbjpmaXhlZDt0b3A6MDtsZWZ0OjA7aGVpZ2h0OjEwMHZoO3dpZHRoOjEwMHZ3O3BhZGRpbmc6MnJlbTtiYWNrZ3JvdW5kOiMwNzA3MEU7b3ZlcmZsb3c6c2Nyb2xsICFpbXBvcnRhbnR9LmZ1bGxzY3JlZW4tY29kZSAuZnVsbHNjcmVlbi1jbG9zZXtwb3NpdGlvbjpmaXhlZDtwYWRkaW5nOi4xcmVtO3JpZ2h0Oi43NXJlbTt0b3A6LjVyZW07ZGlzcGxheTpibG9jaztjb2xvcjojQjdCOEZGO2ZvbnQtc2l6ZToycmVtO3RleHQtZGVjb3JhdGlvbjpub25lO2JhY2tncm91bmQ6IzA3MDcwRTtib3JkZXItcmFkaXVzOjJweH0uZnVsbHNjcmVlbi1jb2RlIC5mdWxsc2NyZWVuLWNsb3NlIHNwYW57b3BhY2l0eTowLjU7dHJhbnNpdGlvbjpvcGFjaXR5IDAuMnN9LmZ1bGxzY3JlZW4tY29kZSAuZnVsbHNjcmVlbi1jbG9zZTpob3ZlciBzcGFue29wYWNpdHk6MX0uZnVsbHNjcmVlbi1jb2RlIHByZXtkaXNwbGF5OmJsb2NrO2xpbmUtaGVpZ2h0OjEuNzVyZW07Zm9udC1mYW1pbHk6XCJJQk0gUGxleCBNb25vXCIsbW9ub3NwYWNlfS5mdWxsc2NyZWVuLWNvZGUgcHJlIGNvZGUsLmZ1bGxzY3JlZW4tY29kZSBwcmUgcHJle2JhY2tncm91bmQ6IzA3MDcwRTtmb250LWZhbWlseTpcIklCTSBQbGV4IE1vbm9cIixtb25vc3BhY2U7Y29sb3I6I0I3QjhGRn0uZnVsbHNjcmVlbi1jb2RlIHByZSBwIGNvZGUsLmZ1bGxzY3JlZW4tY29kZSBwcmUgbGkgY29kZSwuZnVsbHNjcmVlbi1jb2RlIHByZSB0YWJsZSBjb2Rle3BhZGRpbmc6LjFyZW0gLjRyZW0gLjJyZW07Ym9yZGVyLXJhZGl1czoycHg7Y29sb3I6I0I3QjhGRjt3aGl0ZS1zcGFjZTpub3dyYXA7Zm9udC1zaXplOjFyZW07Zm9udC1zdHlsZTpub3JtYWx9LmZ1bGxzY3JlZW4tY29kZSBwcmUgaDEgY29kZSwuZnVsbHNjcmVlbi1jb2RlIHByZSBoMiBjb2RlLC5mdWxsc2NyZWVuLWNvZGUgcHJlIGgzIGNvZGUsLmZ1bGxzY3JlZW4tY29kZSBwcmUgaDQgY29kZSwuZnVsbHNjcmVlbi1jb2RlIHByZSBoNSBjb2RlLC5mdWxsc2NyZWVuLWNvZGUgcHJlIGg2IGNvZGV7cGFkZGluZzppbmhlcml0ICFpbXBvcnRhbnQ7YmFja2dyb3VuZDppbmhlcml0ICFpbXBvcnRhbnQ7Zm9udC1zaXplOmluaGVyaXQgIWltcG9ydGFudDtmb250LXdlaWdodDppbmhlcml0ICFpbXBvcnRhbnQ7Zm9udC1mYW1pbHk6XCJQcm94aW1hIE5vdmFcIixzYW5zLXNlcmlmO2NvbG9yOmluaGVyaXQgIWltcG9ydGFudH0uZnVsbHNjcmVlbi1jb2RlIHByZSBhIGNvZGV7Zm9udC13ZWlnaHQ6bm9ybWFsO3RyYW5zaXRpb246Y29sb3IgLjJzO3Bvc2l0aW9uOnJlbGF0aXZlO2NvbG9yOiMwMEEzRkZ9LmZ1bGxzY3JlZW4tY29kZSBwcmUgYSBjb2RlOmFmdGVye2NvbnRlbnQ6XCJcIjtwb3NpdGlvbjphYnNvbHV0ZTtkaXNwbGF5OmJsb2NrO3RvcDowO3JpZ2h0OjA7Ym9yZGVyLXN0eWxlOnNvbGlkO2JvcmRlci13aWR0aDowIC40cmVtIC40cmVtIDA7Ym9yZGVyLWNvbG9yOnRyYW5zcGFyZW50IHJnYmEoMCwxNjMsMjU1LDAuMzUpIHRyYW5zcGFyZW50IHRyYW5zcGFyZW50O3RyYW5zaXRpb246Ym9yZGVyIC4yc30uZnVsbHNjcmVlbi1jb2RlIHByZSBhOmhvdmVyIGNvZGV7Y29sb3I6I2ZmZn0uZnVsbHNjcmVlbi1jb2RlIHByZSBhOmhvdmVyIGNvZGU6YWZ0ZXJ7Ym9yZGVyLWNvbG9yOnRyYW5zcGFyZW50ICNmZmYgdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnR9LmZ1bGxzY3JlZW4tY29kZSBwcmUgcHJle21hcmdpbjoycmVtIDAgMi4yNXJlbTtwYWRkaW5nOjEuNzVyZW0gMS43NXJlbSAxLjI1cmVtO2JvcmRlci1yYWRpdXM6MnB4O292ZXJmbG93LXg6c2Nyb2xsO292ZXJmbG93LXk6aGlkZGVuO2ZvbnQtc2l6ZToxcmVtfS5mdWxsc2NyZWVuLWNvZGUgcHJlIHByZSBjb2Rle3BhZGRpbmc6MDtsaW5lLWhlaWdodDoxLjdyZW07d2hpdGUtc3BhY2U6cHJlfS5mdWxsc2NyZWVuLWNvZGUgcHJlIHByZSAuYXBpe21hcmdpbi1yaWdodDouMzVyZW07cGFkZGluZzouMTVyZW0gLjVyZW0gLjI1cmVtO2JvcmRlci1yYWRpdXM6MnB4O2NvbG9yOiNmZmY7Zm9udC1mYW1pbHk6XCJJQk0gUGxleCBNb25vXCIsbW9ub3NwYWNlO2ZvbnQtd2VpZ2h0OmJvbGQ7Zm9udC1zaXplOjFyZW19LmZ1bGxzY3JlZW4tY29kZSBwcmUgcHJlIC5hcGkuZ2V0e2JhY2tncm91bmQ6IzAwOUY1Rn0uZnVsbHNjcmVlbi1jb2RlIHByZSBwcmUgLmFwaS5wb3N0e2JhY2tncm91bmQ6IzA2NkZDNX0uZnVsbHNjcmVlbi1jb2RlIHByZSBwcmUgLmFwaS5wYXRjaHtiYWNrZ3JvdW5kOiNFODVCMUN9LmZ1bGxzY3JlZW4tY29kZSBwcmUgcHJlIC5hcGkuZGVsZXRle2JhY2tncm91bmQ6I0JGM0Q1RX0uZnVsbHNjcmVlbi1jb2RlIHByZSBwcmUgLmFwaS5wdXR7YmFja2dyb3VuZDojNTEzQ0M2fS5mdWxsc2NyZWVuLWNvZGUgcHJlIHByZS5hcGktZW5kcG9pbnQgYXtwb3NpdGlvbjpyZWxhdGl2ZTtjb2xvcjojMDBBM0ZGO3RleHQtZGVjb3JhdGlvbjpub25lfS5mdWxsc2NyZWVuLWNvZGUgcHJlIHByZS5hcGktZW5kcG9pbnQgYTphZnRlcntjb250ZW50OlwiXFxlOTBkXCI7cG9zaXRpb246YWJzb2x1dGU7cmlnaHQ6LTEuNDVyZW07dG9wOjAuNjVyZW07Zm9udC1mYW1pbHk6XCJpY29tb29uLXY0XCI7Y29sb3I6I2ZmZjtkaXNwbGF5OmlubGluZS1ibG9jaztmb250LXNpemU6MS4xcmVtO2xpbmUtaGVpZ2h0OjA7b3BhY2l0eTowO3RyYW5zaXRpb246b3BhY2l0eSAuMnN9LmZ1bGxzY3JlZW4tY29kZSBwcmUgcHJlLmFwaS1lbmRwb2ludCBhOmhvdmVye2NvbG9yOiNmZmZ9LmZ1bGxzY3JlZW4tY29kZSBwcmUgcHJlLmFwaS1lbmRwb2ludCBhOmhvdmVyOmFmdGVye29wYWNpdHk6LjZ9LmZ1bGxzY3JlZW4tY29kZSBwcmUgc3Bhbi5jb2RlLWNhbGxvdXQsLmZ1bGxzY3JlZW4tY29kZSBwcmUgLmNvZGUtcGxhY2Vob2xkZXJ7Zm9udC13ZWlnaHQ6Ym9sZDttYXJnaW46MCAuMTVyZW19LmZ1bGxzY3JlZW4tY29kZSBwcmUgc3Bhbi5jb2RlLWNhbGxvdXQuZ3JlZW4sLmZ1bGxzY3JlZW4tY29kZSBwcmUgLmNvZGUtcGxhY2Vob2xkZXIuZ3JlZW57Y29sb3I6IzAwOUY1Rn0uZnVsbHNjcmVlbi1jb2RlIHByZSBzcGFuLmNvZGUtY2FsbG91dC5tYWdlbnRhLC5mdWxsc2NyZWVuLWNvZGUgcHJlIC5jb2RlLXBsYWNlaG9sZGVyLm1hZ2VudGF7Y29sb3I6I2QzMDk3MX0uZnVsbHNjcmVlbi1jb2RlIHByZSBzcGFuLmNvZGUtY2FsbG91dC5vcmFuZ2UsLmZ1bGxzY3JlZW4tY29kZSBwcmUgLmNvZGUtcGxhY2Vob2xkZXIub3Jhbmdle2NvbG9yOiNGOTVGNTN9LmZ1bGxzY3JlZW4tY29kZSBwcmUgc3Bhbi5jb2RlLWNhbGxvdXQuZGVsZXRlLC5mdWxsc2NyZWVuLWNvZGUgcHJlIHNwYW4uY29kZS1jYWxsb3V0LnN0cmlrZSwuZnVsbHNjcmVlbi1jb2RlIHByZSAuY29kZS1wbGFjZWhvbGRlci5kZWxldGUsLmZ1bGxzY3JlZW4tY29kZSBwcmUgLmNvZGUtcGxhY2Vob2xkZXIuc3RyaWtle3RleHQtZGVjb3JhdGlvbjpsaW5lLXRocm91Z2h9LmZ1bGxzY3JlZW4tY29kZSBwcmUgLmNvZGUtcGxhY2Vob2xkZXItd3JhcHBlcntkaXNwbGF5OmlubGluZTtwb3NpdGlvbjpyZWxhdGl2ZX0uZnVsbHNjcmVlbi1jb2RlIHByZSAuY29kZS1wbGFjZWhvbGRlci13cmFwcGVyIC5jb2RlLXBsYWNlaG9sZGVye2Rpc3BsYXk6aW5saW5lLWJsb2NrO21hcmdpbjowIC4xNXJlbTtwYWRkaW5nOjA7bGluZS1oZWlnaHQ6MS40ZW07Y29sb3I6I2U2NTlhMjtmb250LXdlaWdodDpub3JtYWw7Zm9udC1zdHlsZTpub3JtYWw7Ym9yZGVyLWJvdHRvbToxcHggZG90dGVkO3RyYW5zaXRpb246Y29sb3IgLjJzO2N1cnNvcjpwb2ludGVyfS5mdWxsc2NyZWVuLWNvZGUgcHJlIC5jb2RlLXBsYWNlaG9sZGVyLXdyYXBwZXIgLmNvZGUtcGxhY2Vob2xkZXIgLmNvZGUtcGxhY2Vob2xkZXItZWRpdC1pY29ue2ZvbnQtc3R5bGU6bm9ybWFsfS5mdWxsc2NyZWVuLWNvZGUgcHJlIC5jb2RlLXBsYWNlaG9sZGVyLXdyYXBwZXIgLmNvZGUtcGxhY2Vob2xkZXIgLmNvZGUtcGxhY2Vob2xkZXItZWRpdC1pY29uOjpiZWZvcmV7bWFyZ2luLWxlZnQ6LjJyZW07Zm9udC1zaXplOi44ZW07dHJhbnNpdGlvbjpvcGFjaXR5IC4ycztvcGFjaXR5Oi42NTt6LWluZGV4Oi0xfS5mdWxsc2NyZWVuLWNvZGUgcHJlIC5jb2RlLXBsYWNlaG9sZGVyLXdyYXBwZXIgLmNvZGUtcGxhY2Vob2xkZXI6aG92ZXJ7Y29sb3I6IzVlZTRlNH0uZnVsbHNjcmVlbi1jb2RlIHByZSAuY29kZS1wbGFjZWhvbGRlci13cmFwcGVyIC5jb2RlLXBsYWNlaG9sZGVyOmhvdmVyIC5jb2RlLXBsYWNlaG9sZGVyLWVkaXQtaWNvbjo6YmVmb3Jle29wYWNpdHk6MX0uZnVsbHNjcmVlbi1jb2RlIHByZSAuY29kZS1wbGFjZWhvbGRlci13cmFwcGVyIC5jb2RlLWlucHV0LXdyYXBwZXJ7cG9zaXRpb246YWJzb2x1dGU7dG9wOi0zcHg7bGVmdDotNC41cHg7ei1pbmRleDoxO2NvbG9yOmluaGVyaXR9LmZ1bGxzY3JlZW4tY29kZSBwcmUgLmNvZGUtcGxhY2Vob2xkZXItd3JhcHBlciAuY29kZS1pbnB1dC13cmFwcGVyIGlucHV0LnBsYWNlaG9sZGVyLWVkaXR7d2lkdGg6MTAwJTttYXgtd2lkdGg6MTAwJTtib3JkZXI6MXB4IHNvbGlkICMxQTFBMkE7Ym9yZGVyLXJhZGl1czo0cHg7YmFja2dyb3VuZC1jb2xvcjojMUExQTJBO3BhZGRpbmc6MnB4IDIwcHggMnB4IDZweDtjb2xvcjojNWVlNGU0O2ZvbnQtd2VpZ2h0Om5vcm1hbH0uZnVsbHNjcmVlbi1jb2RlIHByZSAuY29kZS1wbGFjZWhvbGRlci13cmFwcGVyIC5jb2RlLWlucHV0LXdyYXBwZXIgaW5wdXQucGxhY2Vob2xkZXItZWRpdDpmb2N1c3tvdXRsaW5lOm5vbmU7Ym9yZGVyLWNvbG9yOnJnYmEoOTQsMjI4LDIyOCwwLjc1KTtib3gtc2hhZG93OjFweCAxcHggOHB4IHJnYmEoOTQsMjI4LDIyOCwwLjUpO2JvcmRlci1yYWRpdXM6MnB4fS5mdWxsc2NyZWVuLWNvZGUgcHJlIC5jb2RlLXBsYWNlaG9sZGVyLXdyYXBwZXIgLmNvZGUtaW5wdXQtd3JhcHBlcjpob3ZlcntjdXJzb3I6cG9pbnRlcn0uZnVsbHNjcmVlbi1jb2RlIHByZSAuY29kZS1wbGFjZWhvbGRlci13cmFwcGVyIC5jb2RlLWlucHV0LXdyYXBwZXI6YWZ0ZXJ7Y29udGVudDpcIlxcZTkzN1wiO2NvbG9yOiM1ZWU0ZTQ7Zm9udC1mYW1pbHk6J2ljb21vb24tdjQnO2Rpc3BsYXk6YmxvY2s7cG9zaXRpb246YWJzb2x1dGU7dG9wOjA7cmlnaHQ6M3B4fS5mdWxsc2NyZWVuLWNvZGUgcHJlIC5jb2RlLXBsYWNlaG9sZGVyLWtleSBjb2Rle2NvbG9yOiNlNjU5YTIgIWltcG9ydGFudH0uZnVsbHNjcmVlbi1jb2RlIHByZSBwcmUgc3Bhbi50Yy1keW5hbWljLXZhbHVle2JvcmRlcjoxcHggc29saWQ7Ym9yZGVyLXJhZGl1czo2cHg7cGFkZGluZzowIC4yNXJlbTstLXBhcmFtLWNvbG9yOiAjZmY3OWM2Oy0tcGFyYW0tYmc6ICNmZjc5YzYzMzstLWVudi1jb2xvcjogIzAwOTJiODstLWVudi1iZzogIzAwOTJiODMzOy0tc2VjcmV0LWNvbG9yOiAjOWEwOWZmOy0tc2VjcmV0LWJnOiAjOTgwOWZmMzN9LmZ1bGxzY3JlZW4tY29kZSBwcmUgcHJlIHNwYW4udGMtZHluYW1pYy12YWx1ZS5wYXJhbXtjb2xvcjp2YXIoLS1wYXJhbS1jb2xvcik7YmFja2dyb3VuZDp2YXIoLS1wYXJhbS1iZyk7Ym9yZGVyLWNvbG9yOnZhcigtLXBhcmFtLWNvbG9yKX0uZnVsbHNjcmVlbi1jb2RlIHByZSBwcmUgc3Bhbi50Yy1keW5hbWljLXZhbHVlLmVudntjb2xvcjp2YXIoLS1lbnYtY29sb3IpO2JhY2tncm91bmQ6dmFyKC0tZW52LWJnKTtib3JkZXItY29sb3I6dmFyKC0tZW52LWNvbG9yKX0uZnVsbHNjcmVlbi1jb2RlIHByZSBwcmUgc3Bhbi50Yy1keW5hbWljLXZhbHVlLnNlY3JldHtjb2xvcjp2YXIoLS1zZWNyZXQtY29sb3IpO2JhY2tncm91bmQ6dmFyKC0tc2VjcmV0LWJnKTtib3JkZXItY29sb3I6dmFyKC0tc2VjcmV0LWNvbG9yKX1AbWVkaWEgKG1heC13aWR0aDogNjAwcHgpey5mdWxsc2NyZWVuLWNvZGUgcHJlIHByZXtwYWRkaW5nOjEuMmVtIDEuMmVtIC43NXJlbX19I3YzLXdheWZpbmRpbmctbW9kYWx7ZGlzcGxheTpmbGV4O3dpZHRoOjEwMCU7anVzdGlmeS1jb250ZW50OmNlbnRlcjthbGlnbi1pdGVtczpjZW50ZXI7cG9zaXRpb246Zml4ZWQ7dG9wOi0xMDB2aDtwYWRkaW5nOjJyZW07ei1pbmRleDoyMDA7YmFja2Ryb3AtZmlsdGVyOmJsdXIoMTVweCk7dHJhbnNpdGlvbjp0b3AgLjc1cyBlYXNlLWluLW91dH0jdjMtd2F5ZmluZGluZy1tb2RhbC5vcGVue3RvcDowfSN2My13YXlmaW5kaW5nLW1vZGFsIC53YXlmaW5kaW5nLXdyYXBwZXJ7YmFja2dyb3VuZDpsaW5lYXItZ3JhZGllbnQoNDVkZWcsICNkMzA5NzEsIzliMmFmZik7cG9zaXRpb246cmVsYXRpdmU7bWF4LXdpZHRoOjgwMHB4O3BvaW50ZXItZXZlbnRzOmFsbDtib3JkZXItcmFkaXVzOjRweH0jdjMtd2F5ZmluZGluZy1tb2RhbCAud2F5ZmluZGluZy1jb250ZW50e3BhZGRpbmc6MS41cmVtO2NvbG9yOiNmZmZ9I3YzLXdheWZpbmRpbmctbW9kYWwgLndheWZpbmRpbmctY29udGVudCBoNHtmb250LXNpemU6MS4yNXJlbTttYXJnaW46MH0jdjMtd2F5ZmluZGluZy1tb2RhbCAud2F5ZmluZGluZy1jb250ZW50LWluZm97ZGlzcGxheTpmbGV4O2ZsZXgtZGlyZWN0aW9uOnJvd30jdjMtd2F5ZmluZGluZy1tb2RhbCAud2F5ZmluZGluZy1jb250ZW50LWluZm8gcHtjb2xvcjpyZ2JhKDI1NSwyNTUsMjU1LDAuODUpO2xpbmUtaGVpZ2h0OjEuNjVyZW19I3YzLXdheWZpbmRpbmctbW9kYWwgLndheWZpbmRpbmctY29udGVudC1pbmZvIHAgc3Ryb25ne2NvbG9yOiNmZmZ9I3YzLXdheWZpbmRpbmctbW9kYWwgLndheWZpbmRpbmctY29udGVudC1pbmZvIGEjZmluZC1vdXQtdG9nZ2xle3Bvc2l0aW9uOnJlbGF0aXZlO2NvbG9yOmluaGVyaXQ7Zm9udC1zaXplOi45NXJlbTt0ZXh0LWRlY29yYXRpb246bm9uZTt3aGl0ZS1zcGFjZTpub3dyYXB9I3YzLXdheWZpbmRpbmctbW9kYWwgLndheWZpbmRpbmctY29udGVudC1pbmZvIGEjZmluZC1vdXQtdG9nZ2xlOmFmdGVye3Bvc2l0aW9uOmFic29sdXRlO2Rpc3BsYXk6YmxvY2s7Y29udGVudDpcIlwiO2JvcmRlci10b3A6MXB4IHNvbGlkICNmZmY7Ym90dG9tOi0uMXJlbTtsZWZ0OjA7aGVpZ2h0OjFweDt3aWR0aDowJTt0cmFuc2l0aW9uOndpZHRoIC4yc30jdjMtd2F5ZmluZGluZy1tb2RhbCAud2F5ZmluZGluZy1jb250ZW50LWluZm8gYSNmaW5kLW91dC10b2dnbGU6aG92ZXJ7Y29sb3I6I2ZmZn0jdjMtd2F5ZmluZGluZy1tb2RhbCAud2F5ZmluZGluZy1jb250ZW50LWluZm8gYSNmaW5kLW91dC10b2dnbGU6aG92ZXI6YWZ0ZXJ7d2lkdGg6MTAwJX0jdjMtd2F5ZmluZGluZy1tb2RhbCAud2F5ZmluZGluZy1jb250ZW50LWluZm8gI2ZpbmQtb3V0LWluc3RydWN0aW9uc3t0ZXh0LWFsaWduOmNlbnRlcjtsaW5lLWhlaWdodDoxcmVtO3RyYW5zaXRpb246aGVpZ2h0IC4ycyBlYXNlLW91dCwgb3BhY2l0eSAuMnM7b3BhY2l0eTowO2hlaWdodDowO292ZXJmbG93OmhpZGRlbn0jdjMtd2F5ZmluZGluZy1tb2RhbCAud2F5ZmluZGluZy1jb250ZW50LWluZm8gI2ZpbmQtb3V0LWluc3RydWN0aW9ucyBwe21hcmdpbi10b3A6MDtmb250LXNpemU6Ljk1cmVtO2ZvbnQtc3R5bGU6aXRhbGljO2xpbmUtaGVpZ2h0OjEuM3JlbX0jdjMtd2F5ZmluZGluZy1tb2RhbCAud2F5ZmluZGluZy1jb250ZW50LWluZm8gI2ZpbmQtb3V0LWluc3RydWN0aW9ucyBhe3Bvc2l0aW9uOnJlbGF0aXZlO2NvbG9yOiNmZmY7dGV4dC1kZWNvcmF0aW9uOm5vbmU7Zm9udC13ZWlnaHQ6Ym9sZH0jdjMtd2F5ZmluZGluZy1tb2RhbCAud2F5ZmluZGluZy1jb250ZW50LWluZm8gI2ZpbmQtb3V0LWluc3RydWN0aW9ucyBhOmFmdGVye3Bvc2l0aW9uOmFic29sdXRlO2Rpc3BsYXk6YmxvY2s7Y29udGVudDpcIlwiO2JvcmRlci10b3A6MXB4IHNvbGlkICNmZmY7Ym90dG9tOi0uMnJlbTtsZWZ0OjA7aGVpZ2h0OjFweDt3aWR0aDowJTt0cmFuc2l0aW9uOndpZHRoIC4yc30jdjMtd2F5ZmluZGluZy1tb2RhbCAud2F5ZmluZGluZy1jb250ZW50LWluZm8gI2ZpbmQtb3V0LWluc3RydWN0aW9ucyBhOmhvdmVyOmFmdGVye3dpZHRoOjEwMCV9I3YzLXdheWZpbmRpbmctbW9kYWwgLndheWZpbmRpbmctY29udGVudC1pbmZvIC5wb3dlcmVkLWJ5LWV4YW1wbGV7cGFkZGluZzoxcmVtIDEuMjVyZW07ZGlzcGxheTppbmxpbmUtYmxvY2s7Ym9yZGVyLXJhZGl1czoycHg7YmFja2dyb3VuZDojMEYwRTE1O2NvbG9yOiMyQUEzRkY7Zm9udC1zaXplOi45NXJlbTtmb250LXdlaWdodDpib2xkO3RleHQtYWxpZ246Y2VudGVyfSN2My13YXlmaW5kaW5nLW1vZGFsIC53YXlmaW5kaW5nLWNvbnRlbnQtaW5mbyAucG93ZXJlZC1ieS1leGFtcGxlIHNwYW4uc3RvcmFnZS1kZXNjcmlwdGlvbntkaXNwbGF5OmJsb2NrO2NvbG9yOiM4MjgyOTQ7Zm9udC13ZWlnaHQ6bm9ybWFsO2xpbmUtaGVpZ2h0OjEuMXJlbX0jdjMtd2F5ZmluZGluZy1tb2RhbCAud2F5ZmluZGluZy1jb250ZW50LWluZm8gLnBvd2VyZWQtYnktZXhhbXBsZSBzcGFuLnN0b3JhZ2UtZGVzY3JpcHRpb24uZ2l0LWhlYWQ6OmFmdGVye2NvbnRlbnQ6XCIoeHh4eHh4KVwiO2ZvbnQtZmFtaWx5OlwiSUJNIFBsZXggTW9ub1wiLG1vbm9zcGFjZTttYXJnaW4tbGVmdDouMnJlbX0jdjMtd2F5ZmluZGluZy1tb2RhbCAud2F5ZmluZGluZy1hY3Rpb25ze21pbi13aWR0aDozMyU7bWFyZ2luLWxlZnQ6MnJlbTtkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246Y29sdW1uO2p1c3RpZnktY29udGVudDpjZW50ZXI7YWxpZ24tY29udGVudDpjZW50ZXJ9I3YzLXdheWZpbmRpbmctbW9kYWwgLnYzLXdheWZpbmRpbmctYnRue2Rpc3BsYXk6YmxvY2s7cGFkZGluZzoxcmVtO21hcmdpbi1ib3R0b206LjVyZW07Ym9yZGVyLXJhZGl1czoycHg7YmFja2dyb3VuZC1jb2xvcjojZmZmO3RleHQtYWxpZ246Y2VudGVyO3RleHQtZGVjb3JhdGlvbjpub25lO2NvbG9yOiM5YjJhZmY7Ym94LXNoYWRvdzowcHggMHB4IDEwcHggcmdiYSgyNTUsMjU1LDI1NSwwKTt0cmFuc2l0aW9uOmNvbG9yIC4ycywgYm94LXNoYWRvdyAuMnN9I3YzLXdheWZpbmRpbmctbW9kYWwgLnYzLXdheWZpbmRpbmctYnRuOmhvdmVye2NvbG9yOiM1QzEwQTA7Ym94LXNoYWRvdzowIDAgMTBweCByZ2JhKDI1NSwyNTUsMjU1LDAuOSl9I3YzLXdheWZpbmRpbmctbW9kYWwgLnYzLXdheWZpbmRpbmctYnRuIC5zbWFsbHtmb250LXNpemU6MXJlbX0jdjMtd2F5ZmluZGluZy1tb2RhbCAjdjMtd2F5ZmluZGluZy1jbG9zZXtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6Ljc1cmVtO3JpZ2h0Oi43NXJlbTtjb2xvcjojZmZmO2ZvbnQtc2l6ZToycmVtO29wYWNpdHk6LjY1O3RyYW5zaXRpb246b3BhY2l0eSAuMnN9I3YzLXdheWZpbmRpbmctbW9kYWwgI3YzLXdheWZpbmRpbmctY2xvc2U6aG92ZXJ7b3BhY2l0eToxO2N1cnNvcjpwb2ludGVyfSN2My13YXlmaW5kaW5nLW1vZGFsIGxhYmVse21hcmdpbi10b3A6LjVyZW07ZGlzcGxheTpibG9jazt0ZXh0LWFsaWduOmNlbnRlcjtmb250LXNpemU6Ljk1cmVtO2ZvbnQtc3R5bGU6aXRhbGljO3Bvc2l0aW9uOnJlbGF0aXZlO2N1cnNvcjpwb2ludGVyO3VzZXItc2VsZWN0Om5vbmU7LXdlYmtpdC11c2VyLXNlbGVjdDpub25lfSN2My13YXlmaW5kaW5nLW1vZGFsIGxhYmVsIC5jaGVja2JveHtkaXNwbGF5OmlubGluZS1ibG9jazt3aWR0aDoxNXB4O2hlaWdodDoxNXB4O2JvcmRlcjoxLjVweCBzb2xpZCByZ2JhKDI1NSwyNTUsMjU1LDAuODUpO3ZlcnRpY2FsLWFsaWduOm1pZGRsZTtib3JkZXItcmFkaXVzOjJweDtwb3NpdGlvbjpyZWxhdGl2ZX0jdjMtd2F5ZmluZGluZy1tb2RhbCBsYWJlbCAuY2hlY2tib3g6YmVmb3Jle2NvbnRlbnQ6Jyc7ZGlzcGxheTppbmxpbmUtYmxvY2s7d2lkdGg6M3B4O2hlaWdodDo3cHg7Ym9yZGVyLXJpZ2h0OjJweCBzb2xpZCByZ2JhKDI1NSwyNTUsMjU1LDAuODUpO2JvcmRlci1ib3R0b206MnB4IHNvbGlkIHJnYmEoMjU1LDI1NSwyNTUsMC44NSk7cG9zaXRpb246YWJzb2x1dGU7bGVmdDo1MCU7dG9wOjUwJTt0cmFuc2Zvcm06dHJhbnNsYXRlKC01MCUsIC01MCUpIHJvdGF0ZSg0NWRlZykgc2NhbGUoMCk7dHJhbnNpdGlvbjphbGwgMC4yc30jdjMtd2F5ZmluZGluZy1tb2RhbCBsYWJlbCBpbnB1dHtwb3NpdGlvbjphYnNvbHV0ZTtvcGFjaXR5OjA7dmlzaWJpbGl0eTpoaWRkZW59I3YzLXdheWZpbmRpbmctbW9kYWwgbGFiZWwgaW5wdXQ6Y2hlY2tlZCsuY2hlY2tib3h7Ym9yZGVyLWNvbG9yOnJnYmEoMjU1LDI1NSwyNTUsMC44NSl9I3YzLXdheWZpbmRpbmctbW9kYWwgbGFiZWwgaW5wdXQ6Y2hlY2tlZCsuY2hlY2tib3g6YmVmb3Jle3RyYW5zZm9ybTp0cmFuc2xhdGUoLTUwJSwgLTYwJSkgcm90YXRlKDQ1ZGVnKSBzY2FsZSgxKX0jdjMtd2F5ZmluZGluZy1tb2RhbCBsYWJlbCAuY2hlY2tib3gtdGV4dHttYXJnaW4tbGVmdDo0cHg7ZGlzcGxheTppbmxpbmUtYmxvY2s7dmVydGljYWwtYWxpZ246bWlkZGxlfUBtZWRpYSAobWF4LXdpZHRoOiA2MDBweCl7I3YzLXdheWZpbmRpbmctbW9kYWwgLndheWZpbmRpbmctY29udGVudC1pbmZve2ZsZXgtZGlyZWN0aW9uOmNvbHVtbn0jdjMtd2F5ZmluZGluZy1tb2RhbCAjZmluZC1vdXQtaW5zdHJ1Y3Rpb25ze3BhZGRpbmctYm90dG9tOjEuNXJlbX0jdjMtd2F5ZmluZGluZy1tb2RhbCAud2F5ZmluZGluZy1hY3Rpb25ze21hcmdpbi1sZWZ0OjB9fS5pbmZsdXhkYi12ZXJzaW9uLWRldGVjdG9yey0tdHJhbnNpdGlvbi1mYXN0OiAwLjJzIGVhc2U7LS10cmFuc2l0aW9uLW5vcm1hbDogMC4zcyBlYXNlOy0tc3BhY2luZy1zbTogMC42MjVyZW07LS1zcGFjaW5nLW1kOiAxLjI1cmVtO21hcmdpbjoycmVtIGF1dG99LmluZmx1eGRiLXZlcnNpb24tZGV0ZWN0b3IgLmRldGVjdG9yLXRpdGxle2NvbG9yOiNmZmY7bWFyZ2luLWJvdHRvbTowLjYyNXJlbTtmb250LXNpemU6MS44ZW07Zm9udC13ZWlnaHQ6NjAwfS5pbmZsdXhkYi12ZXJzaW9uLWRldGVjdG9yIC5kZXRlY3Rvci1zdWJ0aXRsZXtjb2xvcjojRDREN0REO21hcmdpbi1ib3R0b206MS44NzVyZW07Zm9udC1zaXplOjAuOTVlbTtvcGFjaXR5OjAuOH0uaW5mbHV4ZGItdmVyc2lvbi1kZXRlY3RvciAucHJvZ3Jlc3N7bWFyZ2luLWJvdHRvbToxLjU2MjVyZW07aGVpZ2h0OjZweDtiYWNrZ3JvdW5kOiMzODM4NDY7Ym9yZGVyLXJhZGl1czozcHg7b3ZlcmZsb3c6aGlkZGVufS5pbmZsdXhkYi12ZXJzaW9uLWRldGVjdG9yIC5wcm9ncmVzcyAucHJvZ3Jlc3MtYmFye2hlaWdodDoxMDAlO2JhY2tncm91bmQ6IzAwQTNGRjt0cmFuc2l0aW9uOndpZHRoIHZhcigtLXRyYW5zaXRpb24tbm9ybWFsKX0uaW5mbHV4ZGItdmVyc2lvbi1kZXRlY3RvciAucXVlc3Rpb24tY29udGFpbmVye21pbi1oZWlnaHQ6MTUwcHh9LmluZmx1eGRiLXZlcnNpb24tZGV0ZWN0b3IgLnF1ZXN0aW9uLWNvbnRhaW5lciAucXVlc3Rpb257ZGlzcGxheTpub25lO2FuaW1hdGlvbjpmYWRlSW4gdmFyKC0tdHJhbnNpdGlvbi1ub3JtYWwpfS5pbmZsdXhkYi12ZXJzaW9uLWRldGVjdG9yIC5xdWVzdGlvbi1jb250YWluZXIgLnF1ZXN0aW9uLmFjdGl2ZXtkaXNwbGF5OmJsb2NrfS5pbmZsdXhkYi12ZXJzaW9uLWRldGVjdG9yIC5xdWVzdGlvbi1jb250YWluZXIgLnF1ZXN0aW9uIC5xdWVzdGlvbi10ZXh0e2ZvbnQtc2l6ZToxLjFlbTtjb2xvcjojZmZmO21hcmdpbi1ib3R0b206MS4yNXJlbTtmb250LXdlaWdodDo1MDB9LmluZmx1eGRiLXZlcnNpb24tZGV0ZWN0b3IgLnVybC1zdWdnZXN0aW9ucyAuc3VnZ2VzdGlvbi1idXR0b24sLmluZmx1eGRiLXZlcnNpb24tZGV0ZWN0b3IgLmJhY2stYnV0dG9uLC5pbmZsdXhkYi12ZXJzaW9uLWRldGVjdG9yIC5yZXN0YXJ0LWJ1dHRvbiwuaW5mbHV4ZGItdmVyc2lvbi1kZXRlY3RvciAuc3VibWl0LWJ1dHRvbiwuaW5mbHV4ZGItdmVyc2lvbi1kZXRlY3RvciAub3B0aW9uLWJ1dHRvbntib3JkZXI6bm9uZTtib3JkZXItcmFkaXVzOnZhcigtLWJvcmRlci1yYWRpdXMpO2N1cnNvcjpwb2ludGVyO3RyYW5zaXRpb246YWxsIHZhcigtLXRyYW5zaXRpb24tZmFzdCk7Zm9udC1mYW1pbHk6aW5oZXJpdH0uaW5mbHV4ZGItdmVyc2lvbi1kZXRlY3RvciAudXJsLXN1Z2dlc3Rpb25zIC5zdWdnZXN0aW9uLWJ1dHRvbjpmb2N1cywuaW5mbHV4ZGItdmVyc2lvbi1kZXRlY3RvciAuYmFjay1idXR0b246Zm9jdXMsLmluZmx1eGRiLXZlcnNpb24tZGV0ZWN0b3IgLnJlc3RhcnQtYnV0dG9uOmZvY3VzLC5pbmZsdXhkYi12ZXJzaW9uLWRldGVjdG9yIC5zdWJtaXQtYnV0dG9uOmZvY3VzLC5pbmZsdXhkYi12ZXJzaW9uLWRldGVjdG9yIC5vcHRpb24tYnV0dG9uOmZvY3Vze291dGxpbmU6MnB4IHNvbGlkICMwMEEzRkY7b3V0bGluZS1vZmZzZXQ6MnB4fS5pbmZsdXhkYi12ZXJzaW9uLWRldGVjdG9yIC5vcHRpb24tYnV0dG9ue2Rpc3BsYXk6YmxvY2s7d2lkdGg6MTAwJTt0ZXh0LWFsaWduOmxlZnQ7bWFyZ2luLWJvdHRvbTowLjc1cmVtO3BhZGRpbmc6MC44NzVyZW0gMS4xMjVyZW07YmFja2dyb3VuZDojMTQxNDFGO2NvbG9yOiNENEQ3REQ7Ym9yZGVyOjJweCBzb2xpZCAjMzgzODQ2O2ZvbnQtc2l6ZToxNXB4fS5pbmZsdXhkYi12ZXJzaW9uLWRldGVjdG9yIC5vcHRpb24tYnV0dG9uOmhvdmVye2JvcmRlci1jb2xvcjojMDBBM0ZGO2JhY2tncm91bmQ6IzE0MTQxRjt0cmFuc2Zvcm06dHJhbnNsYXRlWCgzcHgpfS5pbmZsdXhkYi12ZXJzaW9uLWRldGVjdG9yIC5vcHRpb24tYnV0dG9uOmFjdGl2ZXt0cmFuc2Zvcm06dHJhbnNsYXRlWCgxcHgpfS5pbmZsdXhkYi12ZXJzaW9uLWRldGVjdG9yIC5zdWJtaXQtYnV0dG9ue2JhY2tncm91bmQ6IzAwQTNGRjtjb2xvcjojZmZmO3BhZGRpbmc6MC43NXJlbSAxLjVyZW07Zm9udC1zaXplOjE1cHg7Zm9udC13ZWlnaHQ6NTAwfS5pbmZsdXhkYi12ZXJzaW9uLWRldGVjdG9yIC5zdWJtaXQtYnV0dG9uOmhvdmVye2JhY2tncm91bmQ6IzA2NkZDNTtjb2xvcjojZmZmfS5pbmZsdXhkYi12ZXJzaW9uLWRldGVjdG9yIC5zdWJtaXQtYnV0dG9uOmRpc2FibGVke2JhY2tncm91bmQ6IzY3Njk3ODtjdXJzb3I6bm90LWFsbG93ZWR9LmluZmx1eGRiLXZlcnNpb24tZGV0ZWN0b3IgLmJhY2stYnV0dG9uLC5pbmZsdXhkYi12ZXJzaW9uLWRldGVjdG9yIC5yZXN0YXJ0LWJ1dHRvbntiYWNrZ3JvdW5kOiM2NzY5Nzg7Y29sb3I6I2ZmZjtwYWRkaW5nOnZhcigtLXNwYWNpbmctc20pIHZhcigtLXNwYWNpbmctbWQpO2ZvbnQtc2l6ZToxNHB4O21hcmdpbi1yaWdodDp2YXIoLS1zcGFjaW5nLXNtKX0uaW5mbHV4ZGItdmVyc2lvbi1kZXRlY3RvciAuYmFjay1idXR0b246aG92ZXIsLmluZmx1eGRiLXZlcnNpb24tZGV0ZWN0b3IgLnJlc3RhcnQtYnV0dG9uOmhvdmVye2JhY2tncm91bmQ6Izc1Nzg4OH0uaW5mbHV4ZGItdmVyc2lvbi1kZXRlY3RvciAucmVzdGFydC1idXR0b257bWFyZ2luLXRvcDp2YXIoLS1zcGFjaW5nLW1kKTttYXJnaW4tcmlnaHQ6MH0uaW5mbHV4ZGItdmVyc2lvbi1kZXRlY3RvciB0ZXh0YXJlYSwuaW5mbHV4ZGItdmVyc2lvbi1kZXRlY3RvciAuaW5wdXQtZ3JvdXAgaW5wdXR7d2lkdGg6MTAwJTtib3JkZXI6MnB4IHNvbGlkICMzODM4NDY7Ym9yZGVyLXJhZGl1czp2YXIoLS1ib3JkZXItcmFkaXVzKTt0cmFuc2l0aW9uOmJvcmRlci1jb2xvciB2YXIoLS10cmFuc2l0aW9uLWZhc3QpO2JhY2tncm91bmQ6IzE0MTQxRjtjb2xvcjojRDREN0REfS5pbmZsdXhkYi12ZXJzaW9uLWRldGVjdG9yIHRleHRhcmVhOmZvY3VzLC5pbmZsdXhkYi12ZXJzaW9uLWRldGVjdG9yIC5pbnB1dC1ncm91cCBpbnB1dDpmb2N1c3tvdXRsaW5lOm5vbmU7Ym9yZGVyLWNvbG9yOiMwMEEzRkZ9LmluZmx1eGRiLXZlcnNpb24tZGV0ZWN0b3IgLmlucHV0LWdyb3Vwe21hcmdpbi1ib3R0b206dmFyKC0tc3BhY2luZy1tZCl9LmluZmx1eGRiLXZlcnNpb24tZGV0ZWN0b3IgLmlucHV0LWdyb3VwIGxhYmVse2Rpc3BsYXk6YmxvY2s7bWFyZ2luLWJvdHRvbTowLjVyZW07Y29sb3I6I0Q0RDdERDtmb250LXdlaWdodDo1MDB9LmluZmx1eGRiLXZlcnNpb24tZGV0ZWN0b3IgLmlucHV0LWdyb3VwIGlucHV0e3BhZGRpbmc6MC43NXJlbTtmb250LXNpemU6MTRweH0uaW5mbHV4ZGItdmVyc2lvbi1kZXRlY3RvciB0ZXh0YXJlYXtwYWRkaW5nOnZhcigtLXNwYWNpbmctc20pO2ZvbnQtZmFtaWx5OnZhcigtLWZvbnQtbW9ubywgXCJDb3VyaWVyIE5ld1wiLCBtb25vc3BhY2UpO2ZvbnQtc2l6ZToxMnB4O3Jlc2l6ZTp2ZXJ0aWNhbDttaW4taGVpZ2h0OjEyMHB4fS5pbmZsdXhkYi12ZXJzaW9uLWRldGVjdG9yIHRleHRhcmVhOjpwbGFjZWhvbGRlcntjb2xvcjpyZ2JhKDIxMiwyMTUsMjIxLDAuNik7b3BhY2l0eToxfS5pbmZsdXhkYi12ZXJzaW9uLWRldGVjdG9yIHRleHRhcmVhOjotd2Via2l0LWlucHV0LXBsYWNlaG9sZGVye2NvbG9yOnJnYmEoMjEyLDIxNSwyMjEsMC42KX0uaW5mbHV4ZGItdmVyc2lvbi1kZXRlY3RvciB0ZXh0YXJlYTo6LW1vei1wbGFjZWhvbGRlcntjb2xvcjpyZ2JhKDIxMiwyMTUsMjIxLDAuNik7b3BhY2l0eToxfS5pbmZsdXhkYi12ZXJzaW9uLWRldGVjdG9yIHRleHRhcmVhOi1tcy1pbnB1dC1wbGFjZWhvbGRlcntjb2xvcjpyZ2JhKDIxMiwyMTUsMjIxLDAuNil9LmluZmx1eGRiLXZlcnNpb24tZGV0ZWN0b3IgLmNvZGUtYmxvY2t7YmFja2dyb3VuZDojMDcwNzBFO2NvbG9yOiNCN0I4RkY7cGFkZGluZzoxLjc1cmVtIDEuNzVyZW0gMS4yNXJlbTtib3JkZXItcmFkaXVzOjJweDtmb250LWZhbWlseTpcIklCTSBQbGV4IE1vbm9cIixtb25vc3BhY2U7Zm9udC1zaXplOjFyZW07bWFyZ2luOjJyZW0gMCAyLjI1cmVtO292ZXJmbG93LXg6c2Nyb2xsO292ZXJmbG93LXk6aGlkZGVuO2xpbmUtaGVpZ2h0OjEuN3JlbTt3aGl0ZS1zcGFjZTpwcmV9LmluZmx1eGRiLXZlcnNpb24tZGV0ZWN0b3IgLnVybC1wYXR0ZXJuLWhpbnR7bWFyZ2luLWJvdHRvbTp2YXIoLS1zcGFjaW5nLXNtKTtwYWRkaW5nOnZhcigtLXNwYWNpbmctc20pO2JhY2tncm91bmQ6IzAwQTNGRjtib3JkZXI6MXB4IHNvbGlkICMwMEEzRkY7Ym9yZGVyLXJhZGl1czp2YXIoLS1ib3JkZXItcmFkaXVzKTtjb2xvcjojQkVGMEZGO2ZvbnQtc2l6ZToxM3B4fS5pbmZsdXhkYi12ZXJzaW9uLWRldGVjdG9yIC51cmwtc3VnZ2VzdGlvbnN7bWFyZ2luLWJvdHRvbTp2YXIoLS1zcGFjaW5nLW1kKX0uaW5mbHV4ZGItdmVyc2lvbi1kZXRlY3RvciAudXJsLXN1Z2dlc3Rpb25zIC5zdWdnZXN0aW9ucy1oZWFkZXJ7Y29sb3I6I2ZmZjttYXJnaW4tYm90dG9tOnZhcigtLXNwYWNpbmctc20pO2ZvbnQtc2l6ZToxNHB4fS5pbmZsdXhkYi12ZXJzaW9uLWRldGVjdG9yIC51cmwtc3VnZ2VzdGlvbnMgLnN1Z2dlc3Rpb24tYnV0dG9ue2Rpc3BsYXk6YmxvY2s7d2lkdGg6MTAwJTt0ZXh0LWFsaWduOmxlZnQ7bWFyZ2luLWJvdHRvbTp2YXIoLS1zcGFjaW5nLXNtKTtwYWRkaW5nOnZhcigtLXNwYWNpbmctc20pO2JhY2tncm91bmQ6IzE0MTQxRjtib3JkZXI6MXB4IHNvbGlkICMzODM4NDZ9LmluZmx1eGRiLXZlcnNpb24tZGV0ZWN0b3IgLnVybC1zdWdnZXN0aW9ucyAuc3VnZ2VzdGlvbi1idXR0b246aG92ZXJ7Ym9yZGVyLWNvbG9yOiMwMEEzRkY7YmFja2dyb3VuZDojMTQxNDFGfS5pbmZsdXhkYi12ZXJzaW9uLWRldGVjdG9yIC51cmwtc3VnZ2VzdGlvbnMgLnN1Z2dlc3Rpb24tYnV0dG9uIC5zdWdnZXN0aW9uLXVybHtmb250LWZhbWlseTp2YXIoLS1mb250LW1vbm8sIFwiQ291cmllciBOZXdcIiwgbW9ub3NwYWNlKTtmb250LXNpemU6MTNweDtjb2xvcjojMDBBM0ZGO21hcmdpbi1ib3R0b206MnB4fS5pbmZsdXhkYi12ZXJzaW9uLWRldGVjdG9yIC51cmwtc3VnZ2VzdGlvbnMgLnN1Z2dlc3Rpb24tYnV0dG9uIC5zdWdnZXN0aW9uLXByb2R1Y3R7Zm9udC1zaXplOjEycHg7Y29sb3I6I0Q0RDdERDtvcGFjaXR5OjAuOH0uaW5mbHV4ZGItdmVyc2lvbi1kZXRlY3RvciAudXJsLXN1Z2dlc3Rpb25zIC5zdWdnZXN0aW9uLWJ1dHRvbiAuc3VnZ2VzdGlvbi1wYXR0ZXJue2ZvbnQtc2l6ZToxMXB4O2NvbG9yOiMwMEEzRkY7Zm9udC1zdHlsZTppdGFsaWM7bWFyZ2luLXRvcDoycHh9LmluZmx1eGRiLXZlcnNpb24tZGV0ZWN0b3IgLnJlc3VsdHtkaXNwbGF5Om5vbmU7bWFyZ2luLXRvcDp2YXIoLS1zcGFjaW5nLXNtKTtwYWRkaW5nOnZhcigtLXNwYWNpbmctbWQpO2JvcmRlci1yYWRpdXM6dmFyKC0tYm9yZGVyLXJhZGl1cyk7YW5pbWF0aW9uOmZhZGVJbiB2YXIoLS10cmFuc2l0aW9uLW5vcm1hbCl9LmluZmx1eGRiLXZlcnNpb24tZGV0ZWN0b3IgLnJlc3VsdC5zaG93e2Rpc3BsYXk6YmxvY2t9LmluZmx1eGRiLXZlcnNpb24tZGV0ZWN0b3IgLnJlc3VsdC5zdWNjZXNze2JhY2tncm91bmQ6IzE0MTQxRjtib3JkZXItbGVmdDozcHggc29saWQgIzAwQTNGRjtjb2xvcjojRDREN0REfS5pbmZsdXhkYi12ZXJzaW9uLWRldGVjdG9yIC5yZXN1bHQuZXJyb3J7YmFja2dyb3VuZDojRkZGN0Y0O2JvcmRlci1sZWZ0OjNweCBzb2xpZCAjZDMwOTcxO2NvbG9yOiMyRjFGMjl9LmluZmx1eGRiLXZlcnNpb24tZGV0ZWN0b3IgLnJlc3VsdC5pbmZve2JhY2tncm91bmQ6IzAwQTNGRjtib3JkZXItbGVmdDozcHggc29saWQgIzAwQTNGRjtjb2xvcjojQkVGMEZGfS5pbmZsdXhkYi12ZXJzaW9uLWRldGVjdG9yIC5yZXN1bHQud2FybmluZ3tiYWNrZ3JvdW5kOnJnYmEoMjU1LDk3LDEzMywwLjEwMTk2MSk7Ym9yZGVyLWxlZnQ6M3B4IHNvbGlkICNGRjg1NjQ7Y29sb3I6I0ZGQjZBMH0uaW5mbHV4ZGItdmVyc2lvbi1kZXRlY3RvciAuZGV0ZWN0ZWQtdmVyc2lvbntmb250LXNpemU6MS4zZW07Zm9udC13ZWlnaHQ6Ym9sZDtjb2xvcjojMDBBM0ZGO21hcmdpbi1ib3R0b206dmFyKC0tc3BhY2luZy1zbSk7cGFkZGluZzp2YXIoLS1zcGFjaW5nLXNtKTtiYWNrZ3JvdW5kOnJnYmEoMCwxNjMsMjU1LDAuMSk7Ym9yZGVyLXJhZGl1czo0cHg7Ym9yZGVyLWxlZnQ6NHB4IHNvbGlkICMwMEEzRkZ9LmluZmx1eGRiLXZlcnNpb24tZGV0ZWN0b3IgLnVybC1wcmVmaWxsZWQtaW5kaWNhdG9ye2ZvbnQtc2l6ZTowLjg1ZW07Y29sb3I6I0JFRjBGRjttYXJnaW4tYm90dG9tOjhweDtwYWRkaW5nOjRweCA4cHg7YmFja2dyb3VuZDpyZ2JhKDAsMTYzLDI1NSwwLjEpO2JvcmRlci1sZWZ0OjNweCBzb2xpZCAjMDBBM0ZGfS5pbmZsdXhkYi12ZXJzaW9uLWRldGVjdG9yIC5sb2FkaW5ne2Rpc3BsYXk6aW5saW5lLWJsb2NrO21hcmdpbi1sZWZ0OnZhcigtLXNwYWNpbmctc20pfS5pbmZsdXhkYi12ZXJzaW9uLWRldGVjdG9yIC5sb2FkaW5nOmFmdGVye2NvbnRlbnQ6Jy4uLic7YW5pbWF0aW9uOmRvdHMgMS41cyBzdGVwcyg0LCBlbmQpIGluZmluaXRlfUBrZXlmcmFtZXMgZG90c3swJSwyMCV7Y29udGVudDonLid9NDAle2NvbnRlbnQ6Jy4uJ302MCUsMTAwJXtjb250ZW50OicuLi4nfX1Aa2V5ZnJhbWVzIGZhZGVJbntmcm9te29wYWNpdHk6MDt0cmFuc2Zvcm06dHJhbnNsYXRlWSgxMHB4KX10b3tvcGFjaXR5OjE7dHJhbnNmb3JtOnRyYW5zbGF0ZVkoMCl9fUBtZWRpYSAobWF4LXdpZHRoOiA3NjhweCl7LmluZmx1eGRiLXZlcnNpb24tZGV0ZWN0b3J7cGFkZGluZzoxLjVyZW19LmluZmx1eGRiLXZlcnNpb24tZGV0ZWN0b3IgLmRldGVjdG9yLXRpdGxle2ZvbnQtc2l6ZToxLjVlbX0uaW5mbHV4ZGItdmVyc2lvbi1kZXRlY3RvciAub3B0aW9uLWJ1dHRvbntwYWRkaW5nOjAuNzVyZW0gMXJlbTtmb250LXNpemU6MTRweH0uaW5mbHV4ZGItdmVyc2lvbi1kZXRlY3RvciAuc3VibWl0LWJ1dHRvbiwuaW5mbHV4ZGItdmVyc2lvbi1kZXRlY3RvciAuYmFjay1idXR0b24sLmluZmx1eGRiLXZlcnNpb24tZGV0ZWN0b3IgLnJlc3RhcnQtYnV0dG9ue3BhZGRpbmc6dmFyKC0tc3BhY2luZy1zbSkgdmFyKC0tc3BhY2luZy1tZCk7Zm9udC1zaXplOjE0cHh9fUBtZWRpYSAobWF4LXdpZHRoOiA0ODBweCl7LmluZmx1eGRiLXZlcnNpb24tZGV0ZWN0b3J7cGFkZGluZzoxcmVtfS5pbmZsdXhkYi12ZXJzaW9uLWRldGVjdG9yIC5kZXRlY3Rvci10aXRsZXtmb250LXNpemU6MS4zZW19LmluZmx1eGRiLXZlcnNpb24tZGV0ZWN0b3IgLmRldGVjdG9yLXN1YnRpdGxle2ZvbnQtc2l6ZTowLjllbX0uaW5mbHV4ZGItdmVyc2lvbi1kZXRlY3RvciAucXVlc3Rpb24tdGV4dHtmb250LXNpemU6MWVtfX0uaW5mbHV4ZGItdmVyc2lvbi1kZXRlY3RvciAucHJvZHVjdC1yYW5raW5ne21hcmdpbi1ib3R0b206dmFyKC0tc3BhY2luZy1zbSk7cGFkZGluZzowLjc1cmVtO2JvcmRlci1yYWRpdXM6dmFyKC0tYm9yZGVyLXJhZGl1cyk7Ym9yZGVyLWxlZnQ6NHB4IHNvbGlkICMzODM4NDY7YmFja2dyb3VuZDojMTQxNDFGfS5pbmZsdXhkYi12ZXJzaW9uLWRldGVjdG9yIC5wcm9kdWN0LXJhbmtpbmcudG9wLXJlc3VsdHtiYWNrZ3JvdW5kOnJnYmEoMCwxNjMsMjU1LDAuMSk7Ym9yZGVyLWNvbG9yOiMwMEEzRkZ9LmluZmx1eGRiLXZlcnNpb24tZGV0ZWN0b3IgLnByb2R1Y3QtcmFua2luZyAucHJvZHVjdC10aXRsZXtmb250LXdlaWdodDo2MDA7bWFyZ2luLWJvdHRvbTowLjI1cmVtfS5pbmZsdXhkYi12ZXJzaW9uLWRldGVjdG9yIC5wcm9kdWN0LXJhbmtpbmcgLm1vc3QtbGlrZWx5LWxhYmVse2NvbG9yOiMwMEEzRkY7Zm9udC1zaXplOjAuOWVtO21hcmdpbi1sZWZ0OnZhcigtLXNwYWNpbmctc20pfS5pbmZsdXhkYi12ZXJzaW9uLWRldGVjdG9yIC5wcm9kdWN0LXJhbmtpbmcgLnByb2R1Y3QtZGV0YWlsc3tjb2xvcjojRDREN0REO2ZvbnQtc2l6ZTowLjllbTttYXJnaW4tdG9wOjAuMjVyZW07b3BhY2l0eTowLjh9LmluZmx1eGRiLXZlcnNpb24tZGV0ZWN0b3IgLmdyYWZhbmEtdGlwc3ttYXJnaW4tdG9wOnZhcigtLXNwYWNpbmctbWQpO3BhZGRpbmc6MXJlbTtiYWNrZ3JvdW5kOnJnYmEoMCwxNjMsMjU1LDAuMSk7Ym9yZGVyLWxlZnQ6NHB4IHNvbGlkICMwMEEzRkY7Ym9yZGVyLXJhZGl1czp2YXIoLS1ib3JkZXItcmFkaXVzKX0uaW5mbHV4ZGItdmVyc2lvbi1kZXRlY3RvciAuZ3JhZmFuYS10aXBzIC50aXBzLXRpdGxle21hcmdpbjowIDAgdmFyKC0tc3BhY2luZy1zbSkgMDtjb2xvcjojMDBBM0ZGO2ZvbnQtc2l6ZToxLjFlbX0uaW5mbHV4ZGItdmVyc2lvbi1kZXRlY3RvciAuZ3JhZmFuYS10aXBzIC50aXBzLWRlc2NyaXB0aW9ue21hcmdpbjowIDAgdmFyKC0tc3BhY2luZy1zbSkgMDtmb250LXNpemU6MC45ZW19LmluZmx1eGRiLXZlcnNpb24tZGV0ZWN0b3IgLmdyYWZhbmEtdGlwcyAudGlwcy1saXN0e21hcmdpbjowO3BhZGRpbmctbGVmdDoxLjI1cmVtO2ZvbnQtc2l6ZTowLjg1ZW19LmluZmx1eGRiLXZlcnNpb24tZGV0ZWN0b3IgLmdyYWZhbmEtdGlwcyAudGlwcy1saXN0IGxpe21hcmdpbi1ib3R0b206MC4yNXJlbX0uaW5mbHV4ZGItdmVyc2lvbi1kZXRlY3RvciAuZ3JhZmFuYS10aXBzIC50aXBzLWxpc3QgY29kZXtiYWNrZ3JvdW5kOnJnYmEoMCwxNjMsMjU1LDAuMTUpO3BhZGRpbmc6MC4xMjVyZW0gMC4yNXJlbTtib3JkZXItcmFkaXVzOjNweDtmb250LXNpemU6MC45ZW19LmluZmx1eGRiLXZlcnNpb24tZGV0ZWN0b3IgLmdyYWZhbmEtdGlwcyAudGlwcy1saW5re21hcmdpbjp2YXIoLS1zcGFjaW5nLXNtKSAwIDAgMDtmb250LXNpemU6MC44NWVtfS5pbmZsdXhkYi12ZXJzaW9uLWRldGVjdG9yIC5leHBlY3RlZC1yZXN1bHRze21hcmdpbjoxcmVtIDB9LmluZmx1eGRiLXZlcnNpb24tZGV0ZWN0b3IgLmV4cGVjdGVkLXJlc3VsdHMgLnJlc3VsdHMtdGl0bGV7Zm9udC13ZWlnaHQ6NjAwO21hcmdpbi1ib3R0b206MC41cmVtfS5pbmZsdXhkYi12ZXJzaW9uLWRldGVjdG9yIC5leHBlY3RlZC1yZXN1bHRzIC5yZXN1bHRzLWxpc3R7bWFyZ2luOjA7cGFkZGluZy1sZWZ0OjFyZW07Zm9udC1zaXplOjAuOWVtfS5pbmZsdXhkYi12ZXJzaW9uLWRldGVjdG9yIC5leHBlY3RlZC1yZXN1bHRzIC5yZXN1bHRzLWxpc3QgbGl7bWFyZ2luLWJvdHRvbTowLjI1cmVtfS5pbmZsdXhkYi12ZXJzaW9uLWRldGVjdG9yIC5xdWVzdGlvbi10ZXh0LXNwYWNlZHttYXJnaW4tdG9wOjFyZW07Zm9udC13ZWlnaHQ6bm9ybWFsO2ZvbnQtc2l6ZTowLjk1ZW19LmluZmx1eGRiLXZlcnNpb24tZGV0ZWN0b3IgLnF1ZXN0aW9uLW9wdGlvbnN7bWFyZ2luLXRvcDoxcmVtfS5pbmZsdXhkYi12ZXJzaW9uLWRldGVjdG9yIC5jb21tYW5kLWhlbHB7bWFyZ2luLXRvcDp2YXIoLS1zcGFjaW5nLW1kKX0uaW5mbHV4ZGItdmVyc2lvbi1kZXRlY3RvciAuZG9jLWxpbmssLmluZmx1eGRiLXZlcnNpb24tZGV0ZWN0b3IgLmFzay1haS1vcGVue2NvbG9yOiMwMEEzRkY7dGV4dC1kZWNvcmF0aW9uOnVuZGVybGluZTtkaXNwbGF5OmlubGluZS1ibG9ja30uaW5mbHV4ZGItdmVyc2lvbi1kZXRlY3RvciAuZG9jLWxpbms6aG92ZXIsLmluZmx1eGRiLXZlcnNpb24tZGV0ZWN0b3IgLmFzay1haS1vcGVuOmhvdmVye2NvbG9yOiNmZmZ9LmluZmx1eGRiLXZlcnNpb24tZGV0ZWN0b3IgLmFzay1haS1vcGVue21hcmdpbi1sZWZ0OjAuNXJlbX0uaW5mbHV4ZGItdmVyc2lvbi1kZXRlY3RvciAubWFudWFsLW91dHB1dHttYXJnaW46MXJlbSAwO3BhZGRpbmc6dmFyKC0tc3BhY2luZy1zbSk7YmFja2dyb3VuZDojMTQxNDFGO2JvcmRlci1sZWZ0OjRweCBzb2xpZCAjMDBBM0ZGO2JvcmRlci1yYWRpdXM6dmFyKC0tYm9yZGVyLXJhZGl1cyl9LmluZmx1eGRiLXZlcnNpb24tZGV0ZWN0b3IgLmFjdGlvbi1zZWN0aW9ue21hcmdpbi10b3A6dmFyKC0tc3BhY2luZy1tZCl9LmluZmx1eGRiLXZlcnNpb24tZGV0ZWN0b3IgLnF1aWNrLXJlZmVyZW5jZXttYXJnaW4tdG9wOjJyZW19LmluZmx1eGRiLXZlcnNpb24tZGV0ZWN0b3IgLnF1aWNrLXJlZmVyZW5jZSBkZXRhaWxze2JvcmRlcjoxcHggc29saWQgIzM4Mzg0Njtib3JkZXItcmFkaXVzOnZhcigtLWJvcmRlci1yYWRpdXMpO3BhZGRpbmc6MC41cmVtfS5pbmZsdXhkYi12ZXJzaW9uLWRldGVjdG9yIC5xdWljay1yZWZlcmVuY2UgLnJlZmVyZW5jZS1zdW1tYXJ5e2N1cnNvcjpwb2ludGVyO2ZvbnQtd2VpZ2h0OjYwMDtwYWRkaW5nOjAuNXJlbSAwO3VzZXItc2VsZWN0Om5vbmU7Y29sb3I6IzAwQTNGRn0uaW5mbHV4ZGItdmVyc2lvbi1kZXRlY3RvciAucXVpY2stcmVmZXJlbmNlIC5yZWZlcmVuY2Utc3VtbWFyeTpob3Zlcntjb2xvcjojZmZmfS5pbmZsdXhkYi12ZXJzaW9uLWRldGVjdG9yIC5leHBhbmRhYmxlLXN1bW1hcnl7Y3Vyc29yOnBvaW50ZXI7Zm9udC13ZWlnaHQ6NjAwO3BhZGRpbmc6MC41cmVtIDA7dXNlci1zZWxlY3Q6bm9uZTtjb2xvcjojMDBBM0ZGO3Bvc2l0aW9uOnJlbGF0aXZlO3BhZGRpbmctbGVmdDoxLjVyZW19LmluZmx1eGRiLXZlcnNpb24tZGV0ZWN0b3IgLmV4cGFuZGFibGUtc3VtbWFyeTpob3Zlcntjb2xvcjojZmZmfS5pbmZsdXhkYi12ZXJzaW9uLWRldGVjdG9yIC5leHBhbmRhYmxlLXN1bW1hcnk6Om1hcmtlciwuaW5mbHV4ZGItdmVyc2lvbi1kZXRlY3RvciAuZXhwYW5kYWJsZS1zdW1tYXJ5Ojotd2Via2l0LWRldGFpbHMtbWFya2Vye2Rpc3BsYXk6bm9uZX0uaW5mbHV4ZGItdmVyc2lvbi1kZXRlY3RvciAuZXhwYW5kYWJsZS1zdW1tYXJ5OjpiZWZvcmV7Y29udGVudDonKyc7cG9zaXRpb246YWJzb2x1dGU7bGVmdDowO3RvcDo1MCU7dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTUwJSk7d2lkdGg6MXJlbTtoZWlnaHQ6MXJlbTtkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2p1c3RpZnktY29udGVudDpjZW50ZXI7Zm9udC1zaXplOjE0cHg7Zm9udC13ZWlnaHQ6Ym9sZDtjb2xvcjojMDBBM0ZGO2JvcmRlcjoxcHggc29saWQgIzAwQTNGRjtib3JkZXItcmFkaXVzOjNweDtiYWNrZ3JvdW5kOnRyYW5zcGFyZW50fWRldGFpbHNbb3Blbl0gLmluZmx1eGRiLXZlcnNpb24tZGV0ZWN0b3IgLmV4cGFuZGFibGUtc3VtbWFyeTo6YmVmb3Jle2NvbnRlbnQ6J+KIkid9LmluZmx1eGRiLXZlcnNpb24tZGV0ZWN0b3IgLmV4cGFuZGFibGUtc3VtbWFyeTpob3Zlcjo6YmVmb3Jle2NvbG9yOiNmZmY7Ym9yZGVyLWNvbG9yOiNmZmZ9LmluZmx1eGRiLXZlcnNpb24tZGV0ZWN0b3IgLnF1aWNrLXJlZmVyZW5jZXttYXJnaW4tdG9wOjJyZW19LmluZmx1eGRiLXZlcnNpb24tZGV0ZWN0b3IgLnF1aWNrLXJlZmVyZW5jZSBkZXRhaWxze2JvcmRlcjoxcHggc29saWQgIzM4Mzg0Njtib3JkZXItcmFkaXVzOnZhcigtLWJvcmRlci1yYWRpdXMpO3BhZGRpbmc6MC41cmVtfS5pbmZsdXhkYi12ZXJzaW9uLWRldGVjdG9yIC5xdWljay1yZWZlcmVuY2UgLnJlZmVyZW5jZS10YWJsZXttYXJnaW4tdG9wOjFyZW07d2lkdGg6MTAwJTtib3JkZXItY29sbGFwc2U6Y29sbGFwc2U7Zm9udC1zaXplOjAuOWVtfS5pbmZsdXhkYi12ZXJzaW9uLWRldGVjdG9yIC5xdWljay1yZWZlcmVuY2UgLnJlZmVyZW5jZS10YWJsZSB0aCwuaW5mbHV4ZGItdmVyc2lvbi1kZXRlY3RvciAucXVpY2stcmVmZXJlbmNlIC5yZWZlcmVuY2UtdGFibGUgdGR7cGFkZGluZzowLjVyZW07dGV4dC1hbGlnbjpsZWZ0O2JvcmRlcjoxcHggc29saWQgIzM4Mzg0Nn0uaW5mbHV4ZGItdmVyc2lvbi1kZXRlY3RvciAucXVpY2stcmVmZXJlbmNlIC5yZWZlcmVuY2UtdGFibGUgdGh7cGFkZGluZzowLjc1cmVtIDAuNXJlbTtiYWNrZ3JvdW5kOnJnYmEoMCwxNjMsMjU1LDAuMSk7Zm9udC13ZWlnaHQ6NjAwfS5pbmZsdXhkYi12ZXJzaW9uLWRldGVjdG9yIC5xdWljay1yZWZlcmVuY2UgLnJlZmVyZW5jZS10YWJsZSB0Ym9keSB0cjpudGgtY2hpbGQoZXZlbil7YmFja2dyb3VuZDpyZ2JhKDIxMiwyMTUsMjIxLDAuMDIpfS5pbmZsdXhkYi12ZXJzaW9uLWRldGVjdG9yIC5xdWljay1yZWZlcmVuY2UgLnJlZmVyZW5jZS10YWJsZSAucHJvZHVjdC1uYW1le2ZvbnQtd2VpZ2h0OjYwMH0uZm9ybWF0LXNlbGVjdG9ye3Bvc2l0aW9uOnJlbGF0aXZlO2Rpc3BsYXk6aW5saW5lLWZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO21hcmdpbi1sZWZ0OmF1dG87bWFyZ2luLXRvcDowLjVyZW19LnRpdGxlIC5mb3JtYXQtc2VsZWN0b3J7bWFyZ2luLWxlZnQ6YXV0b30uZm9ybWF0LXNlbGVjdG9yX19idXR0b257ZGlzcGxheTppbmxpbmUtZmxleDthbGlnbi1pdGVtczpjZW50ZXI7Z2FwOjAuNXJlbTtwYWRkaW5nOjAuNXJlbSAwLjc1cmVtO2JhY2tncm91bmQ6IzFBMUEyQTtjb2xvcjojRDREN0REO2JvcmRlcjoxcHggc29saWQgIzMzMzM0Njtib3JkZXItcmFkaXVzOjJweDtmb250LXNpemU6MTRweDtmb250LXdlaWdodDo1MDA7bGluZS1oZWlnaHQ6MTtjdXJzb3I6cG9pbnRlcjt0cmFuc2l0aW9uOmFsbCAwLjJzIGVhc2U7d2hpdGUtc3BhY2U6bm93cmFwO2JveC1zaGFkb3c6MnB4IDJweCA2cHggcmdiYSgxNSwxNCwyMSwwLjUpfS5mb3JtYXQtc2VsZWN0b3JfX2J1dHRvbjpob3Zlcntib3JkZXItY29sb3I6IzAwQTNGRjtib3gtc2hhZG93OjFweCAxcHggMTBweCByZ2JhKDAsMTYzLDI1NSwwLjUpfS5mb3JtYXQtc2VsZWN0b3JfX2J1dHRvbjpmb2N1c3tvdXRsaW5lOjJweCBzb2xpZCAjMDBBM0ZGO291dGxpbmUtb2Zmc2V0OjJweH0uZm9ybWF0LXNlbGVjdG9yX19idXR0b25bYXJpYS1leHBhbmRlZD0ndHJ1ZSdde2JvcmRlci1jb2xvcjojMDBBM0ZGfS5mb3JtYXQtc2VsZWN0b3JfX2J1dHRvblthcmlhLWV4cGFuZGVkPSd0cnVlJ10gLmZvcm1hdC1zZWxlY3Rvcl9fYnV0dG9uLWFycm93IHN2Z3t0cmFuc2Zvcm06cm90YXRlKDE4MGRlZyl9LmZvcm1hdC1zZWxlY3Rvcl9fYnV0dG9uLWljb257ZGlzcGxheTppbmxpbmUtZmxleDthbGlnbi1pdGVtczpjZW50ZXI7anVzdGlmeS1jb250ZW50OmNlbnRlcjt3aWR0aDoxNnB4O2hlaWdodDoxNnB4fS5mb3JtYXQtc2VsZWN0b3JfX2J1dHRvbi1pY29uIHN2Z3t3aWR0aDoxMDAlO2hlaWdodDoxMDAlO2NvbG9yOiNENEQ3RER9LmZvcm1hdC1zZWxlY3Rvcl9fYnV0dG9uLXRleHR7Zm9udC1zaXplOjE0cHg7Zm9udC13ZWlnaHQ6NTAwfS5mb3JtYXQtc2VsZWN0b3JfX2J1dHRvbi1hcnJvd3tkaXNwbGF5OmlubGluZS1mbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO3dpZHRoOjEycHg7aGVpZ2h0OjEycHg7bWFyZ2luLWxlZnQ6MC4yNXJlbX0uZm9ybWF0LXNlbGVjdG9yX19idXR0b24tYXJyb3cgc3Zne3dpZHRoOjEwMCU7aGVpZ2h0OjEwMCU7dHJhbnNpdGlvbjp0cmFuc2Zvcm0gMC4ycyBlYXNlfS5mb3JtYXQtc2VsZWN0b3JfX2Ryb3Bkb3due3Bvc2l0aW9uOmZpeGVkO21pbi13aWR0aDoyODBweDttYXgtd2lkdGg6MzIwcHg7YmFja2dyb3VuZDojMTQxNDFGO2JvcmRlcjoxcHggc29saWQgIzMzMzM0Njtib3JkZXItcmFkaXVzOjhweDtib3gtc2hhZG93OjJweCAycHggNnB4ICMwNzA3MEU7cGFkZGluZzowLjVyZW07ei1pbmRleDoxMDAwMDtvcGFjaXR5OjA7dmlzaWJpbGl0eTpoaWRkZW47dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLThweCk7dHJhbnNpdGlvbjphbGwgMC4ycyBlYXNlO3BvaW50ZXItZXZlbnRzOm5vbmV9LmZvcm1hdC1zZWxlY3Rvcl9fZHJvcGRvd24uaXMtb3BlbntvcGFjaXR5OjE7dmlzaWJpbGl0eTp2aXNpYmxlO3RyYW5zZm9ybTp0cmFuc2xhdGVZKDApO3BvaW50ZXItZXZlbnRzOmF1dG99LmZvcm1hdC1zZWxlY3Rvcl9fb3B0aW9ue2Rpc3BsYXk6ZmxleDthbGlnbi1pdGVtczpmbGV4LXN0YXJ0O2dhcDowLjc1cmVtO3dpZHRoOjEwMCU7cGFkZGluZzowLjc1cmVtO2JhY2tncm91bmQ6dHJhbnNwYXJlbnQ7Y29sb3I6I0Q0RDdERDtib3JkZXI6bm9uZTtib3JkZXItcmFkaXVzOjJweDt0ZXh0LWFsaWduOmxlZnQ7dGV4dC1kZWNvcmF0aW9uOm5vbmU7Y3Vyc29yOnBvaW50ZXI7dHJhbnNpdGlvbjpiYWNrZ3JvdW5kIDAuMTVzIGVhc2V9LmZvcm1hdC1zZWxlY3Rvcl9fb3B0aW9uOmhvdmVye2JhY2tncm91bmQ6IzFBMUEyQTtjb2xvcjojMDBBM0ZGfS5mb3JtYXQtc2VsZWN0b3JfX29wdGlvbjpmb2N1c3tvdXRsaW5lOjJweCBzb2xpZCAjMDBBM0ZGO291dGxpbmUtb2Zmc2V0Oi0ycHh9LmZvcm1hdC1zZWxlY3Rvcl9fb3B0aW9uOm5vdCg6bGFzdC1jaGlsZCl7bWFyZ2luLWJvdHRvbTowLjI1cmVtfS5mb3JtYXQtc2VsZWN0b3JfX2ljb257ZGlzcGxheTppbmxpbmUtZmxleDthbGlnbi1pdGVtczpjZW50ZXI7anVzdGlmeS1jb250ZW50OmNlbnRlcjt3aWR0aDoyMHB4O2hlaWdodDoyMHB4O2ZsZXgtc2hyaW5rOjA7bWFyZ2luLXRvcDoycHh9LmZvcm1hdC1zZWxlY3Rvcl9faWNvbiBzdmd7d2lkdGg6MTAwJTtoZWlnaHQ6MTAwJTtzdHJva2U6I0Q0RDdERH0uZm9ybWF0LXNlbGVjdG9yX19pY29uIHN2ZyBbZmlsbF06bm90KFtmaWxsPVwibm9uZVwiXSk6bm90KFtmaWxsPVwid2hpdGVcIl0pe2ZpbGw6I0Q0RDdERH0uZm9ybWF0LXNlbGVjdG9yX19sYWJlbC1ncm91cHtkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246Y29sdW1uO2dhcDowLjI1cmVtO2ZsZXg6MTttaW4td2lkdGg6MH0uZm9ybWF0LXNlbGVjdG9yX19sYWJlbHtkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2dhcDowLjVyZW07Zm9udC1zaXplOjE0cHg7Zm9udC13ZWlnaHQ6NTAwO2xpbmUtaGVpZ2h0OjEuMztjb2xvcjojRDREN0REfS5mb3JtYXQtc2VsZWN0b3JfX2V4dGVybmFse2Rpc3BsYXk6aW5saW5lLWZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2ZvbnQtc2l6ZToxMnB4O2NvbG9yOiNENEQ3REQ7bWFyZ2luLWxlZnQ6MC4yNXJlbTtvcGFjaXR5OjAuN30uZm9ybWF0LXNlbGVjdG9yX19zdWJsYWJlbHtmb250LXNpemU6MTJweDtsaW5lLWhlaWdodDoxLjQ7Y29sb3I6I0Q0RDdERH1AbWVkaWEgKG1heC13aWR0aDogNzY4cHgpey5mb3JtYXQtc2VsZWN0b3J7bWFyZ2luLWxlZnQ6MDttYXJnaW4tdG9wOjFyZW19LmZvcm1hdC1zZWxlY3Rvcl9fZHJvcGRvd257cmlnaHQ6YXV0bztsZWZ0OjA7bWluLXdpZHRoOjEwMCU7bWF4LXdpZHRoOjEwMCV9fS5mb3JtYXQtc2VsZWN0b3JfX2Ryb3Bkb3due2lzb2xhdGlvbjppc29sYXRlfUBrZXlmcmFtZXMgc2xpZGVJblVwe2Zyb217dHJhbnNmb3JtOnRyYW5zbGF0ZVkoMTAwJSk7b3BhY2l0eTowfXRve3RyYW5zZm9ybTp0cmFuc2xhdGVZKDApO29wYWNpdHk6MX19Kntib3gtc2l6aW5nOmJvcmRlci1ib3h9XG5cbi8qIyBzb3VyY2VNYXBwaW5nVVJMPWRhcmstdGhlbWUuY3NzLm1hcCAqLyJdfQ== */ \ No newline at end of file diff --git a/pr-preview/pr-6981/dark-theme.56ede7c71d3385876a1c762e207372a1699e829612d789f952885f820d50394a.css b/pr-preview/pr-6981/dark-theme.56ede7c71d3385876a1c762e207372a1699e829612d789f952885f820d50394a.css deleted file mode 100644 index e058229c4..000000000 --- a/pr-preview/pr-6981/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-6981/fonts/alert-icons.eot b/pr-preview/pr-6981/fonts/alert-icons.eot deleted file mode 100644 index 13e657b52..000000000 Binary files a/pr-preview/pr-6981/fonts/alert-icons.eot and /dev/null differ diff --git a/pr-preview/pr-6981/fonts/alert-icons.svg b/pr-preview/pr-6981/fonts/alert-icons.svg deleted file mode 100644 index e205465e5..000000000 --- a/pr-preview/pr-6981/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-6981/fonts/alert-icons.ttf b/pr-preview/pr-6981/fonts/alert-icons.ttf deleted file mode 100644 index ec4b22201..000000000 Binary files a/pr-preview/pr-6981/fonts/alert-icons.ttf and /dev/null differ diff --git a/pr-preview/pr-6981/fonts/alert-icons.woff b/pr-preview/pr-6981/fonts/alert-icons.woff deleted file mode 100644 index 293b00a1d..000000000 Binary files a/pr-preview/pr-6981/fonts/alert-icons.woff and /dev/null differ diff --git a/pr-preview/pr-6981/fonts/icomoon-v2.eot b/pr-preview/pr-6981/fonts/icomoon-v2.eot deleted file mode 100644 index 6be8b6309..000000000 Binary files a/pr-preview/pr-6981/fonts/icomoon-v2.eot and /dev/null differ diff --git a/pr-preview/pr-6981/fonts/icomoon-v2.svg b/pr-preview/pr-6981/fonts/icomoon-v2.svg deleted file mode 100644 index 2d78cafed..000000000 --- a/pr-preview/pr-6981/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-6981/fonts/icomoon-v2.ttf b/pr-preview/pr-6981/fonts/icomoon-v2.ttf deleted file mode 100644 index 6965427e0..000000000 Binary files a/pr-preview/pr-6981/fonts/icomoon-v2.ttf and /dev/null differ diff --git a/pr-preview/pr-6981/fonts/icomoon-v2.woff b/pr-preview/pr-6981/fonts/icomoon-v2.woff deleted file mode 100644 index 02db64219..000000000 Binary files a/pr-preview/pr-6981/fonts/icomoon-v2.woff and /dev/null differ diff --git a/pr-preview/pr-6981/fonts/icomoon-v3.eot b/pr-preview/pr-6981/fonts/icomoon-v3.eot deleted file mode 100644 index 267831470..000000000 Binary files a/pr-preview/pr-6981/fonts/icomoon-v3.eot and /dev/null differ diff --git a/pr-preview/pr-6981/fonts/icomoon-v3.svg b/pr-preview/pr-6981/fonts/icomoon-v3.svg deleted file mode 100644 index e9c2e887e..000000000 --- a/pr-preview/pr-6981/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-6981/fonts/icomoon-v3.ttf b/pr-preview/pr-6981/fonts/icomoon-v3.ttf deleted file mode 100644 index 7bc737a47..000000000 Binary files a/pr-preview/pr-6981/fonts/icomoon-v3.ttf and /dev/null differ diff --git a/pr-preview/pr-6981/fonts/icomoon-v3.woff b/pr-preview/pr-6981/fonts/icomoon-v3.woff deleted file mode 100644 index 8c37c3917..000000000 Binary files a/pr-preview/pr-6981/fonts/icomoon-v3.woff and /dev/null differ diff --git a/pr-preview/pr-6981/fonts/icomoon-v3.woff2 b/pr-preview/pr-6981/fonts/icomoon-v3.woff2 deleted file mode 100644 index e7e1891bd..000000000 Binary files a/pr-preview/pr-6981/fonts/icomoon-v3.woff2 and /dev/null differ diff --git a/pr-preview/pr-6981/fonts/icomoon-v4.eot b/pr-preview/pr-6981/fonts/icomoon-v4.eot deleted file mode 100644 index c9a1588b7..000000000 Binary files a/pr-preview/pr-6981/fonts/icomoon-v4.eot and /dev/null differ diff --git a/pr-preview/pr-6981/fonts/icomoon-v4.ttf b/pr-preview/pr-6981/fonts/icomoon-v4.ttf deleted file mode 100644 index 64416d44f..000000000 Binary files a/pr-preview/pr-6981/fonts/icomoon-v4.ttf and /dev/null differ diff --git a/pr-preview/pr-6981/fonts/icomoon-v4.woff b/pr-preview/pr-6981/fonts/icomoon-v4.woff deleted file mode 100644 index 65f3034fc..000000000 Binary files a/pr-preview/pr-6981/fonts/icomoon-v4.woff and /dev/null differ diff --git a/pr-preview/pr-6981/fonts/icomoon-v4.woff2 b/pr-preview/pr-6981/fonts/icomoon-v4.woff2 deleted file mode 100644 index a3ee077ab..000000000 Binary files a/pr-preview/pr-6981/fonts/icomoon-v4.woff2 and /dev/null differ diff --git a/pr-preview/pr-6981/fonts/iconmoon-v4.svg b/pr-preview/pr-6981/fonts/iconmoon-v4.svg deleted file mode 100644 index 1b8ba5422..000000000 --- a/pr-preview/pr-6981/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-6981/fonts/proxima-nova-bold.otf b/pr-preview/pr-6981/fonts/proxima-nova-bold.otf deleted file mode 100644 index b477a4656..000000000 Binary files a/pr-preview/pr-6981/fonts/proxima-nova-bold.otf and /dev/null differ diff --git a/pr-preview/pr-6981/fonts/proxima-nova-medium.otf b/pr-preview/pr-6981/fonts/proxima-nova-medium.otf deleted file mode 100644 index ca1363c86..000000000 Binary files a/pr-preview/pr-6981/fonts/proxima-nova-medium.otf and /dev/null differ diff --git a/pr-preview/pr-6981/fonts/proxima-nova-semibold.otf b/pr-preview/pr-6981/fonts/proxima-nova-semibold.otf deleted file mode 100644 index 6cc9bf2ae..000000000 Binary files a/pr-preview/pr-6981/fonts/proxima-nova-semibold.otf and /dev/null differ diff --git a/pr-preview/pr-6981/fonts/proxima-nova.otf b/pr-preview/pr-6981/fonts/proxima-nova.otf deleted file mode 100644 index 43132265f..000000000 Binary files a/pr-preview/pr-6981/fonts/proxima-nova.otf and /dev/null differ diff --git a/pr-preview/pr-6981/img/bg-texture-new.png b/pr-preview/pr-6981/img/bg-texture-new.png deleted file mode 100644 index 4261860e6..000000000 Binary files a/pr-preview/pr-6981/img/bg-texture-new.png and /dev/null differ diff --git a/pr-preview/pr-6981/img/chronograf/1-6-admin-usermanagement-oss.png b/pr-preview/pr-6981/img/chronograf/1-6-admin-usermanagement-oss.png deleted file mode 100644 index 59d5df866..000000000 Binary files a/pr-preview/pr-6981/img/chronograf/1-6-admin-usermanagement-oss.png and /dev/null differ diff --git a/pr-preview/pr-6981/img/chronograf/1-6-alerts-conditions.png b/pr-preview/pr-6981/img/chronograf/1-6-alerts-conditions.png deleted file mode 100644 index b778ff7ee..000000000 Binary files a/pr-preview/pr-6981/img/chronograf/1-6-alerts-conditions.png and /dev/null differ diff --git a/pr-preview/pr-6981/img/chronograf/1-6-annotations-example.png b/pr-preview/pr-6981/img/chronograf/1-6-annotations-example.png deleted file mode 100644 index 950f40dce..000000000 Binary files a/pr-preview/pr-6981/img/chronograf/1-6-annotations-example.png and /dev/null differ diff --git a/pr-preview/pr-6981/img/chronograf/1-6-clone-cell-cell-copy.png b/pr-preview/pr-6981/img/chronograf/1-6-clone-cell-cell-copy.png deleted file mode 100644 index 2de1d4250..000000000 Binary files a/pr-preview/pr-6981/img/chronograf/1-6-clone-cell-cell-copy.png and /dev/null differ diff --git a/pr-preview/pr-6981/img/chronograf/1-6-clone-cell-click-button.png b/pr-preview/pr-6981/img/chronograf/1-6-clone-cell-click-button.png deleted file mode 100644 index 8549b67e7..000000000 Binary files a/pr-preview/pr-6981/img/chronograf/1-6-clone-cell-click-button.png and /dev/null differ diff --git a/pr-preview/pr-6981/img/chronograf/1-6-clone-dashboard-clone.png b/pr-preview/pr-6981/img/chronograf/1-6-clone-dashboard-clone.png deleted file mode 100644 index d065c3e07..000000000 Binary files a/pr-preview/pr-6981/img/chronograf/1-6-clone-dashboard-clone.png and /dev/null differ diff --git a/pr-preview/pr-6981/img/chronograf/1-6-clone-dashboard.png b/pr-preview/pr-6981/img/chronograf/1-6-clone-dashboard.png deleted file mode 100644 index b27f752ed..000000000 Binary files a/pr-preview/pr-6981/img/chronograf/1-6-clone-dashboard.png and /dev/null differ diff --git a/pr-preview/pr-6981/img/chronograf/1-6-cluster-de.png b/pr-preview/pr-6981/img/chronograf/1-6-cluster-de.png deleted file mode 100644 index 53c68ffaf..000000000 Binary files a/pr-preview/pr-6981/img/chronograf/1-6-cluster-de.png and /dev/null differ diff --git a/pr-preview/pr-6981/img/chronograf/1-6-cluster-diagram.png b/pr-preview/pr-6981/img/chronograf/1-6-cluster-diagram.png deleted file mode 100644 index ba6bb5c77..000000000 Binary files a/pr-preview/pr-6981/img/chronograf/1-6-cluster-diagram.png and /dev/null differ diff --git a/pr-preview/pr-6981/img/chronograf/1-6-cluster-hostlist.png b/pr-preview/pr-6981/img/chronograf/1-6-cluster-hostlist.png deleted file mode 100644 index 9c211c008..000000000 Binary files a/pr-preview/pr-6981/img/chronograf/1-6-cluster-hostlist.png and /dev/null differ diff --git a/pr-preview/pr-6981/img/chronograf/1-6-cluster-predash.gif b/pr-preview/pr-6981/img/chronograf/1-6-cluster-predash.gif deleted file mode 100644 index 257ac3e36..000000000 Binary files a/pr-preview/pr-6981/img/chronograf/1-6-cluster-predash.gif and /dev/null differ diff --git a/pr-preview/pr-6981/img/chronograf/1-6-cluster-welcome.png b/pr-preview/pr-6981/img/chronograf/1-6-cluster-welcome.png deleted file mode 100644 index bcc0cb1d4..000000000 Binary files a/pr-preview/pr-6981/img/chronograf/1-6-cluster-welcome.png and /dev/null differ diff --git a/pr-preview/pr-6981/img/chronograf/1-6-connection-kapacitor.png b/pr-preview/pr-6981/img/chronograf/1-6-connection-kapacitor.png deleted file mode 100644 index 385b69b8d..000000000 Binary files a/pr-preview/pr-6981/img/chronograf/1-6-connection-kapacitor.png and /dev/null differ diff --git a/pr-preview/pr-6981/img/chronograf/1-6-connection-landing-page.png b/pr-preview/pr-6981/img/chronograf/1-6-connection-landing-page.png deleted file mode 100644 index b1cfe76fd..000000000 Binary files a/pr-preview/pr-6981/img/chronograf/1-6-connection-landing-page.png and /dev/null differ diff --git a/pr-preview/pr-6981/img/chronograf/1-6-custom-meta-query-filtering.gif b/pr-preview/pr-6981/img/chronograf/1-6-custom-meta-query-filtering.gif deleted file mode 100644 index 758fffea7..000000000 Binary files a/pr-preview/pr-6981/img/chronograf/1-6-custom-meta-query-filtering.gif and /dev/null differ diff --git a/pr-preview/pr-6981/img/chronograf/1-6-dashboard-export.png b/pr-preview/pr-6981/img/chronograf/1-6-dashboard-export.png deleted file mode 100644 index 5f0468e6a..000000000 Binary files a/pr-preview/pr-6981/img/chronograf/1-6-dashboard-export.png and /dev/null differ diff --git a/pr-preview/pr-6981/img/chronograf/1-6-dashboard-import-reconcile.png b/pr-preview/pr-6981/img/chronograf/1-6-dashboard-import-reconcile.png deleted file mode 100644 index d24193951..000000000 Binary files a/pr-preview/pr-6981/img/chronograf/1-6-dashboard-import-reconcile.png and /dev/null differ diff --git a/pr-preview/pr-6981/img/chronograf/1-6-dashboard-import.gif b/pr-preview/pr-6981/img/chronograf/1-6-dashboard-import.gif deleted file mode 100644 index 99eae6427..000000000 Binary files a/pr-preview/pr-6981/img/chronograf/1-6-dashboard-import.gif and /dev/null differ diff --git a/pr-preview/pr-6981/img/chronograf/1-6-faq-cluster-connection.png b/pr-preview/pr-6981/img/chronograf/1-6-faq-cluster-connection.png deleted file mode 100644 index 30ebc80ac..000000000 Binary files a/pr-preview/pr-6981/img/chronograf/1-6-faq-cluster-connection.png and /dev/null differ diff --git a/pr-preview/pr-6981/img/chronograf/1-6-g-dashboard-builder.png b/pr-preview/pr-6981/img/chronograf/1-6-g-dashboard-builder.png deleted file mode 100644 index 302de6f51..000000000 Binary files a/pr-preview/pr-6981/img/chronograf/1-6-g-dashboard-builder.png and /dev/null differ diff --git a/pr-preview/pr-6981/img/chronograf/1-6-g-dashboard-possibilities.png b/pr-preview/pr-6981/img/chronograf/1-6-g-dashboard-possibilities.png deleted file mode 100644 index 9308bad2c..000000000 Binary files a/pr-preview/pr-6981/img/chronograf/1-6-g-dashboard-possibilities.png and /dev/null differ diff --git a/pr-preview/pr-6981/img/chronograf/1-6-g-dashboard-visualization.png b/pr-preview/pr-6981/img/chronograf/1-6-g-dashboard-visualization.png deleted file mode 100644 index c0b2a5507..000000000 Binary files a/pr-preview/pr-6981/img/chronograf/1-6-g-dashboard-visualization.png and /dev/null differ diff --git a/pr-preview/pr-6981/img/chronograf/1-6-intro-gs-diagram.png b/pr-preview/pr-6981/img/chronograf/1-6-intro-gs-diagram.png deleted file mode 100644 index 76feac07c..000000000 Binary files a/pr-preview/pr-6981/img/chronograf/1-6-intro-gs-diagram.png and /dev/null differ diff --git a/pr-preview/pr-6981/img/chronograf/1-6-logs-log-viewer-config-options.png b/pr-preview/pr-6981/img/chronograf/1-6-logs-log-viewer-config-options.png deleted file mode 100644 index 6fca1c8c6..000000000 Binary files a/pr-preview/pr-6981/img/chronograf/1-6-logs-log-viewer-config-options.png and /dev/null differ diff --git a/pr-preview/pr-6981/img/chronograf/1-6-logs-nav-log-viewer.png b/pr-preview/pr-6981/img/chronograf/1-6-logs-nav-log-viewer.png deleted file mode 100644 index abb0ea031..000000000 Binary files a/pr-preview/pr-6981/img/chronograf/1-6-logs-nav-log-viewer.png and /dev/null differ diff --git a/pr-preview/pr-6981/img/chronograf/1-6-logs-severity-fmt-dot-text.png b/pr-preview/pr-6981/img/chronograf/1-6-logs-severity-fmt-dot-text.png deleted file mode 100644 index 1fb23e474..000000000 Binary files a/pr-preview/pr-6981/img/chronograf/1-6-logs-severity-fmt-dot-text.png and /dev/null differ diff --git a/pr-preview/pr-6981/img/chronograf/1-6-logs-severity-fmt-dot.png b/pr-preview/pr-6981/img/chronograf/1-6-logs-severity-fmt-dot.png deleted file mode 100644 index eb17438e7..000000000 Binary files a/pr-preview/pr-6981/img/chronograf/1-6-logs-severity-fmt-dot.png and /dev/null differ diff --git a/pr-preview/pr-6981/img/chronograf/1-6-logs-severity-fmt-text.png b/pr-preview/pr-6981/img/chronograf/1-6-logs-severity-fmt-text.png deleted file mode 100644 index 52286417e..000000000 Binary files a/pr-preview/pr-6981/img/chronograf/1-6-logs-severity-fmt-text.png and /dev/null differ diff --git a/pr-preview/pr-6981/img/chronograf/1-6-presentation-mode.png b/pr-preview/pr-6981/img/chronograf/1-6-presentation-mode.png deleted file mode 100644 index b53e66bcf..000000000 Binary files a/pr-preview/pr-6981/img/chronograf/1-6-presentation-mode.png and /dev/null differ diff --git a/pr-preview/pr-6981/img/chronograf/1-6-template-vars-custom-meta-query.png b/pr-preview/pr-6981/img/chronograf/1-6-template-vars-custom-meta-query.png deleted file mode 100644 index 1ad3892bd..000000000 Binary files a/pr-preview/pr-6981/img/chronograf/1-6-template-vars-custom-meta-query.png and /dev/null differ diff --git a/pr-preview/pr-6981/img/chronograf/1-6-template-vars-date-picker.png b/pr-preview/pr-6981/img/chronograf/1-6-template-vars-date-picker.png deleted file mode 100644 index 78786af48..000000000 Binary files a/pr-preview/pr-6981/img/chronograf/1-6-template-vars-date-picker.png and /dev/null differ diff --git a/pr-preview/pr-6981/img/chronograf/1-6-template-vars-fieldkey.png b/pr-preview/pr-6981/img/chronograf/1-6-template-vars-fieldkey.png deleted file mode 100644 index de8566672..000000000 Binary files a/pr-preview/pr-6981/img/chronograf/1-6-template-vars-fieldkey.png and /dev/null differ diff --git a/pr-preview/pr-6981/img/chronograf/1-6-template-vars-interval-dropdown.png b/pr-preview/pr-6981/img/chronograf/1-6-template-vars-interval-dropdown.png deleted file mode 100644 index 2167f1435..000000000 Binary files a/pr-preview/pr-6981/img/chronograf/1-6-template-vars-interval-dropdown.png and /dev/null differ diff --git a/pr-preview/pr-6981/img/chronograf/1-6-template-vars-map-dropdown.png b/pr-preview/pr-6981/img/chronograf/1-6-template-vars-map-dropdown.png deleted file mode 100644 index cf8d8dabc..000000000 Binary files a/pr-preview/pr-6981/img/chronograf/1-6-template-vars-map-dropdown.png and /dev/null differ diff --git a/pr-preview/pr-6981/img/chronograf/1-6-template-vars-measurement-var.png b/pr-preview/pr-6981/img/chronograf/1-6-template-vars-measurement-var.png deleted file mode 100644 index 4489c4369..000000000 Binary files a/pr-preview/pr-6981/img/chronograf/1-6-template-vars-measurement-var.png and /dev/null differ diff --git a/pr-preview/pr-6981/img/chronograf/1-6-template-vars-time-dropdown.png b/pr-preview/pr-6981/img/chronograf/1-6-template-vars-time-dropdown.png deleted file mode 100644 index fe2c3976a..000000000 Binary files a/pr-preview/pr-6981/img/chronograf/1-6-template-vars-time-dropdown.png and /dev/null differ diff --git a/pr-preview/pr-6981/img/chronograf/1-6-template-vars-use.gif b/pr-preview/pr-6981/img/chronograf/1-6-template-vars-use.gif deleted file mode 100644 index b1232223f..000000000 Binary files a/pr-preview/pr-6981/img/chronograf/1-6-template-vars-use.gif and /dev/null differ diff --git a/pr-preview/pr-6981/img/chronograf/1-6-viz-bar-graph-controls.png b/pr-preview/pr-6981/img/chronograf/1-6-viz-bar-graph-controls.png deleted file mode 100644 index 171c24c8b..000000000 Binary files a/pr-preview/pr-6981/img/chronograf/1-6-viz-bar-graph-controls.png and /dev/null differ diff --git a/pr-preview/pr-6981/img/chronograf/1-6-viz-bar-graph-example.png b/pr-preview/pr-6981/img/chronograf/1-6-viz-bar-graph-example.png deleted file mode 100644 index 8c2c5b959..000000000 Binary files a/pr-preview/pr-6981/img/chronograf/1-6-viz-bar-graph-example.png and /dev/null differ diff --git a/pr-preview/pr-6981/img/chronograf/1-6-viz-bar-graph-selector.png b/pr-preview/pr-6981/img/chronograf/1-6-viz-bar-graph-selector.png deleted file mode 100644 index b80383230..000000000 Binary files a/pr-preview/pr-6981/img/chronograf/1-6-viz-bar-graph-selector.png and /dev/null differ diff --git a/pr-preview/pr-6981/img/chronograf/1-6-viz-gauge-controls.png b/pr-preview/pr-6981/img/chronograf/1-6-viz-gauge-controls.png deleted file mode 100644 index e4e776a08..000000000 Binary files a/pr-preview/pr-6981/img/chronograf/1-6-viz-gauge-controls.png and /dev/null differ diff --git a/pr-preview/pr-6981/img/chronograf/1-6-viz-gauge-example.png b/pr-preview/pr-6981/img/chronograf/1-6-viz-gauge-example.png deleted file mode 100644 index 8bfabe64f..000000000 Binary files a/pr-preview/pr-6981/img/chronograf/1-6-viz-gauge-example.png and /dev/null differ diff --git a/pr-preview/pr-6981/img/chronograf/1-6-viz-gauge-selector.png b/pr-preview/pr-6981/img/chronograf/1-6-viz-gauge-selector.png deleted file mode 100644 index aa72deaca..000000000 Binary files a/pr-preview/pr-6981/img/chronograf/1-6-viz-gauge-selector.png and /dev/null differ diff --git a/pr-preview/pr-6981/img/chronograf/1-6-viz-line-graph-controls.png b/pr-preview/pr-6981/img/chronograf/1-6-viz-line-graph-controls.png deleted file mode 100644 index 8ffa81ecd..000000000 Binary files a/pr-preview/pr-6981/img/chronograf/1-6-viz-line-graph-controls.png and /dev/null differ diff --git a/pr-preview/pr-6981/img/chronograf/1-6-viz-line-graph-example.png b/pr-preview/pr-6981/img/chronograf/1-6-viz-line-graph-example.png deleted file mode 100644 index 3aef2ba0c..000000000 Binary files a/pr-preview/pr-6981/img/chronograf/1-6-viz-line-graph-example.png and /dev/null differ diff --git a/pr-preview/pr-6981/img/chronograf/1-6-viz-line-graph-selector.png b/pr-preview/pr-6981/img/chronograf/1-6-viz-line-graph-selector.png deleted file mode 100644 index 3c08b8e5b..000000000 Binary files a/pr-preview/pr-6981/img/chronograf/1-6-viz-line-graph-selector.png and /dev/null differ diff --git a/pr-preview/pr-6981/img/chronograf/1-6-viz-line-graph-single-stat-controls.png b/pr-preview/pr-6981/img/chronograf/1-6-viz-line-graph-single-stat-controls.png deleted file mode 100644 index 226ecfefe..000000000 Binary files a/pr-preview/pr-6981/img/chronograf/1-6-viz-line-graph-single-stat-controls.png and /dev/null differ diff --git a/pr-preview/pr-6981/img/chronograf/1-6-viz-line-graph-single-stat-example.png b/pr-preview/pr-6981/img/chronograf/1-6-viz-line-graph-single-stat-example.png deleted file mode 100644 index d10ffe67f..000000000 Binary files a/pr-preview/pr-6981/img/chronograf/1-6-viz-line-graph-single-stat-example.png and /dev/null differ diff --git a/pr-preview/pr-6981/img/chronograf/1-6-viz-line-graph-single-stat-selector.png b/pr-preview/pr-6981/img/chronograf/1-6-viz-line-graph-single-stat-selector.png deleted file mode 100644 index dd6484c88..000000000 Binary files a/pr-preview/pr-6981/img/chronograf/1-6-viz-line-graph-single-stat-selector.png and /dev/null differ diff --git a/pr-preview/pr-6981/img/chronograf/1-6-viz-single-stat-selector.png b/pr-preview/pr-6981/img/chronograf/1-6-viz-single-stat-selector.png deleted file mode 100644 index 3e43eeb82..000000000 Binary files a/pr-preview/pr-6981/img/chronograf/1-6-viz-single-stat-selector.png and /dev/null differ diff --git a/pr-preview/pr-6981/img/chronograf/1-6-viz-stacked-graph-controls.png b/pr-preview/pr-6981/img/chronograf/1-6-viz-stacked-graph-controls.png deleted file mode 100644 index 467405957..000000000 Binary files a/pr-preview/pr-6981/img/chronograf/1-6-viz-stacked-graph-controls.png and /dev/null differ diff --git a/pr-preview/pr-6981/img/chronograf/1-6-viz-stacked-graph-example.png b/pr-preview/pr-6981/img/chronograf/1-6-viz-stacked-graph-example.png deleted file mode 100644 index aeb2598e2..000000000 Binary files a/pr-preview/pr-6981/img/chronograf/1-6-viz-stacked-graph-example.png and /dev/null differ diff --git a/pr-preview/pr-6981/img/chronograf/1-6-viz-stacked-graph-selector.png b/pr-preview/pr-6981/img/chronograf/1-6-viz-stacked-graph-selector.png deleted file mode 100644 index bafe4eeb7..000000000 Binary files a/pr-preview/pr-6981/img/chronograf/1-6-viz-stacked-graph-selector.png and /dev/null differ diff --git a/pr-preview/pr-6981/img/chronograf/1-6-viz-step-plot-graph-controls.png b/pr-preview/pr-6981/img/chronograf/1-6-viz-step-plot-graph-controls.png deleted file mode 100644 index 9f5d4eace..000000000 Binary files a/pr-preview/pr-6981/img/chronograf/1-6-viz-step-plot-graph-controls.png and /dev/null differ diff --git a/pr-preview/pr-6981/img/chronograf/1-6-viz-step-plot-graph-example.png b/pr-preview/pr-6981/img/chronograf/1-6-viz-step-plot-graph-example.png deleted file mode 100644 index 1172a1fb4..000000000 Binary files a/pr-preview/pr-6981/img/chronograf/1-6-viz-step-plot-graph-example.png and /dev/null differ diff --git a/pr-preview/pr-6981/img/chronograf/1-6-viz-step-plot-graph-selector.png b/pr-preview/pr-6981/img/chronograf/1-6-viz-step-plot-graph-selector.png deleted file mode 100644 index 51bfdaa81..000000000 Binary files a/pr-preview/pr-6981/img/chronograf/1-6-viz-step-plot-graph-selector.png and /dev/null differ diff --git a/pr-preview/pr-6981/img/chronograf/1-6-viz-table-controls.png b/pr-preview/pr-6981/img/chronograf/1-6-viz-table-controls.png deleted file mode 100644 index 9f8ad217b..000000000 Binary files a/pr-preview/pr-6981/img/chronograf/1-6-viz-table-controls.png and /dev/null differ diff --git a/pr-preview/pr-6981/img/chronograf/1-6-viz-table-example.png b/pr-preview/pr-6981/img/chronograf/1-6-viz-table-example.png deleted file mode 100644 index 687e1d8a2..000000000 Binary files a/pr-preview/pr-6981/img/chronograf/1-6-viz-table-example.png and /dev/null differ diff --git a/pr-preview/pr-6981/img/chronograf/1-6-viz-table-selector.png b/pr-preview/pr-6981/img/chronograf/1-6-viz-table-selector.png deleted file mode 100644 index 90eeaaeb2..000000000 Binary files a/pr-preview/pr-6981/img/chronograf/1-6-viz-table-selector.png and /dev/null differ diff --git a/pr-preview/pr-6981/img/chronograf/1-6-viz-types-selector.png b/pr-preview/pr-6981/img/chronograf/1-6-viz-types-selector.png deleted file mode 100644 index 72f463d96..000000000 Binary files a/pr-preview/pr-6981/img/chronograf/1-6-viz-types-selector.png and /dev/null differ diff --git a/pr-preview/pr-6981/img/chronograf/1-7-data-explorer-icon.png b/pr-preview/pr-6981/img/chronograf/1-7-data-explorer-icon.png deleted file mode 100644 index b6583e04c..000000000 Binary files a/pr-preview/pr-6981/img/chronograf/1-7-data-explorer-icon.png and /dev/null differ diff --git a/pr-preview/pr-6981/img/chronograf/1-7-kapacitor-connection-config.png b/pr-preview/pr-6981/img/chronograf/1-7-kapacitor-connection-config.png deleted file mode 100644 index 719fc9b9c..000000000 Binary files a/pr-preview/pr-6981/img/chronograf/1-7-kapacitor-connection-config.png and /dev/null differ diff --git a/pr-preview/pr-6981/img/chronograf/1-7-log-viewer-dashboard.gif b/pr-preview/pr-6981/img/chronograf/1-7-log-viewer-dashboard.gif deleted file mode 100644 index 3eb0dad9d..000000000 Binary files a/pr-preview/pr-6981/img/chronograf/1-7-log-viewer-dashboard.gif and /dev/null differ diff --git a/pr-preview/pr-6981/img/chronograf/1-7-log-viewer-overview.png b/pr-preview/pr-6981/img/chronograf/1-7-log-viewer-overview.png deleted file mode 100644 index 3a38ee0eb..000000000 Binary files a/pr-preview/pr-6981/img/chronograf/1-7-log-viewer-overview.png and /dev/null differ diff --git a/pr-preview/pr-6981/img/chronograf/1-7-log-viewer-search-filter.gif b/pr-preview/pr-6981/img/chronograf/1-7-log-viewer-search-filter.gif deleted file mode 100644 index 0f9ca05f2..000000000 Binary files a/pr-preview/pr-6981/img/chronograf/1-7-log-viewer-search-filter.gif and /dev/null differ diff --git a/pr-preview/pr-6981/img/chronograf/1-7-log-viewer-specific-time.gif b/pr-preview/pr-6981/img/chronograf/1-7-log-viewer-specific-time.gif deleted file mode 100644 index 2250b68b6..000000000 Binary files a/pr-preview/pr-6981/img/chronograf/1-7-log-viewer-specific-time.gif and /dev/null differ diff --git a/pr-preview/pr-6981/img/chronograf/1-7-protoboard-kubernetes.png b/pr-preview/pr-6981/img/chronograf/1-7-protoboard-kubernetes.png deleted file mode 100644 index 6bd6fe5c9..000000000 Binary files a/pr-preview/pr-6981/img/chronograf/1-7-protoboard-kubernetes.png and /dev/null differ diff --git a/pr-preview/pr-6981/img/chronograf/1-7-protoboard-mysql.png b/pr-preview/pr-6981/img/chronograf/1-7-protoboard-mysql.png deleted file mode 100644 index 43d465cb2..000000000 Binary files a/pr-preview/pr-6981/img/chronograf/1-7-protoboard-mysql.png and /dev/null differ diff --git a/pr-preview/pr-6981/img/chronograf/1-7-protoboard-select.png b/pr-preview/pr-6981/img/chronograf/1-7-protoboard-select.png deleted file mode 100644 index d5b16ad28..000000000 Binary files a/pr-preview/pr-6981/img/chronograf/1-7-protoboard-select.png and /dev/null differ diff --git a/pr-preview/pr-6981/img/chronograf/1-7-protoboard-system.png b/pr-preview/pr-6981/img/chronograf/1-7-protoboard-system.png deleted file mode 100644 index 111501e82..000000000 Binary files a/pr-preview/pr-6981/img/chronograf/1-7-protoboard-system.png and /dev/null differ diff --git a/pr-preview/pr-6981/img/chronograf/1-7-protoboard-vsphere.png b/pr-preview/pr-6981/img/chronograf/1-7-protoboard-vsphere.png deleted file mode 100644 index 75ed7eeab..000000000 Binary files a/pr-preview/pr-6981/img/chronograf/1-7-protoboard-vsphere.png and /dev/null differ diff --git a/pr-preview/pr-6981/img/chronograf/1-7-viz-note-controls.png b/pr-preview/pr-6981/img/chronograf/1-7-viz-note-controls.png deleted file mode 100644 index 1d9ab8145..000000000 Binary files a/pr-preview/pr-6981/img/chronograf/1-7-viz-note-controls.png and /dev/null differ diff --git a/pr-preview/pr-6981/img/chronograf/1-7-viz-note-example.png b/pr-preview/pr-6981/img/chronograf/1-7-viz-note-example.png deleted file mode 100644 index f6645b0dd..000000000 Binary files a/pr-preview/pr-6981/img/chronograf/1-7-viz-note-example.png and /dev/null differ diff --git a/pr-preview/pr-6981/img/chronograf/1-7-viz-note-selector.png b/pr-preview/pr-6981/img/chronograf/1-7-viz-note-selector.png deleted file mode 100644 index 6e16317c9..000000000 Binary files a/pr-preview/pr-6981/img/chronograf/1-7-viz-note-selector.png and /dev/null differ diff --git a/pr-preview/pr-6981/img/chronograf/1-8-ha-architecture.svg b/pr-preview/pr-6981/img/chronograf/1-8-ha-architecture.svg deleted file mode 100644 index 01d334d09..000000000 --- a/pr-preview/pr-6981/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-6981/img/chronograf/1-8-influxdb-v1-connection-config.png b/pr-preview/pr-6981/img/chronograf/1-8-influxdb-v1-connection-config.png deleted file mode 100644 index e55ee57e1..000000000 Binary files a/pr-preview/pr-6981/img/chronograf/1-8-influxdb-v1-connection-config.png and /dev/null differ diff --git a/pr-preview/pr-6981/img/chronograf/1-8-influxdb-v2-connection-config.png b/pr-preview/pr-6981/img/chronograf/1-8-influxdb-v2-connection-config.png deleted file mode 100644 index 322452901..000000000 Binary files a/pr-preview/pr-6981/img/chronograf/1-8-influxdb-v2-connection-config.png and /dev/null differ diff --git a/pr-preview/pr-6981/img/chronograf/1-9-dashboard-cell-add-data.png b/pr-preview/pr-6981/img/chronograf/1-9-dashboard-cell-add-data.png deleted file mode 100644 index 58b4b53b8..000000000 Binary files a/pr-preview/pr-6981/img/chronograf/1-9-dashboard-cell-add-data.png and /dev/null differ diff --git a/pr-preview/pr-6981/img/chronograf/1-9-template-var-title.png b/pr-preview/pr-6981/img/chronograf/1-9-template-var-title.png deleted file mode 100644 index 2bf4f7e04..000000000 Binary files a/pr-preview/pr-6981/img/chronograf/1-9-template-var-title.png and /dev/null differ diff --git a/pr-preview/pr-6981/img/chronograf/1-9-write-data.png b/pr-preview/pr-6981/img/chronograf/1-9-write-data.png deleted file mode 100644 index 7d328a3f8..000000000 Binary files a/pr-preview/pr-6981/img/chronograf/1-9-write-data.png and /dev/null differ diff --git a/pr-preview/pr-6981/img/chronograf/1-9-write-db-rp.png b/pr-preview/pr-6981/img/chronograf/1-9-write-db-rp.png deleted file mode 100644 index e064a2522..000000000 Binary files a/pr-preview/pr-6981/img/chronograf/1-9-write-db-rp.png and /dev/null differ diff --git a/pr-preview/pr-6981/img/chronograf/1-9-write-precision.png b/pr-preview/pr-6981/img/chronograf/1-9-write-precision.png deleted file mode 100644 index 39ead9de8..000000000 Binary files a/pr-preview/pr-6981/img/chronograf/1-9-write-precision.png and /dev/null differ diff --git a/pr-preview/pr-6981/img/chronograf/v1-influxdb3/cloud-dedicated-no-mgmt.png b/pr-preview/pr-6981/img/chronograf/v1-influxdb3/cloud-dedicated-no-mgmt.png deleted file mode 100644 index cc5b86294..000000000 Binary files a/pr-preview/pr-6981/img/chronograf/v1-influxdb3/cloud-dedicated-no-mgmt.png and /dev/null differ diff --git a/pr-preview/pr-6981/img/chronograf/v1-influxdb3/cloud-dedicated-with-mgmt.png b/pr-preview/pr-6981/img/chronograf/v1-influxdb3/cloud-dedicated-with-mgmt.png deleted file mode 100644 index 86c72735a..000000000 Binary files a/pr-preview/pr-6981/img/chronograf/v1-influxdb3/cloud-dedicated-with-mgmt.png and /dev/null differ diff --git a/pr-preview/pr-6981/img/chronograf/v1-influxdb3/cloud-serverless-connection.png b/pr-preview/pr-6981/img/chronograf/v1-influxdb3/cloud-serverless-connection.png deleted file mode 100644 index 124353952..000000000 Binary files a/pr-preview/pr-6981/img/chronograf/v1-influxdb3/cloud-serverless-connection.png and /dev/null differ diff --git a/pr-preview/pr-6981/img/chronograf/v1-influxdb3/clustered-connection.png b/pr-preview/pr-6981/img/chronograf/v1-influxdb3/clustered-connection.png deleted file mode 100644 index cb19ce9df..000000000 Binary files a/pr-preview/pr-6981/img/chronograf/v1-influxdb3/clustered-connection.png and /dev/null differ diff --git a/pr-preview/pr-6981/img/chronograf/v1-influxdb3/core-connection.png b/pr-preview/pr-6981/img/chronograf/v1-influxdb3/core-connection.png deleted file mode 100644 index 285006e20..000000000 Binary files a/pr-preview/pr-6981/img/chronograf/v1-influxdb3/core-connection.png and /dev/null differ diff --git a/pr-preview/pr-6981/img/chronograf/v1-influxdb3/enterprise-connection.png b/pr-preview/pr-6981/img/chronograf/v1-influxdb3/enterprise-connection.png deleted file mode 100644 index 8c033a5b5..000000000 Binary files a/pr-preview/pr-6981/img/chronograf/v1-influxdb3/enterprise-connection.png and /dev/null differ diff --git a/pr-preview/pr-6981/img/chronograf/v1-influxdb3/server-type-dropdown.png b/pr-preview/pr-6981/img/chronograf/v1-influxdb3/server-type-dropdown.png deleted file mode 100644 index 8efeb837a..000000000 Binary files a/pr-preview/pr-6981/img/chronograf/v1-influxdb3/server-type-dropdown.png and /dev/null differ diff --git a/pr-preview/pr-6981/img/cloudformation1.png b/pr-preview/pr-6981/img/cloudformation1.png deleted file mode 100644 index 96c002c2e..000000000 Binary files a/pr-preview/pr-6981/img/cloudformation1.png and /dev/null differ diff --git a/pr-preview/pr-6981/img/cloudformation2.png b/pr-preview/pr-6981/img/cloudformation2.png deleted file mode 100644 index fd0725987..000000000 Binary files a/pr-preview/pr-6981/img/cloudformation2.png and /dev/null differ diff --git a/pr-preview/pr-6981/img/enterprise/1-6-flapping-dashboard.gif b/pr-preview/pr-6981/img/enterprise/1-6-flapping-dashboard.gif deleted file mode 100644 index 745f94f2b..000000000 Binary files a/pr-preview/pr-6981/img/enterprise/1-6-flapping-dashboard.gif and /dev/null differ diff --git a/pr-preview/pr-6981/img/enterprise/1-6-gcp-intro-1.png b/pr-preview/pr-6981/img/enterprise/1-6-gcp-intro-1.png deleted file mode 100644 index 494abbeaf..000000000 Binary files a/pr-preview/pr-6981/img/enterprise/1-6-gcp-intro-1.png and /dev/null differ diff --git a/pr-preview/pr-6981/img/enterprise/1-6-gcp-intro-2.png b/pr-preview/pr-6981/img/enterprise/1-6-gcp-intro-2.png deleted file mode 100644 index 377c6cfa2..000000000 Binary files a/pr-preview/pr-6981/img/enterprise/1-6-gcp-intro-2.png and /dev/null differ diff --git a/pr-preview/pr-6981/img/enterprise/1-6-gcp-intro-3.png b/pr-preview/pr-6981/img/enterprise/1-6-gcp-intro-3.png deleted file mode 100644 index f40c70fce..000000000 Binary files a/pr-preview/pr-6981/img/enterprise/1-6-gcp-intro-3.png and /dev/null differ diff --git a/pr-preview/pr-6981/img/enterprise/1-6-gcp-intro-4.png b/pr-preview/pr-6981/img/enterprise/1-6-gcp-intro-4.png deleted file mode 100644 index 22c291ea7..000000000 Binary files a/pr-preview/pr-6981/img/enterprise/1-6-gcp-intro-4.png and /dev/null differ diff --git a/pr-preview/pr-6981/img/enterprise/1-8-network-diagram.png b/pr-preview/pr-6981/img/enterprise/1-8-network-diagram.png deleted file mode 100644 index 86ba784d8..000000000 Binary files a/pr-preview/pr-6981/img/enterprise/1-8-network-diagram.png and /dev/null differ diff --git a/pr-preview/pr-6981/img/favicon.png b/pr-preview/pr-6981/img/favicon.png deleted file mode 100644 index 07b99465e..000000000 Binary files a/pr-preview/pr-6981/img/favicon.png and /dev/null differ diff --git a/pr-preview/pr-6981/img/flux/0-x-prometheus-counter-aggregate-rate-output.png b/pr-preview/pr-6981/img/flux/0-x-prometheus-counter-aggregate-rate-output.png deleted file mode 100644 index 4996b7543..000000000 Binary files a/pr-preview/pr-6981/img/flux/0-x-prometheus-counter-aggregate-rate-output.png and /dev/null differ diff --git a/pr-preview/pr-6981/img/flux/0-x-prometheus-counter-derivative-output.png b/pr-preview/pr-6981/img/flux/0-x-prometheus-counter-derivative-output.png deleted file mode 100644 index e3d50d0aa..000000000 Binary files a/pr-preview/pr-6981/img/flux/0-x-prometheus-counter-derivative-output.png and /dev/null differ diff --git a/pr-preview/pr-6981/img/flux/0-x-prometheus-counter-difference-output.png b/pr-preview/pr-6981/img/flux/0-x-prometheus-counter-difference-output.png deleted file mode 100644 index 8fd6b146e..000000000 Binary files a/pr-preview/pr-6981/img/flux/0-x-prometheus-counter-difference-output.png and /dev/null differ diff --git a/pr-preview/pr-6981/img/flux/0-x-prometheus-counter-increase-input.png b/pr-preview/pr-6981/img/flux/0-x-prometheus-counter-increase-input.png deleted file mode 100644 index a6626685b..000000000 Binary files a/pr-preview/pr-6981/img/flux/0-x-prometheus-counter-increase-input.png and /dev/null differ diff --git a/pr-preview/pr-6981/img/flux/0-x-prometheus-counter-increase-output.png b/pr-preview/pr-6981/img/flux/0-x-prometheus-counter-increase-output.png deleted file mode 100644 index 3b3b5b5b1..000000000 Binary files a/pr-preview/pr-6981/img/flux/0-x-prometheus-counter-increase-output.png and /dev/null differ diff --git a/pr-preview/pr-6981/img/flux/0-x-prometheus-counter-normalized-input.png b/pr-preview/pr-6981/img/flux/0-x-prometheus-counter-normalized-input.png deleted file mode 100644 index 2c1f278dd..000000000 Binary files a/pr-preview/pr-6981/img/flux/0-x-prometheus-counter-normalized-input.png and /dev/null differ diff --git a/pr-preview/pr-6981/img/flux/0-x-prometheus-gauge-aggregate-rate-output.png b/pr-preview/pr-6981/img/flux/0-x-prometheus-gauge-aggregate-rate-output.png deleted file mode 100644 index b4f2028d6..000000000 Binary files a/pr-preview/pr-6981/img/flux/0-x-prometheus-gauge-aggregate-rate-output.png and /dev/null differ diff --git a/pr-preview/pr-6981/img/flux/0-x-prometheus-gauge-derivative-output.png b/pr-preview/pr-6981/img/flux/0-x-prometheus-gauge-derivative-output.png deleted file mode 100644 index 56147d947..000000000 Binary files a/pr-preview/pr-6981/img/flux/0-x-prometheus-gauge-derivative-output.png and /dev/null differ diff --git a/pr-preview/pr-6981/img/flux/0-x-prometheus-gauge-input.png b/pr-preview/pr-6981/img/flux/0-x-prometheus-gauge-input.png deleted file mode 100644 index 81681267f..000000000 Binary files a/pr-preview/pr-6981/img/flux/0-x-prometheus-gauge-input.png and /dev/null differ diff --git a/pr-preview/pr-6981/img/flux/0-x-prometheus-histogram-multiple-quantiles.png b/pr-preview/pr-6981/img/flux/0-x-prometheus-histogram-multiple-quantiles.png deleted file mode 100644 index 116aa4423..000000000 Binary files a/pr-preview/pr-6981/img/flux/0-x-prometheus-histogram-multiple-quantiles.png and /dev/null differ diff --git a/pr-preview/pr-6981/img/flux/0-x-prometheus-histogram-quantile.png b/pr-preview/pr-6981/img/flux/0-x-prometheus-histogram-quantile.png deleted file mode 100644 index 6fe45e824..000000000 Binary files a/pr-preview/pr-6981/img/flux/0-x-prometheus-histogram-quantile.png and /dev/null differ diff --git a/pr-preview/pr-6981/img/flux/0-x-prometheus-summary-quantiles.png b/pr-preview/pr-6981/img/flux/0-x-prometheus-summary-quantiles.png deleted file mode 100644 index 833c73bc4..000000000 Binary files a/pr-preview/pr-6981/img/flux/0-x-prometheus-summary-quantiles.png and /dev/null differ diff --git a/pr-preview/pr-6981/img/flux/0-x-water-process-dark.svg b/pr-preview/pr-6981/img/flux/0-x-water-process-dark.svg deleted file mode 100644 index 86945c1e0..000000000 --- a/pr-preview/pr-6981/img/flux/0-x-water-process-dark.svg +++ /dev/null @@ -1,2898 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/pr-preview/pr-6981/img/flux/0-x-water-process-light.svg b/pr-preview/pr-6981/img/flux/0-x-water-process-light.svg deleted file mode 100644 index ecd10405d..000000000 --- a/pr-preview/pr-6981/img/flux/0-x-water-process-light.svg +++ /dev/null @@ -1,2548 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/pr-preview/pr-6981/img/flux/grouping-by-cpu-time.png b/pr-preview/pr-6981/img/flux/grouping-by-cpu-time.png deleted file mode 100644 index 6c4390a9f..000000000 Binary files a/pr-preview/pr-6981/img/flux/grouping-by-cpu-time.png and /dev/null differ diff --git a/pr-preview/pr-6981/img/flux/grouping-by-time.png b/pr-preview/pr-6981/img/flux/grouping-by-time.png deleted file mode 100644 index dd0f5812e..000000000 Binary files a/pr-preview/pr-6981/img/flux/grouping-by-time.png and /dev/null differ diff --git a/pr-preview/pr-6981/img/flux/grouping-data-set.png b/pr-preview/pr-6981/img/flux/grouping-data-set.png deleted file mode 100644 index 9af7c6914..000000000 Binary files a/pr-preview/pr-6981/img/flux/grouping-data-set.png and /dev/null differ diff --git a/pr-preview/pr-6981/img/flux/simple-unwindowed-data.png b/pr-preview/pr-6981/img/flux/simple-unwindowed-data.png deleted file mode 100644 index 6b84ef467..000000000 Binary files a/pr-preview/pr-6981/img/flux/simple-unwindowed-data.png and /dev/null differ diff --git a/pr-preview/pr-6981/img/flux/simple-windowed-aggregate-data.png b/pr-preview/pr-6981/img/flux/simple-windowed-aggregate-data.png deleted file mode 100644 index 4a16bfd04..000000000 Binary files a/pr-preview/pr-6981/img/flux/simple-windowed-aggregate-data.png and /dev/null differ diff --git a/pr-preview/pr-6981/img/flux/simple-windowed-data.png b/pr-preview/pr-6981/img/flux/simple-windowed-data.png deleted file mode 100644 index 0c3df7288..000000000 Binary files a/pr-preview/pr-6981/img/flux/simple-windowed-data.png and /dev/null differ diff --git a/pr-preview/pr-6981/img/flux/windowed-aggregates-ungrouped.png b/pr-preview/pr-6981/img/flux/windowed-aggregates-ungrouped.png deleted file mode 100644 index 510ec5006..000000000 Binary files a/pr-preview/pr-6981/img/flux/windowed-aggregates-ungrouped.png and /dev/null differ diff --git a/pr-preview/pr-6981/img/flux/windowed-aggregates.png b/pr-preview/pr-6981/img/flux/windowed-aggregates.png deleted file mode 100644 index 9c51ee719..000000000 Binary files a/pr-preview/pr-6981/img/flux/windowed-aggregates.png and /dev/null differ diff --git a/pr-preview/pr-6981/img/flux/windowed-data.png b/pr-preview/pr-6981/img/flux/windowed-data.png deleted file mode 100644 index 8589db679..000000000 Binary files a/pr-preview/pr-6981/img/flux/windowed-data.png and /dev/null differ diff --git a/pr-preview/pr-6981/img/grafana/enterprise-influxdb-v1-grafana-flux.png b/pr-preview/pr-6981/img/grafana/enterprise-influxdb-v1-grafana-flux.png deleted file mode 100644 index a0a4d1a7d..000000000 Binary files a/pr-preview/pr-6981/img/grafana/enterprise-influxdb-v1-grafana-flux.png and /dev/null differ diff --git a/pr-preview/pr-6981/img/grafana/enterprise-influxdb-v1-grafana-influxql.png b/pr-preview/pr-6981/img/grafana/enterprise-influxdb-v1-grafana-influxql.png deleted file mode 100644 index 53c86108b..000000000 Binary files a/pr-preview/pr-6981/img/grafana/enterprise-influxdb-v1-grafana-influxql.png and /dev/null differ diff --git a/pr-preview/pr-6981/img/grafana/grafana-sql-insecure-connection.png b/pr-preview/pr-6981/img/grafana/grafana-sql-insecure-connection.png deleted file mode 100644 index ec39fc576..000000000 Binary files a/pr-preview/pr-6981/img/grafana/grafana-sql-insecure-connection.png and /dev/null differ diff --git a/pr-preview/pr-6981/img/grafana/influxdb-cloud-grafana-flux.png b/pr-preview/pr-6981/img/grafana/influxdb-cloud-grafana-flux.png deleted file mode 100644 index f3ed30ef9..000000000 Binary files a/pr-preview/pr-6981/img/grafana/influxdb-cloud-grafana-flux.png and /dev/null differ diff --git a/pr-preview/pr-6981/img/grafana/influxdb-cloud-grafana-influxql.png b/pr-preview/pr-6981/img/grafana/influxdb-cloud-grafana-influxql.png deleted file mode 100644 index 228c8d8ae..000000000 Binary files a/pr-preview/pr-6981/img/grafana/influxdb-cloud-grafana-influxql.png and /dev/null differ diff --git a/pr-preview/pr-6981/img/grafana/influxdb-v1-grafana-flux.png b/pr-preview/pr-6981/img/grafana/influxdb-v1-grafana-flux.png deleted file mode 100644 index 71da27b5d..000000000 Binary files a/pr-preview/pr-6981/img/grafana/influxdb-v1-grafana-flux.png and /dev/null differ diff --git a/pr-preview/pr-6981/img/grafana/influxdb-v1-grafana-influxql.png b/pr-preview/pr-6981/img/grafana/influxdb-v1-grafana-influxql.png deleted file mode 100644 index 97743afcd..000000000 Binary files a/pr-preview/pr-6981/img/grafana/influxdb-v1-grafana-influxql.png and /dev/null differ diff --git a/pr-preview/pr-6981/img/grafana/influxdb-v2-grafana-influxql-flux.png b/pr-preview/pr-6981/img/grafana/influxdb-v2-grafana-influxql-flux.png deleted file mode 100644 index 00af8fc4c..000000000 Binary files a/pr-preview/pr-6981/img/grafana/influxdb-v2-grafana-influxql-flux.png and /dev/null differ diff --git a/pr-preview/pr-6981/img/grafana/influxdb-v2-grafana-influxql.png b/pr-preview/pr-6981/img/grafana/influxdb-v2-grafana-influxql.png deleted file mode 100644 index 9c66bde2d..000000000 Binary files a/pr-preview/pr-6981/img/grafana/influxdb-v2-grafana-influxql.png and /dev/null differ diff --git a/pr-preview/pr-6981/img/grafana/influxdb3-cloud-dedicated-grafana-influxql.png b/pr-preview/pr-6981/img/grafana/influxdb3-cloud-dedicated-grafana-influxql.png deleted file mode 100644 index 53465f23f..000000000 Binary files a/pr-preview/pr-6981/img/grafana/influxdb3-cloud-dedicated-grafana-influxql.png and /dev/null differ diff --git a/pr-preview/pr-6981/img/grafana/influxdb3-cloud-dedicated-grafana-sql.png b/pr-preview/pr-6981/img/grafana/influxdb3-cloud-dedicated-grafana-sql.png deleted file mode 100644 index 12add0308..000000000 Binary files a/pr-preview/pr-6981/img/grafana/influxdb3-cloud-dedicated-grafana-sql.png and /dev/null differ diff --git a/pr-preview/pr-6981/img/grafana/influxdb3-cloud-serverless-grafana-influxql.png b/pr-preview/pr-6981/img/grafana/influxdb3-cloud-serverless-grafana-influxql.png deleted file mode 100644 index 93623ea0e..000000000 Binary files a/pr-preview/pr-6981/img/grafana/influxdb3-cloud-serverless-grafana-influxql.png and /dev/null differ diff --git a/pr-preview/pr-6981/img/grafana/influxdb3-cloud-serverless-grafana-sql.png b/pr-preview/pr-6981/img/grafana/influxdb3-cloud-serverless-grafana-sql.png deleted file mode 100644 index fd6d01496..000000000 Binary files a/pr-preview/pr-6981/img/grafana/influxdb3-cloud-serverless-grafana-sql.png and /dev/null differ diff --git a/pr-preview/pr-6981/img/grafana/influxdb3-clustered-grafana-influxql.png b/pr-preview/pr-6981/img/grafana/influxdb3-clustered-grafana-influxql.png deleted file mode 100644 index c7ec0587c..000000000 Binary files a/pr-preview/pr-6981/img/grafana/influxdb3-clustered-grafana-influxql.png and /dev/null differ diff --git a/pr-preview/pr-6981/img/grafana/influxdb3-clustered-grafana-sql.png b/pr-preview/pr-6981/img/grafana/influxdb3-clustered-grafana-sql.png deleted file mode 100644 index 1742f749d..000000000 Binary files a/pr-preview/pr-6981/img/grafana/influxdb3-clustered-grafana-sql.png and /dev/null differ diff --git a/pr-preview/pr-6981/img/grafana/influxdb3-core-grafana-influxql.png b/pr-preview/pr-6981/img/grafana/influxdb3-core-grafana-influxql.png deleted file mode 100644 index f99f70158..000000000 Binary files a/pr-preview/pr-6981/img/grafana/influxdb3-core-grafana-influxql.png and /dev/null differ diff --git a/pr-preview/pr-6981/img/grafana/influxdb3-core-grafana-sql.png b/pr-preview/pr-6981/img/grafana/influxdb3-core-grafana-sql.png deleted file mode 100644 index 34f4db136..000000000 Binary files a/pr-preview/pr-6981/img/grafana/influxdb3-core-grafana-sql.png and /dev/null differ diff --git a/pr-preview/pr-6981/img/grafana/influxdb3-enterprise-grafana-influxql.png b/pr-preview/pr-6981/img/grafana/influxdb3-enterprise-grafana-influxql.png deleted file mode 100644 index c4bdd46ed..000000000 Binary files a/pr-preview/pr-6981/img/grafana/influxdb3-enterprise-grafana-influxql.png and /dev/null differ diff --git a/pr-preview/pr-6981/img/grafana/influxdb3-enterprise-grafana-sql.png b/pr-preview/pr-6981/img/grafana/influxdb3-enterprise-grafana-sql.png deleted file mode 100644 index 6c1b5b167..000000000 Binary files a/pr-preview/pr-6981/img/grafana/influxdb3-enterprise-grafana-sql.png and /dev/null differ diff --git a/pr-preview/pr-6981/img/influx-logo-cubo-dark.png b/pr-preview/pr-6981/img/influx-logo-cubo-dark.png deleted file mode 100644 index d87fc95a4..000000000 Binary files a/pr-preview/pr-6981/img/influx-logo-cubo-dark.png and /dev/null differ diff --git a/pr-preview/pr-6981/img/influx-logo-cubo-white.png b/pr-preview/pr-6981/img/influx-logo-cubo-white.png deleted file mode 100644 index e5e562624..000000000 Binary files a/pr-preview/pr-6981/img/influx-logo-cubo-white.png and /dev/null differ diff --git a/pr-preview/pr-6981/img/influxdb/1-3-hw-first-step-1-2.png b/pr-preview/pr-6981/img/influxdb/1-3-hw-first-step-1-2.png deleted file mode 100644 index 8e7ad7f3f..000000000 Binary files a/pr-preview/pr-6981/img/influxdb/1-3-hw-first-step-1-2.png and /dev/null differ diff --git a/pr-preview/pr-6981/img/influxdb/1-3-hw-raw-data-1-2.png b/pr-preview/pr-6981/img/influxdb/1-3-hw-raw-data-1-2.png deleted file mode 100644 index dad78a76c..000000000 Binary files a/pr-preview/pr-6981/img/influxdb/1-3-hw-raw-data-1-2.png and /dev/null differ diff --git a/pr-preview/pr-6981/img/influxdb/1-3-hw-second-step-1-2.png b/pr-preview/pr-6981/img/influxdb/1-3-hw-second-step-1-2.png deleted file mode 100644 index 8b4745b11..000000000 Binary files a/pr-preview/pr-6981/img/influxdb/1-3-hw-second-step-1-2.png and /dev/null differ diff --git a/pr-preview/pr-6981/img/influxdb/1-3-hw-third-step-1-2.png b/pr-preview/pr-6981/img/influxdb/1-3-hw-third-step-1-2.png deleted file mode 100644 index 23f68b913..000000000 Binary files a/pr-preview/pr-6981/img/influxdb/1-3-hw-third-step-1-2.png and /dev/null differ diff --git a/pr-preview/pr-6981/img/influxdb/1-5-calc-percentage-apple-variety.png b/pr-preview/pr-6981/img/influxdb/1-5-calc-percentage-apple-variety.png deleted file mode 100644 index dedb91bb3..000000000 Binary files a/pr-preview/pr-6981/img/influxdb/1-5-calc-percentage-apple-variety.png and /dev/null differ diff --git a/pr-preview/pr-6981/img/influxdb/1-5-calc-percentage-hourly-apple-variety.png b/pr-preview/pr-6981/img/influxdb/1-5-calc-percentage-hourly-apple-variety.png deleted file mode 100644 index 4c1e9070b..000000000 Binary files a/pr-preview/pr-6981/img/influxdb/1-5-calc-percentage-hourly-apple-variety.png and /dev/null differ diff --git a/pr-preview/pr-6981/img/influxdb/1-7-flux-dashboard-add-filter.png b/pr-preview/pr-6981/img/influxdb/1-7-flux-dashboard-add-filter.png deleted file mode 100644 index 349fb9951..000000000 Binary files a/pr-preview/pr-6981/img/influxdb/1-7-flux-dashboard-add-filter.png and /dev/null differ diff --git a/pr-preview/pr-6981/img/influxdb/1-7-flux-dashboard-cell.png b/pr-preview/pr-6981/img/influxdb/1-7-flux-dashboard-cell.png deleted file mode 100644 index 8ad80ef93..000000000 Binary files a/pr-preview/pr-6981/img/influxdb/1-7-flux-dashboard-cell.png and /dev/null differ diff --git a/pr-preview/pr-6981/img/influxdb/1-7-flux-dashboard-view-raw.png b/pr-preview/pr-6981/img/influxdb/1-7-flux-dashboard-view-raw.png deleted file mode 100644 index 05bd88dcc..000000000 Binary files a/pr-preview/pr-6981/img/influxdb/1-7-flux-dashboard-view-raw.png and /dev/null differ diff --git a/pr-preview/pr-6981/img/influxdb/1-8-tools-vsflux-explore-schema.png b/pr-preview/pr-6981/img/influxdb/1-8-tools-vsflux-explore-schema.png deleted file mode 100644 index ff64eb1e6..000000000 Binary files a/pr-preview/pr-6981/img/influxdb/1-8-tools-vsflux-explore-schema.png and /dev/null differ diff --git a/pr-preview/pr-6981/img/influxdb/2-0-controls-dark-light-mode.png b/pr-preview/pr-6981/img/influxdb/2-0-controls-dark-light-mode.png deleted file mode 100644 index 8e699ef57..000000000 Binary files a/pr-preview/pr-6981/img/influxdb/2-0-controls-dark-light-mode.png and /dev/null differ diff --git a/pr-preview/pr-6981/img/influxdb/2-0-controls-time-range.png b/pr-preview/pr-6981/img/influxdb/2-0-controls-time-range.png deleted file mode 100644 index 7813e6c8c..000000000 Binary files a/pr-preview/pr-6981/img/influxdb/2-0-controls-time-range.png and /dev/null differ diff --git a/pr-preview/pr-6981/img/influxdb/2-0-controls-timezone.png b/pr-preview/pr-6981/img/influxdb/2-0-controls-timezone.png deleted file mode 100644 index b8193f12c..000000000 Binary files a/pr-preview/pr-6981/img/influxdb/2-0-controls-timezone.png and /dev/null differ diff --git a/pr-preview/pr-6981/img/influxdb/2-0-data-explorer.png b/pr-preview/pr-6981/img/influxdb/2-0-data-explorer.png deleted file mode 100644 index cdb82eafe..000000000 Binary files a/pr-preview/pr-6981/img/influxdb/2-0-data-explorer.png and /dev/null differ diff --git a/pr-preview/pr-6981/img/influxdb/2-0-sql-dashboard-variable.png b/pr-preview/pr-6981/img/influxdb/2-0-sql-dashboard-variable.png deleted file mode 100644 index 8632d0913..000000000 Binary files a/pr-preview/pr-6981/img/influxdb/2-0-sql-dashboard-variable.png and /dev/null differ diff --git a/pr-preview/pr-6981/img/influxdb/2-0-tools-chronograf-v2-auth.png b/pr-preview/pr-6981/img/influxdb/2-0-tools-chronograf-v2-auth.png deleted file mode 100644 index b619dcdf4..000000000 Binary files a/pr-preview/pr-6981/img/influxdb/2-0-tools-chronograf-v2-auth.png and /dev/null differ diff --git a/pr-preview/pr-6981/img/influxdb/2-0-tools-vsflux-errors-warnings.png b/pr-preview/pr-6981/img/influxdb/2-0-tools-vsflux-errors-warnings.png deleted file mode 100644 index dc82301fe..000000000 Binary files a/pr-preview/pr-6981/img/influxdb/2-0-tools-vsflux-errors-warnings.png and /dev/null differ diff --git a/pr-preview/pr-6981/img/influxdb/2-0-tools-vsflux-explore-schema.png b/pr-preview/pr-6981/img/influxdb/2-0-tools-vsflux-explore-schema.png deleted file mode 100644 index a7f969fcf..000000000 Binary files a/pr-preview/pr-6981/img/influxdb/2-0-tools-vsflux-explore-schema.png and /dev/null differ diff --git a/pr-preview/pr-6981/img/influxdb/2-0-variables-data-explorer-view.png b/pr-preview/pr-6981/img/influxdb/2-0-variables-data-explorer-view.png deleted file mode 100644 index 6f27a03e6..000000000 Binary files a/pr-preview/pr-6981/img/influxdb/2-0-variables-data-explorer-view.png and /dev/null differ diff --git a/pr-preview/pr-6981/img/influxdb/2-0-visualizations-Band-example.png b/pr-preview/pr-6981/img/influxdb/2-0-visualizations-Band-example.png deleted file mode 100644 index 0977d1bcd..000000000 Binary files a/pr-preview/pr-6981/img/influxdb/2-0-visualizations-Band-example.png and /dev/null differ diff --git a/pr-preview/pr-6981/img/influxdb/2-0-visualizations-dropdown.png b/pr-preview/pr-6981/img/influxdb/2-0-visualizations-dropdown.png deleted file mode 100644 index 5dd1ae686..000000000 Binary files a/pr-preview/pr-6981/img/influxdb/2-0-visualizations-dropdown.png and /dev/null differ diff --git a/pr-preview/pr-6981/img/influxdb/2-0-visualizations-gauge-example-8.png b/pr-preview/pr-6981/img/influxdb/2-0-visualizations-gauge-example-8.png deleted file mode 100644 index d90b599c0..000000000 Binary files a/pr-preview/pr-6981/img/influxdb/2-0-visualizations-gauge-example-8.png and /dev/null differ diff --git a/pr-preview/pr-6981/img/influxdb/2-0-visualizations-gauge-example.png b/pr-preview/pr-6981/img/influxdb/2-0-visualizations-gauge-example.png deleted file mode 100644 index eb7421584..000000000 Binary files a/pr-preview/pr-6981/img/influxdb/2-0-visualizations-gauge-example.png and /dev/null differ diff --git a/pr-preview/pr-6981/img/influxdb/2-0-visualizations-gauge-pressure-8.png b/pr-preview/pr-6981/img/influxdb/2-0-visualizations-gauge-pressure-8.png deleted file mode 100644 index 5c48f4658..000000000 Binary files a/pr-preview/pr-6981/img/influxdb/2-0-visualizations-gauge-pressure-8.png and /dev/null differ diff --git a/pr-preview/pr-6981/img/influxdb/2-0-visualizations-graph-linear-static.png b/pr-preview/pr-6981/img/influxdb/2-0-visualizations-graph-linear-static.png deleted file mode 100644 index 5951bcb39..000000000 Binary files a/pr-preview/pr-6981/img/influxdb/2-0-visualizations-graph-linear-static.png and /dev/null differ diff --git a/pr-preview/pr-6981/img/influxdb/2-0-visualizations-graph-single-stat-mem-8.png b/pr-preview/pr-6981/img/influxdb/2-0-visualizations-graph-single-stat-mem-8.png deleted file mode 100644 index a02a9b76c..000000000 Binary files a/pr-preview/pr-6981/img/influxdb/2-0-visualizations-graph-single-stat-mem-8.png and /dev/null differ diff --git a/pr-preview/pr-6981/img/influxdb/2-0-visualizations-graph-smooth-hover.png b/pr-preview/pr-6981/img/influxdb/2-0-visualizations-graph-smooth-hover.png deleted file mode 100644 index 08fcece53..000000000 Binary files a/pr-preview/pr-6981/img/influxdb/2-0-visualizations-graph-smooth-hover.png and /dev/null differ diff --git a/pr-preview/pr-6981/img/influxdb/2-0-visualizations-heatmap-correlation.png b/pr-preview/pr-6981/img/influxdb/2-0-visualizations-heatmap-correlation.png deleted file mode 100644 index 945e678fa..000000000 Binary files a/pr-preview/pr-6981/img/influxdb/2-0-visualizations-heatmap-correlation.png and /dev/null differ diff --git a/pr-preview/pr-6981/img/influxdb/2-0-visualizations-heatmap-example.png b/pr-preview/pr-6981/img/influxdb/2-0-visualizations-heatmap-example.png deleted file mode 100644 index 11f897d4a..000000000 Binary files a/pr-preview/pr-6981/img/influxdb/2-0-visualizations-heatmap-example.png and /dev/null differ diff --git a/pr-preview/pr-6981/img/influxdb/2-0-visualizations-heatmap-vs-scatter.png b/pr-preview/pr-6981/img/influxdb/2-0-visualizations-heatmap-vs-scatter.png deleted file mode 100644 index fb2fc9525..000000000 Binary files a/pr-preview/pr-6981/img/influxdb/2-0-visualizations-heatmap-vs-scatter.png and /dev/null differ diff --git a/pr-preview/pr-6981/img/influxdb/2-0-visualizations-histogram-errors.png b/pr-preview/pr-6981/img/influxdb/2-0-visualizations-histogram-errors.png deleted file mode 100644 index 77055b353..000000000 Binary files a/pr-preview/pr-6981/img/influxdb/2-0-visualizations-histogram-errors.png and /dev/null differ diff --git a/pr-preview/pr-6981/img/influxdb/2-0-visualizations-histogram-example.png b/pr-preview/pr-6981/img/influxdb/2-0-visualizations-histogram-example.png deleted file mode 100644 index f399ebd19..000000000 Binary files a/pr-preview/pr-6981/img/influxdb/2-0-visualizations-histogram-example.png and /dev/null differ diff --git a/pr-preview/pr-6981/img/influxdb/2-0-visualizations-line-graph-example-8.png b/pr-preview/pr-6981/img/influxdb/2-0-visualizations-line-graph-example-8.png deleted file mode 100644 index 8a6a2b7dc..000000000 Binary files a/pr-preview/pr-6981/img/influxdb/2-0-visualizations-line-graph-example-8.png and /dev/null differ diff --git a/pr-preview/pr-6981/img/influxdb/2-0-visualizations-line-graph-example.png b/pr-preview/pr-6981/img/influxdb/2-0-visualizations-line-graph-example.png deleted file mode 100644 index 5060bee91..000000000 Binary files a/pr-preview/pr-6981/img/influxdb/2-0-visualizations-line-graph-example.png and /dev/null differ diff --git a/pr-preview/pr-6981/img/influxdb/2-0-visualizations-line-graph-single-stat-example-8.png b/pr-preview/pr-6981/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-6981/img/influxdb/2-0-visualizations-line-graph-single-stat-example-8.png and /dev/null differ diff --git a/pr-preview/pr-6981/img/influxdb/2-0-visualizations-line-graph-single-stat-example.png b/pr-preview/pr-6981/img/influxdb/2-0-visualizations-line-graph-single-stat-example.png deleted file mode 100644 index 16e1d4670..000000000 Binary files a/pr-preview/pr-6981/img/influxdb/2-0-visualizations-line-graph-single-stat-example.png and /dev/null differ diff --git a/pr-preview/pr-6981/img/influxdb/2-0-visualizations-line-graph-step-example-8.png b/pr-preview/pr-6981/img/influxdb/2-0-visualizations-line-graph-step-example-8.png deleted file mode 100644 index b22d53453..000000000 Binary files a/pr-preview/pr-6981/img/influxdb/2-0-visualizations-line-graph-step-example-8.png and /dev/null differ diff --git a/pr-preview/pr-6981/img/influxdb/2-0-visualizations-map-circle-example.png b/pr-preview/pr-6981/img/influxdb/2-0-visualizations-map-circle-example.png deleted file mode 100644 index e9e0664b1..000000000 Binary files a/pr-preview/pr-6981/img/influxdb/2-0-visualizations-map-circle-example.png and /dev/null differ diff --git a/pr-preview/pr-6981/img/influxdb/2-0-visualizations-map-heat-example.png b/pr-preview/pr-6981/img/influxdb/2-0-visualizations-map-heat-example.png deleted file mode 100644 index 0c8affbbb..000000000 Binary files a/pr-preview/pr-6981/img/influxdb/2-0-visualizations-map-heat-example.png and /dev/null differ diff --git a/pr-preview/pr-6981/img/influxdb/2-0-visualizations-map-point-example.png b/pr-preview/pr-6981/img/influxdb/2-0-visualizations-map-point-example.png deleted file mode 100644 index 8676ef6e0..000000000 Binary files a/pr-preview/pr-6981/img/influxdb/2-0-visualizations-map-point-example.png and /dev/null differ diff --git a/pr-preview/pr-6981/img/influxdb/2-0-visualizations-mosaic-example.png b/pr-preview/pr-6981/img/influxdb/2-0-visualizations-mosaic-example.png deleted file mode 100644 index e08b70da1..000000000 Binary files a/pr-preview/pr-6981/img/influxdb/2-0-visualizations-mosaic-example.png and /dev/null differ diff --git a/pr-preview/pr-6981/img/influxdb/2-0-visualizations-scatter-correlation.png b/pr-preview/pr-6981/img/influxdb/2-0-visualizations-scatter-correlation.png deleted file mode 100644 index e1b3df197..000000000 Binary files a/pr-preview/pr-6981/img/influxdb/2-0-visualizations-scatter-correlation.png and /dev/null differ diff --git a/pr-preview/pr-6981/img/influxdb/2-0-visualizations-scatter-example.png b/pr-preview/pr-6981/img/influxdb/2-0-visualizations-scatter-example.png deleted file mode 100644 index 83e9c7b8e..000000000 Binary files a/pr-preview/pr-6981/img/influxdb/2-0-visualizations-scatter-example.png and /dev/null differ diff --git a/pr-preview/pr-6981/img/influxdb/2-0-visualizations-single-stat-example-8.png b/pr-preview/pr-6981/img/influxdb/2-0-visualizations-single-stat-example-8.png deleted file mode 100644 index ece3e1fd8..000000000 Binary files a/pr-preview/pr-6981/img/influxdb/2-0-visualizations-single-stat-example-8.png and /dev/null differ diff --git a/pr-preview/pr-6981/img/influxdb/2-0-visualizations-single-stat-example.png b/pr-preview/pr-6981/img/influxdb/2-0-visualizations-single-stat-example.png deleted file mode 100644 index a7bc1577d..000000000 Binary files a/pr-preview/pr-6981/img/influxdb/2-0-visualizations-single-stat-example.png and /dev/null differ diff --git a/pr-preview/pr-6981/img/influxdb/2-0-visualizations-table-example.png b/pr-preview/pr-6981/img/influxdb/2-0-visualizations-table-example.png deleted file mode 100644 index 666413266..000000000 Binary files a/pr-preview/pr-6981/img/influxdb/2-0-visualizations-table-example.png and /dev/null differ diff --git a/pr-preview/pr-6981/img/influxdb/2-0-visualizations-table-human-readable.png b/pr-preview/pr-6981/img/influxdb/2-0-visualizations-table-human-readable.png deleted file mode 100644 index a554b2351..000000000 Binary files a/pr-preview/pr-6981/img/influxdb/2-0-visualizations-table-human-readable.png and /dev/null differ diff --git a/pr-preview/pr-6981/img/influxdb/2-1-migration-dashboard.png b/pr-preview/pr-6981/img/influxdb/2-1-migration-dashboard.png deleted file mode 100644 index a1a6b7b67..000000000 Binary files a/pr-preview/pr-6981/img/influxdb/2-1-migration-dashboard.png and /dev/null differ diff --git a/pr-preview/pr-6981/img/influxdb/2-1-tools-vsflux-add-connection.png b/pr-preview/pr-6981/img/influxdb/2-1-tools-vsflux-add-connection.png deleted file mode 100644 index 62362f8cf..000000000 Binary files a/pr-preview/pr-6981/img/influxdb/2-1-tools-vsflux-add-connection.png and /dev/null differ diff --git a/pr-preview/pr-6981/img/influxdb/2-1-tools-vsflux-influxdb-pane.png b/pr-preview/pr-6981/img/influxdb/2-1-tools-vsflux-influxdb-pane.png deleted file mode 100644 index 6bf82b9c2..000000000 Binary files a/pr-preview/pr-6981/img/influxdb/2-1-tools-vsflux-influxdb-pane.png and /dev/null differ diff --git a/pr-preview/pr-6981/img/influxdb/2-4-get-started-visualize-query-builder.png b/pr-preview/pr-6981/img/influxdb/2-4-get-started-visualize-query-builder.png deleted file mode 100644 index 1ce6383e9..000000000 Binary files a/pr-preview/pr-6981/img/influxdb/2-4-get-started-visualize-query-builder.png and /dev/null differ diff --git a/pr-preview/pr-6981/img/influxdb/2-4-get-started-visualize-time-range.png b/pr-preview/pr-6981/img/influxdb/2-4-get-started-visualize-time-range.png deleted file mode 100644 index 46ccc7d33..000000000 Binary files a/pr-preview/pr-6981/img/influxdb/2-4-get-started-visualize-time-range.png and /dev/null differ diff --git a/pr-preview/pr-6981/img/influxdb/2-4-get-started-visualize-variable-select.png b/pr-preview/pr-6981/img/influxdb/2-4-get-started-visualize-variable-select.png deleted file mode 100644 index a5b25b073..000000000 Binary files a/pr-preview/pr-6981/img/influxdb/2-4-get-started-visualize-variable-select.png and /dev/null differ diff --git a/pr-preview/pr-6981/img/influxdb/2-4-influxql-holtwinters-1.png b/pr-preview/pr-6981/img/influxdb/2-4-influxql-holtwinters-1.png deleted file mode 100644 index f355c4c14..000000000 Binary files a/pr-preview/pr-6981/img/influxdb/2-4-influxql-holtwinters-1.png and /dev/null differ diff --git a/pr-preview/pr-6981/img/influxdb/2-4-influxql-holtwinters-2.png b/pr-preview/pr-6981/img/influxdb/2-4-influxql-holtwinters-2.png deleted file mode 100644 index 6071275f1..000000000 Binary files a/pr-preview/pr-6981/img/influxdb/2-4-influxql-holtwinters-2.png and /dev/null differ diff --git a/pr-preview/pr-6981/img/influxdb/2-4-influxql-holtwinters-3.png b/pr-preview/pr-6981/img/influxdb/2-4-influxql-holtwinters-3.png deleted file mode 100644 index 83281d657..000000000 Binary files a/pr-preview/pr-6981/img/influxdb/2-4-influxql-holtwinters-3.png and /dev/null differ diff --git a/pr-preview/pr-6981/img/influxdb/2-4-influxql-shell-table-format.png b/pr-preview/pr-6981/img/influxdb/2-4-influxql-shell-table-format.png deleted file mode 100644 index 5b07811c8..000000000 Binary files a/pr-preview/pr-6981/img/influxdb/2-4-influxql-shell-table-format.png and /dev/null differ diff --git a/pr-preview/pr-6981/img/influxdb/3-0-query-plan-tree.png b/pr-preview/pr-6981/img/influxdb/3-0-query-plan-tree.png deleted file mode 100644 index fad64092a..000000000 Binary files a/pr-preview/pr-6981/img/influxdb/3-0-query-plan-tree.png and /dev/null differ diff --git a/pr-preview/pr-6981/img/influxdb/OSS-v1-grafana-product-dropdown-flux.png b/pr-preview/pr-6981/img/influxdb/OSS-v1-grafana-product-dropdown-flux.png deleted file mode 100644 index 3b20ffbae..000000000 Binary files a/pr-preview/pr-6981/img/influxdb/OSS-v1-grafana-product-dropdown-flux.png and /dev/null differ diff --git a/pr-preview/pr-6981/img/influxdb/OSS-v1-grafana-product-dropdown-influxql.png b/pr-preview/pr-6981/img/influxdb/OSS-v1-grafana-product-dropdown-influxql.png deleted file mode 100644 index 87b3de6d4..000000000 Binary files a/pr-preview/pr-6981/img/influxdb/OSS-v1-grafana-product-dropdown-influxql.png and /dev/null differ diff --git a/pr-preview/pr-6981/img/influxdb/cloud-controls-view-raw-data.png b/pr-preview/pr-6981/img/influxdb/cloud-controls-view-raw-data.png deleted file mode 100644 index 70d7cffcb..000000000 Binary files a/pr-preview/pr-6981/img/influxdb/cloud-controls-view-raw-data.png and /dev/null differ diff --git a/pr-preview/pr-6981/img/influxdb/cloud-internals-auth.png b/pr-preview/pr-6981/img/influxdb/cloud-internals-auth.png deleted file mode 100644 index 1d3c4f6bf..000000000 Binary files a/pr-preview/pr-6981/img/influxdb/cloud-internals-auth.png and /dev/null differ diff --git a/pr-preview/pr-6981/img/influxdb/cloud-internals-cluster.png b/pr-preview/pr-6981/img/influxdb/cloud-internals-cluster.png deleted file mode 100644 index bc616c436..000000000 Binary files a/pr-preview/pr-6981/img/influxdb/cloud-internals-cluster.png and /dev/null differ diff --git a/pr-preview/pr-6981/img/influxdb/cloudformation1.png b/pr-preview/pr-6981/img/influxdb/cloudformation1.png deleted file mode 100644 index 96c002c2e..000000000 Binary files a/pr-preview/pr-6981/img/influxdb/cloudformation1.png and /dev/null differ diff --git a/pr-preview/pr-6981/img/influxdb/cloudformation2.png b/pr-preview/pr-6981/img/influxdb/cloudformation2.png deleted file mode 100644 index fd0725987..000000000 Binary files a/pr-preview/pr-6981/img/influxdb/cloudformation2.png and /dev/null differ diff --git a/pr-preview/pr-6981/img/influxdb/influxdb-3-enterprise-dedicated-compactor.png b/pr-preview/pr-6981/img/influxdb/influxdb-3-enterprise-dedicated-compactor.png deleted file mode 100644 index cb5d04957..000000000 Binary files a/pr-preview/pr-6981/img/influxdb/influxdb-3-enterprise-dedicated-compactor.png and /dev/null differ diff --git a/pr-preview/pr-6981/img/influxdb/influxdb-3-enterprise-high-availability.png b/pr-preview/pr-6981/img/influxdb/influxdb-3-enterprise-high-availability.png deleted file mode 100644 index f43eced79..000000000 Binary files a/pr-preview/pr-6981/img/influxdb/influxdb-3-enterprise-high-availability.png and /dev/null differ diff --git a/pr-preview/pr-6981/img/influxdb/influxdb-3-enterprise-workload-isolation.png b/pr-preview/pr-6981/img/influxdb/influxdb-3-enterprise-workload-isolation.png deleted file mode 100644 index 06769d342..000000000 Binary files a/pr-preview/pr-6981/img/influxdb/influxdb-3-enterprise-workload-isolation.png and /dev/null differ diff --git a/pr-preview/pr-6981/img/influxdb/user-icon.png b/pr-preview/pr-6981/img/influxdb/user-icon.png deleted file mode 100644 index 68be783d7..000000000 Binary files a/pr-preview/pr-6981/img/influxdb/user-icon.png and /dev/null differ diff --git a/pr-preview/pr-6981/img/influxdb3/cloud-dedicated-admin-observability-dashboard.png b/pr-preview/pr-6981/img/influxdb3/cloud-dedicated-admin-observability-dashboard.png deleted file mode 100644 index ab0d1284d..000000000 Binary files a/pr-preview/pr-6981/img/influxdb3/cloud-dedicated-admin-observability-dashboard.png and /dev/null differ diff --git a/pr-preview/pr-6981/img/influxdb3/cloud-dedicated-admin-ui-account-switcher.png b/pr-preview/pr-6981/img/influxdb3/cloud-dedicated-admin-ui-account-switcher.png deleted file mode 100644 index 9c0036cc6..000000000 Binary files a/pr-preview/pr-6981/img/influxdb3/cloud-dedicated-admin-ui-account-switcher.png and /dev/null differ diff --git a/pr-preview/pr-6981/img/influxdb3/cloud-dedicated-admin-ui-all-accounts.png b/pr-preview/pr-6981/img/influxdb3/cloud-dedicated-admin-ui-all-accounts.png deleted file mode 100644 index dd6c06987..000000000 Binary files a/pr-preview/pr-6981/img/influxdb3/cloud-dedicated-admin-ui-all-accounts.png and /dev/null differ diff --git a/pr-preview/pr-6981/img/influxdb3/cloud-dedicated-admin-ui-all-clusters.png b/pr-preview/pr-6981/img/influxdb3/cloud-dedicated-admin-ui-all-clusters.png deleted file mode 100644 index 0bd998dd0..000000000 Binary files a/pr-preview/pr-6981/img/influxdb3/cloud-dedicated-admin-ui-all-clusters.png and /dev/null differ diff --git a/pr-preview/pr-6981/img/influxdb3/cloud-dedicated-admin-ui-autoscaling.png b/pr-preview/pr-6981/img/influxdb3/cloud-dedicated-admin-ui-autoscaling.png deleted file mode 100644 index f68df6b3c..000000000 Binary files a/pr-preview/pr-6981/img/influxdb3/cloud-dedicated-admin-ui-autoscaling.png and /dev/null differ diff --git a/pr-preview/pr-6981/img/influxdb3/cloud-dedicated-admin-ui-create-custom-partitioned-table.png b/pr-preview/pr-6981/img/influxdb3/cloud-dedicated-admin-ui-create-custom-partitioned-table.png deleted file mode 100644 index d644a58ba..000000000 Binary files a/pr-preview/pr-6981/img/influxdb3/cloud-dedicated-admin-ui-create-custom-partitioned-table.png and /dev/null differ diff --git a/pr-preview/pr-6981/img/influxdb3/cloud-dedicated-admin-ui-create-database-token.png b/pr-preview/pr-6981/img/influxdb3/cloud-dedicated-admin-ui-create-database-token.png deleted file mode 100644 index 0196eccc0..000000000 Binary files a/pr-preview/pr-6981/img/influxdb3/cloud-dedicated-admin-ui-create-database-token.png and /dev/null differ diff --git a/pr-preview/pr-6981/img/influxdb3/cloud-dedicated-admin-ui-create-database.png b/pr-preview/pr-6981/img/influxdb3/cloud-dedicated-admin-ui-create-database.png deleted file mode 100644 index 8dcf698d1..000000000 Binary files a/pr-preview/pr-6981/img/influxdb3/cloud-dedicated-admin-ui-create-database.png and /dev/null differ diff --git a/pr-preview/pr-6981/img/influxdb3/cloud-dedicated-admin-ui-create-management-token.png b/pr-preview/pr-6981/img/influxdb3/cloud-dedicated-admin-ui-create-management-token.png deleted file mode 100644 index f36bd5365..000000000 Binary files a/pr-preview/pr-6981/img/influxdb3/cloud-dedicated-admin-ui-create-management-token.png and /dev/null differ diff --git a/pr-preview/pr-6981/img/influxdb3/cloud-dedicated-admin-ui-create-table-custom-partitioning.png b/pr-preview/pr-6981/img/influxdb3/cloud-dedicated-admin-ui-create-table-custom-partitioning.png deleted file mode 100644 index 2e1dbc264..000000000 Binary files a/pr-preview/pr-6981/img/influxdb3/cloud-dedicated-admin-ui-create-table-custom-partitioning.png and /dev/null differ diff --git a/pr-preview/pr-6981/img/influxdb3/cloud-dedicated-admin-ui-create-table-default.png b/pr-preview/pr-6981/img/influxdb3/cloud-dedicated-admin-ui-create-table-default.png deleted file mode 100644 index 873e1cc7b..000000000 Binary files a/pr-preview/pr-6981/img/influxdb3/cloud-dedicated-admin-ui-create-table-default.png and /dev/null differ diff --git a/pr-preview/pr-6981/img/influxdb3/cloud-dedicated-admin-ui-database-token-options-menu.png b/pr-preview/pr-6981/img/influxdb3/cloud-dedicated-admin-ui-database-token-options-menu.png deleted file mode 100644 index daeef3bc8..000000000 Binary files a/pr-preview/pr-6981/img/influxdb3/cloud-dedicated-admin-ui-database-token-options-menu.png and /dev/null differ diff --git a/pr-preview/pr-6981/img/influxdb3/cloud-dedicated-admin-ui-database-tokens.png b/pr-preview/pr-6981/img/influxdb3/cloud-dedicated-admin-ui-database-tokens.png deleted file mode 100644 index 463d3293b..000000000 Binary files a/pr-preview/pr-6981/img/influxdb3/cloud-dedicated-admin-ui-database-tokens.png and /dev/null differ diff --git a/pr-preview/pr-6981/img/influxdb3/cloud-dedicated-admin-ui-databases.png b/pr-preview/pr-6981/img/influxdb3/cloud-dedicated-admin-ui-databases.png deleted file mode 100644 index 73d71b77e..000000000 Binary files a/pr-preview/pr-6981/img/influxdb3/cloud-dedicated-admin-ui-databases.png and /dev/null differ diff --git a/pr-preview/pr-6981/img/influxdb3/cloud-dedicated-admin-ui-delete-database.png b/pr-preview/pr-6981/img/influxdb3/cloud-dedicated-admin-ui-delete-database.png deleted file mode 100644 index f16e0e4d1..000000000 Binary files a/pr-preview/pr-6981/img/influxdb3/cloud-dedicated-admin-ui-delete-database.png and /dev/null differ diff --git a/pr-preview/pr-6981/img/influxdb3/cloud-dedicated-admin-ui-edit-database-token.png b/pr-preview/pr-6981/img/influxdb3/cloud-dedicated-admin-ui-edit-database-token.png deleted file mode 100644 index 87bb83e2c..000000000 Binary files a/pr-preview/pr-6981/img/influxdb3/cloud-dedicated-admin-ui-edit-database-token.png and /dev/null differ diff --git a/pr-preview/pr-6981/img/influxdb3/cloud-dedicated-admin-ui-help.png b/pr-preview/pr-6981/img/influxdb3/cloud-dedicated-admin-ui-help.png deleted file mode 100644 index ec01c4a77..000000000 Binary files a/pr-preview/pr-6981/img/influxdb3/cloud-dedicated-admin-ui-help.png and /dev/null differ diff --git a/pr-preview/pr-6981/img/influxdb3/cloud-dedicated-admin-ui-list-databases.png b/pr-preview/pr-6981/img/influxdb3/cloud-dedicated-admin-ui-list-databases.png deleted file mode 100644 index 04a20cf04..000000000 Binary files a/pr-preview/pr-6981/img/influxdb3/cloud-dedicated-admin-ui-list-databases.png and /dev/null differ diff --git a/pr-preview/pr-6981/img/influxdb3/cloud-dedicated-admin-ui-login.png b/pr-preview/pr-6981/img/influxdb3/cloud-dedicated-admin-ui-login.png deleted file mode 100644 index f276e3654..000000000 Binary files a/pr-preview/pr-6981/img/influxdb3/cloud-dedicated-admin-ui-login.png and /dev/null differ diff --git a/pr-preview/pr-6981/img/influxdb3/cloud-dedicated-admin-ui-management-tokens.png b/pr-preview/pr-6981/img/influxdb3/cloud-dedicated-admin-ui-management-tokens.png deleted file mode 100644 index 1e6f3b6fb..000000000 Binary files a/pr-preview/pr-6981/img/influxdb3/cloud-dedicated-admin-ui-management-tokens.png and /dev/null differ diff --git a/pr-preview/pr-6981/img/influxdb3/cloud-dedicated-admin-ui-overview.png b/pr-preview/pr-6981/img/influxdb3/cloud-dedicated-admin-ui-overview.png deleted file mode 100644 index 25b3497f3..000000000 Binary files a/pr-preview/pr-6981/img/influxdb3/cloud-dedicated-admin-ui-overview.png and /dev/null differ diff --git a/pr-preview/pr-6981/img/influxdb3/cloud-dedicated-admin-ui-query-log-detail-view.png b/pr-preview/pr-6981/img/influxdb3/cloud-dedicated-admin-ui-query-log-detail-view.png deleted file mode 100644 index 22da99d63..000000000 Binary files a/pr-preview/pr-6981/img/influxdb3/cloud-dedicated-admin-ui-query-log-detail-view.png and /dev/null differ diff --git a/pr-preview/pr-6981/img/influxdb3/cloud-dedicated-admin-ui-query-log-list-view.png b/pr-preview/pr-6981/img/influxdb3/cloud-dedicated-admin-ui-query-log-list-view.png deleted file mode 100644 index 26ab18414..000000000 Binary files a/pr-preview/pr-6981/img/influxdb3/cloud-dedicated-admin-ui-query-log-list-view.png and /dev/null differ diff --git a/pr-preview/pr-6981/img/influxdb3/cloud-dedicated-admin-ui-revoke-database-token.png b/pr-preview/pr-6981/img/influxdb3/cloud-dedicated-admin-ui-revoke-database-token.png deleted file mode 100644 index 2472d5332..000000000 Binary files a/pr-preview/pr-6981/img/influxdb3/cloud-dedicated-admin-ui-revoke-database-token.png and /dev/null differ diff --git a/pr-preview/pr-6981/img/influxdb3/cloud-dedicated-admin-ui-tables.png b/pr-preview/pr-6981/img/influxdb3/cloud-dedicated-admin-ui-tables.png deleted file mode 100644 index 060204251..000000000 Binary files a/pr-preview/pr-6981/img/influxdb3/cloud-dedicated-admin-ui-tables.png and /dev/null differ diff --git a/pr-preview/pr-6981/img/influxdb3/cloud-dedicated-admin-ui-users.png b/pr-preview/pr-6981/img/influxdb3/cloud-dedicated-admin-ui-users.png deleted file mode 100644 index b74fe5cfe..000000000 Binary files a/pr-preview/pr-6981/img/influxdb3/cloud-dedicated-admin-ui-users.png and /dev/null differ diff --git a/pr-preview/pr-6981/img/influxdb3/cloud-serverless-migration-dashboard.png b/pr-preview/pr-6981/img/influxdb3/cloud-serverless-migration-dashboard.png deleted file mode 100644 index 55078a65d..000000000 Binary files a/pr-preview/pr-6981/img/influxdb3/cloud-serverless-migration-dashboard.png and /dev/null differ diff --git a/pr-preview/pr-6981/img/influxdb3/cloud-serverless-superset-connect.png b/pr-preview/pr-6981/img/influxdb3/cloud-serverless-superset-connect.png deleted file mode 100644 index 779332b3d..000000000 Binary files a/pr-preview/pr-6981/img/influxdb3/cloud-serverless-superset-connect.png and /dev/null differ diff --git a/pr-preview/pr-6981/img/influxdb3/cloud-serverless-superset-dashboard.png b/pr-preview/pr-6981/img/influxdb3/cloud-serverless-superset-dashboard.png deleted file mode 100644 index 45817f446..000000000 Binary files a/pr-preview/pr-6981/img/influxdb3/cloud-serverless-superset-dashboard.png and /dev/null differ diff --git a/pr-preview/pr-6981/img/influxdb3/cloud-serverless-superset-schema.png b/pr-preview/pr-6981/img/influxdb3/cloud-serverless-superset-schema.png deleted file mode 100644 index 32fcde30e..000000000 Binary files a/pr-preview/pr-6981/img/influxdb3/cloud-serverless-superset-schema.png and /dev/null differ diff --git a/pr-preview/pr-6981/img/influxdb3/core-mcp-influxdb3-plugin.png b/pr-preview/pr-6981/img/influxdb3/core-mcp-influxdb3-plugin.png deleted file mode 100644 index a966c96bf..000000000 Binary files a/pr-preview/pr-6981/img/influxdb3/core-mcp-influxdb3-plugin.png and /dev/null differ diff --git a/pr-preview/pr-6981/img/influxdb3/influxdb3-core-enterprise-ingest-path-flow.png b/pr-preview/pr-6981/img/influxdb3/influxdb3-core-enterprise-ingest-path-flow.png deleted file mode 100644 index 1e6daca92..000000000 Binary files a/pr-preview/pr-6981/img/influxdb3/influxdb3-core-enterprise-ingest-path-flow.png and /dev/null differ diff --git a/pr-preview/pr-6981/img/kapacitor/1-4-chrono-add-kapacitor-connection01.png b/pr-preview/pr-6981/img/kapacitor/1-4-chrono-add-kapacitor-connection01.png deleted file mode 100644 index 2b6b46781..000000000 Binary files a/pr-preview/pr-6981/img/kapacitor/1-4-chrono-add-kapacitor-connection01.png and /dev/null differ diff --git a/pr-preview/pr-6981/img/kapacitor/1-4-chrono-add-kapacitor-connection02.png b/pr-preview/pr-6981/img/kapacitor/1-4-chrono-add-kapacitor-connection02.png deleted file mode 100644 index d9c7adc47..000000000 Binary files a/pr-preview/pr-6981/img/kapacitor/1-4-chrono-add-kapacitor-connection02.png and /dev/null differ diff --git a/pr-preview/pr-6981/img/kapacitor/1-4-chrono-add-kapacitor-connection03.png b/pr-preview/pr-6981/img/kapacitor/1-4-chrono-add-kapacitor-connection03.png deleted file mode 100644 index a55c95f8f..000000000 Binary files a/pr-preview/pr-6981/img/kapacitor/1-4-chrono-add-kapacitor-connection03.png and /dev/null differ diff --git a/pr-preview/pr-6981/img/kapacitor/1-4-chrono-add-kapacitor-connection04.png b/pr-preview/pr-6981/img/kapacitor/1-4-chrono-add-kapacitor-connection04.png deleted file mode 100644 index 3271a3b17..000000000 Binary files a/pr-preview/pr-6981/img/kapacitor/1-4-chrono-add-kapacitor-connection04.png and /dev/null differ diff --git a/pr-preview/pr-6981/img/kapacitor/1-4-chrono-configuration01.png b/pr-preview/pr-6981/img/kapacitor/1-4-chrono-configuration01.png deleted file mode 100644 index 51144bdd0..000000000 Binary files a/pr-preview/pr-6981/img/kapacitor/1-4-chrono-configuration01.png and /dev/null differ diff --git a/pr-preview/pr-6981/img/kapacitor/1-4-chrono-configuration02.png b/pr-preview/pr-6981/img/kapacitor/1-4-chrono-configuration02.png deleted file mode 100644 index 947abdb88..000000000 Binary files a/pr-preview/pr-6981/img/kapacitor/1-4-chrono-configuration02.png and /dev/null differ diff --git a/pr-preview/pr-6981/img/kapacitor/1-4-chrono-configuration03.png b/pr-preview/pr-6981/img/kapacitor/1-4-chrono-configuration03.png deleted file mode 100644 index be8ad170a..000000000 Binary files a/pr-preview/pr-6981/img/kapacitor/1-4-chrono-configuration03.png and /dev/null differ diff --git a/pr-preview/pr-6981/img/kapacitor/1-4-chrono-configuration04.png b/pr-preview/pr-6981/img/kapacitor/1-4-chrono-configuration04.png deleted file mode 100644 index 8772a93d0..000000000 Binary files a/pr-preview/pr-6981/img/kapacitor/1-4-chrono-configuration04.png and /dev/null differ diff --git a/pr-preview/pr-6981/img/kapacitor/1-4-chrono-configuration05.png b/pr-preview/pr-6981/img/kapacitor/1-4-chrono-configuration05.png deleted file mode 100644 index 62f2eb390..000000000 Binary files a/pr-preview/pr-6981/img/kapacitor/1-4-chrono-configuration05.png and /dev/null differ diff --git a/pr-preview/pr-6981/img/kapacitor/1-4-chrono-create-alert01.png b/pr-preview/pr-6981/img/kapacitor/1-4-chrono-create-alert01.png deleted file mode 100644 index c16ee976e..000000000 Binary files a/pr-preview/pr-6981/img/kapacitor/1-4-chrono-create-alert01.png and /dev/null differ diff --git a/pr-preview/pr-6981/img/kapacitor/1-4-chrono-create-alert02.png b/pr-preview/pr-6981/img/kapacitor/1-4-chrono-create-alert02.png deleted file mode 100644 index bf7646f0a..000000000 Binary files a/pr-preview/pr-6981/img/kapacitor/1-4-chrono-create-alert02.png and /dev/null differ diff --git a/pr-preview/pr-6981/img/kapacitor/1-4-chrono-create-alert03.png b/pr-preview/pr-6981/img/kapacitor/1-4-chrono-create-alert03.png deleted file mode 100644 index fceab7689..000000000 Binary files a/pr-preview/pr-6981/img/kapacitor/1-4-chrono-create-alert03.png and /dev/null differ diff --git a/pr-preview/pr-6981/img/kapacitor/1-4-chrono-create-alert04.png b/pr-preview/pr-6981/img/kapacitor/1-4-chrono-create-alert04.png deleted file mode 100644 index f15da4b23..000000000 Binary files a/pr-preview/pr-6981/img/kapacitor/1-4-chrono-create-alert04.png and /dev/null differ diff --git a/pr-preview/pr-6981/img/kapacitor/1-4-chrono-create-alert05.png b/pr-preview/pr-6981/img/kapacitor/1-4-chrono-create-alert05.png deleted file mode 100644 index c39846c42..000000000 Binary files a/pr-preview/pr-6981/img/kapacitor/1-4-chrono-create-alert05.png and /dev/null differ diff --git a/pr-preview/pr-6981/img/kapacitor/1-4-chrono-create-alert06.png b/pr-preview/pr-6981/img/kapacitor/1-4-chrono-create-alert06.png deleted file mode 100644 index 391428019..000000000 Binary files a/pr-preview/pr-6981/img/kapacitor/1-4-chrono-create-alert06.png and /dev/null differ diff --git a/pr-preview/pr-6981/img/kapacitor/1-4-chrono-create-alert07.png b/pr-preview/pr-6981/img/kapacitor/1-4-chrono-create-alert07.png deleted file mode 100644 index f0a3d9a22..000000000 Binary files a/pr-preview/pr-6981/img/kapacitor/1-4-chrono-create-alert07.png and /dev/null differ diff --git a/pr-preview/pr-6981/img/kapacitor/1-4-chrono-create-alert08.png b/pr-preview/pr-6981/img/kapacitor/1-4-chrono-create-alert08.png deleted file mode 100644 index 3d39c7c12..000000000 Binary files a/pr-preview/pr-6981/img/kapacitor/1-4-chrono-create-alert08.png and /dev/null differ diff --git a/pr-preview/pr-6981/img/kapacitor/1-4-chrono-delete-rule.png b/pr-preview/pr-6981/img/kapacitor/1-4-chrono-delete-rule.png deleted file mode 100644 index f327960b7..000000000 Binary files a/pr-preview/pr-6981/img/kapacitor/1-4-chrono-delete-rule.png and /dev/null differ diff --git a/pr-preview/pr-6981/img/kapacitor/1-4-chrono-editable-task-in-chrono01.png b/pr-preview/pr-6981/img/kapacitor/1-4-chrono-editable-task-in-chrono01.png deleted file mode 100644 index 5b64d4080..000000000 Binary files a/pr-preview/pr-6981/img/kapacitor/1-4-chrono-editable-task-in-chrono01.png and /dev/null differ diff --git a/pr-preview/pr-6981/img/kapacitor/1-4-chrono-editable-task-in-chrono02.png b/pr-preview/pr-6981/img/kapacitor/1-4-chrono-editable-task-in-chrono02.png deleted file mode 100644 index 6c84ecb35..000000000 Binary files a/pr-preview/pr-6981/img/kapacitor/1-4-chrono-editable-task-in-chrono02.png and /dev/null differ diff --git a/pr-preview/pr-6981/img/kapacitor/1-4-chrono-enable-disable-alerts01.png b/pr-preview/pr-6981/img/kapacitor/1-4-chrono-enable-disable-alerts01.png deleted file mode 100644 index 36cd5040a..000000000 Binary files a/pr-preview/pr-6981/img/kapacitor/1-4-chrono-enable-disable-alerts01.png and /dev/null differ diff --git a/pr-preview/pr-6981/img/kapacitor/1-4-chrono-update-endpoints01.png b/pr-preview/pr-6981/img/kapacitor/1-4-chrono-update-endpoints01.png deleted file mode 100644 index 4b01398e3..000000000 Binary files a/pr-preview/pr-6981/img/kapacitor/1-4-chrono-update-endpoints01.png and /dev/null differ diff --git a/pr-preview/pr-6981/img/kapacitor/1-4-chrono-update-endpoints02.png b/pr-preview/pr-6981/img/kapacitor/1-4-chrono-update-endpoints02.png deleted file mode 100644 index e2a4098b0..000000000 Binary files a/pr-preview/pr-6981/img/kapacitor/1-4-chrono-update-endpoints02.png and /dev/null differ diff --git a/pr-preview/pr-6981/img/kapacitor/1-4-chrono-update-endpoints03.png b/pr-preview/pr-6981/img/kapacitor/1-4-chrono-update-endpoints03.png deleted file mode 100644 index 26146f7cc..000000000 Binary files a/pr-preview/pr-6981/img/kapacitor/1-4-chrono-update-endpoints03.png and /dev/null differ diff --git a/pr-preview/pr-6981/img/kapacitor/1-4-chrono-update-endpoints04.png b/pr-preview/pr-6981/img/kapacitor/1-4-chrono-update-endpoints04.png deleted file mode 100644 index 6d5c89220..000000000 Binary files a/pr-preview/pr-6981/img/kapacitor/1-4-chrono-update-endpoints04.png and /dev/null differ diff --git a/pr-preview/pr-6981/img/kapacitor/1-4-chrono-use-alerts-db01.png b/pr-preview/pr-6981/img/kapacitor/1-4-chrono-use-alerts-db01.png deleted file mode 100644 index aa7f7b9a4..000000000 Binary files a/pr-preview/pr-6981/img/kapacitor/1-4-chrono-use-alerts-db01.png and /dev/null differ diff --git a/pr-preview/pr-6981/img/kapacitor/1-4-chrono-use-alerts-db02.png b/pr-preview/pr-6981/img/kapacitor/1-4-chrono-use-alerts-db02.png deleted file mode 100644 index 3906225d9..000000000 Binary files a/pr-preview/pr-6981/img/kapacitor/1-4-chrono-use-alerts-db02.png and /dev/null differ diff --git a/pr-preview/pr-6981/img/kapacitor/1-4-chrono-view-alert-history01.png b/pr-preview/pr-6981/img/kapacitor/1-4-chrono-view-alert-history01.png deleted file mode 100644 index 8480aebcf..000000000 Binary files a/pr-preview/pr-6981/img/kapacitor/1-4-chrono-view-alert-history01.png and /dev/null differ diff --git a/pr-preview/pr-6981/img/kapacitor/1-4-chrono-view-alert-history02.png b/pr-preview/pr-6981/img/kapacitor/1-4-chrono-view-alert-history02.png deleted file mode 100644 index d0e7b214a..000000000 Binary files a/pr-preview/pr-6981/img/kapacitor/1-4-chrono-view-alert-history02.png and /dev/null differ diff --git a/pr-preview/pr-6981/img/kapacitor/1-4-hipchat-token.png b/pr-preview/pr-6981/img/kapacitor/1-4-hipchat-token.png deleted file mode 100644 index 159441a67..000000000 Binary files a/pr-preview/pr-6981/img/kapacitor/1-4-hipchat-token.png and /dev/null differ diff --git a/pr-preview/pr-6981/img/kapacitor/1-4-pull-metrics.png b/pr-preview/pr-6981/img/kapacitor/1-4-pull-metrics.png deleted file mode 100644 index 43fb8dd17..000000000 Binary files a/pr-preview/pr-6981/img/kapacitor/1-4-pull-metrics.png and /dev/null differ diff --git a/pr-preview/pr-6981/img/kapacitor/1-5-comparing-two-measurements.png b/pr-preview/pr-6981/img/kapacitor/1-5-comparing-two-measurements.png deleted file mode 100644 index 857e2fcea..000000000 Binary files a/pr-preview/pr-6981/img/kapacitor/1-5-comparing-two-measurements.png and /dev/null differ diff --git a/pr-preview/pr-6981/img/platform/troubleshooting-disk-usage.png b/pr-preview/pr-6981/img/platform/troubleshooting-disk-usage.png deleted file mode 100644 index 6dde0a528..000000000 Binary files a/pr-preview/pr-6981/img/platform/troubleshooting-disk-usage.png and /dev/null differ diff --git a/pr-preview/pr-6981/img/platform/troubleshooting-oom-loop.png b/pr-preview/pr-6981/img/platform/troubleshooting-oom-loop.png deleted file mode 100644 index 693bac546..000000000 Binary files a/pr-preview/pr-6981/img/platform/troubleshooting-oom-loop.png and /dev/null differ diff --git a/pr-preview/pr-6981/img/resources/late-arriving-data.png b/pr-preview/pr-6981/img/resources/late-arriving-data.png deleted file mode 100644 index 31ca167bb..000000000 Binary files a/pr-preview/pr-6981/img/resources/late-arriving-data.png and /dev/null differ diff --git a/pr-preview/pr-6981/img/telegraf/controller-agents-list.png b/pr-preview/pr-6981/img/telegraf/controller-agents-list.png deleted file mode 100644 index b46ab5bfa..000000000 Binary files a/pr-preview/pr-6981/img/telegraf/controller-agents-list.png and /dev/null differ diff --git a/pr-preview/pr-6981/img/telegraf/controller-code-editor.png b/pr-preview/pr-6981/img/telegraf/controller-code-editor.png deleted file mode 100644 index 2d8d0c840..000000000 Binary files a/pr-preview/pr-6981/img/telegraf/controller-code-editor.png and /dev/null differ diff --git a/pr-preview/pr-6981/img/telegraf/controller-command-builder.png b/pr-preview/pr-6981/img/telegraf/controller-command-builder.png deleted file mode 100644 index f4fd8ff78..000000000 Binary files a/pr-preview/pr-6981/img/telegraf/controller-command-builder.png and /dev/null differ diff --git a/pr-preview/pr-6981/img/telegraf/controller-telegraf-builder.png b/pr-preview/pr-6981/img/telegraf/controller-telegraf-builder.png deleted file mode 100644 index 9fb1aa72f..000000000 Binary files a/pr-preview/pr-6981/img/telegraf/controller-telegraf-builder.png and /dev/null differ diff --git a/pr-preview/pr-6981/img/telegraf/new-citibike-query.png b/pr-preview/pr-6981/img/telegraf/new-citibike-query.png deleted file mode 100644 index c8287eb3c..000000000 Binary files a/pr-preview/pr-6981/img/telegraf/new-citibike-query.png and /dev/null differ diff --git a/pr-preview/pr-6981/index.html b/pr-preview/pr-6981/index.html deleted file mode 100644 index 52f46c4e6..000000000 --- a/pr-preview/pr-6981/index.html +++ /dev/null @@ -1,24 +0,0 @@ - - - - - - PR Preview - - - -

PR Preview

-

This preview contains 1 page(s):

- -

Generated: 2026-03-24T15:59:18.998Z

- - \ No newline at end of file diff --git a/pr-preview/pr-6981/js/main.js b/pr-preview/pr-6981/js/main.js deleted file mode 100644 index c2324a9af..000000000 --- a/pr-preview/pr-6981/js/main.js +++ /dev/null @@ -1,186398 +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(" - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -Telegraf release notes | <nil> Documentation - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
- - - Documentation -
-
- -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
-

Select product

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

Telegraf release notes

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

v1.38.1

-

Bugfixes

-
    -
  • #18491 inputs.diskio Sanitize newline characters in serial tag
  • -
  • #18453 inputs.docker Emit status metrics for non-running containers
  • -
  • #18513 inputs.exec Log stderr messages
  • -
  • #18469 inputs.mem Use vm.Cached as vm.Buffers on OpenBSD
  • -
  • #18455 inputs.ping Warn on using timeout parameter for native method
  • -
  • #18471 internal Extract go version even more robustly
  • -
  • #18509 outputs.influxdb_v3 Remove duplicate timeout setting
  • -
-

Dependency Updates

-
    -
  • #18486 deps Bump github.com/SAP/go-hdb from 1.15.1 to 1.15.2
  • -
  • #18477 deps Bump github.com/alitto/pond/v2 from 2.6.2 to 2.7.0
  • -
  • #18488 deps Bump github.com/apache/arrow-go/v18 from 18.5.1 to 18.5.2
  • -
  • #18487 deps Bump github.com/emiago/sipgo from 1.2.0 to 1.2.1
  • -
  • #18475 deps Bump github.com/gophercloud/gophercloud/v2 from 2.10.0 to 2.11.0
  • -
  • #18481 deps Bump github.com/nats-io/nats-server/v2 from 2.12.4 to 2.12.5
  • -
  • #18075 deps Bump go.opentelemetry.io/collector/pdata from 1.46.0 to 1.53.0
  • -
  • #18483 deps Bump go.opentelemetry.io/proto/otlp from 1.9.0 to 1.10.0
  • -
  • #18485 deps Bump go.opentelemetry.io/proto/otlp/collector/profiles/v1development from 0.2.0 to 0.3.0
  • -
  • #18478 deps Bump golang.org/x/oauth2 from 0.35.0 to 0.36.0
  • -
  • #18484 deps Bump golang.org/x/sync from 0.19.0 to 0.20.0
  • -
  • #18480 deps Bump google.golang.org/api from 0.269.0 to 0.270.0
  • -
  • #18490 deps Bump google.golang.org/grpc from 1.79.1 to 1.79.2
  • -
  • #18474 deps Bump the aws-sdk-go-v2 group with 11 updates
  • -
  • #18473 deps Bump tj-actions/changed-files from 47.0.4 to 47.0.5
  • -
-

v1.38.0

- -
- - -

Panic in the Heartbeat output plugin

-

Telegraf v1.38.0 introduced a panic in the -Heartbeat output plugin that -prevents Telegraf from starting when the plugin is enabled. Telegraf v1.38.2 -will include a fix, but in the meantime, to use the Heartbeat output plugin, -revert back to Telegraf v1.37.x (recommended), use a Telegraf nightly build, -or build Telegraf from source.

-
-

Important Changes

- -
- - -

Changes to Linux memory usage tracking

-

Starting in Telegraf v1.36.0, the used_percent field reported by the mem -input plugin on Linux increased by roughly 6-20% for the same memory state. -This was caused by an upstream change in the -gopsutil dependency (v4.25.8), which -changed the Used memory calculation from Total - Free - Buffers - Cached -to Total - Available (using the kernel’s MemAvailable from -/proc/meminfo). The new formula is more accurate as the old one assumed all -cached and buffered memory was immediately reclaimable, which is not always the -case. Dashboards or alerts based on used_percent thresholds may need -adjustment. The raw fields (free, buffered, cached, available, -total) are unaffected and can be used to compute either definition in -queries.

-
-
    -
  • PR #17961 makes the -strict environment variable handling the default! In case you need the old -behavior you can opt-out using the --non-strict-env-handling flag.
  • -
-

New Plugins

-
    -
  • #18183 inputs.sip Add plugin
  • -
  • #18223 outputs.influxdb_v3 Add plugin
  • -
-

Features

-
    -
  • #18086 agent Optimise disk buffer strategy
  • -
  • #18232 common.opcua Add string configuration option for node ID
  • -
  • #18411 common.opcua Add support for datetime arrays
  • -
  • #18181 inputs.docker Implement startup error behavior options
  • -
  • #18425 inputs.gnmi Allow to emit delete metrics
  • -
  • #18466 inputs.mqtt_consumer Add option for maximum reconnect interval
  • -
  • #18063 inputs.mysql Add replication latency fields
  • -
  • #18117 inputs.mysql Add wsrep provider options fields
  • -
  • #18272 inputs.mysql Support encryption algorithm statistics if present
  • -
  • #18134 inputs.nftables Monitor set element counts
  • -
  • #18246 inputs.nftables Support named counters
  • -
  • #18259 inputs.statsd Add support for Datadog service checks
  • -
  • #18393 outputs.health Add option for setting default status
  • -
  • #18415 outputs.heartbeat Add logging information
  • -
  • #17577 outputs.heartbeat Add status evaluation
  • -
  • #18305 outputs.influxdb_v2 Add trace logging for write request timing
  • -
  • #18422 outputs.mongodb Allow writing metrics in batches
  • -
  • #17997 outputs.opentelemetry Support http protocol
  • -
  • #18337 outputs.redistimeseries Add option to expire values
  • -
  • #18339 outputs.stackdriver Add credentials file support for stackdriver output plugin
  • -
  • #18341 prometheus Add UTF-8 metric and label name sanitization
  • -
-

Bugfixes

-
    -
  • #18429 common.opcua Use configured timestamp format for datetime arrays
  • -
  • #18381 inputs.fibaro Handle numeric value2 field from HC3 devices
  • -
  • #18424 inputs.http Close gzip request body on early failures
  • -
  • #18412 inputs.internet_speed Fix server_id_include filter logic
  • -
  • #18452 inputs.mqtt_consumer Rely on paho auto-reconnect to restore message flow after network disruption
  • -
  • #18392 inputs.opcua_listener Prevent panic on events with empty fields
  • -
  • #18387 inputs.smart Include NVMe SMART data in smart_device measurement
  • -
  • #18416 outputs.influxdb Prevent goroutine leak on gzip write failure
  • -
  • #18418 outputs.opentelemetry Prevent goroutine leak on gzip write failure
  • -
-

Dependency Updates

-
    -
  • #18436 deps Bump cloud.google.com/go/bigquery from 1.73.1 to 1.74.0
  • -
  • #18444 deps Bump github.com/IBM/sarama from 1.46.3 to 1.47.0
  • -
  • #18449 deps Bump github.com/SAP/go-hdb from 1.15.0 to 1.15.1
  • -
  • #18398 deps Bump github.com/antchfx/xpath from 1.3.5 to 1.3.6
  • -
  • #18442 deps Bump github.com/aws/smithy-go from 1.24.1 to 1.24.2
  • -
  • #18400 deps Bump github.com/hashicorp/consul/api from 1.33.2 to 1.33.3
  • -
  • #18438 deps Bump github.com/hashicorp/consul/api from 1.33.3 to 1.33.4
  • -
  • #18446 deps Bump github.com/lxc/incus/v6 from 6.21.0 to 6.22.0
  • -
  • #18441 deps Bump github.com/microsoft/go-mssqldb from 1.9.6 to 1.9.8
  • -
  • #18404 deps Bump github.com/nats-io/nats.go from 1.48.0 to 1.49.0
  • -
  • #18439 deps Bump github.com/prometheus/procfs from 0.19.2 to 0.20.1
  • -
  • #18440 deps Bump github.com/shirou/gopsutil/v4 from 4.26.1 to 4.26.2
  • -
  • #18402 deps Bump github.com/vmware/govmomi from 0.52.0 to 0.53.0
  • -
  • #18399 deps Bump go.step.sm/crypto from 0.76.0 to 0.76.2
  • -
  • #18450 deps Bump golang.org/x/net from 0.50.0 to 0.51.0
  • -
  • #18437 deps Bump google.golang.org/api from 0.266.0 to 0.269.0
  • -
  • #18448 deps Bump k8s.io/api from 0.35.1 to 0.35.2
  • -
  • #18447 deps Bump k8s.io/apimachinery from 0.35.1 to 0.35.2
  • -
  • #18443 deps Bump k8s.io/client-go from 0.35.1 to 0.35.2
  • -
  • #18403 deps Bump modernc.org/sqlite from 1.45.0 to 1.46.1
  • -
  • #18397 deps Bump the aws-sdk-go-v2 group with 11 updates
  • -
  • #18435 deps Bump the aws-sdk-go-v2 group with 2 updates
  • -
  • #18396 deps Bump tj-actions/changed-files from 47.0.2 to 47.0.4
  • -
-

v1.37.3

-

Bugfixes

-
    -
  • #18195 common.jolokia2 Add Jolokia 2.x compatibility for proxy target tag
  • -
  • #18378 common.opcua Include node ID in duplicate metric check
  • -
  • #18335 inputs.disk Preserve device tag for virtual filesystems
  • -
  • #18374 inputs.docker Remove pre-filtering of states
  • -
  • #18383 inputs.docker_log Remove pre-filtering of states
  • -
  • #18347 inputs.jenkins Report all concurrent builds
  • -
  • #18377 inputs.prometheus Add thread safety and proper cleanup for shared informer factories
  • -
  • #18304 inputs.prometheus Cleanup shared informers on stop
  • -
  • #18367 inputs.upsd Stop silently dropping mandatory variables from additional_fields
  • -
  • #18386 serializers.template Unwrap tracking metrics
  • -
-

Dependency Updates

-
    -
  • #18354 deps Bump cloud.google.com/go/auth from 0.18.1 to 0.18.2
  • -
  • #18324 deps Bump cloud.google.com/go/bigquery from 1.72.0 to 1.73.1
  • -
  • #18319 deps Bump cloud.google.com/go/pubsub/v2 from 2.3.0 to 2.4.0
  • -
  • #18298 deps Bump cloud.google.com/go/storage from 1.59.1 to 1.59.2
  • -
  • #18361 deps Bump cloud.google.com/go/storage from 1.59.2 to 1.60.0
  • -
  • #18376 deps Bump filippo.io/edwards25519 from 1.1.0 to 1.1.1
  • -
  • #18292 deps Bump github.com/ClickHouse/clickhouse-go/v2 from 2.42.0 to 2.43.0
  • -
  • #18295 deps Bump github.com/IBM/nzgo/v12 from 12.0.10 to 12.0.11
  • -
  • #18297 deps Bump github.com/SAP/go-hdb from 1.14.18 to 1.14.19
  • -
  • #18328 deps Bump github.com/SAP/go-hdb from 1.14.19 to 1.14.22
  • -
  • #18364 deps Bump github.com/SAP/go-hdb from 1.14.22 to 1.15.0
  • -
  • #18358 deps Bump github.com/alitto/pond/v2 from 2.6.0 to 2.6.2
  • -
  • #18289 deps Bump github.com/aws/aws-sdk-go-v2/service/ec2 from 1.282.0 to 1.285.0
  • -
  • #18362 deps Bump github.com/coocood/freecache from 1.2.4 to 1.2.5
  • -
  • #18299 deps Bump github.com/coreos/go-systemd/v22 from 22.6.0 to 22.7.0
  • -
  • #18294 deps Bump github.com/golang-jwt/jwt/v5 from 5.3.0 to 5.3.1
  • -
  • #18291 deps Bump github.com/google/cel-go from 0.26.1 to 0.27.0
  • -
  • #18330 deps Bump github.com/klauspost/compress from 1.18.3 to 1.18.4
  • -
  • #18268 deps Bump github.com/lxc/incus/v6 from 6.20.0 to 6.21.0
  • -
  • #18296 deps Bump github.com/nats-io/nats-server/v2 from 2.12.3 to 2.12.4
  • -
  • #18356 deps Bump github.com/p4lang/p4runtime from 1.4.1 to 1.5.0
  • -
  • #18326 deps Bump github.com/prometheus-community/pro-bing from 0.7.0 to 0.8.0
  • -
  • #18355 deps Bump github.com/redis/go-redis/v9 from 9.17.3 to 9.18.0
  • -
  • #18293 deps Bump github.com/shirou/gopsutil/v4 from 4.25.11 to 4.26.1
  • -
  • #18331 deps Bump github.com/snowflakedb/gosnowflake from 1.18.1 to 1.19.0
  • -
  • #18323 deps Bump github.com/vertica/vertica-sql-go from 1.3.4 to 1.3.5
  • -
  • #18290 deps Bump go.mongodb.org/mongo-driver from 1.17.7 to 1.17.8
  • -
  • #18332 deps Bump go.mongodb.org/mongo-driver from 1.17.8 to 1.17.9
  • -
  • #18318 deps Bump golang.org/x/mod from 0.32.0 to 0.33.0
  • -
  • #18322 deps Bump golang.org/x/net from 0.49.0 to 0.50.0
  • -
  • #18333 deps Bump golang.org/x/term from 0.39.0 to 0.40.0
  • -
  • #18329 deps Bump golang.org/x/text from 0.33.0 to 0.34.0
  • -
  • #18300 deps Bump google.golang.org/api from 0.262.0 to 0.264.0
  • -
  • #18317 deps Bump google.golang.org/api from 0.264.0 to 0.265.0
  • -
  • #18357 deps Bump google.golang.org/grpc from 1.78.0 to 1.79.1
  • -
  • #18363 deps Bump k8s.io/client-go from 0.35.0 to 0.35.1
  • -
  • #18327 deps Bump modernc.org/sqlite from 1.44.3 to 1.45.0
  • -
  • #18288 deps Bump super-linter/super-linter from 8.3.2 to 8.4.0
  • -
  • #18315 deps Bump super-linter/super-linter from 8.4.0 to 8.5.0
  • -
  • #18353 deps Bump the aws-sdk-go-v2 group with 2 updates
  • -
  • #18316 deps Bump the aws-sdk-go-v2 group with 2 updates
  • -
  • #18314 deps Bump tj-actions/changed-files from 47.0.1 to 47.0.2
  • -
  • #18372 deps Update github.com/pion/dtls from v2 to v3
  • -
-

v1.37.2

-

Bugfixes

-
    -
  • #18254 inputs.cisco_telemetry_mdt Handle DME events correctly
  • -
  • #18177 inputs.nftables Handle named counter references in JSON output
  • -
  • #18233 inputs.procstat Handle newer versions of systemd correctly
  • -
  • #18225 inputs.statsd Handle negative lengths
  • -
  • #18278 parsers.dropwizard Correct sample config setting name for tag path
  • -
-

Dependency Updates

-
    -
  • #18204 deps Bump aws-sdk-go-v2 group with 11 updates
  • -
  • #18260 deps Bump aws-sdk-go-v2 group with 2 updates
  • -
  • #18265 deps Bump cloud.google.com/go/auth from 0.18.0 to 0.18.1
  • -
  • #18212 deps Bump cloud.google.com/go/storage from 1.58.0 to 1.59.0
  • -
  • #18243 deps Bump cloud.google.com/go/storage from 1.59.0 to 1.59.1
  • -
  • #18237 deps Bump github.com/Azure/azure-sdk-for-go/sdk/azcore from 1.20.0 to 1.21.0
  • -
  • #18216 deps Bump github.com/SAP/go-hdb from 1.14.16 to 1.14.17
  • -
  • #18236 deps Bump github.com/SAP/go-hdb from 1.14.17 to 1.14.18
  • -
  • #18270 deps Bump github.com/apache/arrow-go/v18 from 18.5.0 to 18.5.1
  • -
  • #18235 deps Bump github.com/aws/aws-sdk-go-v2/service/ec2 from 1.279.1 to 1.279.2
  • -
  • #18206 deps Bump github.com/gosnmp/gosnmp from 1.43.1 to 1.43.2
  • -
  • #18240 deps Bump github.com/hashicorp/consul/api from 1.33.0 to 1.33.2
  • -
  • #18242 deps Bump github.com/klauspost/compress from 1.18.2 to 1.18.3
  • -
  • #18266 deps Bump github.com/linkedin/goavro/v2 from 2.14.1 to 2.15.0
  • -
  • #18239 deps Bump github.com/microsoft/go-mssqldb from 1.9.5 to 1.9.6
  • -
  • #18210 deps Bump github.com/miekg/dns from 1.1.69 to 1.1.70
  • -
  • #18264 deps Bump github.com/miekg/dns from 1.1.70 to 1.1.72
  • -
  • #18271 deps Bump github.com/redis/go-redis/v9 from 9.17.2 to 9.17.3
  • -
  • #18244 deps Bump github.com/sirupsen/logrus from 1.9.3 to 1.9.4
  • -
  • #18262 deps Bump github.com/tdrn-org/go-tr064 from 0.2.2 to 0.2.3
  • -
  • #18267 deps Bump go.mongodb.org/mongo-driver from 1.17.6 to 1.17.7
  • -
  • #18269 deps Bump go.step.sm/crypto from 0.75.0 to 0.76.0
  • -
  • #18215 deps Bump golang.org/x/crypto from 0.46.0 to 0.47.0
  • -
  • #18208 deps Bump golang.org/x/mod from 0.31.0 to 0.32.0
  • -
  • #18207 deps Bump golang.org/x/net from 0.48.0 to 0.49.0
  • -
  • #18217 deps Bump gonum.org/v1/gonum from 0.16.0 to 0.17.0
  • -
  • #18261 deps Bump google.golang.org/api from 0.257.0 to 0.262.0
  • -
  • #18213 deps Bump modernc.org/sqlite from 1.42.2 to 1.43.0
  • -
  • #18241 deps Bump modernc.org/sqlite from 1.43.0 to 1.44.2
  • -
  • #18263 deps Bump modernc.org/sqlite from 1.44.2 to 1.44.3
  • -
-

v1.37.1

-

Bugfixes

-
    -
  • #18138 config Add missing validation for labels in plugins
  • -
  • #18108 config Make labels and selectors conform to specification
  • -
  • #18144 inputs.procstat Isolate process cache per filter to fix tag collision
  • -
  • #18191 outputs.sql Populate column cache for existing tables
  • -
-

Dependency Updates

-
    -
  • #18125 deps Bump cloud.google.com/go/auth from 0.17.0 to 0.18.0
  • -
  • #18140 deps Bump cloud.google.com/go/auth from 0.17.0 to 0.18.0
  • -
  • #18094 deps Bump cloud.google.com/go/storage from 1.57.2 to 1.58.0
  • -
  • #18157 deps Bump github.com/BurntSushi/toml from 1.5.0 to 1.6.0
  • -
  • #18124 deps Bump github.com/ClickHouse/clickhouse-go/v2 from 2.41.0 to 2.42.0
  • -
  • #18101 deps Bump github.com/SAP/go-hdb from 1.14.13 to 1.14.14
  • -
  • #18153 deps Bump github.com/SAP/go-hdb from 1.14.14 to 1.14.15
  • -
  • #18199 deps Bump github.com/SAP/go-hdb from 1.14.15 to 1.14.16
  • -
  • #18123 deps Bump github.com/apache/arrow-go/v18 from 18.4.1 to 18.5.0
  • -
  • #18200 deps Bump github.com/apache/inlong/inlong-sdk/dataproxy-sdk-twins/dataproxy-sdk-golang from 1.0.6 to 1.0.7
  • -
  • #18197 deps Bump github.com/gophercloud/gophercloud/v2 from 2.9.0 to 2.10.0
  • -
  • #18198 deps Bump github.com/gosnmp/gosnmp from 1.42.1 to 1.43.1
  • -
  • #18132 deps Bump github.com/jedib0t/go-pretty/v6 from 6.7.5 to 6.7.7
  • -
  • #18169 deps Bump github.com/jedib0t/go-pretty/v6 from 6.7.7 to 6.7.8
  • -
  • #18189 deps Bump github.com/likexian/whois from 1.15.6 to 1.15.7
  • -
  • #18187 deps Bump github.com/likexian/whois-parser from 1.24.20 to 1.24.21
  • -
  • #18150 deps Bump github.com/lxc/incus/v6 from 6.19.1 to 6.20.0
  • -
  • #18130 deps Bump github.com/miekg/dns from 1.1.68 to 1.1.69
  • -
  • #18149 deps Bump github.com/nats-io/nats-server/v2 from 2.12.2 to 2.12.3
  • -
  • #18147 deps Bump github.com/nats-io/nats.go from 1.47.0 to 1.48.0
  • -
  • #18172 deps Bump github.com/netsampler/goflow2/v2 from 2.2.3 to 2.2.6
  • -
  • #18190 deps Bump github.com/prometheus/common from 0.67.4 to 0.67.5
  • -
  • #18102 deps Bump github.com/prometheus/prometheus from 0.307.3 to 0.308.0
  • -
  • #18155 deps Bump github.com/prometheus/prometheus from 0.308.0 to 0.308.1
  • -
  • #18129 deps Bump github.com/snowflakedb/gosnowflake from 1.18.0 to 1.18.1
  • -
  • #18103 deps Bump github.com/tinylib/msgp from 1.5.0 to 1.6.1
  • -
  • #18188 deps Bump github.com/tinylib/msgp from 1.6.1 to 1.6.3
  • -
  • #18186 deps Bump github.com/yuin/goldmark from 1.7.13 to 1.7.15
  • -
  • #18201 deps Bump github.com/yuin/goldmark from 1.7.15 to 1.7.16
  • -
  • #18092 deps Bump go.step.sm/crypto from 0.74.0 to 0.75.0
  • -
  • #18098 deps Bump golang.org/x/crypto from 0.45.0 to 0.46.0
  • -
  • #18100 deps Bump golang.org/x/mod from 0.30.0 to 0.31.0
  • -
  • #18127 deps Bump golang.org/x/net from 0.47.0 to 0.48.0
  • -
  • #18095 deps Bump golang.org/x/oauth2 from 0.33.0 to 0.34.0
  • -
  • #18093 deps Bump golang.org/x/sync from 0.18.0 to 0.19.0
  • -
  • #18096 deps Bump golang.org/x/sys from 0.38.0 to 0.39.0
  • -
  • #18099 deps Bump golang.org/x/term from 0.37.0 to 0.38.0
  • -
  • #18097 deps Bump golang.org/x/text from 0.31.0 to 0.32.0
  • -
  • #18104 deps Bump google.golang.org/api from 0.256.0 to 0.257.0
  • -
  • #18173 deps Bump google.golang.org/grpc from 1.77.0 to 1.78.0
  • -
  • #18131 deps Bump google.golang.org/protobuf from 1.36.10 to 1.36.11
  • -
  • #18128 deps Bump k8s.io/api from 0.34.2 to 0.34.3
  • -
  • #18148 deps Bump k8s.io/apimachinery from 0.34.3 to 0.35.0
  • -
  • #18126 deps Bump k8s.io/client-go from 0.34.2 to 0.34.3
  • -
  • #18154 deps Bump k8s.io/client-go from 0.34.3 to 0.35.0
  • -
  • #18152 deps Bump modernc.org/sqlite from 1.40.1 to 1.41.0
  • -
  • #18171 deps Bump modernc.org/sqlite from 1.41.0 to 1.42.2
  • -
  • #18170 deps Bump software.sslmate.com/src/go-pkcs12 from 0.6.0 to 0.7.0
  • -
  • #18158 deps Bump super-linter/super-linter from 8.3.0 to 8.3.1
  • -
  • #18174 deps Bump super-linter/super-linter from 8.3.1 to 8.3.2
  • -
  • #18091 deps Bump the aws-sdk-go-v2 group with 11 updates
  • -
  • #18146 deps Bump the aws-sdk-go-v2 group with 3 updates
  • -
  • #18121 deps Bump the aws-sdk-go-v2 group with 8 updates
  • -
  • #18120 deps Bump tj-actions/changed-files from 47.0.0 to 47.0.1
  • -
  • #18115 deps Update golangci-lint to 2.7.2
  • -
-

v1.37.0

-

Important Changes

-
    -
  • PR #17966 introduced the strict handling of environment variables -to prevent security issues. However, strict handling prevents using environment variables for non-string settings as -the configuration before replacing the variables must be TOML conform. To provide security-by-default, we will change -the default behavior of Telegraf to the strict environment variable handling with v1.38.0! -Please make sure your configuration works in the now conditions by using the --strict-env-handling flag! If your -configuration works in strict mode or you are not using environment variables, do not add the flag as it will be -removed later and ignore the new warning at startup. In case you need the current behavior please add ---non-strict-env-handling when starting Telegraf to prepare for the upcoming change!
  • -
-

New Plugins

-
    -
  • #17993 inputs.logql Add plugin
  • -
  • #17604 inputs.nftables Add plugin
  • -
  • #17701 inputs.promql Add plugin
  • -
  • #17831 inputs.timex Add plugin
  • -
  • #17875 outputs.arc Add plugin
  • -
  • #17998 outputs.heartbeat Add plugin
  • -
  • #17921 secretstores.googlecloud Add plugin
  • -
  • #17844 secretstores.vault Add plugin
  • -
-

Features

-
    -
  • #18084 config Allow specifying env-handling mode for config check
  • -
  • #17753 config Remove deprecated options
  • -
  • #17915 config Store loaded sources
  • -
  • #17080 internal Add support for parsing a timestamp in a TimeZone
  • -
  • #17916 logging Allow registering callbacks for logging events
  • -
  • #17749 models Implement collection of plugin-internal statistics for all types
  • -
  • #18044 common.socket Add option to specify source IP restrictions
  • -
  • #17760 inputs.aerospike Remove deprecated options
  • -
  • #17759 inputs.cpu Add number of physical CPUs
  • -
  • #17761 inputs.gnmi Remove deprecated options
  • -
  • #17732 inputs.influxdb_v2_listener Implement ping endpoint
  • -
  • #17733 inputs.influxdb_v2_listener Migrate to selfstat collector
  • -
  • #17965 inputs.ldap Support external SASL bind (#17477)
  • -
  • #17478 inputs.ldap Support ldapi protocol
  • -
  • #17743 inputs.modbus Remove deprecated plugin option values
  • -
  • #17762 inputs.mongodb Remove deprecated options
  • -
  • #17792 inputs.nats_consumer Acknowledge messages on delivery
  • -
  • #17710 inputs.nats_consumer Allow configuring Jetstream stream
  • -
  • #17742 inputs.net Remove deprecated plugin option value
  • -
  • #17624 inputs.netflow Add datatypes to PEN mapping
  • -
  • #17697 inputs.netflow Add support for float32 datatype
  • -
  • #17906 inputs.opcua Add namespace URI support
  • -
  • #17825 inputs.opcua Add remote certificate trust configuration
  • -
  • #17752 inputs.opcua Remove deprecated options
  • -
  • #17991 inputs.opcua Support persistent self-signed client certificates
  • -
  • #17633 inputs.rabbitmq Add type tag to queues
  • -
  • #18080 inputs.s7comm Add option idle_timeout
  • -
  • #17550 inputs.smart Parse vendor specific ratio values
  • -
  • #17948 inputs.snmp Add option to stop polling on first error
  • -
  • #17375 inputs.sql Add Vertica support
  • -
  • #17924 inputs.sqlserver Add support for LPC and named-pipe protocols
  • -
  • #17796 inputs.sqlserver Set pool size and idle connection
  • -
  • #17872 inputs.statsd Improve performance
  • -
  • #17763 inputs.win_perf_counters Remove deprecated options
  • -
  • #17751 inputs.zookeeper Remove deprecated option
  • -
  • #17950 outputs.amon Deprecate plugin
  • -
  • #18062 outputs.heartbeat Add configuration information
  • -
  • #18050 outputs.heartbeat Add optional statistics output
  • -
  • #17869 outputs.mongodb Add PLAIN authentication support and validation
  • -
  • #17755 outputs.mqtt Remove deprecated option
  • -
  • #18048 outputs.nats Add secret-support for credentials
  • -
  • #18007 outputs.nats Support nkey seed authentication
  • -
  • #17409 outputs.remotefile Add compression for remotefile plugin
  • -
  • #17764 parsers.binary Remove deprecated options
  • -
  • #17754 parsers.xpath Remove deprecated options
  • -
  • #17576 processors.execd Add log prefixing
  • -
  • #17741 processors.template Remove deprecated template syntax
  • -
-

Bugfixes

-
    -
  • #18064 common.opcua Skip file permission check on Windows
  • -
  • #18012 inputs.docker_log Remove hard-coded API version
  • -
  • #17960 inputs.opcua Add private key for certificate-based user authentication
  • -
  • #18036 inputs.procstat Make port conversion more robust
  • -
  • #18014 outputs.influxdb_v2 Correct calculation of amount of batches for concurrent writes
  • -
-

Dependency Updates

-
    -
  • #18051 deps Bump actions/checkout from 5 to 6
  • -
  • #18021 deps Bump cloud.google.com/go/storage from 1.57.1 to 1.57.2
  • -
  • #18055 deps Bump github.com/ClickHouse/clickhouse-go/v2 from 2.40.3 to 2.41.0
  • -
  • #18019 deps Bump github.com/SAP/go-hdb from 1.14.12 to 1.14.13
  • -
  • #18076 deps Bump github.com/alitto/pond/v2 from 2.5.0 to 2.6.0
  • -
  • #18074 deps Bump github.com/aws/smithy-go from 1.23.2 to 1.24.0
  • -
  • #18020 deps Bump github.com/gophercloud/gophercloud/v2 from 2.8.0 to 2.9.0
  • -
  • #17887 deps Bump github.com/hashicorp/consul/api from 1.32.4 to 1.33.0
  • -
  • #18024 deps Bump github.com/jedib0t/go-pretty/v6 from 6.7.1 to 6.7.2
  • -
  • #18056 deps Bump github.com/jedib0t/go-pretty/v6 from 6.7.2 to 6.7.5
  • -
  • #18072 deps Bump github.com/klauspost/compress from 1.18.1 to 1.18.2
  • -
  • #18071 deps Bump github.com/lxc/incus/v6 from 6.18.0 to 6.19.1
  • -
  • #18018 deps Bump github.com/microsoft/go-mssqldb from 1.9.3 to 1.9.4
  • -
  • #18017 deps Bump github.com/nats-io/nats-server/v2 from 2.12.1 to 2.12.2
  • -
  • #18054 deps Bump github.com/prometheus/common from 0.67.2 to 0.67.4
  • -
  • #18053 deps Bump github.com/redis/go-redis/v9 from 9.16.0 to 9.17.0
  • -
  • #18073 deps Bump github.com/redis/go-redis/v9 from 9.17.0 to 9.17.2
  • -
  • #18027 deps Bump github.com/safchain/ethtool from 0.6.2 to 0.7.0
  • -
  • #18070 deps Bump github.com/shirou/gopsutil/v4 from 4.25.10 to 4.25.11
  • -
  • #18057 deps Bump github.com/snowflakedb/gosnowflake from 1.17.0 to 1.18.0
  • -
  • #17815 deps Bump github.com/vertica/vertica-sql-go from 1.3.3 to 1.3.4
  • -
  • #18031 deps Bump go.opentelemetry.io/collector/pdata from 1.45.0 to 1.46.0
  • -
  • #18043 deps Bump golang.org/x/crypto from 0.44.0 to 0.45.0
  • -
  • #18023 deps Bump golang.org/x/mod from 0.29.0 to 0.30.0
  • -
  • #18029 deps Bump golang.org/x/net from 0.46.0 to 0.47.0
  • -
  • #18025 deps Bump google.golang.org/api from 0.255.0 to 0.256.0
  • -
  • #18058 deps Bump google.golang.org/grpc from 1.76.0 to 1.77.0
  • -
  • #18033 deps Bump k8s.io/client-go from 0.34.1 to 0.34.2
  • -
  • #18030 deps Bump modernc.org/sqlite from 1.40.0 to 1.40.1
  • -
  • #18069 deps Bump super-linter/super-linter from 8.2.1 to 8.3.0
  • -
  • #18052 deps Bump the aws-sdk-go-v2 group with 11 updates
  • -
  • #18015 deps Bump the aws-sdk-go-v2 group with 9 updates
  • -
-

v1.36.4

-

Bugfixes

-
    -
  • #17873 common.kafka Avoid API version requests for SASLv0 handshakes
  • -
  • #17966 config Implement strict envvar handling to prevent insecure text replacement
  • -
  • #17877 inputs.kinesis_consumer Ignore expired parent shards
  • -
  • #17908 inputs.tail Handle missing read permissions for directory globbing
  • -
  • #17968 inputs.turbostat Allow floating point intervals
  • -
  • #17953 inputs.zfs Avoid panic by handling explicitly empty kstat metrics
  • -
  • #17949 outputs.influxdb_v2 Handle serialization errors correctly
  • -
  • #17920 outputs.loki Sanitize colons in label names
  • -
  • #17990 outputs.sql Mark table as found during initial existence check
  • -
-

Dependency Updates

-
    -
  • #17935 deps Bump cloud.google.com/go/bigquery from 1.71.0 to 1.72.0
  • -
  • #17897 deps Bump cloud.google.com/go/pubsub/v2 from 2.2.1 to 2.3.0
  • -
  • #17943 deps Bump cloud.google.com/go/storage from 1.57.0 to 1.57.1
  • -
  • #17970 deps Bump github.com/Azure/azure-sdk-for-go/sdk/azcore from 1.19.1 to 1.20.0
  • -
  • #17973 deps Bump github.com/Azure/azure-sdk-for-go/sdk/azidentity from 1.13.0 to 1.13.1
  • -
  • #17901 deps Bump github.com/IBM/sarama from 1.46.2 to 1.46.3
  • -
  • #17889 deps Bump github.com/SAP/go-hdb from 1.14.7 to 1.14.9
  • -
  • #17977 deps Bump github.com/SAP/go-hdb from 1.14.9 to 1.14.12
  • -
  • #17981 deps Bump github.com/apache/iotdb-client-go from 1.3.4 to 1.3.5
  • -
  • #17900 deps Bump github.com/aws/aws-sdk-go-v2 from 1.39.3 to 1.39.4
  • -
  • #17899 deps Bump github.com/aws/aws-sdk-go-v2/config from 1.31.13 to 1.31.15
  • -
  • #17898 deps Bump github.com/aws/aws-sdk-go-v2/service/cloudwatch from 1.51.2 to 1.51.4
  • -
  • #17858 deps Bump github.com/aws/aws-sdk-go-v2/service/cloudwatchlogs from 1.58.2 to 1.58.3
  • -
  • #17892 deps Bump github.com/aws/aws-sdk-go-v2/service/cloudwatchlogs from 1.58.3 to 1.58.5
  • -
  • #17854 deps Bump github.com/aws/aws-sdk-go-v2/service/dynamodb from 1.51.0 to 1.51.1
  • -
  • #17890 deps Bump github.com/aws/aws-sdk-go-v2/service/dynamodb from 1.51.1 to 1.52.2
  • -
  • #17855 deps Bump github.com/aws/aws-sdk-go-v2/service/ec2 from 1.255.0 to 1.257.2
  • -
  • #17886 deps Bump github.com/aws/aws-sdk-go-v2/service/ec2 from 1.257.2 to 1.258.1
  • -
  • #17883 deps Bump github.com/aws/aws-sdk-go-v2/service/kinesis from 1.40.6 to 1.41.0
  • -
  • #17847 deps Bump github.com/aws/aws-sdk-go-v2/service/timestreamwrite from 1.35.5 to 1.35.6
  • -
  • #17891 deps Bump github.com/aws/aws-sdk-go-v2/service/timestreamwrite from 1.35.6 to 1.35.7
  • -
  • #17944 deps Bump github.com/aws/smithy-go from 1.23.1 to 1.23.2
  • -
  • #17978 deps Bump github.com/docker/docker from 28.5.1+incompatible to 28.5.2+incompatible
  • -
  • #18009 deps Bump github.com/dvsekhvalnov/jose2go from 1.6.0 to 1.7.0
  • -
  • #17941 deps Bump github.com/gofrs/uuid/v5 from 5.3.2 to 5.4.0
  • -
  • #17927 deps Bump github.com/gopacket/gopacket from 1.4.0 to 1.5.0
  • -
  • #17988 deps Bump github.com/influxdata/toml from v0.0.0-20190415235208-270119a8ce65 to v0.0.0-20251106153700-c381e153d076
  • -
  • #17932 deps Bump github.com/jedib0t/go-pretty/v6 from 6.6.8 to 6.6.9
  • -
  • #17979 deps Bump github.com/jedib0t/go-pretty/v6 from 6.6.9 to 6.7.1
  • -
  • #17896 deps Bump github.com/linkedin/goavro/v2 from 2.14.0 to 2.14.1
  • -
  • #17942 deps Bump github.com/lxc/incus/v6 from 6.17.0 to 6.18.0
  • -
  • #17937 deps Bump github.com/prometheus/common from 0.67.1 to 0.67.2
  • -
  • #17885 deps Bump github.com/prometheus/procfs from 0.17.0 to 0.19.1
  • -
  • #17930 deps Bump github.com/prometheus/procfs from 0.19.1 to 0.19.2
  • -
  • #17894 deps Bump github.com/prometheus/prometheus from 0.307.1 to 0.307.2
  • -
  • #17928 deps Bump github.com/prometheus/prometheus from 0.307.2 to 0.307.3
  • -
  • #17895 deps Bump github.com/redis/go-redis/v9 from 9.14.1 to 9.16.0
  • -
  • #17939 deps Bump github.com/shirou/gopsutil/v4 from 4.25.9 to 4.25.10
  • -
  • #17976 deps Bump github.com/testcontainers/testcontainers-go from 0.39.0 to 0.40.0
  • -
  • #17983 deps Bump github.com/testcontainers/testcontainers-go/modules/azure from 0.39.0 to 0.40.0
  • -
  • #17972 deps Bump github.com/testcontainers/testcontainers-go/modules/kafka from 0.39.0 to 0.40.0
  • -
  • #17893 deps Bump github.com/tinylib/msgp from 1.4.0 to 1.5.0
  • -
  • #17934 deps Bump go.mongodb.org/mongo-driver from 1.17.4 to 1.17.6
  • -
  • #17865 deps Bump go.opentelemetry.io/collector/pdata from 1.43.0 to 1.44.0
  • -
  • #17945 deps Bump go.opentelemetry.io/collector/pdata from 1.44.0 to 1.45.0
  • -
  • #17933 deps Bump go.opentelemetry.io/proto/otlp from 1.8.0 to 1.9.0
  • -
  • #17938 deps Bump go.opentelemetry.io/proto/otlp/collector/profiles/v1development from 0.1.0 to 0.2.0
  • -
  • #17936 deps Bump go.step.sm/crypto from 0.72.0 to 0.73.0
  • -
  • #17974 deps Bump go.step.sm/crypto from 0.73.0 to 0.74.0
  • -
  • #17984 deps Bump golang.org/x/oauth2 from 0.32.0 to 0.33.0
  • -
  • #17980 deps Bump golang.org/x/sync from 0.17.0 to 0.18.0
  • -
  • #17971 deps Bump golang.org/x/sys from 0.37.0 to 0.38.0
  • -
  • #17884 deps Bump google.golang.org/api from 0.252.0 to 0.253.0
  • -
  • #17929 deps Bump google.golang.org/api from 0.253.0 to 0.254.0
  • -
  • #17975 deps Bump google.golang.org/api from 0.254.0 to 0.255.0
  • -
  • #17931 deps Bump modernc.org/sqlite from 1.39.1 to 1.40.0
  • -
  • #17926 deps Bump the aws-sdk-go-v2 group with 11 updates
  • -
  • #17969 deps Bump the aws-sdk-go-v2 group with 11 updates
  • -
-

v1.36.3

-

Bugfixes

-
    -
  • #17765 inputs.chrony Prevent race condition in concurrent gather calls
  • -
  • #17634 inputs.docker Fix incorrect CPU usage_percent for Podman containers
  • -
  • #17740 inputs.kube_inventory Prevent panic in endpoints’ ready flag
  • -
  • #17483 inputs.smart Correct exit_status for active vs standby drives
  • -
  • #17617 inputs.zfs Parse field values according to provided type
  • -
  • #17787 outputs.nats Unwrap wrapped metrics to avoid panic on missing Field method
  • -
  • #17573 parsers.csv Support concurrent usage
  • -
  • #17738 secretstores.systemd Handle dash version separator correctly
  • -
-

Dependency Updates

-
    -
  • #17770 deps Bump cloud.google.com/go/bigquery from 1.70.0 to 1.71.0
  • -
  • #17821 deps Bump cloud.google.com/go/monitoring from 1.24.2 to 1.24.3
  • -
  • #17777 deps Bump cloud.google.com/go/pubsub/v2 from 2.0.0 to 2.2.0
  • -
  • #17846 deps Bump cloud.google.com/go/pubsub/v2 from 2.2.0 to 2.2.1
  • -
  • #17718 deps Bump cloud.google.com/go/storage from 1.56.2 to 1.57.0
  • -
  • #17805 deps Bump github.com/Azure/azure-sdk-for-go/sdk/azidentity from 1.12.0 to 1.13.0
  • -
  • #17784 deps Bump github.com/Azure/azure-sdk-for-go/sdk/messaging/azeventhubs from 1.4.0 to 2.0.0
  • -
  • #17810 deps Bump github.com/Azure/azure-sdk-for-go/sdk/messaging/azeventhubs/v2 from 2.0.0 to 2.0.1
  • -
  • #17804 deps Bump github.com/IBM/sarama from 1.46.1 to 1.46.2
  • -
  • #17724 deps Bump github.com/SAP/go-hdb from 1.14.4 to 1.14.5
  • -
  • #17808 deps Bump github.com/SAP/go-hdb from 1.14.5 to 1.14.6
  • -
  • #17866 deps Bump github.com/SAP/go-hdb from 1.14.6 to 1.14.7
  • -
  • #17822 deps Bump github.com/antchfx/xmlquery from 1.4.4 to 1.5.0
  • -
  • #17868 deps Bump github.com/aws/aws-sdk-go-v2/config from 1.31.12 to 1.31.13
  • -
  • #17730 deps Bump github.com/aws/aws-sdk-go-v2/config from 1.31.9 to 1.31.12
  • -
  • #17719 deps Bump github.com/aws/aws-sdk-go-v2/service/cloudwatch from 1.50.1 to 1.51.1
  • -
  • #17863 deps Bump github.com/aws/aws-sdk-go-v2/service/cloudwatch from 1.51.1 to 1.51.2
  • -
  • #17716 deps Bump github.com/aws/aws-sdk-go-v2/service/cloudwatchlogs from 1.58.0 to 1.58.2
  • -
  • #17715 deps Bump github.com/aws/aws-sdk-go-v2/service/dynamodb from 1.50.3 to 1.50.5
  • -
  • #17772 deps Bump github.com/aws/aws-sdk-go-v2/service/dynamodb from 1.50.5 to 1.51.0
  • -
  • #17714 deps Bump github.com/aws/aws-sdk-go-v2/service/ec2 from 1.253.0 to 1.254.1
  • -
  • #17814 deps Bump github.com/aws/aws-sdk-go-v2/service/ec2 from 1.254.1 to 1.255.0
  • -
  • #17728 deps Bump github.com/aws/aws-sdk-go-v2/service/kinesis from 1.40.3 to 1.40.5
  • -
  • #17848 deps Bump github.com/aws/aws-sdk-go-v2/service/kinesis from 1.40.5 to 1.40.6
  • -
  • #17723 deps Bump github.com/aws/aws-sdk-go-v2/service/timestreamwrite from 1.35.3 to 1.35.5
  • -
  • #17864 deps Bump github.com/aws/smithy-go from 1.23.0 to 1.23.1
  • -
  • #17849 deps Bump github.com/bluenviron/gomavlib/v3 from 3.2.1 to 3.3.0
  • -
  • #17774 deps Bump github.com/docker/docker from 28.4.0+incompatible to 28.5.0+incompatible
  • -
  • #17816 deps Bump github.com/docker/docker from 28.5.0+incompatible to 28.5.1+incompatible
  • -
  • #17769 deps Bump github.com/go-ldap/ldap/v3 from 3.4.11 to 3.4.12
  • -
  • #17775 deps Bump github.com/go-logfmt/logfmt from 0.6.0 to 0.6.1
  • -
  • #17727 deps Bump github.com/hashicorp/consul/api from 1.32.3 to 1.32.4
  • -
  • #17862 deps Bump github.com/klauspost/compress from 1.18.0 to 1.18.1
  • -
  • #17773 deps Bump github.com/leodido/go-syslog/v4 from 4.2.1-0.20250421191238-de2e76af1251 to 4.3.0
  • -
  • #17729 deps Bump github.com/lxc/incus/v6 from 6.16.0 to 6.17.0
  • -
  • #17860 deps Bump github.com/nats-io/nats-server/v2 from 2.12.0 to 2.12.1
  • -
  • #17766 deps Bump github.com/nats-io/nats.go from 1.46.0 to 1.46.1
  • -
  • #17851 deps Bump github.com/nats-io/nats.go from 1.46.1 to 1.47.0
  • -
  • #17813 deps Bump github.com/prometheus/common from 0.66.1 to 0.67.1
  • -
  • #17867 deps Bump github.com/prometheus/prometheus from 0.306.0 to 0.307.1
  • -
  • #17861 deps Bump github.com/redis/go-redis/v9 from 9.14.0 to 9.14.1
  • -
  • #17767 deps Bump github.com/shirou/gopsutil/v4 from 4.25.8 to 4.25.9
  • -
  • #17725 deps Bump github.com/snowflakedb/gosnowflake from 0.0.0-20250911095445-20c4d105d9a0 to 1.17.0
  • -
  • #17776 deps Bump go.opentelemetry.io/collector/pdata from 1.42.0 to 1.43.0
  • -
  • #17817 deps Bump go.step.sm/crypto from 0.70.0 to 0.71.0
  • -
  • #17857 deps Bump go.step.sm/crypto from 0.71.0 to 0.72.0
  • -
  • #17820 deps Bump golang.org/x/crypto from 0.42.0 to 0.43.0
  • -
  • #17806 deps Bump golang.org/x/mod from 0.28.0 to 0.29.0
  • -
  • #17819 deps Bump golang.org/x/net from 0.44.0 to 0.46.0
  • -
  • #17818 deps Bump golang.org/x/oauth2 from 0.31.0 to 0.32.0
  • -
  • #17823 deps Bump golang.org/x/sys from 0.36.0 to 0.37.0
  • -
  • #17717 deps Bump google.golang.org/api from 0.249.0 to 0.250.0
  • -
  • #17778 deps Bump google.golang.org/api from 0.250.0 to 0.251.0
  • -
  • #17807 deps Bump google.golang.org/api from 0.251.0 to 0.252.0
  • -
  • #17771 deps Bump google.golang.org/grpc from 1.75.1 to 1.76.0
  • -
  • #17768 deps Bump google.golang.org/protobuf from 1.36.9 to 1.36.10
  • -
  • #17811 deps Bump modernc.org/sqlite from 1.39.0 to 1.39.1
  • -
  • #17779 deps Bump super-linter/super-linter from 8.1.0 to 8.2.0
  • -
  • #17853 deps Bump super-linter/super-linter from 8.2.0 to 8.2.1
  • -
  • #17610 deps Switch to maintained yaml library
  • -
  • #17794 deps Update golangci-lint to 2.5.0
  • -
-

v1.36.2

-

Bugfixes

-
    -
  • #17609 filter Handle multiple conditions correctly
  • -
  • #17552 inputs.procstat Use correct values for disk_read_bytes, disk_write_bytes on Linux
  • -
  • #17613 inputs.tail Fix data race when cleaning up unused tailers
  • -
-

Dependency Updates

-
    -
  • #17599 deps Bump actions/setup-go from 5 to 6
  • -
  • #17650 deps Bump cloud.google.com/go/bigquery from 1.69.0 to 1.70.0
  • -
  • #17654 deps Bump cloud.google.com/go/storage from 1.56.1 to 1.56.2
  • -
  • #17688 deps Bump github.com/Azure/azure-sdk-for-go/sdk/azcore from 1.19.0 to 1.19.1
  • -
  • #17683 deps Bump github.com/Azure/azure-sdk-for-go/sdk/azidentity from 1.11.0 to 1.12.0
  • -
  • #17644 deps Bump github.com/ClickHouse/clickhouse-go/v2 from 2.40.1 to 2.40.3
  • -
  • #17522 deps Bump github.com/IBM/sarama from 1.45.2 to 1.46.0
  • -
  • #17682 deps Bump github.com/IBM/sarama from 1.46.0 to 1.46.1
  • -
  • #17636 deps Bump github.com/SAP/go-hdb from 1.14.0 to 1.14.3
  • -
  • #17677 deps Bump github.com/SAP/go-hdb from 1.14.3 to 1.14.4
  • -
  • #17647 deps Bump github.com/apache/arrow-go/v18 from 18.4.0 to 18.4.1
  • -
  • #17587 deps Bump github.com/apache/inlong/inlong-sdk/dataproxy-sdk-twins/dataproxy-sdk-golang from 1.0.5 to 1.0.6
  • -
  • #17642 deps Bump github.com/awnumar/memguard from 0.22.5 to 0.23.0
  • -
  • #17693 deps Bump github.com/aws/aws-sdk-go-v2/config from 1.31.4 to 1.31.9
  • -
  • #17588 deps Bump github.com/aws/aws-sdk-go-v2/feature/ec2/imds from 1.18.5 to 1.18.7
  • -
  • #17641 deps Bump github.com/aws/aws-sdk-go-v2/service/cloudwatch from 1.48.2 to 1.50.1
  • -
  • #17656 deps Bump github.com/aws/aws-sdk-go-v2/service/cloudwatchlogs from 1.57.0 to 1.57.4
  • -
  • #17690 deps Bump github.com/aws/aws-sdk-go-v2/service/cloudwatchlogs from 1.57.4 to 1.58.0
  • -
  • #17596 deps Bump github.com/aws/aws-sdk-go-v2/service/dynamodb from 1.49.1 to 1.50.2
  • -
  • #17649 deps Bump github.com/aws/aws-sdk-go-v2/service/dynamodb from 1.50.2 to 1.50.3
  • -
  • #17583 deps Bump github.com/aws/aws-sdk-go-v2/service/ec2 from 1.246.0 to 1.251.1
  • -
  • #17640 deps Bump github.com/aws/aws-sdk-go-v2/service/ec2 from 1.251.1 to 1.251.2
  • -
  • #17681 deps Bump github.com/aws/aws-sdk-go-v2/service/ec2 from 1.251.2 to 1.253.0
  • -
  • #17595 deps Bump github.com/aws/aws-sdk-go-v2/service/kinesis from 1.39.1 to 1.40.2
  • -
  • #17646 deps Bump github.com/aws/aws-sdk-go-v2/service/kinesis from 1.40.2 to 1.40.3
  • -
  • #17638 deps Bump github.com/aws/aws-sdk-go-v2/service/sts from 1.38.1 to 1.38.4
  • -
  • #17582 deps Bump github.com/aws/aws-sdk-go-v2/service/timestreamwrite from 1.34.2 to 1.35.2
  • -
  • #17658 deps Bump github.com/aws/aws-sdk-go-v2/service/timestreamwrite from 1.35.2 to 1.35.3
  • -
  • #17673 deps Bump github.com/cloudevents/sdk-go/v2 from 2.16.1 to 2.16.2
  • -
  • #17601 deps Bump github.com/docker/docker from 28.3.3+incompatible to 28.4.0+incompatible
  • -
  • #17653 deps Bump github.com/eclipse/paho.golang from 0.22.0 to 0.23.0
  • -
  • #17680 deps Bump github.com/eclipse/paho.mqtt.golang from 1.5.0 to 1.5.1
  • -
  • #17597 deps Bump github.com/google/cel-go from 0.26.0 to 0.26.1
  • -
  • #17689 deps Bump github.com/hashicorp/consul/api from 1.32.1 to 1.32.3
  • -
  • #17651 deps Bump github.com/lxc/incus/v6 from 6.15.0 to 6.16.0
  • -
  • #17635 deps Bump github.com/nats-io/nats-server/v2 from 2.11.8 to 2.11.9
  • -
  • #17670 deps Bump github.com/nats-io/nats-server/v2 from 2.11.9 to 2.12.0
  • -
  • #17675 deps Bump github.com/nats-io/nats.go from 1.45.0 to 1.46.0
  • -
  • #17674 deps Bump github.com/peterbourgon/unixtransport from 0.0.6 to 0.0.7
  • -
  • #17593 deps Bump github.com/prometheus/client_golang from 1.23.0 to 1.23.2
  • -
  • #17585 deps Bump github.com/prometheus/common from 0.65.0 to 0.66.1
  • -
  • #17685 deps Bump github.com/prometheus/prometheus from 0.305.0 to 0.306.0
  • -
  • #17329 deps Bump github.com/prometheus/prometheus from 0.54.1 to 0.305.0
  • -
  • #17645 deps Bump github.com/redis/go-redis/v9 from 9.12.1 to 9.14.0
  • -
  • #17567 deps Bump github.com/shirou/gopsutil/v4 from 4.25.7 to 4.25.8
  • -
  • #17699 deps Bump github.com/snowflakedb/gosnowflake from 1.16.0 to 0.0.0-20250911095445-20c4d105d9a0
  • -
  • #17590 deps Bump github.com/stretchr/testify from 1.10.0 to 1.11.1
  • -
  • #17687 deps Bump github.com/testcontainers/testcontainers-go from 0.38.0 to 0.39.0
  • -
  • #17676 deps Bump github.com/testcontainers/testcontainers-go/modules/azure from 0.38.0 to 0.39.0
  • -
  • #17671 deps Bump github.com/testcontainers/testcontainers-go/modules/kafka from 0.38.0 to 0.39.0
  • -
  • #17584 deps Bump github.com/tidwall/wal from 1.2.0 to 1.2.1
  • -
  • #17581 deps Bump github.com/tinylib/msgp from 1.3.0 to 1.4.0
  • -
  • #17591 deps Bump go.opentelemetry.io/collector/pdata from 1.39.0 to 1.41.0
  • -
  • #17686 deps Bump go.opentelemetry.io/collector/pdata from 1.41.0 to 1.42.0
  • -
  • #17602 deps Bump go.opentelemetry.io/proto/otlp from 1.7.0 to 1.8.0
  • -
  • #17652 deps Bump golang.org/x/crypto from 0.41.0 to 0.42.0
  • -
  • #17691 deps Bump golang.org/x/mod from 0.27.0 to 0.28.0
  • -
  • #17655 deps Bump golang.org/x/oauth2 from 0.30.0 to 0.31.0
  • -
  • #17589 deps Bump golang.org/x/sync from 0.16.0 to 0.17.0
  • -
  • #17580 deps Bump golang.org/x/term from 0.34.0 to 0.35.0
  • -
  • #17679 deps Bump google.golang.org/api from 0.248.0 to 0.249.0
  • -
  • #17639 deps Bump google.golang.org/grpc from 1.75.0 to 1.75.1
  • -
  • #17643 deps Bump google.golang.org/protobuf from 1.36.8 to 1.36.9
  • -
  • #17598 deps Bump k8s.io/api from 0.33.4 to 0.34.0
  • -
  • #17692 deps Bump k8s.io/client-go from 0.34.0 to 0.34.1
  • -
  • #17657 deps Bump modernc.org/sqlite from 1.38.2 to 1.39.0
  • -
  • #17648 deps Bump tj-actions/changed-files from 46.0.5 to 47.0.0
  • -
  • #17707 deps Remove collectd replacement
  • -
-

v1.36.1

-

Bugfixes

-
    -
  • #17605 outputs.influxdb Fix crash on init
  • -
-

v1.36.0

-

Important Changes

-
    -
  • Pull request #17355 updates profiles support in inputs.opentelemetry from v1 experimental to v1 development, following upstream changes to the experimental API. This update modifies metric output. For example, the frame_type, stack_trace_id, build_id, and build_id_type fields are no longer reported. The value format of other fields or tags might also have changed. For more information, see the OpenTelemetry documentation.
  • -
-

New Plugins

-
    -
  • #17368 inputs.turbostat Add plugin
  • -
  • #17078 processors.round Add plugin
  • -
-

Features

-
    -
  • #16705 agent Introduce labels and selectors to enable and disable plugins
  • -
  • #17547 inputs.influxdb_v2_listener Add /health route
  • -
  • #17312 inputs.internal Allow to collect statistics per plugin instance
  • -
  • #17024 inputs.lvm Add sync_percent for lvm_logical_vol
  • -
  • #17355 inputs.opentelemetry Upgrade otlp proto module
  • -
  • #17156 inputs.syslog Add support for RFC3164 over TCP
  • -
  • #17543 inputs.syslog Allow limiting message size in octet counting mode
  • -
  • #17539 inputs.x509_cert Add support for Windows certificate stores
  • -
  • #17244 output.nats Allow disabling stream creation for externally managed streams
  • -
  • #17474 outputs.elasticsearch Support array headers and preserve commas in values
  • -
  • #17548 outputs.influxdb Add internal statistics for written bytes
  • -
  • #17213 outputs.nats Allow providing a subject layout
  • -
  • #17346 outputs.nats Enable batch serialization with use_batch_format
  • -
  • #17249 outputs.sql Allow sending batches of metrics in transactions
  • -
  • #17510 parsers.avro Support record arrays at root level
  • -
  • #17365 plugins.snmp Allow debug logging in gosnmp
  • -
  • #17345 selfstat Implement collection of plugin-internal statistics
  • -
-

Bugfixes

-
    -
  • #17411 inputs.diskio Handle counter wrapping in io fields
  • -
  • #17551 inputs.s7comm Use correct value for string length with ’extra’ parameter
  • -
  • #17579 internal Extract go version more robustly
  • -
  • #17566 outputs Retrigger batch-available-events only if at least one metric was written successfully
  • -
  • #17381 packaging Rename rpm from loong64 to loongarch64
  • -
-

Dependency Updates

-
    -
  • #17519 deps Bump cloud.google.com/go/storage from 1.56.0 to 1.56.1
  • -
  • #17532 deps Bump github.com/Azure/azure-sdk-for-go/sdk/azcore from 1.18.2 to 1.19.0
  • -
  • #17494 deps Bump github.com/SAP/go-hdb from 1.13.12 to 1.14.0
  • -
  • #17488 deps Bump github.com/antchfx/xpath from 1.3.4 to 1.3.5
  • -
  • #17540 deps Bump github.com/aws/aws-sdk-go-v2/config from 1.31.0 to 1.31.2
  • -
  • #17538 deps Bump github.com/aws/aws-sdk-go-v2/credentials from 1.18.4 to 1.18.6
  • -
  • #17517 deps Bump github.com/aws/aws-sdk-go-v2/feature/ec2/imds from 1.18.3 to 1.18.4
  • -
  • #17528 deps Bump github.com/aws/aws-sdk-go-v2/service/cloudwatch from 1.48.0 to 1.48.2
  • -
  • #17536 deps Bump github.com/aws/aws-sdk-go-v2/service/cloudwatchlogs from 1.56.0 to 1.57.0
  • -
  • #17524 deps Bump github.com/aws/aws-sdk-go-v2/service/dynamodb from 1.46.0 to 1.49.1
  • -
  • #17493 deps Bump github.com/aws/aws-sdk-go-v2/service/ec2 from 1.242.0 to 1.244.0
  • -
  • #17527 deps Bump github.com/aws/aws-sdk-go-v2/service/ec2 from 1.244.0 to 1.246.0
  • -
  • #17530 deps Bump github.com/aws/aws-sdk-go-v2/service/kinesis from 1.38.0 to 1.39.1
  • -
  • #17534 deps Bump github.com/aws/aws-sdk-go-v2/service/sts from 1.37.0 to 1.38.0
  • -
  • #17513 deps Bump github.com/aws/aws-sdk-go-v2/service/timestreamwrite from 1.34.0 to 1.34.2
  • -
  • #17514 deps Bump github.com/coreos/go-systemd/v22 from 22.5.0 to 22.6.0
  • -
  • #17563 deps Bump github.com/facebook/time from 0.0.0-20240626113945-18207c5d8ddc to 0.0.0-20250903103710-a5911c32cdb9
  • -
  • #17526 deps Bump github.com/gophercloud/gophercloud/v2 from 2.7.0 to 2.8.0
  • -
  • #17537 deps Bump github.com/microsoft/go-mssqldb from 1.9.2 to 1.9.3
  • -
  • #17490 deps Bump github.com/nats-io/nats-server/v2 from 2.11.7 to 2.11.8
  • -
  • #17523 deps Bump github.com/nats-io/nats.go from 1.44.0 to 1.45.0
  • -
  • #17492 deps Bump github.com/safchain/ethtool from 0.5.10 to 0.6.2
  • -
  • #17486 deps Bump github.com/snowflakedb/gosnowflake from 1.15.0 to 1.16.0
  • -
  • #17541 deps Bump github.com/tidwall/wal from 1.1.8 to 1.2.0
  • -
  • #17529 deps Bump github.com/vmware/govmomi from 0.51.0 to 0.52.0
  • -
  • #17496 deps Bump go.opentelemetry.io/collector/pdata from 1.36.1 to 1.38.0
  • -
  • #17533 deps Bump go.opentelemetry.io/collector/pdata from 1.38.0 to 1.39.0
  • -
  • #17516 deps Bump go.step.sm/crypto from 0.69.0 to 0.70.0
  • -
  • #17499 deps Bump golang.org/x/mod from 0.26.0 to 0.27.0
  • -
  • #17497 deps Bump golang.org/x/net from 0.42.0 to 0.43.0
  • -
  • #17487 deps Bump google.golang.org/api from 0.246.0 to 0.247.0
  • -
  • #17531 deps Bump google.golang.org/api from 0.247.0 to 0.248.0
  • -
  • #17520 deps Bump google.golang.org/grpc from 1.74.2 to 1.75.0
  • -
  • #17518 deps Bump google.golang.org/protobuf from 1.36.7 to 1.36.8
  • -
  • #17498 deps Bump k8s.io/client-go from 0.33.3 to 0.33.4
  • -
  • #17515 deps Bump super-linter/super-linter from 8.0.0 to 8.1.0
  • -
-

v1.35.4

-

Bugfixes

-
    -
  • #17451 agent Update help message for --test CLI flag
  • -
  • #17413 inputs.gnmi Handle empty updates in gnmi notification response
  • -
  • #17445 inputs.redfish Log correct address on HTTP error
  • -
-

Dependency Updates

-
    -
  • #17454 deps Bump actions/checkout from 4 to 5
  • -
  • #17404 deps Bump cloud.google.com/go/storage from 1.55.0 to 1.56.0
  • -
  • #17428 deps Bump github.com/Azure/azure-sdk-for-go/sdk/azcore from 1.18.1 to 1.18.2
  • -
  • #17455 deps Bump github.com/Azure/azure-sdk-for-go/sdk/azidentity from 1.10.1 to 1.11.0
  • -
  • #17383 deps Bump github.com/ClickHouse/clickhouse-go/v2 from 2.37.2 to 2.39.0
  • -
  • #17435 deps Bump github.com/ClickHouse/clickhouse-go/v2 from 2.39.0 to 2.40.1
  • -
  • #17393 deps Bump github.com/apache/arrow-go/v18 from 18.3.1 to 18.4.0
  • -
  • #17439 deps Bump github.com/apache/inlong/inlong-sdk/dataproxy-sdk-twins/dataproxy-sdk-golang from 1.0.3 to 1.0.5
  • -
  • #17437 deps Bump github.com/aws/aws-sdk-go-v2 from 1.37.0 to 1.37.2
  • -
  • #17402 deps Bump github.com/aws/aws-sdk-go-v2/config from 1.29.17 to 1.30.0
  • -
  • #17458 deps Bump github.com/aws/aws-sdk-go-v2/config from 1.30.1 to 1.31.0
  • -
  • #17391 deps Bump github.com/aws/aws-sdk-go-v2/credentials from 1.17.70 to 1.18.0
  • -
  • #17436 deps Bump github.com/aws/aws-sdk-go-v2/credentials from 1.18.1 to 1.18.3
  • -
  • #17434 deps Bump github.com/aws/aws-sdk-go-v2/feature/ec2/imds from 1.18.0 to 1.18.2
  • -
  • #17461 deps Bump github.com/aws/aws-sdk-go-v2/service/cloudwatch from 1.45.3 to 1.48.0
  • -
  • #17392 deps Bump github.com/aws/aws-sdk-go-v2/service/cloudwatchlogs from 1.51.0 to 1.54.0
  • -
  • #17440 deps Bump github.com/aws/aws-sdk-go-v2/service/cloudwatchlogs from 1.54.0 to 1.55.0
  • -
  • #17473 deps Bump github.com/aws/aws-sdk-go-v2/service/cloudwatchlogs from 1.55.0 to 1.56.0
  • -
  • #17431 deps Bump github.com/aws/aws-sdk-go-v2/service/dynamodb from 1.44.0 to 1.46.0
  • -
  • #17470 deps Bump github.com/aws/aws-sdk-go-v2/service/ec2 from 1.231.0 to 1.242.0
  • -
  • #17397 deps Bump github.com/aws/aws-sdk-go-v2/service/kinesis from 1.35.3 to 1.36.0
  • -
  • #17430 deps Bump github.com/aws/aws-sdk-go-v2/service/kinesis from 1.36.0 to 1.37.0
  • -
  • #17469 deps Bump github.com/aws/aws-sdk-go-v2/service/kinesis from 1.37.0 to 1.38.0
  • -
  • #17432 deps Bump github.com/aws/aws-sdk-go-v2/service/sts from 1.35.0 to 1.36.0
  • -
  • #17401 deps Bump github.com/aws/aws-sdk-go-v2/service/timestreamwrite from 1.31.2 to 1.32.0
  • -
  • #17421 deps Bump github.com/aws/aws-sdk-go-v2/service/timestreamwrite from 1.32.0 to 1.33.0
  • -
  • #17464 deps Bump github.com/aws/aws-sdk-go-v2/service/timestreamwrite from 1.33.0 to 1.34.0
  • -
  • #17457 deps Bump github.com/clarify/clarify-go from 0.4.0 to 0.4.1
  • -
  • #17407 deps Bump github.com/docker/docker from 28.3.2+incompatible to 28.3.3+incompatible
  • -
  • #17463 deps Bump github.com/docker/go-connections from 0.5.0 to 0.6.0
  • -
  • #17394 deps Bump github.com/golang-jwt/jwt/v5 from 5.2.2 to 5.2.3
  • -
  • #17423 deps Bump github.com/gopacket/gopacket from 1.3.1 to 1.4.0
  • -
  • #17399 deps Bump github.com/jedib0t/go-pretty/v6 from 6.6.7 to 6.6.8
  • -
  • #17422 deps Bump github.com/lxc/incus/v6 from 6.14.0 to 6.15.0
  • -
  • #17429 deps Bump github.com/miekg/dns from 1.1.67 to 1.1.68
  • -
  • #17433 deps Bump github.com/nats-io/nats-server/v2 from 2.11.6 to 2.11.7
  • -
  • #17426 deps Bump github.com/nats-io/nats.go from 1.43.0 to 1.44.0
  • -
  • #17456 deps Bump github.com/redis/go-redis/v9 from 9.11.0 to 9.12.1
  • -
  • #17420 deps Bump github.com/shirou/gopsutil/v4 from 4.25.6 to 4.25.7
  • -
  • #17388 deps Bump github.com/testcontainers/testcontainers-go/modules/azure from 0.37.0 to 0.38.0
  • -
  • #17382 deps Bump github.com/testcontainers/testcontainers-go/modules/kafka from 0.37.0 to 0.38.0
  • -
  • #17427 deps Bump github.com/yuin/goldmark from 1.7.12 to 1.7.13
  • -
  • #17386 deps Bump go.opentelemetry.io/collector/pdata from 1.36.0 to 1.36.1
  • -
  • #17425 deps Bump go.step.sm/crypto from 0.67.0 to 0.68.0
  • -
  • #17462 deps Bump go.step.sm/crypto from 0.68.0 to 0.69.0
  • -
  • #17460 deps Bump golang.org/x/crypto from 0.40.0 to 0.41.0
  • -
  • #17424 deps Bump google.golang.org/api from 0.243.0 to 0.244.0
  • -
  • #17459 deps Bump google.golang.org/api from 0.244.0 to 0.246.0
  • -
  • #17465 deps Bump google.golang.org/protobuf from 1.36.6 to 1.36.7
  • -
  • #17384 deps Bump k8s.io/apimachinery from 0.33.2 to 0.33.3
  • -
  • #17389 deps Bump k8s.io/client-go from 0.33.2 to 0.33.3
  • -
  • #17396 deps Bump modernc.org/sqlite from 1.38.0 to 1.38.1
  • -
  • #17385 deps Bump software.sslmate.com/src/go-pkcs12 from 0.5.0 to 0.6.0
  • -
  • #17390 deps Bump super-linter/super-linter from 7.4.0 to 8.0.0
  • -
  • #17448 deps Fix collectd dependency not resolving
  • -
  • #17410 deps Migrate from cloud.google.com/go/pubsub to v2
  • -
-

v1.35.3

-

Bug fixes

-
    -
  • #17373 agent Handle nil timer on telegraf reload when no debounce is specified
  • -
  • #17340 agent Make Windows service install more robust
  • -
  • #17310 outputs.sql Add timestamp to derived datatypes
  • -
  • #17349 outputs Retrigger batch-available-events only for non-failing writes
  • -
  • #17293 parsers.json_v2 Respect string type for objects and arrays
  • -
  • #17367 plugins.snmp Update gosnmp to prevent panic in snmp agents
  • -
  • #17292 processors.snmp_lookup Avoid re-enqueing updates after plugin stopped
  • -
  • #17369 processors.snmp_lookup Prevent deadlock during plugin shutdown
  • -
-

Dependency updates

-
    -
  • #17320 deps Bump github.com/Azure/azure-sdk-for-go/sdk/azcore from 1.18.0 to 1.18.1
  • -
  • #17328 deps Bump github.com/SAP/go-hdb from 1.13.11 to 1.13.12
  • -
  • #17301 deps Bump github.com/SAP/go-hdb from 1.13.9 to 1.13.11
  • -
  • #17326 deps Bump github.com/alitto/pond/v2 from 2.4.0 to 2.5.0
  • -
  • #17295 deps Bump github.com/aws/aws-sdk-go-v2/service/ec2 from 1.227.0 to 1.230.0
  • -
  • #17332 deps Bump github.com/aws/aws-sdk-go-v2/service/ec2 from 1.230.0 to 1.231.0
  • -
  • #17300 deps Bump github.com/docker/docker from 28.3.0+incompatible to 28.3.1+incompatible
  • -
  • #17334 deps Bump github.com/docker/docker from 28.3.1+incompatible to 28.3.2+incompatible
  • -
  • #17327 deps Bump github.com/google/cel-go from 0.25.0 to 0.26.0
  • -
  • #17331 deps Bump github.com/miekg/dns from 1.1.66 to 1.1.67
  • -
  • #17297 deps Bump github.com/nats-io/nats-server/v2 from 2.11.5 to 2.11.6
  • -
  • #17321 deps Bump github.com/openconfig/goyang from 1.6.2 to 1.6.3
  • -
  • #17298 deps Bump github.com/prometheus/procfs from 0.16.1 to 0.17.0
  • -
  • #17296 deps Bump github.com/shirou/gopsutil/v4 from 4.25.5 to 4.25.6
  • -
  • #17299 deps Bump github.com/snowflakedb/gosnowflake from 1.14.1 to 1.15.0
  • -
  • #17323 deps Bump go.opentelemetry.io/collector/pdata from 1.35.0 to 1.36.0
  • -
  • #17091 deps Bump go.step.sm/crypto from 0.64.0 to 0.67.0
  • -
  • #17330 deps Bump golang.org/x/crypto from 0.39.0 to 0.40.0
  • -
  • #17322 deps Bump golang.org/x/mod from 0.25.0 to 0.26.0
  • -
  • #17336 deps Bump golang.org/x/net from 0.41.0 to 0.42.0
  • -
  • #17337 deps Bump golang.org/x/sys from 0.33.0 to 0.34.0
  • -
  • #17335 deps Bump golang.org/x/term from 0.32.0 to 0.33.0
  • -
  • #17294 deps Bump google.golang.org/api from 0.239.0 to 0.240.0
  • -
  • #17325 deps Bump google.golang.org/api from 0.240.0 to 0.241.0
  • -
  • #17138 deps Bump modernc.org/sqlite from 1.37.0 to 1.38.0
  • -
-

v1.35.2

-

Bug fixes

-
    -
  • #17248 agent Add missing config flags for migrate command
  • -
  • #17240 disk-buffer Correctly reset the mask after adding to an empty buffer
  • -
  • #17284 disk-buffer Expire metric tracking information in the right place
  • -
  • #17257 disk-buffer Mask old tracking metrics on restart
  • -
  • #17247 disk-buffer Remove empty buffer on close
  • -
  • #17285 inputs.gnmi Avoid interpreting path elements with multiple colons as namespace
  • -
  • #17278 inputs.gnmi Handle base64 encoded IEEE-754 floats correctly
  • -
  • #17258 inputs.kibana Support Kibana 8.x status API format change
  • -
  • #17214 inputs.ntpq Fix ntpq field misalignment parsing errors
  • -
  • #17234 outputs.microsoft_fabric Correct app name
  • -
  • #17291 outputs.nats Avoid initializing Jetstream unconditionally
  • -
  • #17246 outputs Retrigger batch-available-events correctly
  • -
-

Dependency updates

-
    -
  • #17217 deps Bump github.com/Azure/azure-sdk-for-go/sdk/messaging/azeventhubs from 1.3.2 to 1.4.0
  • -
  • #17226 deps Bump github.com/ClickHouse/clickhouse-go/v2 from 2.37.0 to 2.37.1
  • -
  • #17265 deps Bump github.com/ClickHouse/clickhouse-go/v2 from 2.37.1 to 2.37.2
  • -
  • #17268 deps Bump github.com/Masterminds/semver/v3 from 3.3.1 to 3.4.0
  • -
  • #17271 deps Bump github.com/SAP/go-hdb from 1.13.7 to 1.13.9
  • -
  • #17232 deps Bump github.com/alitto/pond/v2 from 2.3.4 to 2.4.0
  • -
  • #17231 deps Bump github.com/apache/arrow-go/v18 from 18.3.0 to 18.3.1
  • -
  • #17223 deps Bump github.com/aws/aws-sdk-go-v2/config from 1.29.15 to 1.29.17
  • -
  • #17220 deps Bump github.com/aws/aws-sdk-go-v2/credentials from 1.17.69 to 1.17.70
  • -
  • #17227 deps Bump github.com/aws/aws-sdk-go-v2/service/cloudwatchlogs from 1.50.3 to 1.51.0
  • -
  • #17262 deps Bump github.com/aws/aws-sdk-go-v2/service/dynamodb from 1.43.4 to 1.44.0
  • -
  • #17224 deps Bump github.com/aws/aws-sdk-go-v2/service/ec2 from 1.225.1 to 1.225.2
  • -
  • #17260 deps Bump github.com/aws/aws-sdk-go-v2/service/ec2 from 1.226.0 to 1.227.0
  • -
  • #17264 deps Bump github.com/docker/docker from 28.2.2+incompatible to 28.3.0+incompatible
  • -
  • #17256 deps Bump github.com/lxc/incus/v6 from 6.13.0 to 6.14.0
  • -
  • #17272 deps Bump github.com/microsoft/go-mssqldb from 1.8.2 to 1.9.2
  • -
  • #17261 deps Bump github.com/nats-io/nats-server/v2 from 2.11.4 to 2.11.5
  • -
  • #17266 deps Bump github.com/peterbourgon/unixtransport from 0.0.5 to 0.0.6
  • -
  • #17229 deps Bump github.com/prometheus/common from 0.64.0 to 0.65.0
  • -
  • #17267 deps Bump github.com/redis/go-redis/v9 from 9.10.0 to 9.11.0
  • -
  • #17273 deps Bump go.opentelemetry.io/collector/pdata from 1.34.0 to 1.35.0
  • -
  • #17219 deps Bump google.golang.org/api from 0.237.0 to 0.238.0
  • -
  • #17263 deps Bump google.golang.org/api from 0.238.0 to 0.239.0
  • -
  • #17218 deps Bump k8s.io/api from 0.33.1 to 0.33.2
  • -
  • #17228 deps Bump k8s.io/client-go from 0.33.1 to 0.33.2
  • -
-

v1.35.1

-

Bug fixes

-
    -
  • #17178 inputs.procstat Fix user filter conditional logic
  • -
  • #17210 processors.strings Add explicit TOML tags on struct fields
  • -
-

Dependency updates

-
    -
  • #17194 deps Bump github.com/Azure/azure-sdk-for-go/sdk/azidentity from 1.10.0 to 1.10.1
  • -
  • #17189 deps Bump github.com/ClickHouse/clickhouse-go/v2 from 2.36.0 to 2.37.0
  • -
  • #17186 deps Bump github.com/SAP/go-hdb from 1.13.6 to 1.13.7
  • -
  • #17188 deps Bump github.com/alitto/pond/v2 from 2.3.2 to 2.3.4
  • -
  • #17180 deps Bump github.com/aws/aws-sdk-go-v2/credentials from 1.17.68 to 1.17.69
  • -
  • #17185 deps Bump github.com/aws/aws-sdk-go-v2/service/cloudwatch from 1.45.1 to 1.45.2
  • -
  • #17187 deps Bump github.com/aws/aws-sdk-go-v2/service/cloudwatchlogs from 1.50.1 to 1.50.2
  • -
  • #17183 deps Bump github.com/aws/aws-sdk-go-v2/service/dynamodb from 1.43.2 to 1.43.3
  • -
  • #17182 deps Bump github.com/aws/aws-sdk-go-v2/service/ec2 from 1.225.0 to 1.225.1
  • -
  • #17190 deps Bump github.com/aws/aws-sdk-go-v2/service/kinesis from 1.35.1 to 1.35.2
  • -
  • #17193 deps Bump github.com/aws/aws-sdk-go-v2/service/timestreamwrite from 1.31.0 to 1.31.1
  • -
  • #17195 deps Bump github.com/aws/smithy-go from 1.22.3 to 1.22.4
  • -
  • #17196 deps Bump github.com/cloudevents/sdk-go/v2 from 2.16.0 to 2.16.1
  • -
  • #17212 deps Bump github.com/go-chi/chi/v5 from 5.2.1 to 5.2.2
  • -
  • #17191 deps Bump github.com/go-sql-driver/mysql from 1.9.2 to 1.9.3
  • -
  • #17192 deps Bump github.com/peterbourgon/unixtransport from 0.0.4 to 0.0.5
  • -
  • #17181 deps Bump github.com/redis/go-redis/v9 from 9.9.0 to 9.10.0
  • -
  • #17197 deps Bump github.com/urfave/cli/v2 from 2.27.6 to 2.27.7
  • -
  • #17198 deps Bump go.opentelemetry.io/collector/pdata from 1.33.0 to 1.34.0
  • -
  • #17184 deps Bump google.golang.org/api from 0.236.0 to 0.237.0
  • -
-

v1.35.0

-

Deprecation Removals

-

This release removes the following deprecated plugin aliases:

-
    -
  • inputs.cisco_telemetry_gnmi in #17101
  • -
  • inputs.http_listener in #17102
  • -
  • inputs.KNXListener in #17168
  • -
  • inputs.logparser in #17170
  • -
-

And removes the following deprecated plugin options:

-
    -
  • ssl_ca, ssl_cert and ssl_key of common TLS settings in #17119
  • -
  • url of inputs.amqp_consumer in #17149
  • -
  • namespace of inputs.cloudwatch in #17123
  • -
  • datacentre of inputs.consul in #17150
  • -
  • container_names, perdevice and total of inputs.docker in #17148
  • -
  • http_timeout of inputs.elasticsearch in #17124
  • -
  • directory of inputs.filecount in #17152
  • -
  • guess_path_tag and enable_tls of inputs.gnmi in #17151
  • -
  • bearer_token of inputs.http in #17153
  • -
  • path and port of inputs.http_listener_v2 in #17158
  • -
  • address of inputs.http_response in #17157
  • -
  • object_type of inputs.icinga2 in #17163
  • -
  • max_line_size of inputs.influxdb_listener in #17162
  • -
  • enable_file_download of inputs.internet_speed in #17165
  • -
  • bearer_token_string of inputs.kube_inventory in #17110
  • -
  • bearer_token_string of inputs.kubernetes in #17109
  • -
  • server of inputs.nsq_consumer in #17166
  • -
  • dns_lookup of inputs.ntpq in #17159
  • -
  • ssl of inputs.openldap in #17103
  • -
  • name and queues of inputs.rabbitmq in #17105
  • -
  • path of inputs.smart in #17113
  • -
  • azuredb and query_version of inputs.sqlserver in #17112
  • -
  • parse_data_dog_tags and udp_packet_size of inputs.statsd in #17171
  • -
  • force_discover_on_init of inputs.vsphere in #17169
  • -
  • database, precision, retention_policy and url of outputs.amqp in #16950
  • -
  • precision of outputs.influxdb in #17160
  • -
  • partitionkey and use_random_partitionkey of outputs.kinesis in #17167
  • -
  • source_tag of outputs.librato in #17174
  • -
  • batch and topic_prefix of outputs.mqtt in #17176
  • -
  • trace of outputs.remotefile in #17173
  • -
  • host, port and string_to_number of outputs.wavefront in #17172
  • -
-

If you’re using deprecated Telegraf plugins or options, migrate your configuration to use the available replacements. -The telegraf config migrate command might be able to help with the migration.

-

New Plugins

-
    -
  • #16390 inputs.fritzbox Add plugin
  • -
  • #16780 inputs.mavlink Add plugin
  • -
  • #16509 inputs.whois Add plugin
  • -
  • #16211 outputs.inlong Add plugin
  • -
  • #16827 outputs.microsoft_fabric Add plugin
  • -
  • #16629 processors.cumulative_sum Add plugin
  • -
-

Features

-
    -
  • #17048 agent Add debounce for watch events
  • -
  • #16524 common.kafka Add AWS-MSK-IAM SASL authentication
  • -
  • #16867 common.ratelimiter Implement means to reserve memory for concurrent use
  • -
  • #16148 common.shim Add batch to shim
  • -
  • #17121 inputs.amqp_consumer Allow string values in queue arguments
  • -
  • #17051 inputs.opcua Allow forcing reconnection on every gather cycle
  • -
  • #16532 inputs.opcua_listener Allow to subscribe to OPCUA events
  • -
  • #16882 inputs.prometheus Add HTTP service discovery support
  • -
  • #16999 inputs.s7comm Add support for LREAL and LINT data types
  • -
  • #16452 inputs.unbound Collect histogram statistics
  • -
  • #16700 inputs.whois Support IDN domains
  • -
  • #17119 migrations Add migration for common.tls ssl options
  • -
  • #17101 migrations Add migration for inputs.cisco_telemetry_gnmi
  • -
  • #17123 migrations Add migration for inputs.cloudwatch
  • -
  • #17148 migrations Add migration for inputs.docker
  • -
  • #17124 migrations Add migration for inputs.elasticsearch
  • -
  • #17102 migrations Add migration for inputs.http_listener
  • -
  • #17162 migrations Add migration for inputs.influxdb_listener
  • -
  • #17110 migrations Add migration for inputs.kube_inventory
  • -
  • #17109 migrations Add migration for inputs.kubernetes
  • -
  • #17103 migrations Add migration for inputs.openldap
  • -
  • #17105 migrations Add migration for inputs.rabbitmq
  • -
  • #17113 migrations Add migration for inputs.smart
  • -
  • #17112 migrations Add migration for inputs.sqlserver
  • -
  • #16950 migrations Add migration for outputs.amqp
  • -
  • #17160 migrations Add migration for outputs.influxdb
  • -
  • #17149 migrations Add migration for inputs.amqp_consumer
  • -
  • #17150 migrations Add migration for inputs.consul
  • -
  • #17152 migrations Add migration for inputs.filecount
  • -
  • #17151 migrations Add migration for inputs.gnmi
  • -
  • #17153 migrations Add migration for inputs.http
  • -
  • #17158 migrations Add migration for inputs.http_listener_v2
  • -
  • #17157 migrations Add migration for inputs.http_response
  • -
  • #17163 migrations Add migration for inputs.icinga2
  • -
  • #17165 migrations Add migration for inputs.internet_speed
  • -
  • #17166 migrations Add migration for inputs.nsq_consumer
  • -
  • #17159 migrations Add migration for inputs.ntpq
  • -
  • #17171 migrations Add migration for inputs.statsd
  • -
  • #17169 migrations Add migration for inputs.vsphere
  • -
  • #17167 migrations Add migration for outputs.kinesis
  • -
  • #17174 migrations Add migration for outputs.librato
  • -
  • #17176 migrations Add migration for outputs.mqtt
  • -
  • #17173 migrations Add migration for outputs.remotefile
  • -
  • #17172 migrations Add migration for outputs.wavefront
  • -
  • #17168 migrations Add migration for inputs.KNXListener
  • -
  • #17170 migrations Add migration for inputs.logparser
  • -
  • #16646 outputs.health Add max time between metrics check
  • -
  • #16597 outputs.http Include body sample in non-retryable error logs
  • -
  • #16741 outputs.influxdb_v2 Implement concurrent writes
  • -
  • #16746 outputs.influxdb_v2 Support secrets in http_headers values
  • -
  • #16582 outputs.nats Allow asynchronous publishing for Jetstream
  • -
  • #16544 outputs.sql Add option to automate table schema updates
  • -
  • #16678 outputs.sql Support secret for dsn
  • -
  • #16583 outputs.stackdriver Ensure quota is charged to configured project
  • -
  • #16717 processors.defaults Add support for specifying default tags
  • -
  • #16701 processors.enum Add multiple tag mapping
  • -
  • #16030 processors.enum Allow mapping to be applied to multiple fields
  • -
  • #16494 serializer.prometheusremotewrite Allow sending native histograms
  • -
-

Bug fixes

-
    -
  • #17044 inputs.opcua Fix integration test
  • -
  • #16986 inputs.procstat Resolve remote usernames on Posix systems
  • -
  • #16699 inputs.win_wmi Free resources to avoid leaks
  • -
  • #17118 migrations Update table content for general plugin migrations
  • -
-

Dependency updates

-
    -
  • #17089 deps Bump cloud.google.com/go/bigquery from 1.68.0 to 1.69.0
  • -
  • #17026 deps Bump cloud.google.com/go/storage from 1.53.0 to 1.54.0
  • -
  • #17095 deps Bump cloud.google.com/go/storage from 1.54.0 to 1.55.0
  • -
  • #17034 deps Bump github.com/Azure/azure-sdk-for-go/sdk/azidentity from 1.9.0 to 1.10.0
  • -
  • #17065 deps Bump github.com/ClickHouse/clickhouse-go/v2 from 2.34.0 to 2.35.0
  • -
  • #17145 deps Bump github.com/ClickHouse/clickhouse-go/v2 from 2.35.0 to 2.36.0
  • -
  • #17062 deps Bump github.com/IBM/nzgo/v12 from 12.0.9 to 12.0.10
  • -
  • #17083 deps Bump github.com/IBM/sarama from 1.45.1 to 1.45.2
  • -
  • #17040 deps Bump github.com/apache/inlong/inlong-sdk/dataproxy-sdk-twins/dataproxy-sdk-golang from 1.0.0 to 1.0.1
  • -
  • #17060 deps Bump github.com/apache/inlong/inlong-sdk/dataproxy-sdk-twins/dataproxy-sdk-golang from 1.0.1 to 1.0.2
  • -
  • #17127 deps Bump github.com/apache/inlong/inlong-sdk/dataproxy-sdk-twins/dataproxy-sdk-golang from 1.0.2 to 1.0.3
  • -
  • #17061 deps Bump github.com/apache/thrift from 0.21.0 to 0.22.0
  • -
  • #16954 deps Bump github.com/aws/aws-msk-iam-sasl-signer-go from 1.0.1 to 1.0.3
  • -
  • #17041 deps Bump github.com/aws/aws-msk-iam-sasl-signer-go from 1.0.3 to 1.0.4
  • -
  • #17128 deps Bump github.com/aws/aws-sdk-go-v2/config from 1.29.14 to 1.29.15
  • -
  • #17129 deps Bump github.com/aws/aws-sdk-go-v2/credentials from 1.17.67 to 1.17.68
  • -
  • #17057 deps Bump github.com/aws/aws-sdk-go-v2/service/cloudwatch from 1.44.3 to 1.45.0
  • -
  • #17132 deps Bump github.com/aws/aws-sdk-go-v2/service/cloudwatch from 1.45.0 to 1.45.1
  • -
  • #17029 deps Bump github.com/aws/aws-sdk-go-v2/service/cloudwatchlogs from 1.49.0 to 1.50.0
  • -
  • #17131 deps Bump github.com/aws/aws-sdk-go-v2/service/cloudwatchlogs from 1.50.0 to 1.50.1
  • -
  • #17143 deps Bump github.com/aws/aws-sdk-go-v2/service/dynamodb from 1.43.1 to 1.43.2
  • -
  • #17037 deps Bump github.com/aws/aws-sdk-go-v2/service/ec2 from 1.218.0 to 1.219.0
  • -
  • #17067 deps Bump github.com/aws/aws-sdk-go-v2/service/ec2 from 1.220.0 to 1.222.0
  • -
  • #17093 deps Bump github.com/aws/aws-sdk-go-v2/service/ec2 from 1.222.0 to 1.224.0
  • -
  • #17136 deps Bump github.com/aws/aws-sdk-go-v2/service/ec2 from 1.224.0 to 1.225.0
  • -
  • #17139 deps Bump github.com/aws/aws-sdk-go-v2/service/kinesis from 1.35.0 to 1.35.1
  • -
  • #16996 deps Bump github.com/bluenviron/gomavlib/v3 from 3.1.0 to 3.2.1
  • -
  • #16987 deps Bump github.com/creack/goselect from 0.1.2 to 0.1.3
  • -
  • #17097 deps Bump github.com/docker/docker from 28.1.1+incompatible to 28.2.2+incompatible
  • -
  • #17133 deps Bump github.com/gosnmp/gosnmp from 1.40.0 to 1.41.0
  • -
  • #17126 deps Bump github.com/linkedin/goavro/v2 from 2.13.1 to 2.14.0
  • -
  • #17087 deps Bump github.com/lxc/incus/v6 from 6.12.0 to 6.13.0
  • -
  • #17085 deps Bump github.com/microsoft/go-mssqldb from 1.8.1 to 1.8.2
  • -
  • #17064 deps Bump github.com/nats-io/nats-server/v2 from 2.11.3 to 2.11.4
  • -
  • #17140 deps Bump github.com/nats-io/nats.go from 1.42.0 to 1.43.0
  • -
  • #17134 deps Bump github.com/netsampler/goflow2/v2 from 2.2.2 to 2.2.3
  • -
  • #17028 deps Bump github.com/prometheus/common from 0.63.0 to 0.64.0
  • -
  • #17066 deps Bump github.com/rclone/rclone from 1.69.2 to 1.69.3
  • -
  • #17096 deps Bump github.com/redis/go-redis/v9 from 9.8.0 to 9.9.0
  • -
  • #17088 deps Bump github.com/shirou/gopsutil/v4 from 4.25.4 to 4.25.5
  • -
  • #17135 deps Bump github.com/sijms/go-ora/v2 from 2.8.24 to 2.9.0
  • -
  • #17094 deps Bump github.com/snowflakedb/gosnowflake from 1.14.0 to 1.14.1
  • -
  • #17035 deps Bump github.com/tinylib/msgp from 1.2.5 to 1.3.0
  • -
  • #17054 deps Bump github.com/vmware/govmomi from 0.50.0 to 0.51.0
  • -
  • #17039 deps Bump github.com/yuin/goldmark from 1.7.11 to 1.7.12
  • -
  • #17130 deps Bump go.mongodb.org/mongo-driver from 1.17.3 to 1.17.4
  • -
  • #17056 deps Bump go.opentelemetry.io/collector/pdata from 1.31.0 to 1.33.0
  • -
  • #17058 deps Bump go.step.sm/crypto from 0.63.0 to 0.64.0
  • -
  • #17141 deps Bump golang.org/x/crypto from 0.38.0 to 0.39.0
  • -
  • #17144 deps Bump golang.org/x/mod from 0.24.0 to 0.25.0
  • -
  • #17033 deps Bump google.golang.org/api from 0.232.0 to 0.233.0
  • -
  • #17055 deps Bump google.golang.org/api from 0.233.0 to 0.234.0
  • -
  • #17086 deps Bump google.golang.org/api from 0.234.0 to 0.235.0
  • -
  • #17036 deps Bump google.golang.org/grpc from 1.72.0 to 1.72.1
  • -
  • #17059 deps Bump google.golang.org/grpc from 1.72.1 to 1.72.2
  • -
  • #17137 deps Bump google.golang.org/grpc from 1.72.2 to 1.73.0
  • -
  • #17031 deps Bump k8s.io/api from 0.33.0 to 0.33.1
  • -
  • #17038 deps Bump k8s.io/apimachinery from 0.33.0 to 0.33.1
  • -
  • #17030 deps Bump k8s.io/client-go from 0.33.0 to 0.33.1
  • -
  • #17025 deps Bump super-linter/super-linter from 7.3.0 to 7.4.0
  • -
-

v1.34.4

-

Bug fixes

-
    -
  • #17009 inputs.cloudwatch Restore filtering to match all dimensions
  • -
  • #16978 inputs.nfsclient Handle errors during mountpoint filtering
  • -
  • #17021 inputs.opcua Fix type mismatch in unit test
  • -
  • #16854 inputs.opcua Handle session invalidation between gather cycles
  • -
  • #16879 inputs.tail Prevent leaking file descriptors
  • -
  • #16815 inputs.win_eventlog Handle large events to avoid they get dropped silently
  • -
  • #16878 parsers.json_v2 Handle measurements with multiple objects correctly
  • -
-

Dependency updates

-
    -
  • #16991 deps Bump cloud.google.com/go/bigquery from 1.67.0 to 1.68.0
  • -
  • #16963 deps Bump cloud.google.com/go/storage from 1.52.0 to 1.53.0
  • -
  • #16955 deps Bump github.com/Azure/azure-sdk-for-go/sdk/storage/azqueue from 1.0.0 to 1.0.1
  • -
  • #16989 deps Bump github.com/SAP/go-hdb from 1.13.5 to 1.13.6
  • -
  • #16998 deps Bump github.com/apache/arrow-go/v18 from 18.2.0 to 18.3.0
  • -
  • #16952 deps Bump github.com/aws/aws-sdk-go-v2/service/cloudwatchlogs from 1.47.3 to 1.48.0
  • -
  • #16995 deps Bump github.com/aws/aws-sdk-go-v2/service/cloudwatchlogs from 1.48.0 to 1.49.0
  • -
  • #16974 deps Bump github.com/aws/aws-sdk-go-v2/service/ec2 from 1.212.0 to 1.214.0
  • -
  • #16993 deps Bump github.com/aws/aws-sdk-go-v2/service/ec2 from 1.215.0 to 1.218.0
  • -
  • #16968 deps Bump github.com/aws/aws-sdk-go-v2/service/kinesis from 1.33.3 to 1.35.0
  • -
  • #16988 deps Bump github.com/aws/aws-sdk-go-v2/service/timestreamwrite from 1.30.2 to 1.31.0
  • -
  • #17013 deps Bump github.com/ebitengine/purego from 0.8.2 to 0.8.3
  • -
  • #16972 deps Bump github.com/hashicorp/consul/api from 1.32.0 to 1.32.1
  • -
  • #16992 deps Bump github.com/microsoft/go-mssqldb from 1.8.0 to 1.8.1
  • -
  • #16990 deps Bump github.com/miekg/dns from 1.1.65 to 1.1.66
  • -
  • #16975 deps Bump github.com/nats-io/nats-server/v2 from 2.11.2 to 2.11.3
  • -
  • #16967 deps Bump github.com/nats-io/nats.go from 1.41.2 to 1.42.0
  • -
  • #16964 deps Bump github.com/rclone/rclone from 1.69.1 to 1.69.2
  • -
  • #16973 deps Bump github.com/redis/go-redis/v9 from 9.7.3 to 9.8.0
  • -
  • #16962 deps Bump github.com/shirou/gopsutil/v4 from 4.25.3 to 4.25.4
  • -
  • #16969 deps Bump github.com/snowflakedb/gosnowflake from 1.13.3 to 1.14.0
  • -
  • #16994 deps Bump github.com/vishvananda/netlink from 1.3.1-0.20250221194427-0af32151e72b to 1.3.1
  • -
  • #16958 deps Bump go.step.sm/crypto from 0.62.0 to 0.63.0
  • -
  • #16960 deps Bump golang.org/x/crypto from 0.37.0 to 0.38.0
  • -
  • #16966 deps Bump golang.org/x/net from 0.39.0 to 0.40.0
  • -
  • #16957 deps Bump google.golang.org/api from 0.230.0 to 0.231.0
  • -
  • #16853 deps Switch to maintained azure testcontainer module
  • -
-

v1.34.3

-

Bug fixes

-
    -
  • #16697 agent Correctly truncate the disk buffer
  • -
  • #16868 common.ratelimiter Only grow the buffer but never shrink
  • -
  • #16812 inputs.cloudwatch Handle metric includes/excludes correctly to prevent panic
  • -
  • #16911 inputs.lustre2 Skip empty files
  • -
  • #16594 inputs.opcua Handle node array values
  • -
  • #16782 inputs.win_wmi Replace hard-coded class-name with correct config setting
  • -
  • #16781 inputs.win_wmi Restrict threading model to APARTMENTTHREADED
  • -
  • #16857 outputs.quix Allow empty certificate for new cloud managed instances
  • -
-

Dependency updates

-
    -
  • #16804 deps Bump cloud.google.com/go/bigquery from 1.66.2 to 1.67.0
  • -
  • #16835 deps Bump cloud.google.com/go/monitoring from 1.24.0 to 1.24.2
  • -
  • #16785 deps Bump cloud.google.com/go/pubsub from 1.48.0 to 1.49.0
  • -
  • #16897 deps Bump cloud.google.com/go/storage from 1.51.0 to 1.52.0
  • -
  • #16840 deps Bump github.com/BurntSushi/toml from 1.4.0 to 1.5.0
  • -
  • #16838 deps Bump github.com/aliyun/alibaba-cloud-sdk-go from 1.63.104 to 1.63.106
  • -
  • #16908 deps Bump github.com/aliyun/alibaba-cloud-sdk-go from 1.63.106 to 1.63.107
  • -
  • #16789 deps Bump github.com/antchfx/xpath from 1.3.3 to 1.3.4
  • -
  • #16807 deps Bump github.com/apache/arrow-go/v18 from 18.1.0 to 18.2.0
  • -
  • #16844 deps Bump github.com/apache/iotdb-client-go from 1.3.3 to 1.3.4
  • -
  • #16839 deps Bump github.com/aws/aws-sdk-go-v2/service/cloudwatch from 1.44.1 to 1.44.3
  • -
  • #16836 deps Bump github.com/aws/aws-sdk-go-v2/service/cloudwatchlogs from 1.45.3 to 1.47.3
  • -
  • #16846 deps Bump github.com/aws/aws-sdk-go-v2/service/dynamodb from 1.42.2 to 1.42.4
  • -
  • #16905 deps Bump github.com/aws/aws-sdk-go-v2/service/dynamodb from 1.42.4 to 1.43.1
  • -
  • #16842 deps Bump github.com/aws/aws-sdk-go-v2/service/ec2 from 1.210.1 to 1.211.3
  • -
  • #16900 deps Bump github.com/aws/aws-sdk-go-v2/service/ec2 from 1.211.3 to 1.212.0
  • -
  • #16903 deps Bump github.com/aws/aws-sdk-go-v2/service/kinesis from 1.33.2 to 1.33.3
  • -
  • #16793 deps Bump github.com/aws/aws-sdk-go-v2/service/timestreamwrite from 1.27.4 to 1.30.2
  • -
  • #16802 deps Bump github.com/clarify/clarify-go from 0.3.1 to 0.4.0
  • -
  • #16849 deps Bump github.com/docker/docker from 28.0.4+incompatible to 28.1.1+incompatible
  • -
  • #16830 deps Bump github.com/go-ldap/ldap/v3 from 3.4.10 to 3.4.11
  • -
  • #16801 deps Bump github.com/go-sql-driver/mysql from 1.8.1 to 1.9.2
  • -
  • #16806 deps Bump github.com/gofrs/uuid/v5 from 5.3.0 to 5.3.2
  • -
  • #16895 deps Bump github.com/google/cel-go from 0.24.1 to 0.25.0
  • -
  • #16797 deps Bump github.com/gopcua/opcua from 0.7.1 to 0.7.4
  • -
  • #16894 deps Bump github.com/gopcua/opcua from 0.7.4 to 0.8.0
  • -
  • #16660 deps Bump github.com/gosmnp/gosnmp from 1.39.0 to 1.40.0
  • -
  • #16902 deps Bump github.com/gosnmp/gosnmp from 1.39.0 to 1.40.0
  • -
  • #16841 deps Bump github.com/hashicorp/consul/api from 1.31.2 to 1.32.0
  • -
  • #16891 deps Bump github.com/jedib0t/go-pretty/v6 from 6.6.5 to 6.6.7
  • -
  • #16892 deps Bump github.com/lxc/incus/v6 from 6.11.0 to 6.12.0
  • -
  • #16786 deps Bump github.com/microsoft/go-mssqldb from 1.7.2 to 1.8.0
  • -
  • #16851 deps Bump github.com/miekg/dns from 1.1.64 to 1.1.65
  • -
  • #16808 deps Bump github.com/nats-io/nats-server/v2 from 2.10.25 to 2.10.27
  • -
  • #16888 deps Bump github.com/nats-io/nats-server/v2 from 2.10.27 to 2.11.2
  • -
  • #16909 deps Bump github.com/nats-io/nats.go from 1.41.1 to 1.41.2
  • -
  • #16790 deps Bump github.com/openconfig/gnmi from 0.11.0 to 0.14.1
  • -
  • #16799 deps Bump github.com/openconfig/goyang from 1.6.0 to 1.6.2
  • -
  • #16848 deps Bump github.com/prometheus-community/pro-bing from 0.4.1 to 0.7.0
  • -
  • #16795 deps Bump github.com/prometheus/client_golang from 1.21.1 to 1.22.0
  • -
  • #16845 deps Bump github.com/prometheus/client_model from 0.6.1 to 0.6.2
  • -
  • #16901 deps Bump github.com/prometheus/procfs from 0.16.0 to 0.16.1
  • -
  • #16792 deps Bump github.com/safchain/ethtool from 0.3.0 to 0.5.10
  • -
  • #16791 deps Bump github.com/seancfoley/ipaddress-go from 1.7.0 to 1.7.1
  • -
  • #16794 deps Bump github.com/shirou/gopsutil/v4 from 4.25.1 to 4.25.3
  • -
  • #16828 deps Bump github.com/snowflakedb/gosnowflake from 1.11.2 to 1.13.1
  • -
  • #16904 deps Bump github.com/snowflakedb/gosnowflake from 1.13.1 to 1.13.3
  • -
  • #16787 deps Bump github.com/srebhan/cborquery from 1.0.3 to 1.0.4
  • -
  • #16837 deps Bump github.com/srebhan/protobufquery from 1.0.1 to 1.0.4
  • -
  • #16893 deps Bump github.com/testcontainers/testcontainers-go from 0.36.0 to 0.37.0
  • -
  • #16803 deps Bump github.com/testcontainers/testcontainers-go/modules/kafka from 0.34.0 to 0.36.0
  • -
  • #16890 deps Bump github.com/testcontainers/testcontainers-go/modules/kafka from 0.36.0 to 0.37.0
  • -
  • #16850 deps Bump github.com/vmware/govmomi from 0.49.0 to 0.50.0
  • -
  • #16784 deps Bump github.com/yuin/goldmark from 1.7.8 to 1.7.9
  • -
  • #16896 deps Bump github.com/yuin/goldmark from 1.7.9 to 1.7.11
  • -
  • #16832 deps Bump go.mongodb.org/mongo-driver from 1.17.0 to 1.17.3
  • -
  • #16800 deps Bump go.opentelemetry.io/collector/pdata from 1.29.0 to 1.30.0
  • -
  • #16907 deps Bump go.opentelemetry.io/collector/pdata from 1.30.0 to 1.31.0
  • -
  • #16831 deps Bump go.step.sm/crypto from 0.60.0 to 0.61.0
  • -
  • #16886 deps Bump go.step.sm/crypto from 0.61.0 to 0.62.0
  • -
  • #16816 deps Bump golangci-lint from v2.0.2 to v2.1.2
  • -
  • #16852 deps Bump gonum.org/v1/gonum from 0.15.1 to 0.16.0
  • -
  • #16805 deps Bump google.golang.org/api from 0.228.0 to 0.229.0
  • -
  • #16898 deps Bump google.golang.org/api from 0.229.0 to 0.230.0
  • -
  • #16834 deps Bump google.golang.org/grpc from 1.71.1 to 1.72.0
  • -
  • #16889 deps Bump k8s.io/client-go from 0.32.3 to 0.33.0
  • -
  • #16843 deps Bump modernc.org/sqlite from 1.36.2 to 1.37.0
  • -
-

v1.34.2

-

Bug fixes

-
    -
  • #16375 aggregators Handle time drift when calculating aggregation windows
  • -
-

Dependency updates

-
    -
  • #16689 deps Bump cloud.google.com/go/pubsub from 1.45.3 to 1.48.0
  • -
  • #16769 deps Bump cloud.google.com/go/storage from 1.50.0 to 1.51.0
  • -
  • #16771 deps Bump github.com/Azure/azure-sdk-for-go/sdk/azcore from 1.17.0 to 1.18.0
  • -
  • #16708 deps Bump github.com/Azure/azure-sdk-for-go/sdk/messaging/azeventhubs from 1.2.3 to 1.3.1
  • -
  • #16764 deps Bump github.com/Azure/azure-sdk-for-go/sdk/messaging/azeventhubs from 1.3.1 to 1.3.2
  • -
  • #16777 deps Bump github.com/ClickHouse/clickhouse-go/v2 from 2.30.3 to 2.34.0
  • -
  • #16707 deps Bump github.com/IBM/sarama from v1.43.3 to v1.45.1
  • -
  • #16739 deps Bump github.com/SAP/go-hdb from 1.9.10 to 1.13.5
  • -
  • #16754 deps Bump github.com/aliyun/alibaba-cloud-sdk-go from 1.62.721 to 1.63.104
  • -
  • #16767 deps Bump github.com/antchfx/jsonquery from 1.3.3 to 1.3.6
  • -
  • #16758 deps Bump github.com/aws/aws-sdk-go-v2/config from 1.29.6 to 1.29.13
  • -
  • #16710 deps Bump github.com/aws/aws-sdk-go-v2/credentials from 1.17.59 to 1.17.65
  • -
  • #16685 deps Bump github.com/aws/aws-sdk-go-v2/service/cloudwatch from 1.43.14 to 1.44.1
  • -
  • #16773 deps Bump github.com/aws/aws-sdk-go-v2/service/dynamodb from 1.40.0 to 1.42.2
  • -
  • #16688 deps Bump github.com/aws/aws-sdk-go-v2/service/ec2 from 1.203.1 to 1.210.1
  • -
  • #16772 deps Bump github.com/aws/aws-sdk-go-v2/service/kinesis from 1.32.6 to 1.33.2
  • -
  • #16711 deps Bump github.com/cloudevents/sdk-go/v2 from 2.15.2 to 2.16.0
  • -
  • #16687 deps Bump github.com/google/cel-go from 0.23.0 to 0.24.1
  • -
  • #16712 deps Bump github.com/gophercloud/gophercloud/v2 from 2.0.0-rc.3 to 2.6.0
  • -
  • #16738 deps Bump github.com/gorcon/rcon from 1.3.5 to 1.4.0
  • -
  • #16737 deps Bump github.com/gosnmp/gosnmp from 1.38.0 to 1.39.0
  • -
  • #16752 deps Bump github.com/lxc/incus/v6 from 6.9.0 to 6.11.0
  • -
  • #16761 deps Bump github.com/nats-io/nats.go from 1.39.1 to 1.41.1
  • -
  • #16753 deps Bump github.com/netsampler/goflow2/v2 from 2.2.1 to 2.2.2
  • -
  • #16760 deps Bump github.com/p4lang/p4runtime from 1.4.0 to 1.4.1
  • -
  • #16766 deps Bump github.com/prometheus/common from 0.62.0 to 0.63.0
  • -
  • #16686 deps Bump github.com/rclone/rclone from 1.68.2 to 1.69.1
  • -
  • #16770 deps Bump github.com/sijms/go-ora/v2 from 2.8.22 to 2.8.24
  • -
  • #16709 deps Bump github.com/testcontainers/testcontainers-go from 0.35.0 to 0.36.0
  • -
  • #16763 deps Bump github.com/tinylib/msgp from 1.2.0 to 1.2.5
  • -
  • #16757 deps Bump github.com/urfave/cli/v2 from 2.27.2 to 2.27.6
  • -
  • #16724 deps Bump github.com/vmware/govmomi from v0.45.1 to v0.49.0
  • -
  • #16768 deps Bump go.opentelemetry.io/collector/pdata from 1.25.0 to 1.29.0
  • -
  • #16765 deps Bump go.step.sm/crypto from 0.59.1 to 0.60.0
  • -
  • #16756 deps Bump golang.org/x/crypto from 0.36.0 to 0.37.0
  • -
  • #16683 deps Bump golangci-lint from v1.64.5 to v2.0.2
  • -
  • #16759 deps Bump google.golang.org/api from 0.224.0 to 0.228.0
  • -
  • #16755 deps Bump k8s.io/client-go from 0.32.1 to 0.32.3
  • -
  • #16684 deps Bump tj-actions/changed-files from 46.0.1 to 46.0.3
  • -
  • #16736 deps Bump tj-actions/changed-files from 46.0.3 to 46.0.4
  • -
  • #16751 deps Bump tj-actions/changed-files from 46.0.4 to 46.0.5
  • -
-

v1.34.1

-

Bug fixes

-
    -
  • #16638 agent Condense plugin source information table when multiple plugins in same file
  • -
  • #16674 inputs.tail Do not seek on pipes
  • -
  • #16643 inputs.tail Use correct initial_read_offset persistent offset naming in the code
  • -
  • #16628 outputs.influxdb_v2 Use dynamic token secret
  • -
  • #16625 outputs.sql Allow to disable timestamp column
  • -
  • #16682 secrets Make ‘insufficient lockable memory’ warning work on BSDs
  • -
-

Dependency updates

-
    -
  • #16612 deps Bump github.com/PaesslerAG/gval from 1.2.2 to 1.2.4
  • -
  • #16650 deps Bump github.com/aws/smithy-go from 1.22.2 to 1.22.3
  • -
  • #16680 deps Bump github.com/golang-jwt/jwt/v4 from 4.5.1 to 4.5.2
  • -
  • #16679 deps Bump github.com/golang-jwt/jwt/v5 from 5.2.1 to 5.2.2
  • -
  • #16610 deps Bump github.com/golang/snappy from 0.0.4 to 1.0.0
  • -
  • #16652 deps Bump github.com/hashicorp/consul/api from 1.29.2 to 1.31.2
  • -
  • #16651 deps Bump github.com/leodido/go-syslog/v4 from 4.1.0 to 4.2.0
  • -
  • #16613 deps Bump github.com/linkedin/goavro/v2 from 2.13.0 to 2.13.1
  • -
  • #16671 deps Bump github.com/redis/go-redis/v9 from 9.7.0 to 9.7.3
  • -
  • #16611 deps Bump go.step.sm/crypto from 0.54.0 to 0.59.1
  • -
  • #16640 deps Bump golang.org/x/crypto from 0.35.0 to 0.36.0
  • -
  • #16620 deps Bump golang.org/x/net from 0.35.0 to 0.36.0
  • -
  • #16639 deps Bump golang.org/x/oauth2 from 0.26.0 to 0.28.0
  • -
  • #16653 deps Bump k8s.io/api from 0.32.1 to 0.32.3
  • -
  • #16659 deps Bump tj-actions/changed-files from v45 to v46.0.1
  • -
-

v1.34.0

-

New Plugins

-
    -
  • #15988 inputs.firehose Add new plugin
  • -
  • #16352 inputs.huebridge Add plugin
  • -
  • #16392 inputs.nsdp Add plugin
  • -
-

Features

-
    -
  • #16333 agent Add support for input probing
  • -
  • #16270 agent Print plugins source information
  • -
  • #16474 inputs.cgroup Support more cgroup v2 formats
  • -
  • #16337 inputs.cloudwatch Allow wildcards for namespaces
  • -
  • #16292 inputs.docker Support swarm jobs
  • -
  • #16501 inputs.exec Allow to get untruncated errors in debug mode
  • -
  • #16480 inputs.gnmi Add support for depth extension
  • -
  • #16336 inputs.infiniband Add support for RDMA counters
  • -
  • #16124 inputs.ipset Add metric for number of entries and individual IPs
  • -
  • #16579 inputs.nvidia_smi Add new power-draw fields for v12 scheme
  • -
  • #16305 inputs.nvidia_smi Implement probing
  • -
  • #16105 inputs.procstat Add child level tag
  • -
  • #16066 inputs.proxmox Allow to add VM-id and status as tag
  • -
  • #16287 inputs.systemd_units Add active_enter_timestamp_us field
  • -
  • #16342 inputs.tail Add initial_read_offset config for controlling read behavior
  • -
  • #16355 inputs.webhooks Add support for GitHub workflow events
  • -
  • #16508 inputs.x509_cert Add support for JKS and PKCS#12 keystores
  • -
  • #16491 outputs.mqtt Add sprig for topic name generator for homie layout
  • -
  • #16570 outputs.nats Use Jetstream publisher when using Jetstream
  • -
  • #16566 outputs.prometheus_client Allow adding custom headers
  • -
  • #16272 parsers.avro Allow union fields to be specified as tags
  • -
  • #16493 parsers.prometheusremotewrite Add dense metric version to better support histograms
  • -
  • #16214 processors.converter Add support for base64 encoded IEEE floats
  • -
  • #16497 processors.template Add sprig function for templates
  • -
-

Bug fixes

-
    -
  • #16542 inputs.gnmi Handle path elements without name but with keys correctly
  • -
  • #16606 inputs.huebridge Cleanup and fix linter issues
  • -
  • #16580 inputs.net Skip checks in containerized environments
  • -
  • #16555 outputs.opensearch Use correct pipeline name while creating bulk-indexers
  • -
  • #16557 serializers.prometheus Use legacy validation for metric name
  • -
-

Dependency updates

-
    -
  • #16576 deps Bump github.com/Azure/azure-sdk-for-go/sdk/azidentity from 1.8.1 to 1.8.2
  • -
  • #16553 deps Bump github.com/Azure/go-autorest/autorest from 0.11.29 to 0.11.30
  • -
  • #16552 deps Bump github.com/aws/aws-sdk-go-v2/service/ec2 from 1.198.1 to 1.203.1
  • -
  • #16554 deps Bump github.com/go-jose/go-jose/v4 from 4.0.4 to 4.0.5
  • -
  • #16574 deps Bump github.com/gopcua/opcua from 0.5.3 to 0.7.1
  • -
  • #16551 deps Bump github.com/nats-io/nats.go from 1.39.0 to 1.39.1
  • -
  • #16575 deps Bump github.com/tidwall/wal from 1.1.7 to 1.1.8
  • -
  • #16578 deps Bump super-linter/super-linter from 7.2.1 to 7.3.0
  • -
-

v1.33.3

-

Important Changes

-
    -
  • PR #16507 adds the -enforce_first_namespace_as_origin to the GNMI input plugin. This option -allows to disable mangling of the response path tag by not using namespaces -as origin. It is highly recommended to disable the option. -However, disabling the behavior might change the path tag and -thus might break existing queries. Furthermore, the tag modification might -increase cardinality in your database.
  • -
-

Bug fixes

-
    -
  • #16546 agent Add authorization and user-agent when watching remote configs
  • -
  • #16507 inputs.gnmi Allow to disable using first namespace as origin
  • -
  • #16511 inputs.proxmox Allow search domain to be empty
  • -
  • #16530 internal Fix plural acronyms in SnakeCase function
  • -
  • #16539 logging Handle closing correctly and fix tests
  • -
  • #16535 processors.execd Detect line-protocol parser correctly
  • -
-

Dependency updates

-
    -
  • #16506 deps Bump github.com/ClickHouse/clickhouse-go/v2 from 2.30.1 to 2.30.3
  • -
  • #16502 deps Bump github.com/antchfx/xmlquery from 1.4.1 to 1.4.4
  • -
  • #16519 deps Bump github.com/aws/aws-sdk-go-v2/service/cloudwatch from 1.43.1 to 1.43.14
  • -
  • #16503 deps Bump github.com/aws/aws-sdk-go-v2/service/dynamodb from 1.36.2 to 1.40.0
  • -
  • #16522 deps Bump github.com/nats-io/nats.go from 1.37.0 to 1.39.0
  • -
  • #16505 deps Bump github.com/srebhan/cborquery from 1.0.1 to 1.0.3
  • -
  • #16534 deps Bump github.com/vishvananda/netlink from 1.3.0 to 1.3.1-0.20250221194427-0af32151e72b
  • -
  • #16521 deps Bump go.opentelemetry.io/collector/pdata from 1.12.0 to 1.25.0
  • -
  • #16504 deps Bump golang.org/x/net from 0.34.0 to 0.35.0
  • -
  • #16512 deps Bump golangci-lint from v1.63.4 to v1.64.5
  • -
-

v1.33.2

-

Important Changes

-
    -
  • PR #16423 converts the ClickHouse drivers to the v2 version. -This new version also requires a -new format for the DSN. The plugin -tries its best to convert the old DSN to the new format but might not be able to do so. Please check for warnings in -your log file and convert to the new format as soon as possible.
  • -
  • PR #16403 ensures consistency of the NetFlow plugin’s -ip_version field type by enforcing “IPv4”, “IPv6”, or “unknown” string values. Previously the ip_version could -become an (unsigned) integer when parsing raw-packets’ headers especially with SFlow v5 input. Please watch -out for type-conflicts on the output side!
  • -
-

Bug fixes

-
    -
  • #16477 agent Avoid panic by checking for skip_processors_after_aggregators
  • -
  • #16489 agent Set godebug x509negativeserial=1 as a workaround
  • -
  • #16403 inputs.netflow Ensure type consistency for sFlow's IP version field
  • -
  • #16447 inputs.x509_cert Add config to left-pad serial number to 128-bits
  • -
  • #16448 outputs.azure_monitor Prevent infinite send loop for outdated metrics
  • -
  • #16472 outputs.sql Fix insert into ClickHouse
  • -
  • #16454 service Set address to prevent orphaned dbus-session processes
  • -
-

Dependency updates

-
    -
  • #16442 deps Bump cloud.google.com/go/storage from 1.47.0 to 1.50.0
  • -
  • #16414 deps Bump github.com/Azure/azure-sdk-for-go/sdk/azidentity from 1.7.0 to 1.8.1
  • -
  • #16416 deps Bump github.com/apache/iotdb-client-go from 1.3.2 to 1.3.3
  • -
  • #16415 deps Bump github.com/aws/aws-sdk-go-v2 from 1.32.8 to 1.33.0
  • -
  • #16394 deps Bump github.com/aws/aws-sdk-go-v2/service/cloudwatchlogs from 1.38.0 to 1.45.3
  • -
  • #16468 deps Bump github.com/aws/aws-sdk-go-v2/service/sts from 1.33.10 to 1.33.12
  • -
  • #16439 deps Bump github.com/aws/aws-sdk-go-v2/service/sts from 1.33.2 to 1.33.10
  • -
  • #16395 deps Bump github.com/eclipse/paho.golang from 0.21.0 to 0.22.0
  • -
  • #16470 deps Bump github.com/go-ldap/ldap/v3 from 3.4.8 to 3.4.10
  • -
  • #16440 deps Bump github.com/google/cel-go from 0.21.0 to 0.23.0
  • -
  • #16445 deps Bump github.com/lxc/incus/v6 from 6.6.0 to 6.9.0
  • -
  • #16466 deps Bump github.com/nats-io/nats-server/v2 from 2.10.17 to 2.10.25
  • -
  • #16453 deps Bump github.com/prometheus/common from 0.61.0 to 0.62.0
  • -
  • #16417 deps Bump github.com/shirou/gopsutil/v4 from 4.24.10 to 4.24.12
  • -
  • #16369 deps Bump github.com/shirou/gopsutil/v4 from v4.24.10 to v4.24.12
  • -
  • #16397 deps Bump github.com/showwin/speedtest-go from 1.7.9 to 1.7.10
  • -
  • #16467 deps Bump github.com/yuin/goldmark from 1.6.0 to 1.7.8
  • -
  • #16360 deps Bump golangci-lint from v1.62.2 to v1.63.4
  • -
  • #16469 deps Bump google.golang.org/api from 0.214.0 to 0.219.0
  • -
  • #16396 deps Bump k8s.io/api from 0.31.3 to 0.32.1
  • -
  • #16482 deps Update Apache arrow from 0.0-20240716144821-cf5d7c7ec3cf to 18.1.0
  • -
  • #16423 deps Update ClickHouse SQL driver from 1.5.4 to 2.30.1
  • -
-

v1.33.1

-

Important Changes

-
    -
  • The default value of skip_processors_after_aggregators will change to true -with Telegraf v1.40.0, skip running the processors again after aggregators! -If you need the current default behavior, please explicitly set the option to -false! To silence the warning and use the future default behavior, please -explicitly set the option to true.
  • -
-

Bug fixes

-
    -
  • #16290 agent Skip initialization of second processor state if requested
  • -
  • #16377 inputs.intel_powerstat Fix option removal version
  • -
  • #16310 inputs.mongodb Do not dereference nil pointer if gathering database stats fails
  • -
  • #16383 outputs.influxdb_v2 Allow overriding auth and agent headers
  • -
  • #16388 outputs.influxdb_v2 Fix panic and API error handling
  • -
  • #16289 outputs.remotefile Handle tracking metrics correctly
  • -
-

Dependency updates

-
    -
  • #16344 deps Bump cloud.google.com/go/bigquery from 1.64.0 to 1.65.0
  • -
  • #16283 deps Bump cloud.google.com/go/monitoring from 1.21.1 to 1.22.0
  • -
  • #16315 deps Bump github.com/Azure/go-autorest/autorest/adal from 0.9.23 to 0.9.24
  • -
  • #16319 deps Bump github.com/IBM/nzgo/v12 from 12.0.9-0.20231115043259-49c27f2dfe48 to 12.0.9
  • -
  • #16346 deps Bump github.com/Masterminds/semver/v3 from 3.3.0 to 3.3.1
  • -
  • #16280 deps Bump github.com/aws/aws-sdk-go-v2/config from 1.27.39 to 1.28.6
  • -
  • #16343 deps Bump github.com/aws/aws-sdk-go-v2/service/ec2 from 1.162.1 to 1.198.1
  • -
  • #16317 deps Bump github.com/fatih/color from 1.17.0 to 1.18.0
  • -
  • #16345 deps Bump github.com/gopacket/gopacket from 1.3.0 to 1.3.1
  • -
  • #16282 deps Bump github.com/nats-io/nats.go from 1.36.0 to 1.37.0
  • -
  • #16318 deps Bump github.com/prometheus/common from 0.60.0 to 0.61.0
  • -
  • #16324 deps Bump github.com/vapourismo/knx-go from v0.0.0-20240217175130-922a0d50c241 to v0.0.0-20240915133544-a6ab43471c11
  • -
  • #16297 deps Bump golang.org/x/crypto from 0.29.0 to 0.31.0
  • -
  • #16281 deps Bump k8s.io/client-go from 0.30.1 to 0.31.3
  • -
  • #16313 deps Bump super-linter/super-linter from 7.2.0 to 7.2.1
  • -
-

v1.33.0

-

New Plugins

-
    -
  • #15754 inputs.neoom_beaam Add new plugin
  • -
  • #15869 processors.batch Add batch processor
  • -
  • #16144 outputs.quix Add plugin
  • -
-

Features

-
    -
  • #16010 agent Add –watch-interval option for polling config changes
  • -
  • #15948 aggregators.basicstats Add first field
  • -
  • #15891 common.socket Allow parallel parsing with a pool of workers
  • -
  • #16141 inputs.amqp_consumer Allow specification of queue arguments
  • -
  • #15950 inputs.diskio Add field io await and util
  • -
  • #15919 inputs.kafka_consumer Implement startup error behavior options
  • -
  • #15910 inputs.memcached Add support for external-store metrics
  • -
  • #15990 inputs.mock Add sine phase
  • -
  • #16040 inputs.modbus Allow grouping across register types
  • -
  • #15865 inputs.prometheus Allow to use secrets for credentials
  • -
  • #16230 inputs.smart Add Power on Hours and Cycle Count
  • -
  • #15935 inputs.snmp Add displayhint conversion
  • -
  • #16027 inputs.snmp Convert uneven bytes to int
  • -
  • #15976 inputs.socket_listener Use reception time as timestamp
  • -
  • #15853 inputs.statsd Allow reporting sets and timings count as floats
  • -
  • #11591 inputs.vsphere Add VM memory configuration
  • -
  • #16109 inputs.vsphere Add cpu temperature field
  • -
  • #15917 inputs Add option to choose the metric time source
  • -
  • #16242 logging Allow overriding message key for structured logging
  • -
  • #15742 outputs.influxdb_v2 Add rate limit implementation
  • -
  • #15943 outputs.mqtt Add sprig functions for topic name generator
  • -
  • #16041 outputs.postgresql Allow limiting of column name length
  • -
  • #16258 outputs Add rate-limiting infrastructure
  • -
  • #16146 outputs Implement partial write errors
  • -
  • #15883 outputs Only copy metric if its not filtered out
  • -
  • #15893 serializers.prometheusremotewrite Log metric conversion errors
  • -
-

Bug fixes

-
    -
  • #16248 inputs.netflow Decode flags in TCP and IP headers correctly
  • -
  • #16257 inputs.procstat Handle running processes correctly across multiple filters
  • -
  • #16219 logging Add Close() func for redirectLogger
  • -
  • #16255 logging Clean up extra empty spaces when redirectLogger is used
  • -
  • #16274 logging Fix duplicated prefix and attrMsg in log message when redirectLogger is used
  • -
-

Dependency updates

-
    -
  • #16232 deps Bump cloud.google.com/go/bigquery from 1.63.1 to 1.64.0
  • -
  • #16235 deps Bump cloud.google.com/go/storage from 1.43.0 to 1.47.0
  • -
  • #16198 deps Bump github.com/aws/aws-sdk-go-v2/service/cloudwatch from 1.42.2 to 1.43.1
  • -
  • #16234 deps Bump github.com/aws/aws-sdk-go-v2/service/kinesis from 1.29.3 to 1.32.6
  • -
  • #16201 deps Bump github.com/intel/powertelemetry from 1.0.1 to 1.0.2
  • -
  • #16200 deps Bump github.com/rclone/rclone from 1.68.1 to 1.68.2
  • -
  • #16199 deps Bump github.com/vishvananda/netns from 0.0.4 to 0.0.5
  • -
  • #16236 deps Bump golang.org/x/net from 0.30.0 to 0.31.0
  • -
  • #16250 deps Bump golangci-lint from v1.62.0 to v1.62.2
  • -
  • #16233 deps Bump google.golang.org/grpc from 1.67.1 to 1.68.0
  • -
  • #16202 deps Bump modernc.org/sqlite from 1.33.1 to 1.34.1
  • -
  • #16203 deps Bump super-linter/super-linter from 7.1.0 to 7.2.0
  • -
-

v1.32.3

-

Important Changes

-
    -
  • PR #16015 changes the -internal counters of the Bind plugin to unsigned integers (as in the server -implementation). For backward compatibility, -report_counters_as_int is true by default to avoid type conflicts on the -output side. However, you should set report_counters_as_int to false as soon as -possible to avoid invalid values and parsing errors with the v3 XML -statistics.
  • -
-

Bug fixes

-
    -
  • #16123 agent Restore setup order of stateful plugins to Init() then SetState()
  • -
  • #16111 common.socket Make sure the scanner buffer matches the read-buffer size
  • -
  • #16156 common.socket Use read buffer size config setting as a datagram reader buffer size
  • -
  • #16015 inputs.bind Convert counters to uint64
  • -
  • #16171 inputs.gnmi Register connection statistics before creating client
  • -
  • #16197 inputs.netflow Cast TCP ports to uint16
  • -
  • #16110 inputs.ntpq Avoid panic on empty lines and make sure -p is present
  • -
  • #16155 inputs.snmp Fix crash when trying to format fields from unknown OIDs
  • -
  • #16145 inputs.snmp_trap Remove timeout deprecation
  • -
  • #16108 logger Avoid setting the log-format default too early
  • -
-

Dependency updates

-
    -
  • #16093 deps Bump cloud.google.com/go/pubsub from 1.42.0 to 1.45.1
  • -
  • #16175 deps Bump github.com/aws/aws-sdk-go-v2/credentials from 1.17.37 to 1.17.44
  • -
  • #16096 deps Bump github.com/gofrs/uuid/v5 from 5.2.0 to 5.3.0
  • -
  • #16136 deps Bump github.com/golang-jwt/jwt/v4 from 4.5.0 to 4.5.1
  • -
  • #16094 deps Bump github.com/gopacket/gopacket from 1.2.0 to 1.3.0
  • -
  • #16133 deps Bump github.com/jackc/pgtype from 1.14.3 to 1.14.4
  • -
  • #16131 deps Bump github.com/openconfig/gnmi from 0.10.0 to 0.11.0
  • -
  • #16092 deps Bump github.com/prometheus/client_golang from 1.20.4 to 1.20.5
  • -
  • #16178 deps Bump github.com/rclone/rclone from 1.67.0 to 1.68.1
  • -
  • #16132 deps Bump github.com/shirou/gopsutil/v4 from 4.24.9 to 4.24.10
  • -
  • #16176 deps Bump github.com/sijms/go-ora/v2 from 2.8.19 to 2.8.22
  • -
  • #16134 deps Bump github.com/testcontainers/testcontainers-go/modules/kafka from 0.33.0 to 0.34.0
  • -
  • #16174 deps Bump github.com/tidwall/gjson from 1.17.1 to 1.18.0
  • -
  • #16135 deps Bump github.com/vmware/govmomi from 0.39.0 to 0.45.1
  • -
  • #16095 deps Bump golang.org/x/sys from 0.25.0 to 0.26.0
  • -
  • #16177 deps Bump golang.org/x/text from 0.19.0 to 0.20.0
  • -
  • #16172 deps Bump golangci-lint from v1.61.0 to v1.62.0
  • -
-

v1.32.2

-

Bug fixes

-
    -
  • #15966 agent Use a unique WAL file for plugin instances of the same type
  • -
  • #16074 inputs.kafka_consumer Fix deadlock
  • -
  • #16009 inputs.netflow Cast complex types to field compatible ones
  • -
  • #16026 inputs.opcua Allow to retry reads on invalid sessions
  • -
  • #16060 inputs.procstat Correctly use systemd-unit setting for finding them
  • -
  • #16008 inputs.win_eventlog Handle XML data fields’ filtering the same way as event fields
  • -
  • #15968 outputs.remotefile Create a new serializer instance per output file
  • -
  • #16014 outputs.syslog Trim field-names belonging to explicit SDIDs correctly
  • -
-

Dependency updates

-
    -
  • #15992 deps Bump cloud.google.com/go/bigquery from 1.62.0 to 1.63.1
  • -
  • #16056 deps Bump github.com/Azure/azure-sdk-for-go/sdk/azcore from 1.14.0 to 1.16.0
  • -
  • #16021 deps Bump github.com/IBM/sarama from 1.43.2 to 1.43.3
  • -
  • #16019 deps Bump github.com/alitto/pond from 1.9.0 to 1.9.2
  • -
  • #16018 deps Bump github.com/apache/thrift from 0.20.0 to 0.21.0
  • -
  • #16054 deps Bump github.com/aws/aws-sdk-go-v2 from 1.32.1 to 1.32.2
  • -
  • #15996 deps Bump github.com/aws/aws-sdk-go-v2/service/cloudwatch from 1.40.4 to 1.42.1
  • -
  • #16055 deps Bump github.com/aws/aws-sdk-go-v2/service/cloudwatch from 1.42.1 to 1.42.2
  • -
  • #16057 deps Bump github.com/aws/aws-sdk-go-v2/service/dynamodb from 1.34.9 to 1.36.2
  • -
  • #16022 deps Bump github.com/docker/docker from 27.1.1+incompatible to 27.3.1+incompatible
  • -
  • #15993 deps Bump github.com/gosnmp/gosnmp from 1.37.0 to 1.38.0
  • -
  • #15947 deps Bump github.com/gwos/tcg/sdk from v8.7.2 to v8.8.0
  • -
  • #16053 deps Bump github.com/lxc/incus/v6 from 6.2.0 to 6.6.0
  • -
  • #15994 deps Bump github.com/signalfx/golib/v3 from 3.3.53 to 3.3.54
  • -
  • #15995 deps Bump github.com/snowflakedb/gosnowflake from 1.11.1 to 1.11.2
  • -
  • #16020 deps Bump go.step.sm/crypto from 0.51.1 to 0.54.0
  • -
  • #16023 deps Bump github.com/shirou/gopsutil from v3.24.4 to v4.24.9
  • -
-

v1.32.1

-

Important Changes

-
    -
  • PR #15796 changes the -delivery state update of un-parseable messages from ACK to NACK without -requeueing. This way, those messages are not lost and can optionally be -handled using a dead-letter exchange by other means.
  • -
  • Removal of old-style serializer creation. This should not directly affect -users as it is an API change; all serializers in Telegraf are already ported -to the new framework. If you experience any issues creating serializers, contact us.
  • -
-

Bug fixes

-
    -
  • #15969 agent Fix buffer not flushing if all metrics are written
  • -
  • #15937 config Correctly print removal version info
  • -
  • #15900 common.http Keep timeout after creating oauth client
  • -
  • #15796 inputs.amqp_consumer NACKing messages on non-delivery related errors
  • -
  • #15923 inputs.cisco_telemetry_mdt Handle NXOS DME subtree telemetry format
  • -
  • #15907 inputs.consul Move config checking to Init method
  • -
  • #15982 inputs.influxdb_v2_listener Fix concurrent read/write dict
  • -
  • #15960 inputs.vsphere Add tags to VSAN ESA disks
  • -
  • #15921 parsers.avro Add mutex to cache access
  • -
  • #15965 processors.aws_ec2 Remove leading slash and cancel worker only if it exists
  • -
-

Dependency updates

-
    -
  • #15932 deps Bump cloud.google.com/go/monitoring from 1.20.2 to 1.21.1
  • -
  • #15863 deps Bump github.com/Azure/azure-kusto-go from 0.15.3 to 0.16.1
  • -
  • #15862 deps Bump github.com/Azure/azure-sdk-for-go/sdk/azcore from 1.13.0 to 1.14.0
  • -
  • #15957 deps Bump github.com/aws/aws-sdk-go-v2/feature/ec2/imds from 1.16.12 to 1.16.14
  • -
  • #15859 deps Bump github.com/aws/aws-sdk-go-v2/service/dynamodb from 1.34.4 to 1.34.9
  • -
  • #15931 deps Bump github.com/boschrexroth/ctrlx-datalayer-golang from 1.3.0 to 1.3.1
  • -
  • #15890 deps Bump github.com/harlow/kinesis-consumer from v0.3.6-0.20240606153816-553e2392fdf3 to v0.3.6-0.20240916192723-43900507c911
  • -
  • #15904 deps Bump github.com/netsampler/goflow2/v2 from 2.1.5 to 2.2.1
  • -
  • #15903 deps Bump github.com/p4lang/p4runtime from 1.3.0 to 1.4.0
  • -
  • #15905 deps Bump github.com/prometheus/client_golang from 1.20.2 to 1.20.3
  • -
  • #15930 deps Bump github.com/prometheus/client_golang from 1.20.3 to 1.20.4
  • -
  • #15962 deps Bump github.com/prometheus/common from 0.55.0 to 0.60.0
  • -
  • #15860 deps Bump github.com/snowflakedb/gosnowflake from 1.10.0 to 1.11.1
  • -
  • #15954 deps Bump github.com/srebhan/protobufquery from 0.0.0-20230803132024-ae4c0d878e55 to 1.0.1
  • -
  • #15929 deps Bump go.mongodb.org/mongo-driver from 1.16.0 to 1.17.0
  • -
  • #15902 deps Bump golang.org/x/mod from 0.19.0 to 0.21.0
  • -
  • #15955 deps Bump golang.org/x/oauth2 from 0.21.0 to 0.23.0
  • -
  • #15861 deps Bump golang.org/x/term from 0.23.0 to 0.24.0
  • -
  • #15856 deps Bump golangci-lint from v1.60.3 to v1.61.0
  • -
  • #15933 deps Bump k8s.io/apimachinery from 0.30.1 to 0.31.1
  • -
  • #15901 deps Bump modernc.org/sqlite from 1.32.0 to 1.33.1
  • -
-

v1.32.0

-

Important Changes

-
    -
  • This release contains a logging overhaul as well as some new features for -logging (see PRs #15556, -#15629, -#15677, -#15695 and -#15751). -As a consequence, the redundant logtarget setting is deprecated. stderr is -used if no logfile is provided, otherwise messages are logged to the given -file. To use Windows eventlog, set logformat = "eventlog".
  • -
  • This release contains a change in json_v2 parser config parsing: if the config is empty (doesn’t define any rules), initialization will fail -(see PR #15844).
  • -
  • This release contains a feature for a disk-backed metric buffer under the -buffer_strategy agent config (see -PR #15564). -This feature is experimental. Please report any issues you encounter while using it.
  • -
-

New Plugins

-
    -
  • #15700 inputs.slurm SLURM workload manager
  • -
  • #15602 outputs.parquet Parquet file writer
  • -
  • #15569 outputs.remotefile Output to remote location like S3
  • -
-

Features

-
    -
  • #15732 agent Add config check sub-command
  • -
  • #15564 agent Add metric disk buffer
  • -
  • #15645 agent Enable watching for new configuration files
  • -
  • #15644 agent Watch for deleted files
  • -
  • #15695 logging Add ’trace’ log-level
  • -
  • #15677 logging Allow to override log-level per plugin
  • -
  • #15751 logging Implement structured logging
  • -
  • #15640 common.cookie Allow usage of secrets in headers
  • -
  • #15636 common.shim Enable metric tracking within external plugins
  • -
  • #15570 common.tls Allow group aliases for cipher-suites
  • -
  • #15628 inputs.amd_rocm_smi Parse newer ROCm versions
  • -
  • #15519 inputs.azure_monitor Add client options parameter
  • -
  • #15544 inputs.elasticsearch Add support for custom headers
  • -
  • #15688 inputs.elasticsearch Gather enrich stats
  • -
  • #15834 inputs.execd Allow to provide logging prefixes on stderr
  • -
  • #15764 inputs.http_listener_v2 Add unix socket mode
  • -
  • #15495 inputs.ipmi_sensor Collect additional commands
  • -
  • #15790 inputs.kafka_consumer Allow to select the metric time source
  • -
  • #15648 inputs.modbus Allow reading single bits of input and holding registers
  • -
  • #15528 inputs.mqtt_consumer Add variable length topic parsing
  • -
  • #15486 inputs.mqtt_consumer Implement startup error behaviors
  • -
  • #15749 inputs.mysql Add support for replica status
  • -
  • #15521 inputs.netflow Add more fields for sFlow extended gateway packets
  • -
  • #15396 inputs.netflow Add support for sFlow drop notification packets
  • -
  • #15468 inputs.openstack Allow collection without admin privileges
  • -
  • #15637 inputs.opentelemetry Add profiles support
  • -
  • #15423 inputs.procstat Add ability to collect per-process socket statistics
  • -
  • #15655 inputs.s7comm Implement startup-error behavior settings
  • -
  • #15600 inputs.sql Add SAP HANA SQL driver
  • -
  • #15424 inputs.sqlserver Introduce user specified ID parameter for ADD logins
  • -
  • #15687 inputs.statsd Expose allowed_pending_messages as internal stat
  • -
  • #15458 inputs.systemd_units Support user scoped units
  • -
  • #15702 outputs.datadog Add support for submitting alongside dd-agent
  • -
  • #15668 outputs.dynatrace Report metrics as a delta counter using regular expression
  • -
  • #15471 outputs.elasticsearch Allow custom template index settings
  • -
  • #15613 outputs.elasticsearch Support data streams
  • -
  • #15722 outputs.kafka Add option to add metric name as record header
  • -
  • #15689 outputs.kafka Add option to set producer message timestamp
  • -
  • #15787 outputs.syslog Implement startup error behavior options
  • -
  • #15697 parsers.value Add base64 datatype
  • -
  • #15795 processors.aws_ec2 Allow to use instance metadata
  • -
-

Bug fixes

-
    -
  • #15661 agent Fix buffer directory config and document
  • -
  • #15788 inputs.kinesis_consumer Honor the configured endpoint
  • -
  • #15791 inputs.mysql Enforce float for all known floating-point information
  • -
  • #15743 inputs.snmp Avoid sending a nil to gosmi’s GetEnumBitsFormatted
  • -
  • #15815 logger Handle trace level for standard log
  • -
  • #15781 outputs.kinesis Honor the configured endpoint
  • -
  • #15615 outputs.remotefile Resolve linter not checking error
  • -
  • #15740 serializers.template Unwrap metrics if required
  • -
-

Dependency updates

-
    -
  • #15829 deps Bump github.com/BurntSushi/toml from 1.3.2 to 1.4.0
  • -
  • #15775 deps Bump github.com/aws/aws-sdk-go-v2/feature/ec2/imds from 1.16.11 to 1.16.12
  • -
  • #15733 deps Bump github.com/aws/aws-sdk-go-v2/service/cloudwatch from 1.38.7 to 1.40.3
  • -
  • #15761 deps Bump github.com/aws/aws-sdk-go-v2/service/cloudwatch from 1.40.3 to 1.40.4
  • -
  • #15827 deps Bump github.com/aws/aws-sdk-go-v2/service/cloudwatchlogs from 1.37.3 to 1.38.0
  • -
  • #15760 deps Bump github.com/aws/aws-sdk-go-v2/service/timestreamwrite from 1.25.5 to 1.27.4
  • -
  • #15737 deps Bump github.com/eclipse/paho.mqtt.golang from 1.4.3 to 1.5.0
  • -
  • #15734 deps Bump github.com/google/cel-go from 0.20.1 to 0.21.0
  • -
  • #15777 deps Bump github.com/miekg/dns from 1.1.59 to 1.1.62
  • -
  • #15828 deps Bump github.com/openconfig/goyang from 1.5.0 to 1.6.0
  • -
  • #15735 deps Bump github.com/pion/dtls/v2 from 2.2.11 to 2.2.12
  • -
  • #15779 deps Bump github.com/prometheus/client_golang from 1.19.1 to 1.20.2
  • -
  • #15831 deps Bump github.com/prometheus/prometheus from 0.53.1 to 0.54.1
  • -
  • #15736 deps Bump github.com/redis/go-redis/v9 from 9.5.1 to 9.6.1
  • -
  • #15830 deps Bump github.com/seancfoley/ipaddress-go from 1.6.0 to 1.7.0
  • -
  • #15842 deps Bump github.com/showwin/speedtest-go from 1.7.7 to 1.7.9
  • -
  • #15778 deps Bump go.step.sm/crypto from 0.50.0 to 0.51.1
  • -
  • #15776 deps Bump golang.org/x/net from 0.27.0 to 0.28.0
  • -
  • #15757 deps Bump golang.org/x/sync from 0.7.0 to 0.8.0
  • -
  • #15759 deps Bump gonum.org/v1/gonum from 0.15.0 to 0.15.1
  • -
  • #15758 deps Bump modernc.org/sqlite from 1.30.0 to 1.32.0
  • -
  • #15756 deps Bump super-linter/super-linter from 6.8.0 to 7.0.0
  • -
  • #15826 deps Bump super-linter/super-linter from 7.0.0 to 7.1.0
  • -
  • #15780 deps Bump tj-actions/changed-files from 44 to 45
  • -
-

v1.31.3

-

Bug fixes

-
    -
  • #15552 inputs.chrony Use DGRAM for the unix socket
  • -
  • #15667 inputs.diskio Print warnings once, add details to messages
  • -
  • #15670 inputs.mqtt_consumer Restore trace logging option
  • -
  • #15696 inputs.opcua Reconnect if closed connection
  • -
  • #15724 inputs.smartctl Use –scan-open instead of –scan to provide correct device type info
  • -
  • #15649 inputs.tail Prevent deadlock when closing and max undelivered lines hit
  • -
-

Dependency updates

-
    -
  • #15720 deps Bump Go from v1.22.5 to v1.22.6
  • -
  • #15683 deps Bump cloud.google.com/go/bigquery from 1.61.0 to 1.62.0
  • -
  • #15654 deps Bump cloud.google.com/go/monitoring from 1.19.0 to 1.20.2
  • -
  • #15679 deps Bump cloud.google.com/go/monitoring from 1.20.2 to 1.20.3
  • -
  • #15626 deps Bump github.com/antchfx/xmlquery from 1.4.0 to 1.4.1
  • -
  • #15706 deps Bump github.com/apache/iotdb-client-go from 1.2.0-tsbs to 1.3.2
  • -
  • #15651 deps Bump github.com/aws/aws-sdk-go-v2/credentials from 1.17.17 to 1.17.27
  • -
  • #15703 deps Bump github.com/aws/aws-sdk-go-v2/service/kinesis from v1.27.4 to v1.29.3
  • -
  • #15681 deps Bump github.com/docker/docker from 25.0.5-incompatible to 27.1.1-incompatible
  • -
  • #15650 deps Bump github.com/gofrs/uuid/v5 from 5.0.0 to 5.2.0
  • -
  • #15705 deps Bump github.com/gorilla/websocket from 1.5.1 to 1.5.3
  • -
  • #15708 deps Bump github.com/multiplay/go-ts3 from 1.1.0 to 1.2.0
  • -
  • #15707 deps Bump github.com/prometheus-community/pro-bing from 0.4.0 to 0.4.1
  • -
  • #15709 deps Bump github.com/prometheus/prometheus from 0.48.1 to 0.53.1
  • -
  • #15680 deps Bump github.com/vmware/govmomi from 0.37.2 to 0.39.0
  • -
  • #15682 deps Bump go.mongodb.org/mongo-driver from 1.14.0 to 1.16.0
  • -
  • #15652 deps Bump go.step.sm/crypto from 0.47.1 to 0.50.0
  • -
  • #15653 deps Bump google.golang.org/grpc from 1.64.1 to 1.65.0
  • -
  • #15704 deps Bump super-linter/super-linter from 6.7.0 to 6.8.0
  • -
-

v1.31.2

-

Bug fixes

-
    -
  • #15589 common.socket Switch to context to simplify closing
  • -
  • #15601 inputs.ping Check addr length to avoid crash
  • -
  • #15618 inputs.snmp Translate field correctly when not in table
  • -
  • #15586 parsers.xpath Allow resolving extensions
  • -
  • #15630 tools.custom_builder Handle multiple instances of the same plugin correctly
  • -
-

Dependency updates

-
    -
  • #15582 deps Bump cloud.google.com/go/storage from 1.41.0 to 1.42.0
  • -
  • #15623 deps Bump cloud.google.com/go/storage from 1.42.0 to 1.43.0
  • -
  • #15607 deps Bump github.com/alitto/pond from 1.8.3 to 1.9.0
  • -
  • #15625 deps Bump github.com/antchfx/xpath from 1.3.0 to 1.3.1
  • -
  • #15622 deps Bump github.com/aws/aws-sdk-go-v2/service/cloudwatchlogs from 1.34.3 to 1.37.3
  • -
  • #15606 deps Bump github.com/hashicorp/consul/api from 1.26.1 to 1.29.1
  • -
  • #15604 deps Bump github.com/jackc/pgx/v4 from 4.18.2 to 4.18.3
  • -
  • #15581 deps Bump github.com/nats-io/nats-server/v2 from 2.10.16 to 2.10.17
  • -
  • #15603 deps Bump github.com/openconfig/goyang from 1.0.0 to 1.5.0
  • -
  • #15624 deps Bump github.com/sijms/go-ora/v2 from 2.8.4 to 2.8.19
  • -
  • #15585 deps Bump github.com/testcontainers/testcontainers-go/modules/kafka from 0.30.0 to 0.31.0
  • -
  • #15605 deps Bump github.com/tinylib/msgp from 1.1.9 to 1.2.0
  • -
  • #15584 deps Bump github.com/urfave/cli/v2 from 2.27.1 to 2.27.2
  • -
  • #15614 deps Bump google.golang.org/grpc from 1.64.0 to 1.64.1
  • -
  • #15608 deps Bump super-linter/super-linter from 6.6.0 to 6.7.0
  • -
-

For versions earlier than v1.13 and earlier see -CHANGELOG-1.13.md.

-

v1.31.1

-

Bug fixes

-
    -
  • #15488 agent Ignore startup-errors in test mode
  • -
  • #15568 inputs.chrony Handle ServerStats4 response
  • -
  • #15551 inputs.chrony Support local (reference) sources
  • -
  • #15565 inputs.gnmi Handle YANG namespaces in paths correctly
  • -
  • #15496 inputs.http_response Fix for IPv4 and IPv6 addresses when interface is set
  • -
  • #15493 inputs.mysql Handle custom TLS configs correctly
  • -
  • #15514 logging Add back constants for backward compatibility
  • -
  • #15531 secretstores.oauth2 Ensure endpoint params is not nil
  • -
-

Dependency updates

-
    -
  • #15483 deps Bump cloud.google.com/go/monitoring from 1.18.1 to 1.19.0
  • -
  • #15559 deps Bump github.com/Azure/azure-kusto-go from 0.15.2 to 0.15.3
  • -
  • #15489 deps Bump github.com/Azure/azure-sdk-for-go/sdk/azidentity from 1.5.1 to 1.6.0
  • -
  • #15560 deps Bump github.com/Azure/go-autorest/autorest/azure/auth from 0.5.12 to 0.5.13
  • -
  • #15480 deps Bump github.com/IBM/sarama from 1.43.1 to 1.43.2
  • -
  • #15526 deps Bump github.com/aws/aws-sdk-go-v2/service/cloudwatch from 1.37.0 to 1.38.7
  • -
  • #15527 deps Bump github.com/aws/aws-sdk-go-v2/service/dynamodb from 1.30.2 to 1.32.9
  • -
  • #15558 deps Bump github.com/aws/aws-sdk-go-v2/service/dynamodb from 1.32.9 to 1.33.2
  • -
  • #15448 deps Bump github.com/aws/aws-sdk-go-v2/service/ec2 from 1.161.1 to 1.162.1
  • -
  • #15557 deps Bump github.com/go-ldap/ldap/v3 from 3.4.6 to 3.4.8
  • -
  • #15523 deps Bump github.com/linkedin/goavro/v2 from 2.12.0 to 2.13.0
  • -
  • #15484 deps Bump github.com/microsoft/go-mssqldb from 1.7.0 to 1.7.2
  • -
  • #15561 deps Bump github.com/nats-io/nats-server/v2 from 2.10.14 to 2.10.16
  • -
  • #15524 deps Bump github.com/prometheus/common from 0.53.0 to 0.54.0
  • -
  • #15481 deps Bump github.com/prometheus/procfs from 0.15.0 to 0.15.1
  • -
  • #15482 deps Bump github.com/rabbitmq/amqp091-go from 1.9.0 to 1.10.0
  • -
  • #15525 deps Bump go.step.sm/crypto from 0.44.1 to 0.47.1
  • -
  • #15479 deps Bump super-linter/super-linter from 6.5.1 to 6.6.0
  • -
-

v1.31.0

-

Important Changes

-
    -
  • The fields read_bytes and write_bytes in inputs.procstat now contain all -I/O operations for consistency with other operating systems. Previous values -are output as disk_read_bytes and disk_write_bytes measuring only the I/O -on the storage layer.
  • -
-

New Plugins

-

Inputs

- -

Parsers

- -

Processors

- -

Features

-
    -
  • Agent: -
      -
    • Add uint support in cli test output.
    • -
    • Introduce CLI option to set config URL retry attempts.
    • -
    • Introduce CLI option to reload remote URL configs on change.
    • -
    -
  • -
  • Azure Monitor (input.azure_monitor): Use default Azure credentials chain when no secret provided.
  • -
  • Basicstats (aggregators.basicstats`): Add last field.
  • -
  • Binary (parsers.binary): Allow base64-encoded input data.
  • -
  • Ceph (inputs.ceph): Use perf schema to determine metric type.
  • -
  • CLI: List available parsers and serializers.
  • -
  • CrateDB (outputs.cratedb): Allow configuration of startup error handling.
  • -
  • DNS Query (inputs.dns_query): Allow ignoring errors of specific types.
  • -
  • ElasticSearch (`outputs.elasticsearch Allow settings extra headers for elasticsearch output.
  • -
  • Exec (inputs.exec): Add option to ignore return code.
  • -
  • Execd (inputs.execd): Add option to not restart program on error.
  • -
  • File (inputs.file): Add tag with absolute path of file.
  • -
  • Final (aggregators.final`): Add option to disable appending _final.
  • -
  • GNMI (inputs.gnmi): -
      -
    • Add keepalive settings.
    • -
    • Add option to create more descriptive tags.
    • -
    • Add secret store support for username and password.
    • -
    • Add yang-model decoding of JSON IETF payloads.
    • -
    • Allow to pass accepted cipher suites.
    • -
    -
  • -
  • HTTP Listener (inputs.http_listener): Allow setting custom success return code.
  • -
  • HTTP Response (inputs.http_response): Add cookie authentication.
  • -
  • Influx (serializers.influx): Add option to omit timestamp.
  • -
  • InfluxDB (inputs.influxdb): Add metrics for build, crypto and commandline.
  • -
  • InfluxDB (outputs.influxdb): Add option to define local address.
  • -
  • InfluxDB v2 (outputs.influxdb_v2) -
      -
    • Add option to set local address.
    • -
    • Preserve custom query parameters on write.
    • -
    -
  • -
  • InfluxDB v2 Listener (inputs.influxdb_v2_listener): -
      -
    • Add support for rate limiting.
    • -
    • Support secret store for token.
    • -
    -
  • -
  • Internet Speed (inputs.internet_speed): Introduce packet loss field.
  • -
  • Inputs (inputs): Add framework to retry on startup errors.
  • -
  • Kafka Consumer (inputs.kafka_consumer): Add resolve canonical bootstrap server option.
  • -
  • KNX Listener (inputs.knx_listener): -
      -
    • Add support for string data type.
    • -
    • Allow usage of DPT string representation.
    • -
    -
  • -
  • Kubernetes (inputs.kubernetes): Add option to node metric name.
  • -
  • Lustre2 (inputs.lustre2): -
      -
    • Add eviction_count field.
    • -
    • Add health-check metric.
    • -
    • Add support for bulk read/write stats.
    • -
    • Skip brw_stats in case of insufficient permissions.
    • -
    -
  • -
  • Merge (aggregators.merge`): Allow to round metric timestamps.
  • -
  • MQTT (outputs.mqtt): Add client trace logging, resolve MQTT5 reconnect login.
  • -
  • Mock (inputs.mock): Add baseline option to sine.
  • -
  • Netflow (inputs.netflow): -
      -
    • Add support for IPFIX option packets.
    • -
    • Add support for netflow v9 option packets.
    • -
    -
  • -
  • Nvidia SMI (inputs.nvidia_smi): Add power-limit field for v12 scheme.
  • -
  • OPCUA (common.opcua): Add session timeout as configuration option.
  • -
  • OpenStack (inputs.openstack): Use service catalog from v3 authentication if available.
  • -
  • OpenTelemetry (inputs.opentelemetry): Add option to set max receive message size
  • -
  • Outputs (outputs): Add framework to retry on startup errors.
  • -
  • Parser (processors.parser): Add base64 decode for fields.
  • -
  • PostgreSQL (outputs.postgresql): -
      -
    • Add secret store support.
    • -
    • Allow configuration of startup error handling.
    • -
    -
  • -
  • Printer (processors.printer): Embed Influx serializer options.
  • -
  • Procstat (inputs.procstat): -
      -
    • Add option to select properties to collect.
    • -
    • Allow multiple selection criteria.
    • -
    • Report consistent I/O on Linux.
    • -
    -
  • -
  • Prometheus Remote Write (parser.prometheusremotewrite): Parse and generate histogram buckets.
  • -
  • Radius (inputs.radius): Provide setting to set request IP address.
  • -
  • Redis (inputs.redis): Add latency percentiles metric.
  • -
  • s7comm (inputs.s7comm): Add optional connection type setting.
  • -
  • SNMP (snmp): Add secret support for auth_password and priv_password.
  • -
  • SNMP (inputs.snmp): Convert octet string with invalid data to hex.
  • -
  • SQLServer (inputs.sqlserver): Add persistent version store metrics.
  • -
  • Starlark (processors.starlark): Allow persistence of global state.
  • -
  • Statsd (inputs.statsd): -
      -
    • Add support for DogStatsD v1.2.
    • -
    • Allow counters to report as float.
    • -
    -
  • -
  • Windows EventLog (inputs.win_eventlog): Add option to define event batch-size.
  • -
  • Windows WMI (inputs.win_wmi): -
      -
    • Add support for remote queries.
    • -
    • Allow to invoke methods.
    • -
    -
  • -
-

Bug fixes

-
    -
  • Agent: Warn on multiple agent configuration tables seen.
  • -
  • CloudWatch (inputs.cloudwatch): -
      -
    • Add accounts when enabled.
    • -
    • Ensure account list is larger than index.
    • -
    -
  • -
  • ECS (inputs.ecs): Check for nil pointer before use.
  • -
  • PostgreSQL Extensible (inputs.postgresql_extensible): Use same timestamp for each gather.
  • -
  • procstat (inputs.procstat): Do not report dead processes as running for orphan PID files.
  • -
  • smartctl (inputs.smartctl): Add additional fields.
  • -
  • SNMP Lookup (processors.snmp_lookup): Return empty tag-map on error to avoid panic.
  • -
-

Dependency updates

-
    -
  • Update cloud.google.com/go/storage from 1.40.0 to 1.41.0.
  • -
  • Update github.com/awnumar/memguard from 0.22.4 to 0.22.5.
  • -
  • Update github.com/fatih/color from 1.16.0 to 1.17.0.
  • -
  • Update github.com/jhump/protoreflect from 1.15.6 to 1.16.0.
  • -
  • Update github.com/lxc/incus v0.4.0 to v6.2.0.
  • -
  • Update github.com/miekg/dns from 1.1.58 to 1.1.59.
  • -
  • Update github.com/openzipkin/zipkin-go from 0.4.2 to 0.4.3.
  • -
  • Update github.com/prometheus/common from 0.52.2 to 0.53.0.
  • -
  • Update github.com/showwin/speedtest-go from 1.7.5 to 1.7.6.
  • -
  • Update github.com/showwin/speedtest-go from 1.7.6 to 1.7.7.
  • -
  • Update github.com/snowflakedb/gosnowflake from 1.7.2 to 1.10.0.
  • -
  • Update go from v1.22.3 to v1.22.4.
  • -
  • Update golang.org/x/crypto from 0.22.0 to 0.23.0.
  • -
  • Update golang.org/x/net from 0.24.0 to 0.25.0.
  • -
  • Update k8s.io/* from 0.29.3 to 0.30.1.
  • -
  • Update modernc.org/sqlite from 1.29.10 to 1.30.0.
  • -
  • Update modernc.org/sqlite from 1.29.5 to 1.29.10.
  • -
  • Update super-linter/super-linter from 6.4.1 to 6.5.0.
  • -
  • Update super-linter/super-linter from 6.5.0 to 6.5.1.
  • -
  • Switch to github.com/leodido/go-syslog.
  • -
  • Update all OpenTelemetry dependencies.
  • -
-

v1.30.3

-

Bug fixes

-
    -
  • Cloudwatch (inputs.cloudwatch): Option to produce dense metrics.
  • -
  • GNMI (inputs.gnmi): Ensure path contains elements to avoid panic.
  • -
  • Graphite (outputs.graphite): Handle local address without port correctly.
  • -
  • HTTP (http): Stop plugins from leaking file descriptors on telegraf reload.
  • -
  • HTTP Listener v2 (inputs.http_listener_v2): Wrap timestamp parsing error messages.
  • -
  • Loki (outputs.loki): Option to sanitize label names.
  • -
  • Makefile (makefile): Use go’s dependency checker for per platform builds.
  • -
  • Netflow (inputs.netflow): Log unknown fields only once.
  • -
  • Redis (input.redis): Discard invalid errorstat lines.
  • -
  • Sysstat (inputs.sysstat): Prevent default sadc_interval from increasing on reload.
  • -
  • Windows (windows): Make sure to log the final error message on exit.
  • -
-

Dependency updates

-
    -
  • Update cloud.google.com/go/bigquery from 1.59.1 to 1.61.0.
  • -
  • Update github.com/Azure/azure-kusto-go from 0.15.0 to 0.15.2.
  • -
  • Update github.com/aliyun/alibaba-cloud-sdk-go from 1.62.713 to 1.62.721.
  • -
  • Update github.com/antchfx/xmlquery from 1.3.18 to 1.4.0.
  • -
  • Update github.com/antchfx/xpath from 1.2.5 to 1.3.0.
  • -
  • Update github.com/aws/aws-sdk-go-v2/config from 1.27.9 to 1.27.13.
  • -
  • Update github.com/aws/aws-sdk-go-v2/credentials from 1.17.9 to 1.17.11.
  • -
  • Update github.com/aws/aws-sdk-go-v2/service/ec2 from 1.151.1 to 1.161.1.
  • -
  • Update github.com/coocood/freecache from 1.2.3 to 1.2.4.
  • -
  • Update github.com/google/cel-go from 0.18.1 to 0.20.1.
  • -
  • Update github.com/grid-x/modbus from v0.0.0-20211113184042-7f2251c342c9 to v0.0.0-20240503115206-582f2ab60a18.
  • -
  • Update github.com/nats-io/nats-server/v2 from 2.10.9 to 2.10.14.
  • -
  • Update github.com/pion/dtls/v2 from 2.2.10 to 2.2.11.
  • -
  • Update github.com/prometheus/procfs from 0.13.0 to 0.14.0.
  • -
  • Update github.com/shirou/gopsutil/v3 from v3.24.3 to v3.24.4.
  • -
  • Update github.com/testcontainers/testcontainers-go/modules/kafka from 0.26.1-0.20231116140448-68d5f8983d09 to 0.30.0.
  • -
  • Update github.com/vmware/govmomi from 0.37.0 to 0.37.2.
  • -
  • Update go from v1.22.2 to v1.22.3.
  • -
  • Update golang.org/x/mod from 0.16.0 to 0.17.0.
  • -
  • Update golang.org/x/sync from 0.6.0 to 0.7.0.
  • -
  • Update golangci-lint from v1.57.2 to v1.58.0.
  • -
  • Update google.golang.org/api from 0.171.0 to 0.177.0.
  • -
  • Update super-linter/super-linter from 6.3.1 to 6.4.1.
  • -
  • Migrate to maintained gopacket library.
  • -
-

v1.30.2

-

Important Changes

-
    -
  • This release reverts the behavior of inputs.systemd_units back to -pre-v1.30.0 to only collect units already loaded by systemd (i.e. not -collecting disabled or static units). This was necessary because using -unspecific filters will cause significant load on the system as systemd needs -to read all unit-files matching the pattern in each gather cycle. If you use -specific patterns and want to collect non-loaded units, please set the -collect_disabled_units option to true.
  • -
-

Bug fixes

-
    -
  • Agent (agent): Ensure import of required package for pprof support.
  • -
  • Disk I/O (inputs.diskio): Update path from /sys/block to /sys/class/block.
  • -
  • Modbus (inputs.modbus): Avoid overflow when calculating with uint16 addresses.
  • -
  • Nvidia (inputs.nvidia): Include power limit field for v11.
  • -
  • OPC UA (inputs.opcua): Make sure to always create a request.
  • -
  • OpenSearch (outputs.opensearch): Correctly error during failures or disconnect.
  • -
  • PHP FPM (inputs.phpfpm): Check for error before continue processing.
  • -
  • Prometheus (inputs.prometheus): -
      -
    • Correctly handle host header.
    • -
    • Remove duplicate response_timeout option.
    • -
    -
  • -
  • SQL (outputs.sql): Enable the use of krb5 with mssql driver.
  • -
  • SQL Server (inputs.sqlserver): Honor timezone on backup metrics.
  • -
  • systemd (systemd): Remove 5 second timeout, use default (90 seconds).
  • -
  • systemd Units (inputs.systemd_units): -
      -
    • Reconnect if connection is lost.
    • -
    • Revert to only gather loaded units by default.
    • -
    -
  • -
  • Windows Event Log (inputs.win_eventlog): Handle empty query correctly.
  • -
-

Dependency updates

-
    -
  • Update github.com/aliyun/alibaba-cloud-sdk-go from 1.62.563 to 1.62.708.
  • -
  • Update github.com/aliyun/alibaba-cloud-sdk-go from 1.62.708 to 1.62.713.
  • -
  • Update github.com/apache/iotdb-client-go from 0.12.2-0.20220722111104-cd17da295b46 to 1.2.0-tsbs.
  • -
  • Update github.com/aws/aws-sdk-go-v2/service/cloudwatch from 1.36.1 to 1.37.0.
  • -
  • Update github.com/aws/aws-sdk-go-v2/service/kinesis from 1.27.1 to 1.27.4.
  • -
  • Update github.com/aws/aws-sdk-go-v2/service/timestreamwrite from 1.25.2 to 1.25.5.
  • -
  • Update github.com/go-sql-driver/mysql from 1.7.1 to 1.8.1.
  • -
  • Update github.com/gophercloud/gophercloud from 1.9.0 to 1.11.0.
  • -
  • Update github.com/jackc/pgtype from 1.14.2 to 1.14.3.
  • -
  • Update github.com/prometheus/client_golang from 1.18.0 to 1.19.0.
  • -
  • Update github.com/redis/go-redis/v9 from 9.2.1 to 9.5.1.
  • -
  • Update github.com/shirou/gopsutil from v3.23.11 to v3.24.3.
  • -
  • Update github.com/testcontainers/testcontainers-go from 0.27.0 to 0.29.1.
  • -
  • Update github.com/vmware/govmomi from 0.33.1 to 0.37.0.
  • -
  • Update golang.org/x/net from 0.22.0 to 0.23.0.
  • -
  • Update golang.org/x/oauth2 from 0.18.0 to 0.19.0.
  • -
  • Update k8s.io/client-go from 0.29.2 to 0.29.3.
  • -
  • Update super-linter/super-linter from 6.3.0 to 6.3.1.
  • -
  • Update tj-actions/changed-files from 43 to 44
  • -
-

v1.30.1

-

Bug fixes

-
    -
  • Chrony (inputs.chrony): Remove chronyc dependency in documentation.
  • -
  • DiskIO (inputs.diskio): Add missing udev properties.
  • -
  • DNS Query (inputs.dns_query): -
      -
    • Fill out additional record fields.
    • -
    • Include the canonical CNAME target.
    • -
    -
  • -
  • KNX (inputs.knx_listener): -
      -
    • Ignore GroupValueRead requests.
    • -
    • Reconnect after connection loss.
    • -
    -
  • -
  • MySQL (inputs.mysql): -
      -
    • Parse boolean values in metric v1 correctly.
    • -
    • Use correct column-types for Percona 8 user stats.
    • -
    -
  • -
  • NVIDIA SMI (inputs.nvidia_smi): Add process info metrics.
  • -
  • OpenStack(inputs.openstack): Resolve regression in block storage and server info.
  • -
  • PHP-FPM (inputs.phpfpm): Add timeout for fcgi.
  • -
  • Ping (inputs.ping): Add option to force ipv4.
  • -
  • Prometheus (inputs.prometheus): Initialize logger of parser.
  • -
  • S.M.A.R.T. (inputs.smart): Improve regexp to support flags with a plus.
  • -
  • Systemd Units (inputs.systemd_units): Handle disabled multi-instance units correctly.
  • -
  • BigQuery (outputs.bigquery): Add scope to bigquery and remove timeout context.
  • -
  • Avoid count underflow by only counting initialized secrets.
  • -
  • Ensure watch-config is passed to the Windows service.
  • -
-

Dependency updates

-
    -
  • Update github.com/IBM/sarama from v1.42.2 to v1.43.1.
  • -
  • Update github.com/aws/aws-sdk-go-v2 from 1.25.3 to 1.26.0.
  • -
  • Update github.com/aws/aws-sdk-go-v2/config from 1.27.5 to 1.27.9.
  • -
  • Update github.com/aws/aws-sdk-go-v2/feature/ec2/imds from 1.15.2 to 1.16.0.
  • -
  • Update github.com/aws/aws-sdk-go-v2/service/cloudwatchlogs from 1.34.2 to 1.34.3.
  • -
  • Update github.com/aws/aws-sdk-go-v2/service/ec2 from 1.149.3 to 1.151.1.
  • -
  • Update github.com/aws/aws-sdk-go-v2/service/sts from 1.28.2 to 1.28.4.
  • -
  • Update github.com/docker/docker from 25.0.0+incompatible to 25.0.5+incompatible.
  • -
  • Update github.com/jackc/pgtype from 1.14.0 to 1.14.2.
  • -
  • Update github.com/jackc/pgx/v4 from 4.18.1 to 4.18.2.
  • -
  • Update github.com/klauspost/compress from 1.17.6 to 1.17.7.
  • -
  • Update github.com/pion/dtls/v2 from 2.2.8 to 2.2.10.
  • -
  • Update github.com/prometheus-community/pro-bing from 0.3.0 to 0.4.0.
  • -
  • Update github.com/prometheus/procfs from 0.12.0 to 0.13.0.
  • -
  • Update github.com/stretchr/testify v1.8.4 to v1.9.0.
  • -
  • Update go.step.sm/crypto from 0.43.0 to 0.44.1.
  • -
  • Update golang.org/x/crypto from 0.20.0 to 0.21.0.
  • -
  • Update gonum.org/v1/gonum from 0.14.0 to 0.15.0.
  • -
  • Update google.golang.org/api from 0.165.0 to 0.171.0.
  • -
  • Update google.golang.org/protobuf from 1.32.0 to 1.33.0.
  • -
  • Update tj-actions/changed-files from 42 to 43.
  • -
-

v1.30.0

-

Deprecation removals

-

This release removes the following deprecated plugins:

-
    -
  • inputs.cassandra
  • -
  • inputs.httpjson
  • -
  • inputs.io
  • -
  • inputs.jolokia
  • -
  • inputs.kafka_consumer_legacy
  • -
  • inputs.snmp_legacy
  • -
  • inputs.tcp_listener
  • -
  • inputs.udp_listener
  • -
  • outputs.riemann_legacy
  • -
-

Furthermore, the following deprecated plugin options are removed:

-
    -
  • mountpoints of inputs.disk
  • -
  • metric_buffer of inputs.mqtt_consumer
  • -
  • metric_buffer of inputs.nats_consumer
  • -
  • url of outputs.influxdb
  • -
-

Replacements do exist, so please migrate your configuration in case you are -still using one of these plugins. The telegraf config migrate command -can help with migrating to newer plugins.

-

Important Changes

-
    -
  • The default read-timeout of inputs.syslog of five seconds is not a sensible -default as the plugin will close the connection if the time between -consecutive messages exceeds the timeout. Telegraf 1.30.0+ sets the timeout -to infinite (i.e zero) as this is the expected behavior.
  • -
  • Telegraf 1.30.0+ correctly sanitize PostgreSQL addresses, which may change the -server tag value for a URI-formatted address that contains spaces, backslashes -or single-quotes in non-redacted parameters.
  • -
-

New Plugins

-

Outputs

- -

Serializers

-
    -
  • Binary (serializers.binary)
  • -
-

Processors

- -

Features

-
    -
  • Add loongarch64 nightly and release builds.
  • -
  • Add skip_processors_after_aggregators configuration option to skip -re-running processors after aggregators.
  • -
  • Allow secrets in headers
  • -
  • OPCUA (common.opcua): Add debug info for nodes not in server namespace.
  • -
  • Aerospike (inputs.aerospike): Deprecate plugin.
  • -
  • AMD ROCm System Management Interface (inputs.amd_rocm_smi): -Add startup_error_behavior configuration option.
  • -
  • Chrony (inputs.chrony): -
      -
    • Allow the collection of additional metrics.
    • -
    • Remove chronyc dependency.
    • -
    -
  • -
  • Kafka Consumer (inputs.kafka_consumer): Mark messages that failed parsing.
  • -
  • Kernel (inputs.kernel): Add pressure stall information.
  • -
  • Modbus (inputs.modbus): Add a workaround for unusual string-byte locations.
  • -
  • Net (inputs.net): Add speed metric.
  • -
  • NVIDIA SMI (inputs.nvidia_smi): Add startup_error_behavior configuration option.
  • -
  • Prometheus (inputs.prometheus): -
      -
    • Add internal metrics.
    • -
    • Add option to limit body length.
    • -
    -
  • -
  • Redfish (inputs.redfish): Allow secrets for username/password configuration.
  • -
  • S.M.A.R.T. (inputs.smart): Add a device_type tag to differentiate disks -behind a RAID controller.
  • -
  • SQL Server (inputs.sqlserver): Add stolen target memory ratio.
  • -
  • Systemd Units (inputs.systemd_units) -
      -
    • Support querying unloaded/disabled units.
    • -
    • Introduce show subcommand for additional data.
    • -
    -
  • -
  • Windows Services (inputs.win_services): Make service selection case-insensitive.
  • -
  • Graphite (outputs.graphite): Set the local address to bind to.
  • -
  • NATS (outputs.nats): Introduce NATS Jetstream option.
  • -
  • Nebius Cloud Monitoring (outputs.nebius_cloud_monitoring): Add service -configuration setting.
  • -
  • Webscoket (outputs.websocket): Support secrets in headers.
  • -
  • CSV (serializers.csv): Specify a fixed column order.
  • -
-

Bug fixes

-
    -
  • Catch panics in input plugin goroutines.
  • -
  • Reword error message about missing configuration options.
  • -
  • Docker Log (inputs.docker_log): Use the correct name when matching container.
  • -
  • GNMI (inputs.gnmi): -
      -
    • Add option to infer the path tag from the subscription.
    • -
    • Handle canonical field-name correctly
    • -
    -
  • -
  • Netflow (inputs.netflow): Fallback to IPFIX mappings for Netflow v9.
  • -
  • PHP-FPM (inputs.phpfpm): Continue despite erroneous sockets.
  • -
  • Prometheus (inputs.prometheus): List namespaces only when filtering by namespace.
  • -
  • Prometheus (parsers.prometheus): Do not touch input data for protocol-buffers.
  • -
  • Override (processors.override): Correct TOML tag name.
  • -
  • Ensure valid statefile in package.
  • -
-

Dependency updates

-
    -
  • Update all github.com/aws/aws-sdk-go-v2 dependencies.
  • -
  • Update cloud.google.com/go/bigquery from 1.58.0 to 1.59.1.
  • -
  • Update github.com/aws/aws-sdk-go-v2/service/dynamodb from 1.27.0 to 1.30.2.
  • -
  • Update github.com/cloudevents/sdk-go/v2 from 2.15.0 to 2.15.2.
  • -
  • Update github.com/eclipse/paho.golang from 0.20.0 to 0.21.0.
  • -
  • Update github.com/microsoft/go-mssqldb from 1.6.0 to 1.7.0.
  • -
  • Update github.com/netsampler/goflow2 from v1.3.6 to v2.1.2.
  • -
  • Update github.com/peterbourgon/unixtransport from 0.0.3 to 0.0.4.
  • -
  • Update github.com/prometheus/client_model from 0.5.0 to 0.6.0.
  • -
  • Update github.com/srebhan/cborquery from v0.0.0-20230626165538-38be85b82316 to v1.0.1.
  • -
  • Update github.com/vapourismo/knx-go from v0.0.0-20240107135439-816b70397a00 to v0.0.0-20240217175130-922a0d50c241.
  • -
  • Update go.mongodb.org/mongo-driver from 1.13.1 to 1.14.0.
  • -
  • Update golang.org/x/crypto from 0.19.0 to 0.20.0.
  • -
  • Update modernc.org/sqlite from 1.28.0 to 1.29.2.
  • -
  • Update super-linter/super-linter from 6.1.1 to 6.3.0.
  • -
-

v1.29.5

-

Bug fixes

-
    -
  • execd (processors.execd): Accept tracking metrics instead of dropping them.
  • -
  • Filecount (inputs.filecount): Respect symlink files with FollowSymLinks.
  • -
  • GNMI (inputs.gnmi): Normalize path for inline origin handling.
  • -
  • Kafka Consume (inputs.kafka_consumer): Fix typo of msg_headers_as_tags.
  • -
  • MQTT (outputs.mqtt): Retry metrics for server timeout.
  • -
  • Packaging (rpm): Ensure telegraf is installed after useradd.
  • -
  • PostgreSQL Extensible (inputs.postgresql_extensible): Add support for bool tags.
  • -
  • Redfish (inputs.redfish): Resolve iLO4 fan data.
  • -
  • SNMP Trap (inputs.snmp_trap): Enable SHA ciphers.
  • -
  • unpivot (processors.unpivot): Handle tracking metrics correctly.
  • -
  • Vsphere (inputs.vsphere): Use guest.guestId value if set for guest name.
  • -
-

Dependency updates

-
    -
  • Update cloud.google.com/go/bigquery from 1.57.1 to 1.58.0.
  • -
  • Update cloud.google.com/go/pubsub from 1.33.0 to 1.36.1.
  • -
  • Update cloud.google.com/go/storage from 1.36.0 to 1.38.0.
  • -
  • Update github.com/Azure/azure-event-hubs-go/v3 from 3.6.1 to 3.6.2.
  • -
  • Update github.com/DATA-DOG/go-sqlmock from 1.5.0 to 1.5.2.
  • -
  • Update github.com/IBM/sarama from 1.42.1 to 1.42.2.
  • -
  • Update github.com/awnumar/memguard from 0.22.4-0.20231204102859-fce56aae03b8 to 0.22.4.
  • -
  • Update github.com/cloudevents/sdk-go/v2 from 2.14.0 to 2.15.0.
  • -
  • Update github.com/eclipse/paho.golang from 0.11.0 to 0.20.0.
  • -
  • Update github.com/google/uuid from 1.5.0 to 1.6.0.
  • -
  • Update github.com/gopcua/opcua from 0.4.0 to 0.5.3.
  • -
  • Update github.com/gophercloud/gophercloud from 1.7.0 to 1.9.0.
  • -
  • Update github.com/gwos/tcg/sdk from v0.0.0-20220621192633-df0eac0a1a4c to v8.7.2.
  • -
  • Update github.com/jhump/protoreflect from 1.15.4 to 1.15.6.
  • -
  • Update github.com/klauspost/compress from 1.17.4 to 1.17.6.
  • -
  • Update github.com/miekg/dns from 1.1.57 to 1.1.58.
  • -
  • Update github.com/showwin/speedtest-go from 1.6.7 to 1.6.10.
  • -
  • Update github.com/urfave/cli/v2 from 2.25.7 to 2.27.1.
  • -
  • Update go.opentelemetry.io/collector/pdata from 1.0.1 to 1.1.0.
  • -
  • Update golang.org/x/oauth2 from 0.16.0 to 0.17.0.
  • -
  • Update google.golang.org/api from 0.162.0 to 0.165.0.
  • -
  • Update google.golang.org/grpc from 1.61.0 to 1.61.1.
  • -
  • Update k8s.io/apimachinery from 0.29.0 to 0.29.1.
  • -
  • Update k8s.io/client-go from 0.29.0 to 0.29.1.
  • -
  • Update k8s.io/client-go from 0.29.1 to 0.29.2.
  • -
  • Update super-linter/super-linter from 6.0.0 to 6.1.1.
  • -
  • Update tj-actions/changed-files from 41 to 42.
  • -
  • Remove golang.org/x/exp and use stable versions instead.
  • -
  • Use github.com/coreos/go-systemd/v22 instead of git version.
  • -
-

v1.29.4

-

Bug fixes

-
    -
  • SNMP (inputs.temp): Fix regression in metric formats.
  • -
  • SNMP Trap (inputs.snmp_trap): Handle octet strings.
  • -
  • Parser (processors.parser): Drop tracking metrics when not carried forward.
  • -
-

Dependency updates

-
    -
  • Update all AWS dependencies
  • -
  • Update github.com/compose-spec/compose-go from 1.20.0 to 1.20.2.
  • -
  • Update github.com/gosnmp/gosnmp from 1.36.1 to 1.37.0.
  • -
  • Update github.com/microsoft/go-mssqldb from 1.5.0 to 1.6.0.
  • -
  • Update github.com/nats-io/nats-server/v2 from 2.10.6 to 2.10.9.
  • -
  • Update github.com/yuin/goldmark from 1.5.6 to 1.6.0.
  • -
-

v1.29.3

-

Bug fixes

-
    -
  • Encoding (common.encoding): Remove locally-defined errors and use upstream ones.
  • -
  • GNMI (inputs.gnmi): Refactor alias handling to prevent clipping.
  • -
  • IOTDB (outputs.iotdb): Handle paths that contain illegal characters.
  • -
  • Loki (outputs.loki): Do not close body before reading it.
  • -
  • MQTT (outputs.mqtt): Preserve leading slash in topic.
  • -
  • Temperature (inputs.temp): Recover pre-v1.22.4 temperature sensor readings.
  • -
  • Windows Performance Counters (inputs.win_perf_counters): -
      -
    • Check errors post-collection for skip.
    • -
    • Ignore PdhCstatusNoInstance as well.
    • -
    -
  • -
-

Dependency updates

-
    -
  • Update github.com/aws/aws-sdk-go-v2/service/cloudwatchlogs from 1.29.5 to 1.31.0.
  • -
  • Update github.com/aws/aws-sdk-go-v2/service/sts from 1.26.5 to 1.26.7.
  • -
  • Update github.com/clarify/clarify-go from 0.2.4 to 0.3.1.
  • -
  • Update github.com/docker/docker from 24.0.7+incompatible to 25.0.0+incompatible.
  • -
  • Update github.com/docker/go-connections from 0.4.0 to 0.5.0.
  • -
  • Update github.com/fatih/color from 1.15.0 to 1.16.0.
  • -
  • Update github.com/gorilla/mux from 1.8.0 to 1.8.1.
  • -
  • Update github.com/intel/powertelemetry from 1.0.0 to 1.0.1.
  • -
  • Update github.com/nats-io/nats.go from 1.31.0 to 1.32.0.
  • -
  • Update github.com/prometheus/common from 0.44.0 to 0.45.0.
  • -
  • Update github.com/testcontainers/testcontainers-go from 0.26.0 to 0.27.0.
  • -
  • Update github.com/vapourismo/knx-go from v0.0.0-20220829185957-fb5458a5389d to 20240107135439-816b70397a00.
  • -
  • Update go.opentelemetry.io/collector/pdata from 1.0.0-rcv0016 to 1.0.1.
  • -
  • Update go.starlark.net from go.starlark.net v0.0.0-20220328144851-d1966c6b9fcd to v0.0.0-20231121155337-90ade8b19d09.
  • -
  • Update k8s.io/client-go from 0.28.3 to 0.29.0.
  • -
  • Update modernc.org/sqlite from 1.24.0 to 1.28.0.
  • -
-

v1.29.2

-

Bug fixes

-
    -
  • Bigquery (outputs.bigquery): Ignore fields containing NaN or infinity.
  • -
  • Filter (processors.filter): Rename processors.Filter -> processors.filter.
  • -
  • InfluxDB (outputs.influxdb): Support setting Host header.
  • -
  • InfluxDB v2 (outputs.influxdb_v2): Support setting Host header.
  • -
  • Kafka (common.kafka): Correctly set gssapi username/password. -
      -
    • Add pid field to differentiate metrics.
    • -
    • Use logger without causing panic.
    • -
    -
  • -
  • PHP FPM (inputs.phpfpm):
  • -
  • procstat (inputs.procstat): Correctly set tags on procstat_lookup.
  • -
  • Prometheus Client (outputs.prometheus_client): Always default to TCP.
  • -
  • Starlark (processors.starlark): Use tracking ID to identify tracking metrics.
  • -
  • systemd (systemd): Allow notify access from all.
  • -
  • UPSD (inputs.upsd): Add additional fields to upsd from NUT.
  • -
  • Vsphere (inputs.vsphere): Resolve occasional serverFault.
  • -
-

Dependency updates

-
    -
  • Update collectd.org from v0.5.0 to v0.6.0.
  • -
  • Update github.com/Azure/azure-kusto-go from 0.13.1 to 0.15.0.
  • -
  • Update github.com/containerd/containerd from 1.7.7 to 1.7.11.
  • -
  • Update github.com/djherbis/times from 1.5.0 to 1.6.0.
  • -
  • Update github.com/dvsekhvalnov/jose2go from v1.5.0 to v1.5.1-0.20231206184617-48ba0b76bc88.
  • -
  • Update github.com/google/uuid from 1.4.0 to 1.5.0.
  • -
  • Update github.com/jhump/protoreflect from 1.15.3 to 1.15.4.
  • -
  • Update github.com/pion/dtls/v2 from 2.2.7 to 2.2.8.
  • -
  • Update github.com/prometheus/prometheus from 0.48.0 to 0.48.1.
  • -
  • Update github.com/sijms/go-ora/v2 from 2.7.18 to 2.8.4.
  • -
  • Update go.mongodb.org/mongo-driver from 1.12.1 to 1.13.1.
  • -
  • Update golang.org/x/crypto from 0.16.0 to 0.17.0.
  • -
  • Update golang.org/x/net from 0.17.0 to 0.19.0.
  • -
  • Update google.golang.org/protobuf from 1.31.1-0.20231027082548-f4a6c1f6e5c1 to 1.32.0.
  • -
-

v1.29.1

-

Bug fixes

-
    -
  • Clickhouse (inputs.clickhouse): Omit zookeeper metrics on clickhouse cloud.
  • -
  • PHP FPM (inputs.php-fpm): Parse JSON output.
  • -
  • procstat (inputs.procstat): Revert unintended renaming of systemd_unit option.
  • -
-

Dependency updates

-
    -
  • Update github.com/go-ldap/ldap/v3 from 3.4.5 to 3.4.6.
  • -
  • Update github.com/klauspost/compress from 1.17.3 to 1.17.4.
  • -
  • Update github.com/openzipkin/zipkin-go from 0.4.1 to 0.4.2.
  • -
  • Update github.com/tidwall/gjson from 1.14.4 to 1.17.0.
  • -
  • Update all github.com/aws/aws-sdk-go-v2 dependencies.
  • -
-

v1.29.0

-

New Plugins

-

Inputs

-
    -
  • LDAP (inputs.ldap)
  • -
-

Outputs

- -

Processors

-
    -
  • Filter (processors.filter)
  • -
-

Secret Stores

- -

Features

-
    -
  • Agent (agent): Allow separators for namepass and namedrop filters
  • -
  • Final (aggregators.final): Specify output strategy
  • -
  • HTTP (common.http): Add support for connecting over unix-socket
  • -
  • OPCUA (common.opcua): Add option to include OPC-UA DataType as a field
  • -
  • Config (config): Deprecate fieldpass and fielddrop modifiers
  • -
  • Intel PMT (input.intel_pmt): Add pci_bdf tag to uniquely identify GPUs and other peripherals
  • -
  • AMQP Consumer (inputs.amqp_consumer): Add secretstore support for username and password
  • -
  • Docker (inputs.docker): Add disk usage
  • -
  • DPDK (inputs.dpdk): Add options to customize error-behavior and metric layout
  • -
  • Elasticsearch (inputs.elasticsearch): Use HTTPClientConfig struct
  • -
  • Elasticsearch Query (inputs.elasticsearch_query): Use HTTPClientConfig struct
  • -
  • GNMI (inputs.gnmi): Rework plugin
  • -
  • HTTP Response (inputs.http_response): Add body form configuration option
  • -
  • Intel PowerStat (inputs.intel_powerstat): Extract business logic to external library
  • -
  • Kafka Consumer (inputs.kafka_consumer): -
      -
    • Add message headers as metric tags
    • -
    • Add option to set metric name from message header
    • -
    -
  • -
  • Kibana (inputs.kibana): Use HTTPClientConfig struct
  • -
  • Kube Inventory (inputs.kube_inventory) -
      -
    • Support filtering pods and nodes by node name
    • -
    • Support using kubelet to get pods data
    • -
    -
  • -
  • LDAP (inputs.ldap): Collect additional fields
  • -
  • Logstash (inputs.logstash): Use HTTPClientConfig struct
  • -
  • Modbus (inputs.modbus): Add support for string fields
  • -
  • NATS Consumer (inputs.nats_consumer): Add nkey-seed-file authentication
  • -
  • OPCUA Listener (inputs.opcua_listener): Add monitoring params
  • -
  • Open Weather Map(inputs.openweathermap): Add per-city query scheme for current weather
  • -
  • procstat (inputs.procstat): Obtain process information through supervisor
  • -
  • RabbitMQ (inputs.rabbitmq): Add secretstore support for username and password
  • -
  • Redfish (inputs.redfish): Allow specifying which metrics to collect
  • -
  • SNMP (inputs.snmp): Hint to use source tag
  • -
  • Socket Listener (inputs.socket_listener): Add vsock support to socket listener and writer
  • -
  • SQL (inputs.sql): -
      -
    • Add Oracle driver
    • -
    • Add IBM Netezza driver
    • -
    -
  • -
  • Windows Service (inputs.win_service): Reduce required rights to GENERIC_READ
  • -
  • Migrations (migrations): -
      -
    • Add migration for fieldpass and fielddrop
    • -
    • Add migration for inputs.jolokia
    • -
    • Add migration for inputs.kafka_consumer_legacy
    • -
    • Add migration for inputs.snmp_legacy
    • -
    • Add migration for inputs.tcp_listener
    • -
    • Add migration for inputs.udp_listener
    • -
    • Add migration for outputs.riemann_legacy
    • -
    • Add option migration for inputs.disk
    • -
    • Add option migration for inputs.mqtt_consumer
    • -
    • Add option migration for inputs.nats_consumer
    • -
    • Add option migration for outputs.influxdb
    • -
    -
  • -
  • Azure Data Explorer (outputs.azure_data_explorer): Set user agent string
  • -
  • BigQuery (outputs.bigquery): -
      -
    • Add metrics in one compact table
    • -
    • Make project no longer a required field
    • -
    -
  • -
  • Exec (outputs.exec): Execute command once per metric
  • -
  • Prometheus Client (outputs.prometheus_client): Support listening on vsock
  • -
  • Socket Writer (outputs.socket_writer): Add vsock support to socket listener and writer
  • -
  • Stackdriver (outputs.stackdriver): -
      -
    • Add metric type config options
    • -
    • Enable histogram support
    • -
    -
  • -
  • Wavefront (outputs.wavefront): Use common/http to configure http client
  • -
  • Avro (parsers.avro): -
      -
    • Allow connection to https schema registry
    • -
    • Get metric name from the message field
    • -
    • Support multiple modes for union handling
    • -
    -
  • -
  • Dedup (processors.dedup): Add state persistence between runs
  • -
  • Regex (processors.regex): Allow batch transforms using named groups
  • -
  • Secrets (secrets): Add unprotected secret implementation
  • -
-

Bug Fixes

-
    -
  • OAuth (common.oauth): Initialize EndpointParams to avoid panic with audience settings
  • -
  • HTTP (inputs.http): Use correct token variable
  • -
  • Intel PowerStat (inputs.intel_powerstat): Fix unit tests to work on every CPU/platform
  • -
  • Modbus (inputs.modbus): Split large request correctly at field borders
  • -
  • Netflow (inputs.netflow): Handle malformed inputs gracefully
  • -
  • s7comm (inputs.s7comm): Reconnect if query fails
  • -
  • tail (inputs.tail): Retry opening file after permission denied
  • -
  • BigQuery (outputs.bigquery): Correct use of auto-detected project ID
  • -
  • OpenSearch (outputs.opensearch): -
      -
    • Expose TLS setting correctly
    • -
    • Migrate to new secrets API
    • -
    -
  • -
  • Prometheus Client (outputs.prometheus_client): Ensure v1 collector data expires promptly
  • -
  • Avro (parsers.avro): -
      -
    • Clean up Warnf error wrapping error
    • -
    • Attempt to read CA cert file only if filename is not empty string
    • -
    -
  • -
  • JSON v2 (parsers.json v2): -
      -
    • Correct wrong name of config option
    • -
    • Reset state before parsing
    • -
    -
  • -
  • Starlark (processors.starlark): -
      -
    • Avoid negative refcounts for tracking metrics
    • -
    • Maintain tracking information post-apply
    • -
    -
  • -
-

Dependency updates

-
    -
  • Update cloud.google.com/go/bigquery from 1.56.0 to 1.57.1
  • -
  • Update github.com/aws/aws-sdk-go-v2/service/cloudwatchlogs from 1.26.0 to 1.27.2
  • -
  • Update github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/monitor/armmonitor from 0.10.1 to 0.10.2
  • -
  • Update github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/monitor/armmonitor from 0.10.2 to 0.11.0
  • -
  • Update github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/resources/armresources from 1.1.1 to 1.2.0
  • -
  • Update github.com/golang-jwt/jwt/v5 from 5.0.0 to 5.2.0
  • -
  • Update github.com/IBM/sarama from 1.41.3 to 1.42.1
  • -
  • Update github.com/influxdata/tail from 1.0.1-0.20210707231403-b283181d1fa7 to 1.0.1-0.20221130111531-19b97bffd978
  • -
  • Update github.com/jackc/pgconn from 1.14.0 to 1.14.1
  • -
  • Update github.com/nats-io/nats-server/v2 from 2.9.23 to 2.10.6
  • -
  • Update github.com/prometheus/prometheus from 0.46.0 to 0.48.0
  • -
  • Update github.com/vmware/govmomi from 0.32.0 to 0.33.1
  • -
  • Update golang.org/x/text from 0.13.0 to 0.14.0
  • -
  • Update k8s.io/api from 0.28.3 to 0.28.4
  • -
  • Point kafka dependency to IBM organization
  • -
-

v1.28.5

-

Bug Fixes

-
    -
  • ECS (inputs.ecs): Correct v4 metadata URLs.
  • -
  • Intel RDT (inputs.intel_rdt): Do not fail on missing PIDs.
  • -
  • JSON v2 (parsers.json_v2): Log inner errors.
  • -
  • s7comm (inputs.s7comm): Truncate strings to reported length.
  • -
-

Dependency updates

-
    -
  • Update github.com/gosnmp/gosnmp from 1.35.1-0.20230602062452-f30602b8dad6 to 1.36.1.
  • -
  • Update github.com/Masterminds/semver/v3 from 3.2.0 to 3.2.1.
  • -
  • Update golang.org/x/sync from 0.4.0 to 0.5.0.
  • -
  • Update golang.org/x/mod from 0.13.0 to 0.14.0.
  • -
  • Update google.golang.org/api from 0.149.0 to 0.150.0.
  • -
-

v1.28.4

-

Bug Fixes

-
    -
  • cGroup (inputs.cgroup): Escape backslashes in path.
  • -
  • Config (config): Fix comment removal in TOML files.
  • -
  • Disk (inputs.disk): Add inodes_used_percent field.
  • -
  • ECS (inputs.ecs): -
      -
    • Fix cgroupv2 CPU metrics.
    • -
    • Test for v4 metadata endpoint.
    • -
    -
  • -
  • Elasticsearch (outputs.elasticsearch): Print error status value.
  • -
  • IP Set (inputs.ipset): Parse lines with timeout.
  • -
  • JSON v2 (parsers.json_v2): Prevent race condition in parse function.
  • -
  • Prometheus (inputs.prometheus): Read bearer token from file every time.
  • -
  • MQTT Consumer (inputs.mqtt_consumer): Resolve could not mark message delivered.
  • -
  • Netflow (inputs.netflow): Fix sFlow metric timestamp.
  • -
  • s7comm (inputs.s7comm): Fix bit queries.
  • -
  • Timestream (outputs.timestream): Clip uint64 values.
  • -
  • Windows Performance Counters (inputs.win_perf_counter): Do not rely on returned buffer size.
  • -
  • ZFS (inputs.zfs): -
      -
    • Parse metrics correctly on FreeBSD 14.
    • -
    • Support gathering metrics on zfs 2.2.0 and later.
    • -
    -
  • -
-

Dependency updates

-
    -
  • Update cloud.google.com/go/storage from 1.30.1 to 1.34.1.
  • -
  • Update github.com/aws/aws-sdk-go-v2/config from 1.18.42 to 1.19.1.
  • -
  • Update github.com/aws/aws-sdk-go-v2/credentials from 1.13.40 to 1.13.43.
  • -
  • Update github.com/aws/aws-sdk-go-v2/service/cloudwatchlogs from 1.23.5 to 1.26.0.
  • -
  • Update github.com/antchfx/xmlquery from 1.3.17 to 1.3.18.
  • -
  • Update github.com/antchfx/xpath from 1.2.5-0.20230505064641-588960cceeac to 1.2.5.
  • -
  • Update github.com/benbjohnson/clock from 1.3.3 to 1.3.5.
  • -
  • Update github.com/compose-spec/compose-go from 1.16.0 to 1.20.0.
  • -
  • Update github.com/docker/docker from 24.0.6 to 24.0.7.
  • -
  • Update github.com/hashicorp/consul/api from 1.24.0 to 1.25.1.
  • -
  • Update github.com/hashicorp/consul/api from 1.25.1 to 1.26.1.
  • -
  • Update github.com/nats-io/nkeys from 0.4.5 to 0.4.6.
  • -
  • Update github.com/prometheus/client_golang from 1.16.0 to 1.17.0.
  • -
  • Update github.com/rabbitmq/amqp091-go from 1.8.1 to 1.9.0.
  • -
  • Update github.com/showwin/speedtest-go from 1.6.6 to 1.6.7.
  • -
  • Update google.golang.org/grpc from 1.58.2 to 1.58.3.
  • -
  • Update k8s.io/client-go from 0.28.2 to 0.28.3.
  • -
-

v1.28.3

-

Bug Fixes

-
    -
  • Infiniband (inputs.infiniband): Handle devices without counters.
  • -
  • Jenkins (inputs.jenkins): Filter after searching sub-folders.
  • -
  • Jolokia2 Agent (inputs.jolokia2_agent): Trim quotes around tags.
  • -
  • JSON (serializers.json): Append newline for batch-serialization.
  • -
  • Kafka (outputs.kafka): Simplify send-error handling.
  • -
  • MQTT (inputs.mqtt): Reference correct password variable.
  • -
  • Nebius Cloud Monitoring (outputs.nebius_cloud_monitoring): Use correct endpoint.
  • -
  • PostgreSQL Extensible (inputs.postgresql_extensible): Restore default db name.
  • -
  • Redis Time Series (outputs.redistimeseries): Handle string fields correctly.
  • -
  • s7comm (inputs.s7comm): Allow PDU-size to be set as config option.
  • -
  • Vault (inputs.vault): Use http client to handle redirects correctly.
  • -
-

Dependency updates

-
    -
  • Update github.com/apache/arrow/go/v13 from 13.0.0-git to 13.0.0.
  • -
  • Update github.com/google/cel-go from 0.14.1-git to 0.18.1.
  • -
  • Update github.com/google/go-cmp from 0.5.9 to 0.6.0.
  • -
  • Update github.com/jhump/protoreflect from 1.15.1 to 1.15.3.
  • -
  • Update github.com/klauspost/compress from 1.16.7 to 1.17.0.
  • -
  • Update github.com/miekg/dns from 1.1.55 to 1.1.56.
  • -
  • Update github.com/nats-io/nats.go from 1.28.0 to 1.31.0.
  • -
  • Update github.com/nats-io/nats-server/v2 from 2.9.9 to 2.9.23.
  • -
  • Update github.com/netsampler/goflow2 from 1.3.3 to 1.3.6.
  • -
  • Update github.com/signalfx/golib/v3 from 3.3.50 to 3.3.53.
  • -
  • Update github.com/testcontainers/testcontainers-go from 0.22.0 to 0.25.0.
  • -
  • Update github.com/yuin/goldmark from 1.5.4 to 1.5.6.
  • -
  • Update golang.org/x/mod from 0.12.0 to 0.13.0.
  • -
  • Update golang.org/x/net from 0.15.0 to 0.17.0.
  • -
  • Update golang.org/x/oauth2 from 0.11.0 to 0.13.0.
  • -
  • Update gonum.org/v1/gonum from 0.13.0 to 0.14.0.
  • -
  • Update google.golang.org/api from 0.139.0 to 0.147.0.
  • -
-

v1.28.2

-

Bug Fixes

-
    -
  • Cisco Telemetry MDT (inputs.cisco_telemetry_mdt): Print string message on decode failure.
  • -
  • Cloudwatch (outputs.cloudwatch): Increase number of metrics per write.
  • -
  • exec (inputs.exec): Clean up grandchildren processes.
  • -
  • Intel PMT (inputs.intel_pmt): Handle telem devices without numa_node attribute.
  • -
  • JTI OpenConfig Telemetry (inputs.jti_openconfig_telemetry): Do not block gRPC dial.
  • -
  • JSON v2 (parsers.json_v2): Handle optional fields properly.
  • -
  • Mock (inputs.mock): Align plugin with documentation.
  • -
  • NFS Client (inputs.nfsclient): Avoid panics, better error messages.
  • -
  • Nvidia SMI (inputs.nvidia_smi): Add legacy power readings to v12 schema.
  • -
  • OpenStack (inputs.openstack): Handle dependencies between enabled services and available endpoints.
  • -
  • PostgreSQL Extensible (inputs.postgresql_extensible): Restore outputaddress behavior.
  • -
  • SMART (inputs.smart): Remove parsing error message.
  • -
  • Stackdriver (outputs.stackdriver): -
      -
    • Do not shallow copy map.
    • -
    • Drop metrics on InvalidArgument gRPC error.
    • -
    -
  • -
  • systemd Units inputs.systemd_units): Add missing upstream states.
  • -
  • Template (processors.template): Handle tracking metrics correctly.
  • -
-

Dependency updates

-
    -
  • Update github.com/aliyun/alibaba-cloud-sdk-go from 1.62.470 to 1.62.563.
  • -
  • Update github.com/aws/aws-sdk-go-v2/config from 1.18.27 to 1.18.42.
  • -
  • Update github.com/aws/aws-sdk-go-v2/service/cloudwatchlogs from 1.20.9 to 1.23.5.
  • -
  • Update github.com/aws/aws-sdk-go-v2/service/ec2 from 1.80.1 to 1.120.0.
  • -
  • Update github.com/aws/aws-sdk-go-v2/feature/ec2/imds from 1.13.8 to 1.13.11.
  • -
  • Update github.com/eclipse/paho.mqtt.golang from 1.4.2 to 1.4.3.
  • -
  • Update github.com/google/uuid from 1.3.0 to 1.3.1.
  • -
  • Update github.com/shirou/gopsutil/v3 from 3.23.6 to 3.23.8.
  • -
  • Update github.com/vmware/govmomi from 0.28.0 to 0.32.0.
  • -
  • Update golang.org/x/net from 0.14.0 to 0.15.0.
  • -
  • Update k8s.io/api from 0.28.1 to 0.28.2.
  • -
-

v1.28.1

-

Bug fixes

-
    -
  • Packaging: Revert permission change on package configs
  • -
  • Redis (inputs.redis): Fix password typo
  • -
  • Vsphere (inputs.vsphere): Fix config name typo in example
  • -
-

v1.28.0

-

Important Changes

-
    -
  • metricpass: Removed the Python compatibility support for “not”, “and”, and -“or” keywords. This support was incorrectly removing these keywords from -actual data. Users should instead use the standard “!”, “&&”, and “||” -operators.
  • -
  • Avro Processor: The avro processor will no longer create a timestamp field -by default unless explicitly provided in the parser config.
  • -
-

New Plugins

-

Inputs

- -

Processors

- -

Secret Stores

- -

Serializers

- -

Features

-
    -
  • Agent: -
      -
    • Add option to avoid filtering of global tags
    • -
    • Watch default config files if none specified
    • -
    -
  • -
  • CLI: Add plugins subcommand to list available and deprecated
  • -
  • AMQP Consumer (inputs.amqp_consumer): Add support to rabbitmq stream queue
  • -
  • Cisco Telemetry MDT (inputs.cisco_telemetry_mdt): Add microbust support
  • -
  • Couchbase (inputs.couchbase): Add failover metrics
  • -
  • Fail2Ban (inputs.fail2ban): Allow specification of socket
  • -
  • Fibaro (inputs.fibaro): Support HC3 device types
  • -
  • HTTP (inputs.http): Rework token options
  • -
  • InfluxDB Listener (inputs.influxdb_listener): Add token based authentication
  • -
  • Internal (inputs.internal): Add Go metric collection option
  • -
  • Jenkins (inputs.jenkins): Add option for node labels as tag
  • -
  • JTI OpenConfig Telemetry (inputs.jti_openconfig_telemetry): Add keep-alive setting
  • -
  • Kernel (inputs.kernel): Collect KSM metrics
  • -
  • Modbus (inputs.modbus): Add per-metric configuration style
  • -
  • Nvidia SMI (inputs.nvidia_smi): -
      -
    • Add Nvidia DCGM MIG usage values
    • -
    • Add additional fields
    • -
    • Support newer data schema versions
    • -
    -
  • -
  • OpenStack (inputs.openstack): Gather cinder services
  • -
  • OpenTelemetry (inputs.opentelemetry): Add configurable log record dimensions
  • -
  • PGBouncer (inputs.pgbouncer): Add show_commands to select the collected pgbouncer metrics
  • -
  • PostgreSQL Extensible (inputs.postgresql_extensible): Introduce max_version for query
  • -
  • Procstat (inputs.procstat): Add status field
  • -
  • Prometheus (inputs.prometheus): Always apply kubernetes label and field selectors
  • -
  • RavenDB (inputs.ravendb): Add new disk metrics fields
  • -
  • Redfish (inputs.redfish): Add additional chassis tags
  • -
  • Redis (inputs.redis): -
      -
    • Add additional commandstat fields
    • -
    • Support of redis 6.2 ERRORSTATS
    • -
    -
  • -
  • Redis Sentinel (inputs.redis_sentinel): Allow username and password
  • -
  • Solr (inputs.solr): Support version 7.x to 9.3
  • -
  • SQL Server (inputs.sqlserver): Add IsHadrEnabled server property
  • -
  • Vsphere (inputs.vsphere): -
      -
    • Allow to set vSAN sampling interval
    • -
    • Support explicit proxy setting
    • -
    -
  • -
  • Internal (internal): -
      -
    • Add gather_timeouts metric
    • -
    • Add zstd to internal content_coding
    • -
    -
  • -
  • Kafka (kafka): Set and send SASL extensions
  • -
  • Migrations: -
      -
    • Add migration for inputs.httpjson
    • -
    • Add migration for inputs.io
    • -
    -
  • -
  • execd (outputs.execd): Add option for batch format
  • -
  • File (outputs.file): Add compression
  • -
  • HTTP (outputs.http): Allow PATCH method
  • -
  • Postgresql (outputs.postgresql): -
      -
    • Add option to create time column with timezone
    • -
    • Add option to rename time column
    • -
    -
  • -
  • Prometheus Client (outputs.prometheus_client): Add secretstore support for basic_password
  • -
  • Wavefront (outputs.wavefront): Add more auth options and update SDK
  • -
  • Avro (parsers.avro): Add support for JSON format
  • -
  • Influx (parsers.influx): Allow a user to set the timestamp precision
  • -
  • Value (parsers.value): Add support for automatic fallback for numeric types
  • -
  • XPath (parsers.xpath): -
      -
    • Add Concise Binary Object Representation parser
    • -
    • Add option to store fields as base64
    • -
    -
  • -
  • Parser (processors.parser) Allow also non-string fields
  • -
  • Template (processors.template): Unify template metric
  • -
-

Bug fixes

-
    -
  • Packaging: Change the systemd KillMode from control-group to mixed
  • -
  • AMQP Consumer (inputs.amqp_consumer): Print error on connection failure
  • -
  • Kafka Consumer (inputs.kafka_consumer): Use per-message parser to avoid races
  • -
  • OPCUA (inputs.opcua): Verify groups or root nodes included in config
  • -
  • PostgreSQL (inputs.postgresql): Fix default database definition
  • -
  • Procstat (inputs.procstat): Collect swap via /proc/$pid/smaps
  • -
  • SQL Server (inputs.sqlserver): Cast max_size to bigint
  • -
  • Sysstat (inputs.sysstat): Remove tmpfile to avoid file-descriptor leak
  • -
  • Avro (parsers.avro): -
      -
    • Do not force addition of timestamp as a field
    • -
    • Handle timestamp format checking correctly
    • -
    -
  • -
  • SQL (sql): -
      -
    • Allow sqlite on Windows (amd64 and arm64)
    • -
    • Move conversion_style config option to the right place of sample config
    • -
    -
  • -
-

Dependency updates

-
    -
  • Update github.com/aws/aws-sdk-go-v2/service/kinesis from 1.18.2 to 1.18.5.
  • -
  • Update github.com/hashicorp/consul/api from 1.20.0 to 1.24.0.
  • -
  • Update github.com/nats-io/nats.go from 1.27.0 to 1.28.0.
  • -
  • Update github.com/prometheus/prometheus from 0.42.0 to 0.46.0.
  • -
  • Update github.com/showwin/speedtest-go from 1.6.2 to 1.6.6.
  • -
  • Update k8s.io/api from 0.27.4 to 0.28.1.
  • -
-

v1.27.4

-

Bug fixes

-
    -
  • Cisco Telemetry MDT (inputs.cisco_telemetry_mdt): Fix MDT source field overwrite.
  • -
  • NowMetric (serializers.nowmetric): Add option for JSONv2 format.
  • -
  • OPCUA (inputs.opcua): Register node IDs again on reconnect.
  • -
  • OPCUA Listener (inputs.opcua_listener): Avoid segfault when subscription was not successful.
  • -
  • Stackdriver (outputs.stackdriver): Regenerate time interval for unknown metrics.
  • -
  • Xpath (parsers.xpath): Handle protobuf maps correctly.
  • -
-

Dependency updates

-
    -
  • Update cloud.google.com/go/pubsub from 1.32.0 to 1.33.0.
  • -
  • Update github.com/aws/aws-sdk-go-v2/credentials from 1.13.26 to 1.13.32.
  • -
  • Update github.com/aws/aws-sdk-go-v2/feature/ec2/imds from 1.13.4 to 1.13.7.
  • -
  • Update github.com/aws/aws-sdk-go-v2/service/kinesis from 1.17.14 to 1.18.0.
  • -
  • Update github.com/aws/aws-sdk-go-v2/service/kinesis from 1.18.0 to 1.18.2.
  • -
  • Update github.com/aws/aws-sdk-go-v2/service/sts from 1.19.3 to 1.21.2.
  • -
  • Update github.com/gophercloud/gophercloud from 1.2.0 to 1.5.0.
  • -
  • Update github.com/microsoft/go-mssqldb from 1.3.1-0.20230630170514-78ad89164253 to 1.5.0.
  • -
  • Update github.com/miekg/dns from 1.1.51 to 1.1.55.
  • -
  • Update github.com/openconfig/gnmi from 0.9.1 to 0.10.0.
  • -
  • Update github.com/santhosh-tekuri/jsonschema/v5 from 5.3.0 to 5.3.1.
  • -
  • Update go.mongodb.org/mongo-driver from 1.11.6 to 1.12.1.
  • -
  • Update golang.org/x/oauth2 from 0.10.0 to 0.11.0.
  • -
  • Update google.golang.org/api from 0.129.0 to 0.134.0.
  • -
-

v1.27.3

-

Bug fixes

-
    -
  • Agent (agent): Respect processor order in file.
  • -
  • Config (config): -
      -
    • Handle escaping and quotation correctly.
    • -
    • Setup logger for secret-stores.
    • -
    -
  • -
  • Custom Builder (tools.custom_builder): Ignore non-plugin sections during configuration.
  • -
  • Docker (inputs.docker): Add restart count.
  • -
  • JTI OpenConfig Telemetry (inputs.jti_openconfig_telemetry): Reauthenticate connection on reconnect.
  • -
  • MQTT Consumer (inputs.mqtt_consumer): Add client trace logs via option.
  • -
  • Nebius Cloud Monitoring (outputs.nebius_cloud_monitoring): Replace reserved label names.
  • -
  • OpenTelemetry (outputs.opentelemetry): Group metrics by age and timestamp.
  • -
  • Prometheus (inputs.prometheus): -
      -
    • Do not collect metrics from finished pods.
    • -
    • Fix missing metrics when multiple plugin instances specified.
    • -
    -
  • -
  • Stackdriver (outputs.stackdriver): Add tag as resource label option.
  • -
  • Xpath (parsers.xpath): -
      -
    • Ensure precedence of explicitly defined tags and fields.
    • -
    • Fix field-names for arrays of simple types.
    • -
    • Improve handling of complex-type nodes.
    • -
    -
  • -
-

Dependency updates

-
    -
  • Update github.com/aliyun/alibaba-cloud-sdk-go 1.62.389 to 1.62.470.
  • -
  • Update github.com/antchfx/jsonquery from 1.3.1 to 1.3.2.
  • -
  • Update github.com/antchfx/xmlquery from 1.3.15 to 1.3.17.
  • -
  • Update github.com/antchfx/xpath from v1.2.4 to latest master.
  • -
  • Update github.com/aws/aws-sdk-go-v2/service/dynamodb from 1.17.3 to 1.20.0.
  • -
  • Update github.com/aws/aws-sdk-go-v2/service/sts from 1.19.2 to 1.19.3.
  • -
  • Update github.com/eclipse/paho.golang from 0.10.0 to 0.11.0.
  • -
  • Update github.com/go-ldap/ldap/v3 from 3.4.4 to 3.4.5.
  • -
  • Update github.com/jaegertracing/jaeger from 1.38.0 to 1.47.0.
  • -
  • Update github.com/opensearch-project/opensearch-go/v2 from 2.2.0 to 2.3.0.
  • -
  • Update github.com/prometheus-community/pro-bing from 0.2.0 to 0.3.0.
  • -
  • Update github.com/shirou/gopsutil/v3 from 3.23.5 to 3.23.6.
  • -
  • Update github.com/thomasklein94/packer-plugin-libvirt from 0.3.4 to 0.5.0.
  • -
  • Update k8s.io/api from 0.27.2 to 0.27.4.
  • -
  • Update k8s.io/apimachinery from 0.27.2 to 0.27.3.
  • -
  • Update modernc.org/sqlite from 1.23.1 to 1.24.0.
  • -
-

v1.27.2

-

Bug fixes

-
    -
  • Binary (parsers.binary): Fix binary parser example in README.md.
  • -
  • Config (config): Replace environment variables if existing but empty.
  • -
  • Cloud PubSub (inputs.cloud_pubsub): Properly lock for decompression.
  • -
  • Custom Builder (tools.custom_builder): Error out for unknown plugins in configuration.
  • -
  • GNMI (inputs.gnmi): Add option to explicitly trim field-names.
  • -
  • Graphite (outputs.graphite): Rework connection handling.
  • -
  • Grok (parsers.grok): Use UTC as the default timezone.
  • -
  • InfluxDB v2 (outputs.influxdb_v2): Expose HTTP/2 client timeouts.
  • -
  • Internet Speed (inputs.internet_speed): Add location as a field.
  • -
  • Modbus (inputs.modbus): -
      -
    • Check number of register for datatype.
    • -
    • Fix optimization of overlapping requests and add warning.
    • -
    -
  • -
  • MQTT Consumer (inputs.mqtt_consumer): -
      -
    • Correctly handle semaphores on messages.
    • -
    • Print warning on no metrics generated.
    • -
    -
  • -
  • OPC UA (inputs.opcua): Ensure connection after reconnect.
  • -
  • PHP FPM (inputs.phpfpm): Check address length to avoid crash.
  • -
  • Printer (processors.printer): Convert output to string.
  • -
  • SNMP Trap (inputs.snmp_trap): Copy GoSNMP global defaults to prevent side-effects.
  • -
  • Secretstores (secretstores): Skip dbus connection with kwallet.
  • -
  • Splunk Metric (serializers.splunkmetric): Fix TOML option name for multi-metric.
  • -
  • Stackdriver (outputs.stackdriver): Options to use official path and types.
  • -
  • Sumologic (outputs.sumologic): Unwrap serializer for type check.
  • -
  • Vsphere (inputs.vpshere): Compare versions as a string.
  • -
  • Xpath (parsers.xpath): Handle explicitly defined fields correctly.
  • -
-

Dependency updates

-
    -
  • Replace github.com/denisenkom/go-mssqldb with github.com/microsoft/go-mssqldb.
  • -
  • Update cloud.google.com/go/bigquery from 1.51.1 to 1.52.0.
  • -
  • Update github.com/aliyun/alibaba-cloud-sdk-go from 1.62.337 to 1.62.389.
  • -
  • Update github.com/aws/aws-sdk-go-v2/config from 1.18.8 to 1.18.27.
  • -
  • Update github.com/aws/aws-sdk-go-v2/service/kinesis from 1.17.8 to 1.17.14.
  • -
  • Update github.com/gopcua/opcua from 0.3.7 to 0.4.0.
  • -
  • Update github.com/prometheus/client_golang from 1.15.1 to 1.16.0.
  • -
  • Update github.com/snowflakedb/gosnowflake from 1.6.13 to 1.6.22.
  • -
  • Update github.com/urfave/cli/v2 from 2.25.5 to 2.25.7.
  • -
  • Update golang.org/x/text from 0.9.0 to 0.10.0.
  • -
  • Update golang.org/x/text from 0.10.0 to 0.11.0.
  • -
  • Update google.golang.org/api from 0.126.0 to 0.129.0.
  • -
-

v1.27.1

-

Bug fixes

-
    -
  • Correctly handle serializers and parsers with custom builder.
  • -
  • Handle compression level correctly for different algorithms.
  • -
  • Restore old environment var behavior with option.
  • -
-

Dependency updates

-
    -
  • Update github.com/aws/aws-sdk-go-v2/credentials from 1.13.20 to 1.13.26.
  • -
  • Update github.com/aws/aws-sdk-go-v2/service/cloudwatch from 1.25.9 to 1.26.2.
  • -
  • Update github.com/aws/aws-sdk-go-v2/service/timestreamwrite from 1.16.0 to 1.17.2.
  • -
  • Update github.com/go-sql-driver/mysql from 1.6.0 to 1.7.1.
  • -
  • Update github.com/jackc/pgx/v4 from 4.17.1 to 4.18.1.
  • -
  • Update github.com/nats-io/nats.go from 1.24.0 to 1.27.0.
  • -
  • Update github.com/prometheus-community/pro-bing from 0.1.0 to 0.2.0.
  • -
  • Update golang.org/x/crypto from 0.8.0 to 0.9.0.
  • -
  • Update golang.org/x/term from 0.8.0 to 0.9.0.
  • -
  • Update modernc.org/sqlite from 1.21.0 to 1.23.1.
  • -
-

v1.27.0

-

Important Changes

-
    -
  • Timezone Parsing: Fix parsing of timezone abbreviations such as MST. Up -to now, when parsing times with abbreviated timezones (i.e. the format ) the -timezone information is ignored completely and the timestamp is located in -UTC. This is a golang issue (see -#9617 or -#56528). If you worked around -that issue, please remove the workaround before using v1.27+. In case you -experience issues with abbreviated timezones please file an issue.
  • -
  • Internal Parser methods: Removal of old-style parser creation. This -should not directly affect users as it is an API change. All parsers in -Telegraf are already ported to the new framework. If you experience any -issues with not being able to create parsers let us know!
  • -
-

New Plugins

-

Inputs

- -

Outputs

- -

Processors

-
    -
  • Scale (processors.scale)
  • -
-

Secret Stores

-
    -
  • Docker (secretstores.docker)
  • -
  • HTTP (secretstores.http)
  • -
-

Serializers

- -

Features

-
    -
  • Agent (agent): -
      -
    • Add option to avoid filtering of explicit plugin tags
    • -
    • Add common expression language metric filtering
    • -
    -
  • -
  • BasicStats (aggregators.basicstats): Add percentage change
  • -
  • Cloud PubSub (cloud_pubsub): Add support for gzip compression
  • -
  • OPCUA (common.opcua): Add support for secret-store secrets
  • -
  • TLS (common.tls): Add support for passphrase-protected private key
  • -
  • Config (config): -
      -
    • Add framework for migrating deprecated plugins
    • -
    • Support shell like syntax for environment variable substitution
    • -
    -
  • -
  • Cloudwatch (inputs.cloudwatch): Add support for cross account observability
  • -
  • Directory Monitor (inputs.directory_monitor): Improve internal stats
  • -
  • Filecount (inputs.filecount): Add oldestFileTimestamp and newestFileTimestamp
  • -
  • GNMI (inputs.gnmi): -
      -
    • Allow canonical field names
    • -
    • Support Juniper GNMI Extension Header
    • -
    -
  • -
  • Internet Speed (inputs.internet_speed): Support multi-server test
  • -
  • Kafka Consumer (inputs.kafka_consumer): Add regular expression support for topics
  • -
  • Kubernetes (inputs.kubernetes): Extend kube_inventory plugin to include and extend resource quota, secret, node, and pod measurement
  • -
  • Nats Consumer (inputs.nats_consumer): Add receiver subject as tag
  • -
  • Netflow (inputs.netflow): -
      -
    • Add sFlow decoder
    • -
    • Allow custom PEN field mappings
    • -
    -
  • -
  • Nvidia SMI (inputs.nvidia_smi): Add additional memory related fields
  • -
  • Open Telemetry (inputs.opentelemetry): Add configurable span dimensions
  • -
  • Prometheus (inputs.prometheus): Control which pod metadata is added as tags
  • -
  • SQL (inputs.sql): -
      -
    • Add disconnected_servers_behavior field in the configuration
    • -
    • Add FlightSQL support
    • -
    -
  • -
  • SQL Server (inputs.sqlserver): -
      -
    • Add Azure Arc-enabled SQL MI support
    • -
    • Check SQL Server encryptionEnforce with xp_instance_regread
    • -
    -
  • -
  • StatsD (inputs.statsd): Add optional temporality and start_time tag for statsd metrics
  • -
  • Suricata (inputs.suricata): Add ability to parse drop or rejected
  • -
  • Vsphere (inputs.vsphere): Add vSAN extension
  • -
  • Internal (internal): Add additional faster compression options
  • -
  • Loki (outputs.loki): Add option for metric name label
  • -
  • Wavefront (outputs.wavefront): Add TLS and HTTP Timeout configuration fields
  • -
  • OpenTSDB (parsers.opentsdb): Add OpenTSDB data format parser
  • -
  • AWS EC2 (processors.aws_ec2): Add caching of imds and ec2 tags
  • -
  • Parser (processors.parser): Add merge with timestamp option
  • -
  • Scale (processors.scale): Add scaling by factor and offset
  • -
  • Template (processors.template): Allow tag to be a template
  • -
  • Prometheus Remote (serializer.prometheusremote): Improve performance
  • -
  • Test (test): Allow to capture all messages during test
  • -
-

Bug fixes

-
    -
  • Cloud PubSub (inputs.cloud_pubsub): Fix gzip decompression.
  • -
  • GNMI (inputs.gnmi): -
      -
    • Allow optional origin for update path.
    • -
    • Handle canonical field-name correctly for non-explicit subscriptions.
    • -
    -
  • -
  • MQTT (inputs.mqtt): ACK messages when persistence is enabled.
  • -
  • MySQL (inputs.mysql): Update MariaDB Dialect regex version check.
  • -
  • Netflow (inputs.netflow): -
      -
    • Fix field mappings.
    • -
    • Handle PEN messages correctly.
    • -
    -
  • -
  • Prometheus (inputs.prometheus): Avoid race when creating informer factory.
  • -
  • Socket Listener (inputs.socket_listener): Avoid noisy logs on closed connection.
  • -
  • Temp (inputs.temp): Ignore warnings and instead return only errors.
  • -
  • UPSD (inputs.upsd): Handle float battery.runtime value.
  • -
  • Internal (internal): Fix time parsing for abbreviated timezones.
  • -
  • SQL (outputs.sql): Use config.duration to correctly to parse toml config.
  • -
  • Wavefront (outputs.wavefront): Flush metric buffer before reaching overflow.
  • -
  • Lookup (processors.lookup): Do not strip tracking info.
  • -
  • Influx (serializers.influx): Restore disabled uint support by default.
  • -
-

Dependency updates

-
    -
  • Update cloud.google.com/go/monitoring from 1.13.0 to 1.14.0.
  • -
  • Update github.com/aliyun/alibaba-cloud-sdk-go from 1.62.193 to 1.62.337.
  • -
  • Update github.com/aws/aws-sdk-go-v2/feature/ec2/imds from 1.13.2 to 1.13.3.
  • -
  • Update github.com/aws/aws-sdk-go-v2/service/sts from 1.18.9 to 1.19.0.
  • -
  • Update github.com/Azure/azure-event-hubs-go/v3 from 3.4.0 to 3.5.0.
  • -
  • Update github.com/Azure/go-autorest/autorest from 0.11.28 to 0.11.29.
  • -
  • Update github.com/influxdata/influxdb-observability libraries from 0.3.3 to 0.3.15.
  • -
  • Update github.com/jackc/pgconn from 1.13.0 to 1.14.0.
  • -
  • Update github.com/jackc/pgtype from 1.12.0 to 1.14.0.
  • -
  • Update github.com/Mellanox/rdmamap to 1.1.0.
  • -
  • Update github.com/pion/dtls/v2 from 2.2.6 to 2.2.7.
  • -
  • Update github.com/prometheus/common from 0.43.0 to 0.44.0.
  • -
  • Update github.com/rabbitmq/amqp091-go from 1.8.0 to 1.8.1.
  • -
  • Update github.com/shirou/gopsutil from 3.23.4 to 3.23.5.
  • -
  • Update github.com/showwin/speedtest-go from 1.5.2 to 1.6.2.
  • -
  • Update github.com/urfave/cli/v2 from 2.23.5 to 2.25.5.
  • -
  • Update k8s.io/client-go from 0.26.2 to 0.27.2.
  • -
-

v1.26.3

-

Bug fixes

-
    -
  • GNMI (inputs.gnmi): Create selfstat to track connection state.
  • -
  • Graphite (outputs.graphite): Fix logic to reconnect with servers that were not up on agent startup.
  • -
  • Intel PMU (inputs.intel_pmu): Fix handling of the json perfmon format.
  • -
  • Prometheus Client (outputs.prometheus_client): Fix export_timestamp for v1 metric type.
  • -
  • Socket Listener (inputs.socket_listener): -
      -
    • Fix loss of connection tracking.
    • -
    • Fix race in tests.
    • -
    -
  • -
  • Stackdriver (outputs.stackdriver): -
      -
    • Allow for custom metric type prefix.
    • -
    • Group batches by timestamp.
    • -
    -
  • -
  • Starlark (processors.starlark): Do not reject tracking metrics twice.
  • -
  • Vsphere (inputs.vsphere): Specify the correct option for disconnected_servers_behavior.
  • -
  • Warp10 (outputs.warp10): Support Infinity/-Infinity/NaN values.
  • -
-

Dependency updates

-
    -
  • Update cloud.google.com/go/pubsub from 1.30.0 to 1.30.1.
  • -
  • Update github.com/aerospike/aerospike-client-go/v5 from 5.10.0 to 5.11.0.
  • -
  • Update github.com/antchfx/xpath to latest master for string-join().
  • -
  • Update github.com/aws/aws-sdk-go-v2 from 1.17.8 to 1.18.0.
  • -
  • Update github.com/Azure/go-autorest/autorest/adal from 0.9.22 to 0.9.23.
  • -
  • Update github.com/benbjohnson/clock from 1.3.0 to 1.3.3.
  • -
  • Update github.com/docker/distribution from 2.8.1 to 2.8.2.
  • -
  • Update github.com/fatih/color from 1.13.0 to 1.15.0.
  • -
  • Update github.com/netsampler/goflow2 from 1.1.1 to 1.3.3.
  • -
  • Update github.com/yuin/goldmark from 1.5.3 to 1.5.4.
  • -
  • Update go.opentelemetry.io/collector/pdata from 1.0.0-rc7 to 1.0.0-rcv0011.
  • -
  • Update golang.org/x/net from 0.8.0 to 0.9.0.
  • -
  • Update golang.org/x/net from 0.9.0 to 0.10.0.
  • -
  • Update golang.org/x/oauth2 from 0.5.0 to 0.7.0.
  • -
  • Update google.golang.org/api from 0.106.0 to 0.120.0.
  • -
  • Update govulncheck-action from 0.10.0 to 0.10.1.
  • -
  • Update prometheus from v1.8.2 to v2.42.0.
  • -
  • Update signalfx/golib from 3.3.46 to 3.3.50.
  • -
-

v1.26.2

-

Bug fixes

-
    -
  • Agent (agent): Pass quiet flag earlier.
  • -
  • Grok (parsers.grok): Fix nil metric for multiline inputs.
  • -
  • Lookup (processors.lookup): Fix tracking metrics.
  • -
  • Prometheus (inputs.prometheus): Add namespace option in k8s informer factory.
  • -
  • Socket Listener (inputs.socket_listener): Fix tracking of unix sockets.
  • -
-

Dependency updates

-
    -
  • Update github.com/aws/aws-sdk-go-v2/credentials from 1.13.15 to 1.13.20.
  • -
  • Update github.com/aws/aws-sdk-go-v2/service/cloudwatch from 1.21.6 to 1.25.9.
  • -
  • Update github.com/aws/aws-sdk-go-v2/service/cloudwatchlogs from 1.15.13 to 1.20.9.
  • -
  • Update github.com/aws/aws-sdk-go-v2/service/kinesis from 1.15.19 to 1.17.8.
  • -
  • Update github.com/aws/aws-sdk-go-v2/service/sts from 1.18.5 to 1.18.9.
  • -
  • Update github.com/docker/docker from 23.0.0 to 23.0.4.
  • -
  • Update github.com/openconfig/gnmi from 0.0.0-20220920173703-480bf53a74d2 to 0.9.1.
  • -
  • Update github.com/prometheus/common from 0.41.0 to 0.42.0.
  • -
  • Update github.com/safchain/ethtool from 0.2.0 to 0.3.0.
  • -
  • Update github.com/tinylib/msgp from 1.1.6 to 1.1.8.
  • -
  • Update github.com/vishvananda/netns from 0.0.2 to 0.0.4.
  • -
  • Update github.com/wavefronthq/wavefront-sdk-go from 0.11.0 to 0.12.0.
  • -
-

v1.26.1

-

Bug fixes

-
    -
  • Config (config): Return error on order set as string.
  • -
  • ethtool (inputs.ethtool): Check for nil.
  • -
  • execd (inputs.execd): Add option to set buffer size.
  • -
  • Graphite (outputs.graphite): Add custom regex to outputs.
  • -
  • Graphite (serializers.graphite): Allow for specifying regex to sanitize.
  • -
  • Internet Speed (inputs.internet_speed): Rename host tag to source.
  • -
  • Kubernetes (inputs.kubernetes): Apply timeout for the whole HTTP request.
  • -
  • Netflow (inputs.netflow): Use correct name in the build tag.
  • -
  • Procstat (inputs.procstat): Return tags of pids if lookup_error.
  • -
  • Prometheus (inputs.prometheus): -
      -
    • Correctly set timeout param.
    • -
    • Use set over add for custom headers.
    • -
    -
  • -
  • Secret Stores (secrets): -
      -
    • Add function to set a secret.
    • -
    • Minimize secret holding time.
    • -
    • Warn if OS limit for locked memory is too low.
    • -
    • Handle array of secrets correctly.
    • -
    -
  • -
  • systemd (systemd): Increase lock memory for service to 8192kb.
  • -
  • UPSD (inputs.upsd): Include ups.real_power.
  • -
-

Dependency updates

-
    -
  • Update github.com/antchfx/xpath from 1.2.3 to 1.2.4.
  • -
  • Update github.com/apache/thrift from 0.16.0 to 0.18.1.
  • -
  • Update github.com/Azure/azure-event-hubs-go/v3 from 3.3.20 to 3.4.0.
  • -
  • Update github.com/Azure/go-autorest/autorest/azure/auth from 0.5.11 to 0.5.12.
  • -
  • Update github.com/golang-jwt/jwt/v4 from 4.4.2 to 4.5.0.
  • -
  • Update github.com/jhump/protoreflect from 1.8.3-0.20210616212123-6cc1efa697ca to 1.15.1.
  • -
  • Update github.com/nats-io/nats.go from 1.19.0 to 1.24.0.
  • -
  • Update github.com/opencontainers/runc from 1.1.4 to 1.1.5.
  • -
  • Update github.com/pion/dtls/v2 from 2.2.4 to 2.2.6.
  • -
  • Update github.com/rabbitmq/amqp091-go from 1.7.0 to 1.8.0.
  • -
  • Update github.com/shirou/gopsutil from 3.23.2 to 3.23.3.
  • -
  • Update github.com/Shopify/sarama from 1.37.2 to 1.38.1.
  • -
  • Update github.com/sensu/sensu-go/api/core/v2 from 2.15.0 to 2.16.0.
  • -
  • Update github.com/tidwall/gjson from 1.14.3 to 1.14.4.
  • -
  • Update golang.org/x/net from 0.7.0 to 0.8.0.
  • -
  • Update modernc.org/sqlite from 1.19.2 to 1.21.0.
  • -
-

v1.26.0

-

Important Changes

-
    -
  • Static builds: Linux builds are now statically built. Other operating systems -were cross-built in the past and as a result, already static. Users should -not notice any change in behavior. The _static specific Linux binary is no -longer produced as a result.
  • -
  • telegraf.d behavior: The default behavior of reading -/etc/telegraf/telegraf.conf now includes any .conf files under -/etc/telegraf/telegraf.d/. This change will apply to the official Telegraf -Docker image as well. This will simplify Docker usage when using multiple -configuration files.
  • -
  • Default configuration: The telegraf config command and default config file -provided by Telegraf now includes all plugins and produces the same output -across all operating systems. Plugin comments specify what platforms are -supported or not.
  • -
  • State persistence: State persistence is now available in select plugins. This -will allow plugins to start collecting data, where they left off. A -configuration with state persistence cannot change or it will not be able to -recover.
  • -
-

New Plugins

-

Inputs

- -

Parsers

- -

Processors

-
    -
  • lookup (processors.lookup)
  • -
-

Features

-
    -
  • Always disable cgo support (static builds).
  • -
  • Plugin state-persistence.
  • -
  • Add /etc/telegraf/telegraf.d to default configuration file locations.
  • -
  • Print loaded configurations.
  • -
  • Accept durations given in days (e.g. 7d).
  • -
  • OAuth (common.oauth): Add audience parameter.
  • -
  • TLS (common.tls): Add enable flag.
  • -
  • CGroups (inputs.cgroup): Add support for cpu.stat.
  • -
  • Cisco Telemetry MDT (inputs.cisco_telemetry_mdt): Include delete field.
  • -
  • Disk (inputs.disk): Add label as tag.
  • -
  • DNS Query (inputs.dns_query): Add IP fields.
  • -
  • Docker Log (inputs.docker_log): Add state-persistence capabilities.
  • -
  • Ethtool (inputs.ethtool): Add support for link speed, duplex, etc.
  • -
  • GNMI (inputs.gnmi): Set max gRPC message size.
  • -
  • HA Proxy (inputs.haproxy): Add support for TCP endpoints in haproxy plugin.
  • -
  • HTTP Listener v2 (inputs.http_listener_v2): Add custom server HTTP headers.
  • -
  • Icinga2 (inputs.icinga2): Support collecting hosts, services, and endpoint metrics.
  • -
  • InfluxDB (inputs.influxdb): Collect uptime statistics.
  • -
  • Intel PowerStat (inputs.intel_powerstat): Add CPU base frequency metric and add support for new platforms.
  • -
  • Internet Speed (inputs.internet_speed): -
      -
    • Add the best server selection via latency and jitter field.
    • -
    • Server ID include and exclude filter.
    • -
    -
  • -
  • JTI OpenConfig Telemtry (inputs.jti_openconfig_telemetry): Set timestamp from data.
  • -
  • Modbus (inputs.modbus): -
      -
    • Add RS485 specific config options.
    • -
    • Add workaround to enforce reads from zero for coil registers.
    • -
    • Allow to convert coil and discrete registers to boolean.
    • -
    -
  • -
  • MySQL (inputs.mysql): Add secret-store support.
  • -
  • Open Weather Map (inputs.openweathermap): Add snow parameter.
  • -
  • Processes (inputs.processes): Add use_sudo option for BSD.
  • -
  • Prometheus (inputs.prometheus): Use namespace annotations to filter pods to be scraped.
  • -
  • Redfish (inputs.redfish): Add power control metric.
  • -
  • SQL Server (inputs.sqlserver): Get database pages performance counter.
  • -
  • Stackdriver (inputs.stackdriver): Allow filtering by resource metadata labels.
  • -
  • Statsd (inputs.statsd): Add pending messages stat and allow to configure number of threads.
  • -
  • Vsphere (inputs.vsphere): Flag for more lenient behavior when connect fails on startup.
  • -
  • Windows Event Log (inputs.win_eventlog): Add state-persistence capabilities.
  • -
  • Windows Performance Counters (inputs.win_perf_counters): Add remote system support.
  • -
  • Wireguard (inputs.wireguard): Add allowed_peer_cidr field.
  • -
  • x509 Certificates (inputs.x509_cert): -
      -
    • Add OCSP stapling information for leaf certificates.
    • -
    • Add tag for certificate type-classification.
    • -
    -
  • -
  • MQTT (outputs.mqtt): -
      -
    • Add option to specify topic layouts.
    • -
    • Add support for MQTT 5 publish properties.
    • -
    • Enhance routing capabilities.
    • -
    -
  • -
  • XPath Parser (parsers.xpath): Add timezone handling.
  • -
  • Converter Processor (processors.converter): Convert tag or field as metric timestamp.
  • -
  • Unpivot Processor (processors.unpivot): Add mode to create new metrics.
  • -
  • Secret Stores: -
      -
    • Add command-line option to specify password.
    • -
    • Add support for additional input plugins.
    • -
    • Convert many output plugins.
    • -
    -
  • -
-

Bug fixes

-
    -
  • Allow graceful shutdown on interrupt (e.g. Ctrl-C).
  • -
  • Only rotate log on SIGHUP if needed.
  • -
  • AMQP Consumer (inputs.amqp_consumer): -
      -
    • Avoid deprecations when handling defaults.
    • -
    • Fix panic on Stop() if not connected successfully.
    • -
    -
  • -
  • ethtool (inputs.ethtool): Close namespace file to prevent crash.
  • -
  • statsd (inputs.statsd): On close, verify listener is not nil.
  • -
-

Dependency updates

-
    -
  • Update cloud.google.com/go/storage from 1.28.1 to 1.29.0.
  • -
  • Update github.com/Azure/go-autorest/autorest/adal from 0.9.21 to 0.9.22.
  • -
  • Update github.com/aliyun/alibaba-cloud-sdk-go from 1.62.77 to 1.62.193.
  • -
  • Update github.com/aws/aws-sdk-go-v2/credentials from 1.13.2 to 1.13.15.
  • -
  • Update github.com/aws/aws-sdk-go-v2/service/timestreamwrite from 1.14.5 to 1.16.0.
  • -
  • Update github.com/coocood/freecache from 1.2.2 to 1.2.3.
  • -
  • Update github.com/karrick/godirwalk from v1.17.0 to v1.16.2.
  • -
  • Update github.com/opencontainers/runc from 1.1.3 to 1.1.4.
  • -
  • Update github.com/opensearch-project/opensearch-go/v2 from 2.1.0 to 2.2.0.
  • -
  • Update github.com/openzipkin-contrib/zipkin-go-opentracing from 0.4.5 to 0.5.0.
  • -
  • Update github.com/rabbitmq/amqp091-go from 1.5.0 to 1.7.0.
  • -
  • Update github.com/shirou/gopsutil from v3.22.12 to v3.23.2.
  • -
  • Update github.com/stretchr/testify from 1.8.1 to 1.8.2.
  • -
  • Update OpenTelemetry from 0.3.1 to 0.3.3.
  • -
-

v1.25.3

-

Bug fixes

-
    -
  • Fix reload config on config update/SIGHUP.
  • -
  • Bond (inputs.bond): Reset slave stats for each interface.
  • -
  • Cloudwatch (inputs.cloudwatch): Verify endpoint is not nil.
  • -
  • LVM (inputs.lvm): Add options to specify path to binaries.
  • -
  • XPath (parsers.xpath): Fix panic for JSON name expansion.
  • -
  • JSON (serializers.json): Fix stateful transformations.
  • -
-

Dependency updates

-
    -
  • Update cloud.google.com/go/pubsub from 1.27.1 to 1.28.0.
  • -
  • Update github.com/containerd/containerd from 1.6.8 to 1.6.18.
  • -
  • Update github.com/go-logfmt/logfmt from 0.5.1 to 0.6.0.
  • -
  • Update github.com/gofrs/uuid from 4.3.1 to 5.0.0.
  • -
  • Update github.com/gophercloud/gophercloud from 1.0.0 to 1.2.0.
  • -
  • Update github.com/pion/dtls/v2 from 2.1.5 to 2.2.4.
  • -
  • Update golang.org/x/net from 0.5.0 to 0.7.0.
  • -
  • Update golang.org/x/sys from 0.4.0 to 0.5.0.
  • -
  • Update google.golang.org/grpc from 1.52.3 to 1.53.0.
  • -
  • Update k8s.io/apimachinery from 0.25.3 to 0.25.6.
  • -
  • Update testcontainers from 0.14.0 to 0.18.0.
  • -
-

v1.25.2

-

Bug fixes

-
    -
  • Only read the config once.
  • -
  • fix link to license for Google flatbuffers.
  • -
  • Cisco Telemetry MDT (inputs.cisco_telemetry_mdt): Check subfield sizes to avoid panics.
  • -
  • Cloudwatch (inputs.cloudwatch): Enable custom endpoint support.
  • -
  • Conntrack (inputs.conntrack): Resolve segfault when setting collect field.
  • -
  • GNMI (inputs.gnmi): Handle both new-style tag_subscription and old-style tag_only.
  • -
  • MongoDB (inputs.mongodb): -
      -
    • Improve error logging.
    • -
    • SIGSEGV when restarting MongoDB node.
    • -
    -
  • -
  • MySQL (inputs.mysql): Avoid side-effects for TLS between plugin instances.
  • -
  • Prometheus (inputs.prometheus): Deprecate and rename the timeout variable.
  • -
  • Tail (inputs.tail): Fix typo in the README.
  • -
  • UPSD (inputs.upsd): Add additional fields.
  • -
  • x509 Cert (inputs.x509_cert): Fix Windows path handling.
  • -
  • Prometheus Client (outputs.prometheus_client): Expire with ticker, not add/collect.
  • -
  • Secret Stores: Check store id format and presence.
  • -
-

Dependency updates

-
    -
  • Update cloud.google.com/go/bigquery from 1.44.0 to 1.45.0.
  • -
  • Update github.com/99designs/keyring from 1.2.1 to 1.2.2.
  • -
  • Update github.com/antchfx/xmlquery from 1.3.12 to 1.3.15.
  • -
  • Update github.com/antchfx/xpath from 1.2.2 to 1.2.3.
  • -
  • Update github.com/coreos/go-semver from 0.3.0 to 0.3.1.
  • -
  • Update github.com/moby/ipvs from 1.0.2 to 1.1.0.
  • -
  • Update github.com/multiplay/go-ts3 from 1.0.1 to 1.1.0.
  • -
  • Update github.com/prometheus/client_golang from 1.13.1 to 1.14.0.
  • -
  • Update github.com/shirou/gopsutil from 3.22.9 to 3.22.12.
  • -
  • Update go.mongodb.org/mongo-driver from 1.11.0 to 1.11.1.
  • -
  • Update golang/x dependencies.
  • -
  • Update google.golang.org/grpc from 1.51.0 to 1.52.0.
  • -
  • Update google.golang.org/grpc from 1.52.0 to 1.52.3.
  • -
-

v1.25.1

-

Bug fixes

-
    -
  • Catch non-existing commands and error out.
  • -
  • Correctly reload configuration files.
  • -
  • Handle float time with fractions of seconds correctly.
  • -
  • Only set default snmp after reading all configs.
  • -
  • Allow any 2xx status code.
  • -
  • Kafka: Add keep-alive period setting for input and output.
  • -
  • Cisco Telemetry MDT (inputs.cisco_telemetry_mdt): Add operation-metric and class-policy prefix.
  • -
  • Exec (inputs.exec): Restore pre-v1.21 behavior for CSV data_format.
  • -
  • GNMI (inputs.gnmi): Update configuration documentation.
  • -
  • Logstash (inputs.logstash): Collect opensearch specific stats.
  • -
  • MySQL (inputs.mysql): Revert slice declarations with non-zero initial length.
  • -
  • OPC UA (inputs.opcua): Fix opcua and opcua-listener for servers using password-based auth.
  • -
  • Prometheus (inputs.prometheus): -
      -
    • Correctly track deleted pods.
    • -
    • Set the timeout for slow running API endpoints correctly.
    • -
    -
  • -
  • SQL Server (inputs.sqlserver): -
      -
    • Add more precise version check.
    • -
    • Added own SPID filter.
    • -
    • SqlRequests include sleeping sessions with open transactions.
    • -
    • Suppress error on secondary replicas.
    • -
    -
  • -
  • UPSD (inputs.upsd): -
      -
    • Always convert to float.
    • -
    • Ensure firmware is always a string.
    • -
    -
  • -
  • Windows Event Log (inputs.win_eventlog): Handle remote events more robustly.
  • -
  • x509 Cert (inputs.x509_cert): Fix off-by-one when adding intermediate certificates.
  • -
  • Loki (outputs.loki): Return response body on error.
  • -
  • JSON v2 parser (parsers.json_v2): In case of invalid json, log message to debug log.
  • -
  • Secret Stores: -
      -
    • Cleanup duplicate printing.
    • -
    • Fix handling of “id” and print failing secret-store.
    • -
    • Fix handling of TOML strings.
    • -
    -
  • -
-

Dependency updates

-
    -
  • Update cloud.google.com/go/storage from 1.23.0 to 1.28.1.
  • -
  • Update github.com/antchfx/jsonquery from 1.3.0 to 1.3.1.
  • -
  • Update github.com/aws/aws-sdk-go-v2 from 1.17.1 to 1.17.3.
  • -
  • Update github.com/aws/aws-sdk-go-v2/service/ec2 from 1.54.4 to 1.80.1.
  • -
  • Update github.com/denisenkom/go-mssqldb from 0.12.0 to 0.12.3.
  • -
  • Update github.com/eclipse/paho.mqtt.golang from 1.4.1 to 1.4.2.
  • -
  • Update github.com/hashicorp/consul/api from 1.15.2 to 1.18.0.
  • -
  • Update github.com/karrick/godirwalk from 1.16.1 to 1.17.0.
  • -
  • Update github.com/kardianos/service from 1.2.1 to 1.2.2.
  • -
  • Update github.com/nats-io/nats-server/v2 from 2.9.4 to 2.9.9.
  • -
-

v1.25.0

-

New Plugins

-

Inputs

- -

Parsers

- -

Features

-
    -
  • Add arm64 Windows builds to nightly and CI.
  • -
  • Add method to inform of deprecated plugin option values.
  • -
  • Add Secret-store implementation.
  • -
  • Deprecate active usage of netsnmp translator.
  • -
-

Plugin updates

-
    -
  • Kafka (common.kafka): Add exponential backoff when connecting or -reconnecting and allow plugin to start without making initial connection.
  • -
  • AMQP Consumer (inputs.amqp_consumer): Determine content encoding automatically.
  • -
  • APCUPSD (inputs.apcupsd): Add new fields: -
      -
    • status
    • -
    • cumulative_time_on_battery_ns
    • -
    • last_transfer
    • -
    • number_transfers
    • -
    -
  • -
  • CGroup (inputs.cgroups): -
      -
    • Do not abort on first error.
    • -
    • Print message once.
    • -
    -
  • -
  • Conntrack (inputs.conntrack): Parse conntrack stats.
  • -
  • DiskIO (inputs.diskio): Allow selecting devices by ID.
  • -
  • Ethtool (inputs.ethtool): -
      -
    • Gather statistics from namespaces.
    • -
    • Possibility to skip gathering metrics for downed interfaces
    • -
    -
  • -
  • HTTP Response (inputs.http_response): -
      -
    • Add setting for TLS renegotiation method.
    • -
    • Add User-Agent header.
    • -
    -
  • -
  • Kafka Consumer (inputs.kafka_consumer): Add Sarama debug logs.
  • -
  • KNX (inputs.knx_listener): Add support for TCP as a transport protocol.
  • -
  • Kubernetes (inputs.kubernetes): Allow fetching kublet metrics remotely.
  • -
  • Modbus (inputs.modbus): -
      -
    • Add 8-bit integer types.
    • -
    • Add configuration option to pause after connect.
    • -
    • Add support for half-precision floats (float16).
    • -
    • Optimize grouped requests.
    • -
    • Optimize requests.
    • -
    -
  • -
  • OPC UA (inputs.opcua): Use regular reads instead of registered reads.
  • -
  • PowerDNS Recursor (inputs.powerdns_recursor): -Support for new PowerDNS recursor control protocol.
  • -
  • Prometheus (inputs.prometheus): -Add support for custom headers. -
      -
    • Allow explicit scrape configuration without annotations.
    • -
    • Use system wide proxy settings.
    • -
    -
  • -
  • S.M.A.R.T. (inputs.smart): Add additional SMART metrics that indicate/predict device failure.
  • -
  • SNMP (inputs.snmp): Convert enum values.
  • -
  • Socket Listener (inputs.socket_listener): Specify message separator for streams.
  • -
  • SQL Server (inputs.sqlserver ): -
      -
    • Add @@SERVICENAME and SERVERPROPERTY(IsClustered) in measurement sqlserver_server_properties.
    • -
    • Add data and log used space metrics for Azure SQL DB.
    • -
    • Add metric available_physical_memory_kb in sqlserver_server_properties.
    • -
    • Introduce timeout for query execution.
    • -
    -
  • -
  • System (inputs.system): Collect unique user count logged in.
  • -
  • Tail (inputs.tail): -
      -
    • Add option to preserve newlines for multiline data
    • -
    • Allow handling of quoted strings spanning multiple lines
    • -
    -
  • -
  • Tomcat (inputs.tomcat): Add source tag.
  • -
  • Azure Data Explorer (outputs.azure_data_explorer): -Add support for streaming ingestion for ADX output plugin.
  • -
  • Event Hubs (outputs.event_hubs): Expose max message size batch option.
  • -
  • Graylog (outputs.graylog): Implement optional connection retries.
  • -
  • Timestream (outputs.timestream): Support ingesting multi-measures.
  • -
  • Binary parser (parsers.binary) Handle hex-encoded inputs.
  • -
  • CSV parser (parsers.csv): -
      -
    • Add option for overwrite tags
    • -
    • Support null delimiters
    • -
    -
  • -
  • Grok parser (parsers.grok): Add option to allow multiline messages.
  • -
  • XPath parser (parsers.xpath): -
      -
    • Add option to skip (header) bytes.
    • -
    • Allow to specify byte-array fields to encode in HEX.
    • -
    -
  • -
  • JSON serializer (serializers.json) Support serializing JSON nested in string fields.
  • -
-

Bug fixes

-
    -
  • Run processors in configuration order.
  • -
  • Watch for changes in configuration files in config directories.
  • -
  • Conntrack (inputs.conntrack): Skip gather tests if conntrack kernel module is not loaded.
  • -
  • Filecount (inputs.filecount): Revert library version.
  • -
  • Kubernetes Inventory (inputs.kube_inventory): -Change default token path, use in-cluster config by default.
  • -
  • Modbus (inputs.modbus): -
      -
    • Add workaround to read field in separate requests.
    • -
    • Fix Windows COM-port path.
    • -
    • Fix default value of transmission mode.
    • -
    -
  • -
  • MongoDB (inputs.mongodb): Fix connection leak triggered by configuration reload.
  • -
  • OPC UA (inputs.opcua): -
      -
    • Add support for OPC UA datetime values.
    • -
    • Parse full range of status codes with uint32.
    • -
    -
  • -
  • Prometheus (inputs.prometheus): Respect selectors when scraping pods.
  • -
  • SQL (inputs.sql): Cast measurement_column to string.
  • -
  • VSphere (inputs.vsphere): Eliminate duplicate samples.
  • -
  • ZFS (inputs.zfs): Unbreak dataset stat gathering in case listsnaps is enabled on a zfs pool.
  • -
  • Azure Data Explorer (outputs.azure_data_explorer): Update test call to NewSerializer.
  • -
  • Parser processor (processors.parser): Handle empty metric names correctly.
  • -
-

Dependency updates

-
    -
  • Update github.com/aliyun/alibaba-cloud-sdk-go from 1.61.1836 to 1.62.77
  • -
  • Update github.com/gosnmp/gosnmp from 1.34.0 to 1.35.0
  • -
  • Update OpenTelemetry from 0.2.30 to 0.2.33
  • -
-

v1.24.4

-

Bug fixes

-
    -
  • Amazon CloudWatch (inputs.cloudwatch): Correctly handle multiple namespaces.
  • -
  • Directory Monitor (inputs.directory_monitor): Close input file before removal.
  • -
  • GMNI (inputs.gnmi): -
      -
    • Handle decimal_val as per gnmi v0.8.0.
    • -
    • Do not provide empty prefix for subscription request.
    • -
    • Fix empty name for Sonic devices.
    • -
    -
  • -
  • Ping (inputs.ping): Avoid -x/-X on FreeBSD 13 and newer with ping6.
  • -
  • Prometheus input (inputs.prometheus): Correctly default to port 9102.
  • -
  • Redis Sentinel (input.redis_sentinel): Fix sentinel and replica stats gathering.
  • -
  • Socket Listener (inputs.socket_listener): Ensure connections are closed.
  • -
  • Datadog (output.datadog): Log response in case of non 2XX response from API
  • -
  • Prometheus output (outputs.prometheus): Expire metrics correctly during adds.
  • -
  • Yandex Cloud Monitoring (outputs.yandex_cloud_monitoring): Catch int64 values.
  • -
-

Dependency updates

-
    -
  • Update github.com/aliyun/alibaba-cloud-sdk-go from 1.61.1818 to 1.61.1836
  • -
  • Update github.com/prometheus/client_golang from 1.13.0 to 1.13.1
  • -
  • Update github.com/aws/aws-sdk-go-v2/service/timestreamwrite from 1.13.12 to 1.14.5
  • -
  • Update github.com/aws/aws-sdk-go-v2/feature/ec2/imds from 1.12.17 to 1.12.19
  • -
  • Update github.com/gofrs/uuid from v4.3.0 to v4.3.1
  • -
  • Update github.com/aws/aws-sdk-go-v2/service/sts from 1.16.19 to 1.17.2
  • -
  • Update github.com/urfave/cli/v2 from 2.16.3 to 2.23.5
  • -
  • Update github.com/Azure/azure-event-hubs-go/v3 from 3.3.18 to 3.3.20
  • -
  • Update github.com/showwin/speedtest-go from 1.1.5 to 1.2.1
  • -
  • Update github.com/aws/aws-sdk-go-v2/credentials from 1.12.21 to 1.13.2
  • -
  • Update github.com/yuin/goldmark from 1.5.2 to 1.5.3
  • -
  • Update cloud.google.com/go/pubsub from 1.25.1 to 1.26.0
  • -
  • Update go.mongodb.org/mongo-driver from 1.10.2 to 1.11.0
  • -
-

v1.24.3

-

Bug fixes

-
    -
  • Restore warning on unused configuration options.
  • -
  • Correct default value of enable_tls.
  • -
  • Update systemd unit description.
  • -
  • Fix panic due to tickers slice being off-by-one in size.
  • -
  • Set default parser.
  • -
  • Correctly setup processors
  • -
  • Fix problem with metrics not exposed by plugins.
  • -
  • Directory Monitor (inputs.directory_monitor): Allow cross filesystem directories.
  • -
  • Kafka (inputs.kafka): Switch to Sarama’s new consumer group rebalance strategy setting.
  • -
  • Modbus (inputs.modbus): -
      -
    • Add slave ID to failing connection.
    • -
    • Handle field-measurement definitions correctly on duplicate field check
    • -
    • Improve duplicate field checks
    • -
    -
  • -
  • OPC UA (inputs.opcua): Add metric tags to node.
  • -
  • Syslog (inputs.syslog): Print error when no error or message given.
  • -
  • Zookeeper (inputs.zookeeper): Add the ability to parse floats as floats.
  • -
  • JSON v2 parser (parsers.json_v2): Remove BOM before parsing.
  • -
  • Parser processor (processors.parser): Keep name of original metric if parser doesn’t return one.
  • -
  • Splunk Metric serializer (serializers.splunkmetric): Provide option to remove event metric tag.
  • -
-

Features

-
    -
  • Support sections in markdown.
  • -
-

Dependency updates

-
    -
  • Update github.com/snowflakedb/gosnowflake from 1.6.2 to 1.6.13
  • -
  • Update github.com/sensu/sensu-go/api/core/v2 from 2.14.0 to 2.15.0
  • -
  • Update github.com/gofrs/uuid from 4.2.0& to 4.3.0
  • -
  • Update github.com/hashicorp/consul/api from 1.14.0 to 1.15.2
  • -
  • Update github.com/aws/aws-sdk-go-v2/credentials from 1.12.5 to 1.12.21
  • -
  • Update github.com/aws/aws-sdk-go-v2/service/cloudwatch
  • -
  • Update github.com/aws/aws-sdk-go-v2/config
  • -
  • Update k8s.io/apimachinery from 0.25.1 to 0.25.2
  • -
  • Update k8s.io/api from 0.25.0 to 0.25.2
  • -
  • Update k8s.io/api from 0.25.2 to 0.25.3
  • -
  • Update modernc.org/sqlite from 1.17.3 to 1.19.2
  • -
  • Update github.com/signalfx/golib/v3 from 3.3.45 to 3.3.46
  • -
  • Update github.com/yuin/goldmark from 1.4.13 to 1.5.2
  • -
  • Update cloud.google.com/go/bigquery from 1.40.0 to 1.42.0
  • -
  • Update github.com/aws/aws-sdk-go-v2/service/kinesis
  • -
  • Update github.com/aliyun/alibaba-cloud-sdk-go
  • -
  • Update github.com/Shopify/sarama from 1.36.0 to 1.37.2
  • -
  • Update testcontainers-go from 0.13.0 to 0.14.0 and address breaking change
  • -
  • Update modernc.org/libc from v1.20.3 to v1.21.2
  • -
  • Update github.com/aws/aws-sdk-go-v2/service/dynamodb
  • -
  • Update google.golang.org/api from 0.95.0 to 0.100.0
  • -
  • Update github.com/gopcua/opcua from 0.3.3 to 0.3.7
  • -
  • Update github.com/prometheus/client_model from 0.2.0 to 0.3.0
  • -
  • Update cloud.google.com/go/monitoring from 1.5.0 to 1.7.0
  • -
  • Update github.com/nats-io/nats-server/v2 from 2.8.4 to 2.9.4
  • -
-

v1.24.2

-

Bug fixes

-
    -
  • Support old style of filtering sample configurations in CLI.
  • -
  • Enable TLS in Kafka plugins without custom configuration.
  • -
  • Avoid Ethtool internal name conflict with AWS.
  • -
-

Input plugin updates

-
    -
  • InfluxDB Listener (influxdb_listener): Error on invalid precision.
  • -
  • Internet speed (internet_speed): Rename enable_file_download to match upstream intent.
  • -
  • MongoDB (mongodb): Start plugin correctly.
  • -
  • MQTT Consumer (mqtt_consumer): Rework connection and message tracking.
  • -
-

Parser updates

-
    -
  • XPath (xpath): Handle floating-point times correctly.
  • -
  • Allow specifying the Influx parser type.
  • -
-

Dependency updates

-
    -
  • Update dependencies for OpenBSD support.
  • -
  • Update k8s.io/apimachinery from 0.25.0 to 0.25.1.
  • -
  • Update github.com/aerospike/aerospike-client-go/v5 from 5.9.0 to 5.10.0.
  • -
  • Update github.com/nats-io/nats.go from 1.16.0 to 1.17.0.
  • -
  • Replace go-ping with pro-bing.
  • -
  • Update go.mongodb.org/mongo-driver from 1.10.1 to 1.10.2.
  • -
  • Update github.com/aws/smithy-go from 1.13.2 to 1.13.3.
  • -
  • Update github.com/rabbitmq/amqp091-go from 1.4.0 to 1.5.0.
  • -
  • Update github.com/docker/distribution from v2.7.1 to v2.8.1.
  • -
-

v1.24.1

-

Bug fixes

-
    -
  • Clear error message when provided configuration is not a text file.
  • -
  • Enable global confirmation for installing mingw.
  • -
-

Input plugin updates

-
    -
  • Ceph (ceph): Modernize metrics.
  • -
  • Modbus (modbus): Do not fail if a single server reports errors.
  • -
  • NTPQ (ntpq): Handle pools with -.
  • -
-

Parser updates

-
    -
  • CSV (csv): Remove direct check.
  • -
  • XPath (xpath): Add array index when expanding names.
  • -
  • Fix memory leak for plugins using ParserFunc.
  • -
  • Unwrap parsers and remove some special handling.
  • -
  • processors.parser: Add option to parse tags
  • -
-

Dependency updates

-
    -
  • Update cloud.google.com/go/pubsub from 1.24.0 to 1.25.1.
  • -
  • Update github.com/urfave/cli/v2 from 2.14.1 to 2.16.3.
  • -
  • Update github.com/aws/aws-sdk-go-v2/service/ec2.
  • -
  • Update github.com/wavefronthq/wavefront-sdk-go.
  • -
  • Update cloud.google.com/go/bigquery from 1.33.0 to 1.40.0.
  • -
-

v1.24.0

-

Breaking change

-
    -
  • Set default minimum TLS version to v1.2 for security reasons on both server and client connections. -This is a change from the previous defaults (TLS v1.0) on the server configuration and might break clients relying on older TLS versions. -Older versions can be manually reverted on a per-plugin basis using the tls_min_version option in the plugins required.
  • -
-

Features

-
    -
  • Create custom builder to scan a Telegraf configuration file for the plugin files being defined and builds a new binary only including these plugins.
  • -
  • Add license checking tool.
  • -
  • Add metrics for member and replica-set average health of MongoDB.
  • -
  • Allow collecting node-level metrics for Couchbase buckets.
  • -
  • Make config subcommand.
  • -
-

Bug fixes

-
    -
  • Add version number to MacOS packages.
  • -
  • Backport sync sample.conf and README.md files.
  • -
  • Fix to parsing errors in Datadog mode.
  • -
  • Clean up after Redis merge.
  • -
  • Refactor Telegraf version.
  • -
  • Remove shell execution for license-checker.
  • -
-

New plugins

-

Inputs

- -

Outputs

- -

Serializers

- -

Input plugin updates

-
    -
  • Nats Consumer (nats_consumer): Add simple support for jetstream subjects.
  • -
  • Cisco Telemetry MDT (cisco_telemetry_mdt): Add GRPC Keepalive/timeout configuration options.
  • -
  • Directory Monitor (directory_monitor): -
      -
    • Support paths for files_to_ignore and files_to_monitor.
    • -
    • Traverse subdirectories.
    • -
    -
  • -
  • Kafka Consumer (kafka_consumer): Option to set default fetch message bytes.
  • -
  • Linux CPU (linux_cpu): Add plugin to collect CPU metrics on Linux.
  • -
  • Logstash (logstash): Record number of failures.
  • -
  • Modbus (modbus): Error out on requests with no fields defined.
  • -
  • MQTT Consumer (mqtt_consumer): Add incoming MQTT message size calculation.
  • -
  • Nginx Plus API (nginx_plus_api) Gather limit_reqs metrics.
  • -
  • NTPQ (ntpq): -
      -
    • Add option to specify command flags.
    • -
    • Add possibility to query remote servers.
    • -
    • Allow to specify reach output format.
    • -
    -
  • -
  • Openstack (openstack): Add allow_reauth configuration option.
  • -
  • Smart (smart): Collect SSD endurance information where available in smartctl.
  • -
  • SQL Server (sqlserver): -
      -
    • Add database name to IO stats for MI.
    • -
    • Improved filtering for active requests.
    • -
    • Fix filtering for sqlAzureMIRequests and sqlAzureDBRequests.
    • -
    -
  • -
  • StatsD (statsd): Add median timing calculation.
  • -
  • Syslog (syslog): Log remote host as source tag.
  • -
  • x509 Cert (x509_cert): -
      -
    • Add SMTP protocol.
    • -
    • Add proxy support.
    • -
    • Multiple sources with non-overlapping DNS entries.
    • -
    -
  • -
  • RabbitMQ (rabbitmq): Add support for head_message_timestamp metric.
  • -
  • Redis (redis): Add Redis 6 ACL authorization support.
  • -
  • Jolokia 2 (jolokia2): Add optional origin header.
  • -
  • MongoDB (mongodb): Add an option to bypass connection errors on start.
  • -
  • OPC UA (opcua): Assign node ID correctly.
  • -
  • Prometheus (prometheus): Run outside Kubernetes cluster error.
  • -
  • UPSD (upsd): Move to new sample.conf style.
  • -
-

Output plugin updates

-
    -
  • Cloudwatch (cloudwatch): Add proxy support.
  • -
  • MQTT (mqtt): Add support for MQTT protocol version 5.
  • -
  • AMQP (amqp): Add proxy support.
  • -
  • Graphite (graphite): Retry connecting to servers with failed send attempts.
  • -
  • Groundwork (groundwork): -
      -
    • Improve metric parsing to extend output.
    • -
    • Add default appType as configuration option.
    • -
    -
  • -
  • Redis Time Series (redistimeseries): Add integration test
  • -
  • SQL (sql): Add settings for Go sql.DB settings.
  • -
  • ExecD (execd): Fix error when partially unserializable metrics are written.
  • -
  • Wavefront (wavefront): Update Wavefront SDK and use non-deprecated APIs.
  • -
-

Serializer updates

-
    -
  • JSON (json): Add new json_transformation option transform outputted JSON. This new option can be used to transform the JSON output using the JSONata language to accommodate for requirements on the receiver side. The setting can also filter and process JSON data points.
  • -
  • Prometheus (prometheus): -
      -
    • Provide option to reduce payload size by removing HELP from payload
    • -
    • Sort labels in prometheusremotewrite serializer
    • -
    -
  • -
-

Parser updates

-
    -
  • Migrate parsers to new style.
  • -
  • XPath (xpath): Add support for returning underlying data types.
  • -
  • CSV (csv): Add reset-mode flag.
  • -
-

Processor updates

-
    -
  • Starlark (starlark): Add benchmark for tag concatenation.
  • -
-

Dependency updates

-
    -
  • Update github.com/jackc/pgx/v4 from 4.16.1 to 4.17.0.
  • -
  • Update github.com/Azure/go-autorest/autorest from 0.11.24 to 0.11.28.
  • -
  • Update github.com/aws/aws-sdk-go-v2/service/ec2 from 1.51.2 to 1.52.1
  • -
  • Update github.com/urfave/cli/v2 from 2.3.0 to 2.11.2.
  • -
  • Update github.com/aws/aws-sdk-go-v2/service/timestreamwrite from 1.13.6 to 1.13.12.
  • -
  • Update github.com/aliyun/alibaba-cloud-sdk-go from 1.61.1695 to 1.61.1727.
  • -
  • Update go.mongodb.org/mongo-driver from 1.9.1 to 1.10.1.
  • -
  • Update github.com/wavefronthq/wavefront-sdk-go from 0.10.1 to 0.10.2.
  • -
  • Update github.com/aws/aws-sdk-go-v2/service/sts from 1.16.7 to 1.16.13.
  • -
  • Update github.com/aerospike/aerospike-client-go/v5 from 5.7.0 to 5.9.0.
  • -
  • Update github.com/hashicorp/consul/api from 1.13.1 to 1.14.0.
  • -
  • Update github.com/tidwall/gjson from 1.14.1 to 1.14.3.
  • -
  • Update github.com/rabbitmq/amqp091-go from 1.3.4 to 1.4.0.
  • -
  • Update github.com/aws/aws-sdk-go-v2/service/dynamodb from 1.15.10 to 1.16.1.
  • -
  • Update github.com/gophercloud/gophercloud from 0.25.0 to 1.0.0.
  • -
  • Update k8s.io/client-go from 0.24.3 to 0.25.0.
  • -
  • Update github.com/aws/aws-sdk-go-v2/feature/ec2/imds from 1.12.11 to 1.12.13.
  • -
  • Update github.com/urfave/cli/v2 from 2.11.2 to 2.14.1.
  • -
  • Update gonum.org/v1/gonum from 0.11.0 to 0.12.0.
  • -
  • Update github.com/Azure/azure-kusto-go from 0.7.0 to 0.8.0.
  • -
  • Update google.golang.org/grpc from 1.48.0 to 1.49.0.
  • -
-

v1.23.4

-

Bug fixes

-
    -
  • Update github.com/lxc/lxd to be able to run tests.
  • -
  • Sync sql output and input build constraints to handle loong64 in go1.19.
  • -
  • Updating credentials file to not use endpoint_url parameter.
  • -
  • Cloudwatch (inputs.cloudwatch): Customize batch size when querying
  • -
  • Kubernetes Inventor (inputs.kube_inventory): Send file location to enable token auto-refresh.
  • -
  • Kubernetes (inputs.kubernetes): Refresh token from file at each read.
  • -
  • MongoDB (inputs.mongodb): Update version check for newer versions.
  • -
  • OPC UA (inputs.opcua): Return an error with mismatched types.
  • -
  • SQL Server (inputs.sqlserver): Set lower deadlock priority.
  • -
  • Stackdriver Google Cloud Monitoring (inputs.stackdriver): Handle when no buckets are available.
  • -
  • Fix Linter issues
  • -
-

Features

-
    -
  • Add coralogix dialect to opentelemetry
  • -
-

Dependency updates

-
    -
  • Update github.com/testcontainers/testcontainers-go from 0.12.0 to 0.13.0.
  • -
  • Update github.com/apache/thrift from 0.15.0 to 0.16.0.
  • -
  • Update github.com/aws/aws-sdk-go-v2/service/ec2 from 1.46.0 to 1.51.0.
  • -
  • Update all go.opentelemetry.io dependencies.
  • -
  • Update github.com/go-ldap/ldap/v3 from 3.4.1 to 3.4.4.
  • -
  • Update github.com/karrick/godirwalk from 1.16.1 to 1.17.0.
  • -
  • Update github.com/vmware/govmomi from 0.28.0 to 0.29.0.
  • -
  • Update github.com/eclipse/paho.mqtt.golang from 1.3.5 to 1.4.1.
  • -
  • Update github.com/shirou/gopsutil/v3 from 3.22.4 to 3.22.7.
  • -
  • Update github.com/aws/aws-sdk-go-v2/service/cloudwatchlogs.
  • -
  • Update github.com/Azure/go-autorest/autorest/adal.
  • -
  • Update github.com/pion/dtls/v2 from 2.0.13 to 2.1.5.
  • -
  • Update github.com/Azure/azure-event-hubs-go/v3.
  • -
  • Update github.com/aws/aws-sdk-go-v2/service/cloudwatch.
  • -
  • Update github.com/aws/aws-sdk-go-v2/service/kinesis.
  • -
  • Update github.com/aws/aws-sdk-go-v2/service/dynamodb.
  • -
  • Update github.com/signalfx/golib/v3 from 3.3.43 to 3.3.45.
  • -
  • Update github.com/BurntSushi/toml from 0.4.1 to 1.2.0.
  • -
  • Update cloud.google.com/go/pubsub from 1.24.0 to 1.24.0.
  • -
  • Update k8s.io/apimachinery from 0.24.2 to 0.24.3.
  • -
  • Update github.com/Shopify/sarama from 1.34.1 to 1.35.0.
  • -
  • Update github.com/sirupsen/logrus from 1.8.1 to 1.9.0.
  • -
  • Update github.com/emicklei/go-restful from v2.9.5+incompatible to v3.8.0.
  • -
  • Update github.com/hashicorp/consul/api from 1.12.0 to 1.13.1.
  • -
  • Update github.com/prometheus/client_golang from 1.12.2 to 1.13.0.
  • -
  • Update google.golang.org/api from 0.85.0 to 0.91.0.
  • -
  • Update github.com/antchfx/xmlquery from 1.3.9 to 1.3.12.
  • -
  • Update github.com/aws/aws-sdk-go-v2/service/ec2.
  • -
  • Update github.com/aws/aws-sdk-go-v2/feature/ec2/imds.
  • -
  • Update github.com/aws/aws-sdk-go-v2/service/cloudwatchlogs.
  • -
-

v1.23.4

-
    -
  • Update github.com/lxc/lxd to be able to run tests.
  • -
  • Sync sql output and input build constraints to handle loong64 in go1.19.
  • -
  • Update credentials file to not use endpoint_url parameter
  • -
  • Fixes to linter issues
  • -
  • Add Coralogix dialect to open telemetry.
  • -
-

Input plugin updates

-
    -
  • Cloudwatch (cloudwatch): Customizable batch size when querying.
  • -
  • Kube Inventory (kube_inventory): Send file location to enable token auto-refresh.
  • -
  • Kubernetes (kubernetes): Refresh token from file at each read.
  • -
  • MongoDB (mongodb): Update to most recent version.
  • -
  • OPC UA (opcua): Return an error with mismatched types.
  • -
  • SQL server (sqlserver): Set lower deadlock priority.
  • -
  • Stackdriver (stackdriver) Handle when no buckets available.
  • -
-

Dependency updates

-
    -
  • Bump github.com/testcontainers/testcontainers-go from 0.12.0 to 0.13.0.
  • -
  • Bump github.com/apache/thrift from 0.15.0 to 0.16.0.
  • -
  • Bump github.com/aws/aws-sdk-go-v2/service/ec2 from 1.46.0 to 1.51.0.
  • -
  • Update all go.opentelemetry.io dependencies.
  • -
  • Bump github.com/go-ldap/ldap/v3 from 3.4.1 to 3.4.4.
  • -
  • Bump github.com/karrick/godirwalk from 1.16.1 to 1.17.0.
  • -
  • Bump github.com/vmware/govmomi from 0.28.0 to 0.29.0.
  • -
  • Bump github.com/eclipse/paho.mqtt.golang from 1.3.5 to 1.4.1.
  • -
  • Bump github.com/shirou/gopsutil/v3 from 3.22.4 to 3.22.7.
  • -
  • Bump github.com/aws/aws-sdk-go-v2/service/cloudwatchlogs.
  • -
  • Bump github.com/Azure/go-autorest/autorest/adal.
  • -
  • Bump github.com/pion/dtls/v2 from 2.0.13 to 2.1.5.
  • -
  • Bump github.com/Azure/azure-event-hubs-go/v3.
  • -
  • Bump github.com/aws/aws-sdk-go-v2/service/cloudwatch.
  • -
  • Bump github.com/aws/aws-sdk-go-v2/service/kinesis.
  • -
  • Bump github.com/aws/aws-sdk-go-v2/service/dynamodb.
  • -
  • Bump github.com/signalfx/golib/v3 from 3.3.43 to 3.3.45.
  • -
  • Update github.com/BurntSushi/toml from 0.4.1 to 1.2.0.
  • -
  • Update cloud.google.com/go/pubsub from 1.24.0 to 1.24.0.
  • -
  • Update k8s.io/apimachinery from 0.24.2 to 0.24.3.
  • -
  • Update github.com/Shopify/sarama from 1.34.1 to 1.35.0.
  • -
  • Bump github.com/sirupsen/logrus from 1.8.1 to 1.9.0.
  • -
  • Bump github.com/emicklei/go-restful from v2.9.5+incompatible to v3.8.0.
  • -
  • Bump github.com/hashicorp/consul/api from 1.12.0 to 1.13.1.
  • -
  • Bump github.com/prometheus/client_golang from 1.12.2 to 1.13.0.
  • -
  • Bump google.golang.org/api from 0.85.0 to 0.91.0.
  • -
  • Bump github.com/antchfx/xmlquery from 1.3.9 to 1.3.12.
  • -
  • Bump github.com/aws/aws-sdk-go-v2/service/ec2.
  • -
  • Bump github.com/aws/aws-sdk-go-v2/feature/ec2/imds.
  • -
  • Bump github.com/aws/aws-sdk-go-v2/service/cloudwatchlogs.
  • -
-

v1.23.3

-

Bug fixes

-
    -
  • Openstack input plugin (inputs.openstack): Use v3 volume library.
  • -
  • MQTT Consumer input plugin (inputs.mqtt_consumer): Topic parsing error when topic having prefix ‘/’.
  • -
  • SNMP Trap input plugin (inputs.snmp_trap): Prevent map panic when using with netsnmp translator.
  • -
  • SQL Server input plugin (inputs.sqlserver): Set lower deadlock priority on queries.
  • -
  • common.cookie: Use reader over readcloser, regenerate cookie-jar at reauthorization.
  • -
  • Prometheus parser (parsers.prometheus): Histogram infinity bucket is now always present.
  • -
-

Dependency updates

-
    -
  • Bump github.com/antchfx/jsonquery from 1.1.5 to 1.2.0.
  • -
-

v1.23.2

-

Bug fixes

-
    -
  • Remove unexpected deprecation warnings for non-deprecated packages that occurred in 1.24.1.
  • -
  • HTTP input plugin (inputs.http): Allow both 200 and 201 response codes when generating cookie authentication. Also update the cookie header docs to show a TOML map rather than a string.
  • -
  • Microsoft SQL Server input plugin (inputs.sqlserver): Use bigint for backupsize in sqlserver queries.
  • -
  • gNMI input plugin (inputs.gnmi): Refactor tag_only subscriptions for complex keys (such as network-instances) and to improve concurrrency. The subscription key is no longer hardcoded to the device name and the name tag. Adds ability to specify a subscription key on a per-tag basis.
  • -
  • SNMP input plugin (inputs.snmp): Now sets gosnmp’s UseUnconnectedUDPSocket to true when using UDP. Adds support to accept SNMP responses from any address (not just the requested address). Useful when gathering responses from redundant/failover systems.
  • -
-

Dependency updates

-
    -
  • Bump github.com/docker/docker from 20.10.14 to 20.10.17.
  • -
-

v1.23.1

-

Bug fixes

-
    -
  • Jolokia2 input plugin (jolikia2): Resolve panic on null response.
  • -
  • RabbitMQ input plugin (rabbitmq) Don’t require listeners to be present in overview.
  • -
  • Sync back sample.confs for Couchbuse input plugin (couchbase) and Groundwork output plugin (groundwork).
  • -
  • Filter out views in MongoDB lookup.
  • -
  • Fix race condition in configuration and prevent concurrent map writes to c.UnusedFields.
  • -
  • Restore sample configurations broken during initial migration
  • -
  • Sync back sample.confs for inputs.couchbase and outputs.groundwork.
  • -
-

Dependency updates

-
    -
  • Bump cloud.google.com/go/monitoring from 1.2.0 to 1.5.0.
  • -
  • Bump github.com/aws/aws-sdk-go-v2/credentials from 1.12.2 to 1.12.5.
  • -
  • Bump google.golang.org/grpc from 1.46.2 to 1.47.0.
  • -
  • Bump k8s.io/client-go from 0.23.3 to 0.24.1.
  • -
  • Bump github.com/go-logfmt/logfmt from 0.5.0 to 0.5.1.
  • -
  • Bump github.com/aws/aws-sdk-go-v2/service/dynamodb from 1.15.3 to 1.15.7.
  • -
  • Bump go.mongodb.org/mongo-driver from 1.9.0 to 1.9.1.
  • -
  • Bump github.com/gophercloud/gophercloud from 0.24.0 to 0.25.0.
  • -
  • Bump google.golang.org/api from 0.74.0 to 0.84.0.
  • -
  • Bump github.com/fatih/color from 1.10.0 to 1.13.0.
  • -
  • Bump github.com/aws/aws-sdk-go-v2/service/timestreamwrite from 1.3.2 to 1.13.6.
  • -
  • Bump github.com/shopify/sarama from 1.32.0 to 1.34.1.
  • -
  • Bump github.com/dynatrace-oss/dynatrace-metric-utils-go from 0.3.0 to 0.5.0.
  • -
  • Bump github.com/nats-io/nats.go from 1.15.0 to 1.16.0.
  • -
  • Bump cloud.google.com/go/pubsub from 1.18.0 to 1.22.2.
  • -
  • Bump go.opentelemetry.io/collector/pdata from 0.52.0 to 0.54.0.
  • -
  • Bump github.com/jackc/pgx/v4 from 4.15.0 to 4.16.1.
  • -
  • Bump cloud.google.com/go/bigquery from 1.8.0 to 1.33.0.
  • -
  • Bump github.com/Azure/azure-kusto-go from 0.6.0 to 0.7.0.
  • -
  • Bump cloud.google.com/go/pubsub from 1.22.2 to 1.24.0.
  • -
  • Bump github.com/aws/aws-sdk-go-v2/service/kinesis from 1.13.0 to 1.15.7.
  • -
  • Bump github.com/aws/aws-sdk-go-v2/service/ec2 from 1.1.0 to 1.46.0.
  • -
  • Bump github.com/golang-jwt/jwt/v4 from 4.4.1 to 4.4.2.
  • -
  • Bump github.com/vmware/govmomi from 0.27.3 to 0.28.0.
  • -
  • Bump github.com/aws/aws-sdk-go-v2/service/cloudwatchlogs from 1.15.4 to 1.15.8.
  • -
  • Bump github.com/influxdata/influxdb-observability/otel2influx from 0.2.21 to 0.2.22.
  • -
  • Bump k8s.io/api from 0.24.1 to 0.24.2.
  • -
  • Bump github.com/prometheus/client_golang from 1.12.1 to 1.12.2.
  • -
-

v1.23.0

-
    -
  • Sample configuration (sample.conf) files for the different plugins are now embedded into the Golang code by the Go compiler. You can now download the sample configuration from -Telegraf without having to paste in sample configurations from each plugin’s README.md.
  • -
  • Add missing build constraints for sqlite.
  • -
  • Always build README-embedder for host-architecture.
  • -
  • Avoid calling sadc with invalid 0 interval.
  • -
  • Check net.Listen() error in tests.
  • -
  • Add DataDog count metrics.
  • -
  • Deprecate unused database configuration option.
  • -
  • Document interval setting for internet speed plugin.
  • -
  • Add Elasticsearch output float handling test.
  • -
  • Log instance name in skip warnings.
  • -
  • Output erroneous namespace and fix error.
  • -
  • Remove any content type from Prometheus accept header.
  • -
  • Remove full access permissions.
  • -
  • Search services file in /etc/services and fall back to /usr/etc/services.
  • -
  • Migrate XPath parser to new style.
  • -
  • Add field key option to set event partition key
  • -
  • Add semantic commits checker.
  • -
  • Allow other fluentd metrics.
  • -
  • Add Artifactory Webhook Receiver.
  • -
  • Create and push nightly Docker images to quay.io.
  • -
  • Fix error if no nodes found for current configuration with XPath parser.
  • -
-

New plugins

- -

Input plugin updates

-
    -
  • Burrow (burrow): Move Dialer to variable and run make fmt.
  • -
  • CPU (cpu): Add core and physical ID tags that contain information about physical CPU or cores in cases of hyper-threading.
  • -
  • HTTP (http): Use readers over closers.
  • -
  • Lustre (lustre): Support collecting per-client stats.
  • -
  • Mock (mock) Add constant algorithm.
  • -
  • Tail (tail): Add ANSI color filter.
  • -
  • Redis (redis): Fix to goroutine leak triggered by auto-reload configuration mechanism.
  • -
-

Output plugin updates

-
    -
  • HTTP (http): Enable authentication against a Google API protected by the OAuth 2.0 protocol.
  • -
  • HTTP (elasticsearch): Add healthcheck timeout.
  • -
  • SQL (sql): Add table existence cache.
  • -
-

Dependency updates

-
    -
  • Update github.com/wavefronthq/wavefront-sdk-go from 0.9.10 to 0.9.11.
  • -
  • Update github.com/aws/aws-sdk-go-v2/config from 1.15.3 to 1.15.7.
  • -
  • Update github.com/sensu/sensu-go/api/core/v2 from 2.13.0 to 2.14.0.
  • -
  • Update go.opentelemetry.io/otel/metric from 0.28.0 to 0.30.0.
  • -
  • Update github.com/nats-io/nats-server/v2 from 2.7.4 to 2.8.4.
  • -
  • Update golangci-lint from v1.45.2 to v1.46.2.
  • -
  • Update gopsutil from v3.22.3 to v3.22.4 to allow for HOST_PROC_MOUNTINFO.
  • -
  • Update moby/ipvs dependency from v1.0.1 to v1.0.2.
  • -
  • Update modernc.org/sqlite from v1.10.8 to v1.17.3.
  • -
  • Update github.com/containerd/containerd from v1.5.11 to v1.5.13.
  • -
  • Update github.com/tidwall/gjson from 1.10.2 to 1.14.1.
  • -
-

v1.22.4

-
    -
  • Wait for network up in systemd packaging.
  • -
-

Input plugin updates

-
    -
  • Couchbase (couchbase): Do not assume metrics will all be of the same length.
  • -
  • StatsD (statsd): Fix error when closing network connection.
  • -
  • Add mount option filtering to disk plugin.
  • -
-

Output plugin updates

-
    -
  • Azure Monitor (azure_monitor): Reinitialize http client on context deadline error.
  • -
  • Wavefront (wavefront): Do not add telegraf.host tag if no host tag is provided.
  • -
-

Dependency updates

-
    -
  • Update github.com/showwin/speedtest-go from 1.1.4 to 1.1.5.
  • -
  • Update OpenTelemetry plugins to v0.51.0.
  • -
-

v1.22.3

-
    -
  • Update Go to 1.18.1.
  • -
-

Input plugin updates

-
    -
  • InfluxDB Listener (influxdb_listener): Remove duplicate writes with upstream parser.
  • -
  • GNMI (gnmi): Use external xpath parser.
  • -
  • System (system): Reduce log level back to original level.
  • -
-

v1.22.2

-
    -
  • Allow Makefile to work on Windows.
  • -
  • Allow zero outputs when using test-wait parameter.
  • -
-

Input plugin updates

-
    -
  • Aerospike (aerospike): Fix statistics query bug.
  • -
  • Aliyun CMS (aliyuncms): Ensure metrics accept array.
  • -
  • Cisco Telemetry MDT (cisco_telemetry_mdt): -
      -
    • Align the default value for message size.
    • -
    • Remove overly verbose info message.
    • -
    -
  • -
  • GNMI (gnmi): -
      -
    • Add mutex to lookup map.
    • -
    • Use sprint to cast to strings.
    • -
    -
  • -
  • Consul agent (consul_agent): Use correct auth token.
  • -
  • MySQL (mysql): Add mariadb_dialect to address the MariaDB differences in INNODB_METRICS.
  • -
  • SMART (smart): Correctly parse various numeric forms
  • -
  • Prometheus (prometheus): Moved from watcher to informer.
  • -
-

Output plugin updates

-
    -
  • InfluxDB v2 (influxdb_v2): Improve error message.
  • -
-

Dependency updates

-
    -
  • Update github.com/Azure/azure-kusto-go from 0.5.0 to 0.60.
  • -
  • Update opentelemetry from v0.2.10 to v0.2.17.
  • -
  • Update go.opentelemetry.io/collector/pdata from v0.48.0 to v0.49.0.
  • -
  • Update github.com/aws/aws-sdk-go-v2/config from 1.13.1 to 1.15.3
  • -
  • Update github.com/aws/aws-sdk-go-v2/service/cloudwatchlogs.
  • -
  • Update github.com/aws/aws-sdk-go-v2/credentials from 1.8.0 to 1.11.2.
  • -
  • Update github.com/containerd/containerd from v1.5.9 to v1.5.11.
  • -
  • Update github.com/miekg/dns from 1.1.46 to 1.1.48.
  • -
  • Update github.com/gopcua/opcua from v0.3.1 to v0.3.3
  • -
  • Update github.com/aws/aws-sdk-go-v2/service/dynamodb.
  • -
  • Update github.com/xdg/scram from 1.0.3 to 1.0.5.
  • -
  • Update go.mongodb.org/mongo-driver from 1.8.3 to 1.9.0.
  • -
  • Update starlark 7a1108eaa012->d1966c6b9fcd.
  • -
-

v1.22.1

-
    -
  • Update gonum.org/v1/gonum from 0.9.3 to 0.11.0.
  • -
  • Update github.com/golang-jwt/jwt/v4 from 4.2.0 to 4.4.1.
  • -
  • Update gopsutil and associated dependencies for improved OpenBSD support.
  • -
  • Fix default value for logfile rotation interval.
  • -
-

Input plugin updates

-
    -
  • Intel PMU (intel_pmu): Fix slow running intel-pmu test.
  • -
  • Cloud PubSub (cloud_pubsub): Skip longer integration tests on -short mode.
  • -
  • Cloud PubSub Push (cloud_pubsub_push): Reduce timeouts and sleeps.
  • -
  • SQL Server (sqlserver): Fix inconsistencies in sql*Requests queries.
  • -
  • ZFS (zfs): Fix redundant pool tag.
  • -
  • vSphere (vsphere): Update debug message information.
  • -
-

Output plugin updates

-
    -
  • Azure Monitor (azure_monitor): Include body in error message.
  • -
  • HTTP (http): Switch HTTP 100 test case values.
  • -
-

Processor plugin updates

-
    -
  • TopK (topk) Clarify the k and fields parameters.
  • -
-

New external plugins

- -

v1.22.0

-

Features

-
    -
  • Add autorestart and restartdelay flags to Windows service
  • -
  • Add builds for riscv64.
  • -
  • Add file version and icon to win.exe.
  • -
  • Add systemd notify support.
  • -
  • Check TLS configuration early to catch missing certificates.
  • -
  • Implement collection offset.
  • -
  • common.auth: HTTP basic auth.
  • -
  • common.cookie: Support headers with cookie auth.
  • -
  • common.proxy: Add socks5 proxy support.
  • -
  • Improve error logging on plugin initialization.
  • -
-

Bug fixes

-
    -
  • Print loaded plugins and deprecations for once and test.
  • -
  • Remove signed MacOS artifacts.
  • -
  • Run go mod tidy.
  • -
  • Fix prometheusremotewrite wrong timestamp unit.
  • -
  • Fix sudden close caused by OPC UA input.
  • -
  • Update containerd to 1.5.9.
  • -
  • Update go-sensu to v2.12.0.
  • -
  • Update gosmi from v0.4.3 to v0.4.4.
  • -
  • Update parsing logic of config.duration.
  • -
  • Update precision parameter default value.
  • -
  • Use sha256 for rpm digest.
  • -
  • Warning output when running with --test.
  • -
  • Graceful shutdown of Telegraf with Windows service.
  • -
  • Add push-only updated values flag to histogram aggregator.
  • -
  • common.cookie: Address flaky tests in cookie_test.go and graylog_test.go.
  • -
  • common.shim: Linter fixes.
  • -
  • Do not save cache on i386 builds.
  • -
  • Add error msg for missing environment variables in configuration file.
  • -
  • Fix panic in parsers due to missing log for all plugins using setparserfunc.
  • -
  • Grab table columns more accurately.
  • -
  • Improve parser tests by using go-cmp/cmp.
  • -
  • Linter fixes for config/config.go.
  • -
  • Log error when loading mibs.
  • -
  • Fix Mac signing issue with arm64.
  • -
-

New plugins

-

Inputs

- -

Processors

- -

Input plugin updates

-
    -
  • Aerospike (aerospike): Update github.com/aerospike/aerospike-client-go from 1.27.0 to 5.7.0.
  • -
  • Bond (bond): Add additional stats.
  • -
  • Directory Monitor (directory_monitor): -
      -
    • Update djherbis/times and fix dependabot.
    • -
    • Plugin restructuring.
    • -
    -
  • -
  • Disk (disk): Fix missing storage in container.
  • -
  • Docker (docker): -
      -
    • Keep field type of tasks_desired the same.
    • -
    • Update memory usage calculation.
    • -
    • Update client API version.
    • -
    -
  • -
  • ECS (ecs): Use current time as timestamp.
  • -
  • Execd execd: Add newline for Prometheus parsing.
  • -
  • File (file): Stateful parser handling.
  • -
  • GNMI (gnmi): Add dynamic tagging.
  • -
  • Graylog (graylog): -
      -
    • Add toml tags.
    • -
    • Add timeout-setting.
    • -
    • Update documentation to use current URLs.
    • -
    -
  • -
  • HTTP (http): Ensure http body is empty.
  • -
  • HTTP Listener v2 (http_listener_v2): Revert deprecation.
  • -
  • Internet speed (internet_speed): Add caching.
  • -
  • IPset (ipset): Fix crash when command not found.
  • -
  • JSON V2 (json_v2): -
      -
    • Allow multiple optional objects.
    • -
    • Use raw values for timestamps.
    • -
    -
  • -
  • Kibana (kibana): Add heap_size_limit field.
  • -
  • Logparser (logparser): -
      -
    • Add comment.
    • -
    • Fix panic due to missing log.
    • -
    -
  • -
  • MDStat (mdstat): Fix when sync is less than 10%.
  • -
  • Memcached (memcached): Gather additional stats.
  • -
  • Modbus modbus: -
      -
    • Make Telegraf compile on Windows with golang 1.16.2.
    • -
    • Re-enable openbsd support.
    • -
    • Update documentation.
    • -
    • Add per-request tags.
    • -
    • Support multiple slaves (gateway feature).
    • -
    -
  • -
  • MQTT Consumer (mqtt_consumer): Topic extracting no longer requires all three fields.
  • -
  • NFS Client (nfsclient): Add new field.
  • -
  • NTPQ (ntpq): Correctly read long poll output.
  • -
  • OPC UA (opcua): -
      -
    • Accept non-standard OK status by implementing a configurable workaround.
    • -
    • Add more data to error log.
    • -
    • Remove duplicate addition of fields.
    • -
    -
  • -
  • OpenLDAP (openldap): Update go-ldap to v3.4.1.
  • -
  • OpenStack (openstack): Fix typo.
  • -
  • OpenWeatherMap (openweathermap): Add feels_like field.
  • -
  • PHPfpm (phpfpm): Ensure CI tests runs against i386.
  • -
  • PostgreSQL (postgresql): Add option to disable prepared statements.
  • -
  • SMART (smart): Add concurrency configuration option, support and lint fixes.
  • -
  • SNMP (snmp): -
      -
    • Respect number of retries configured.
    • -
    • Use the correct path when evaluating symlink.
    • -
    • Add option to select translator.
    • -
    • Check index before assignment.
    • -
    • Do not require networking during tests.
    • -
    • Ensure folders do not get loaded more than once.
    • -
    • Fix panic due to no module.
    • -
    • Fix errors if mibs folder doesn’t exist.
    • -
    • Optimize locking for mibs loading.
    • -
    -
  • -
  • SNMP Trap (snmp_trap): -
      -
    • Collapsed fields by calling more in-depth function.
    • -
    • Deprecate unused timeout configuration option.
    • -
    -
  • -
  • SQL (sql): Add Clickhouse driver.
  • -
  • StatsD (statsd): Sanitize names.
  • -
  • Syslog (syslog): Add rfc3164 to rfc5424 translation to docs.
  • -
  • System (system): Remove verbose logging.
  • -
  • Windows Performance Counter (win_perf_counter): -
      -
    • Allow errors to be ignored.
    • -
    • Implemented support for reading raw values, added tests, and update documentation.
    • -
    -
  • -
  • X.509 Certificate (x509_cert): -
      -
    • Mark testgatherudpcert as an integration test.
    • -
    • Add exclude_root_certs option.
    • -
    -
  • -
  • ZFS (zfs): Pool detection and metrics gathering for ZFS 2.1.x.
  • -
-

Output plugin updates

-
    -
  • AMQP (amqp): Check for nil client before closing.
  • -
  • ElasticSearch (elasticsearch): -
      -
    • Implement nan and inf handling.
    • -
    • Add bearer token support.
    • -
    -
  • -
  • Graylog (graylog): Fix to field prefixes.
  • -
  • Groundwork (groundwork): -
      -
    • Set nextchecktime to lastchecktime.
    • -
    • Update SDK and improve logging.
    • -
    • Process group tag.
    • -
    -
  • -
  • InfluxDB V2 (influxdb_v2): Include bucket name in error messages.
  • -
  • SQL (sql): Fix unsigned settings.
  • -
  • Stackdriver (stackdriver): Cumulative interval start times.
  • -
  • Syslog (syslog): Correctly set trailer.
  • -
  • Timestream (timestream): Fix batching logic with write record and introduce concurrent requests.
  • -
  • Datadog (datadog): Add compression.
  • -
  • HTTP (http): -
      -
    • Add optional list of non-retryable status codes.
    • -
    • Support AWS managed service for Prometheus.
    • -
    -
  • -
  • Websocket websocket: socks5 proxy support.
  • -
  • Wavefront (wavefront): -
      -
    • Flush sender on error to clean up broken connections.
    • -
    • Run gofmt.
    • -
    • Fix panic if no mibs folder is found.
    • -
    -
  • -
-

Parser plugin updates

-
    -
  • CSV (csv): -
      -
    • Empty import tzdata for Windows binaries.
    • -
    • Fix typo.
    • -
    -
  • -
  • Ifname (ifname): -
      -
    • Eliminate mib dependency.
    • -
    • Parallelism fix.
    • -
    -
  • -
  • JSON V2 (parsers.json_v2): -
      -
    • Allow optional paths and handle wrong paths correctly.
    • -
    • Check if gpath exists and support optional in fields/tags.
    • -
    • Fixes to timestamp setting.
    • -
    -
  • -
  • Nagios (nagios): Use real error for logging.
  • -
  • XPath (xpath): -
      -
    • Handle duplicate registration of protocol-buffer files gracefully.
    • -
    • Fix typo.
    • -
    -
  • -
-

Dependency updates

-
    -
  • Update github.com/azure/azure-kusto-go from 0.5.0 to 0.5.2.
  • -
  • Update github.com/nats-io/nats-server/v2 from 2.7.3 to 2.7.4.
  • -
  • Update github.com/shopify/sarama from 1.29.1 to 1.32.0.
  • -
  • Update github.com/shirou/gopsutil/v3 from 3.21.12 to 3.22.2.
  • -
  • Update github.com/aws/aws-sdk-go-v2/feature/ec2/imds.
  • -
  • Update github.com/miekg/dns from 1.1.43 to 1.1.46.
  • -
  • Update github.com/aws/aws-sdk-go-v2/service/dynamodb.
  • -
  • Update github.com/nats-io/nats-server/v2 from 2.7.2 to 2.7.3.
  • -
  • Update github.com/aws/aws-sdk-go-v2/config from 1.8.3 to 1.13.1.
  • -
  • Update github.com/testcontainers/testcontainers-go.
  • -
  • Update github.com/aws/aws-sdk-go-v2/service/cloudwatchlogs.
  • -
  • Update github.com/aws/aws-sdk-go-v2/feature/ec2/imds.
  • -
  • Update github.com/wavefronthq/wavefront-sdk-go from 0.9.9 to 0.9.10.
  • -
  • Update github.com/clickhouse/clickhouse-go from 1.5.1 to 1.5.4.
  • -
  • Update k8s.io/api from 0.23.3 to 0.23.4.
  • -
  • Update cloud.google.com/go/pubsub from 1.17.1 to 1.18.0.
  • -
  • Update github.com/newrelic/newrelic-telemetry-sdk-go.
  • -
  • Update github.com/aws/aws-sdk-go-v2/service/dynamodb from 1.5.0 to 1.13.0.
  • -
  • Update github.com/sensu/sensu-go/api/core/v2 from 2.12.0 to 2.13.0.
  • -
  • Update github.com/gophercloud/gophercloud from 0.16.0 to 0.24.0.
  • -
  • Update github.com/jackc/pgx/v4 from 4.14.1 to 4.15.0.
  • -
  • Update github.com/aws/aws-sdk-go-v2/service/sts from 1.7.2 to 1.14.0.
  • -
  • Update all go.opentelemetry.io dependencies.
  • -
  • Update github.com/signalfx/golib/v3 from 3.3.38 to 3.3.43.
  • -
  • Update github.com/aliyun/alibaba-cloud-sdk-go.
  • -
  • Update github.com/denisenkom/go-mssqldb from 0.10.0 to 0.12.0.
  • -
  • Update github.com/gopcua/opcua from 0.2.3 to 0.3.1.
  • -
  • Update github.com/nats-io/nats-server/v2 from 2.6.5 to 2.7.2.
  • -
  • Update k8s.io/client-go from 0.22.2 to 0.23.3.
  • -
  • Update github.com/aws/aws-sdk-go-v2/service/kinesis from 1.6.0 to 1.13.0.
  • -
  • Update github.com/benbjohnson/clock from 1.1.0 to 1.3.0.
  • -
  • Update github.com/vmware/govmomi from 0.27.2 to 0.27.3.
  • -
  • Update github.com/prometheus/client_golang from 1.11.0 to 1.12.1.
  • -
  • Update go.mongodb.org/mongo-driver from 1.7.3 to 1.8.3.
  • -
  • Update github.com/google/go-cmp from 0.5.6 to 0.5.7.
  • -
  • Update go.opentelemetry.io/collector/model from 0.39.0 to 0.43.2.
  • -
  • Update github.com/multiplay/go-ts3 from 1.0.0 to 1.0.1.
  • -
  • Update cloud.google.com/go/monitoring from 0.2.0 to 1.2.0.
  • -
  • Update github.com/vmware/govmomi from 0.26.0 to 0.27.2.
  • -
  • Update google.golang.org/api from 0.54.0 to 0.65.0.
  • -
  • Update github.com/antchfx/xmlquery from 1.3.6 to 1.3.9.
  • -
  • Update github.com/nsqio/go-nsq from 1.0.8 to 1.1.0.
  • -
  • Update github.com/prometheus/common from 0.31.1 to 0.32.1.
  • -
  • Update cloud.google.com/go/pubsub from 1.17.0 to 1.17.1.
  • -
  • Update github.com/influxdata/influxdb-observability/influx2otel from 0.2.8 to 0.2.10.
  • -
  • Update github.com/shirou/gopsutil/v3 from 3.21.10 to 3.21.12.
  • -
  • Update github.com/jackc/pgx/v4 from 4.6.0 to 4.14.1.
  • -
  • Update github.com/azure/azure-event-hubs-go/v3 from 3.3.13 to 3.3.17.
  • -
  • Update github.com/gosnmp/gosnmp from 1.33.0 to 1.34.0.
  • -
  • Update github.com/hashicorp/consul/api from 1.9.1 to 1.12.0.
  • -
  • Update github.com/antchfx/xpath from 1.1.11 to 1.2.0.
  • -
  • Update github.com/antchfx/jsonquery from 1.1.4 to 1.1.5.
  • -
  • Update github.com/prometheus/procfs from 0.6.0 to 0.7.3.
  • -
  • Update github.com/aws/aws-sdk-go-v2/service/cloudwatchlogs from 1.5.2 to 1.12.0.
  • -
  • Update github.com/kardianos/service from 1.0.0 to 1.2.1.
  • -
  • Update github.com/couchbase/go-couchbase from 0.1.0 to 0.1.1.
  • -
  • Update github.com/pion/dtls/v2 from 2.0.9 to 2.0.13.
  • -
  • Update github.com/eclipse/paho.mqtt.golang from 1.3.0 to 1.3.5.
  • -
-

v1.21.4

-
    -
  • Update to Go 1.17.7 to address three security issues in the library.
  • -
  • Update all go.opentelemetry.io from 0.24.0 to 0.27.0.
  • -
  • Update github.com/signalfx/golib/v3 from 3.3.38 to 3.3.43.
  • -
  • Update github.com/aliyun/alibaba-cloud-sdk-go from 1.61.1004 to 1.61.1483.
  • -
  • Update github.com/denisenkom/go-mssqldb from 0.10.0 to 0.12.0.
  • -
  • Update github.com/gopcua/opcua from 0.2.3 to 0.3.1.
  • -
  • Update github.com/nats-io/nats-server/v2 from 2.6.5 to 2.7.2.
  • -
  • Update k8s.io/client-go from 0.22.2 to 0.23.3.
  • -
  • Update github.com/aws/aws-sdk-go-v2/service/kinesis from 1.6.0 to 1.13.0.
  • -
  • Update github.com/benbjohnson/clock from 1.1.0 to 1.3.0.
  • -
  • Update github.com/Azure/azure-kusto-go from 0.5.0 to 0.5.2.
  • -
  • Update github.com/vmware/govmomi from 0.27.2 to 0.27.3.
  • -
  • Update github.com/prometheus/client_golang from 1.11.0 to 1.12.1.
  • -
  • Update go.mongodb.org/mongo-driver from 1.7.3 to 1.8.3.
  • -
  • Update github.com/google/go-cmp from 0.5.6 to 0.5.7.
  • -
  • Update go.opentelemetry.io/collector/model from 0.39.0 to 0.43.2.
  • -
  • Update github.com/multiplay/go-ts3 from 1.0.0 to 1.0.1.
  • -
  • Update cloud.google.com/go/monitoring from 0.2.0 to 1.2.0.
  • -
  • Update github.com/vmware/govmomi from 0.26.0 to 0.27.2.
  • -
-

Input plugin updates

-
    -
  • Docker (docker): Update memory usage calculation.
  • -
  • ECS (ecs): Use current time as timestamp.
  • -
  • SNMP (snmp): Ensure folders do not get loaded more than once.
  • -
  • Windows Performance Counters (win_perf_counters): Add deprecated warning and version.
  • -
-

Output plugin updates

-
    -
  • AMQP (amqp): Check for nil client before closing.
  • -
  • Azure Data Explorer (azure_data_explorer): Lower RAM usage.
  • -
  • ElasticSearch (elasticsearch): Add scheme to fix error in sniffing option.
  • -
-

Parser plugin updates

-
    -
  • JSON v2 (json_v2): -
      -
    • Fix timestamp change during execution.
    • -
    • Fix incorrect handling of timestamp_path.
    • -
    • Allow optional paths and handle wrong paths correctly.
    • -
    -
  • -
-

Serializer updates

-
    -
  • Prometheus serializer (prometheusremotewrite): Use correct timestamp unit.
  • -
-

New External Plugins

- -

v1.21.3

-
    -
  • Update grpc module to v1.44.0.
  • -
  • Update google.golang.org/api module from 0.54.0 to 0.65.0.
  • -
  • Update antchfx/xmlquery module from 1.3.6 to 1.3.9.
  • -
  • Update nsqio/go-nsq module from 1.0.8 to 1.1.0.
  • -
  • Update prometheus/common module from 0.31.1 to 0.32.1.
  • -
  • Update cloud.google.com/go/pubsub module from 1.17.0 to 1.17.1.
  • -
  • Update influxdata/influxdb-observability/influx2otel module from 0.2.8 to 0.2.10.
  • -
  • Update shirou/gopsutil/v3 module from 3.21.10 to 3.21.12.
  • -
  • Update jackc/pgx/v4 module from 4.6.0 to 4.14.1.
  • -
  • Update Azure/azure-event-hubs-go/v3 module from 3.3.13 to 3.3.17.
  • -
  • Update gosnmp/gosnmp module from 1.33.0 to 1.34.0.
  • -
  • Update hashicorp/consul/api module from 1.9.1 to 1.12.0.
  • -
  • Update antchfx/xpath module from 1.1.11 to 1.2.0.
  • -
  • Update antchfx/jsonquery module from 1.1.4 to 1.1.5.
  • -
  • Update prometheus/procfs module from 0.6.0 to 0.7.3.
  • -
  • Update aws/aws-sdk-go-v2/service/cloudwatchlogs module from 1.5.2 to 1.12.0.
  • -
  • Update kardianos/service module from 1.0.0 to 1.2.1.
  • -
  • Update couchbase/go-couchbase module from 0.1.0 to 0.1.1.
  • -
  • Update pion/dtls/v2 module from 2.0.9 to 2.0.13.
  • -
  • Update containerd/containerd module to 1.5.9.
  • -
-

Input plugin updates

-
    -
  • Execd (execd): Resolve a Prometheus text format parsing error.
  • -
  • IPset (ipset): Prevent panic from occurring after startup.
  • -
  • OPC-UA (opc_ua): Fix issue where fields were being duplicated.
  • -
  • HTTP (http): Prevent server side error message.
  • -
  • SNMP (snmp): Fix error when a MIBs folder doesn’t exist.
  • -
  • SNMP Trap (snmp_trap): Fix translation of partially resolved OIDs.
  • -
-

Output plugin updates

-
    -
  • AMQP (amqp): Update to avoid connection leaks.
  • -
  • Timestream (timestream): -
      -
    • Fix an issue with batching logic of write records.
    • -
    • Introduce concurrent requests.
    • -
    -
  • -
  • Stackdriver (stackdriver): Send correct interval start times for all counter metrics.
  • -
  • Syslog (syslog): Correctly set the ASCII trailer per RFC 6587.
  • -
-

Parser plugin updates

-
    -
  • Nagios (nagios): Log correct errors when executing commands to aid in debugging.
  • -
  • JSON v2 (json_v2): Fix timestamp precision when using unix_ns timestamp format.
  • -
  • Wavefront (wavefront): Add missing setting wavefront_disable_prefix_conversion.
  • -
-

v1.21.2

-
    -
  • Add arm64 MacOS builds for M1 devices.
  • -
  • Add RISC-V64 Linux builds.
  • -
  • Complete numerous changes to CircleCI config to ensure more timely completion and more clear execution flow.
  • -
  • Update github.com/djherbis/times module from v1.2.0 to v1.5.0.
  • -
  • Update github.com/go-ldap/ldap/v3 module from v3.1.0 to v3.4.1.
  • -
  • Update github.com/gwos/tcg/sdk module to v0.0.0-20211223101342-35fbd1ae683c.
  • -
-

Input plugin updates

-
    -
  • Disk (disk): Fix issue of missing disks when running Telegraf in a container.
  • -
  • DPDK (dpdk): Add a note to documentation about socket availability.
  • -
  • Logparser (logparser): Resolve panic in the logparser plugins due to a missing Log.
  • -
  • SNMP (snmp): -
      -
    • Resolve panic due to a missing gosmi module.
    • -
    • Resolve panic to check the index before assignment where a floating :: exists.
    • -
    • Resolve a panic when no MIBs folder was found.
    • -
    • Ensure the module load order to avoid an SNMP marshal error.
    • -
    • Now more accurately grabs MIB table columns.
    • -
    • Networking no longer required during tests.
    • -
    -
  • -
  • SNMP Trap (snmp_trap): Documented deprecation of the timeout setting.
  • -
-

Parser plugin updates

-
    -
  • CSV (csv): Use an empty import of tzdata to correctly set the time zone.
  • -
-

v1.21.1

-

Bug fixes

-
    -
  • Fix panic in parsers due to missing log.
  • -
  • Update go-sensu module to v2.12.0
  • -
  • Fix typo in OpenStack input plugin.
  • -
-

Features

-
    -
  • Add SMART input plugin concurrency configuration option, nvme-cli v1.14+ support, and lint fixes.
  • -
-

v1.21

- -
-

The signing for RPM digest has changed to use sha256 to improve security. Due to this change, RPM builds might not be compatible with RHEL6 and older releases. (Telegraf only supports releases in RHEL production.)

- -
- -
    -
  • Restart Telegraf service if it’s already running and upgraded via RPM.
  • -
  • Print loaded plugins and deprecations for once and test flags.
  • -
  • Update eclipse/paho.mqtt.golang module from 1.3.0 to 1.3.5.
  • -
  • Shutdown Telegraf gracefully on Windows Service.
  • -
  • Skip knxlistener when writing the sample configuration file.
  • -
  • Update nats-sever to support openbsd.
  • -
  • Revert unintended corruption of the Makefile.
  • -
  • Filter client certificates by DNS names.
  • -
  • Update etc/telegraf.conf and etc/telegraf_windows.conf.
  • -
  • Add full metadata to configuration for common.kafka.
  • -
  • Update google.golang.org/grpc module from 1.39.1 to 1.40.0.
  • -
-

Input plugin updates

-
    -
  • Cloudwatch (cloudwatch): Fix metrics collection.
  • -
  • CPU (cpu): Update shirou/gopsutil from v2 to v3.
  • -
  • Directory Monitor (directory_monitor): -
      -
    • Fix to when data format is CSV and csv_skip_rows>0 and csv_header_row_count>=1.
    • -
    • Adds the ability to create and name a tag containing the filename.
    • -
    -
  • -
  • ElasticSearch (elasticsearch_query): Add debug query output.
  • -
  • HTTP Listener v2: (http_listener_v2): Fix panic on close to check that Telegraf is closing.
  • -
  • Kubernetes Inventory (kube_inventory): Set TLS server name configuration properly.
  • -
  • Modbus (modbus): Update connection settings (serial).
  • -
  • MQTT Consumer (mqtt_consumer): -
      -
    • Extracting no longer requires all three fields
    • -
    • Enable extracting tag values from MQTT topics
    • -
    -
  • -
  • OPC UA (opc_ua): -
      -
    • Fix sudden closing of Telegraf.
    • -
    • Allow user to select the source for the metric timestamp.
    • -
    -
  • -
  • Prometheus (prometheus): -
      -
    • Check error before defer.
    • -
    • Add ignore_timestamp option.
    • -
    -
  • -
  • Puppet (puppetagent): Add measurements from puppet 5.
  • -
  • SNMP (snmp): -
      -
    • Update snmp plugin to respect number of retries configured.
    • -
    • Optimize locking for SNMP MIBs loading.
    • -
    • Update to use gosmi.
    • -
    • Remove snmptranslate from READme and fix default path.
    • -
    • Merge tables with different indexes.
    • -
    -
  • -
  • StatsD (statsd): Fix parse error.
  • -
  • Sysstat (sysstat): Use unique temporary file.
  • -
  • Windows Performance Counters (win_perf_counters): Add setting to ignore localization.
  • -
  • Windows Services (win_services): Add exclude filter.
  • -
  • ZFS (zfs): Pool detection and metrics gathering for ZFS >= 2.1.x
  • -
-

Output plugin updates

-
    -
  • Register bigquery to all output plugins.
  • -
  • Azure Data Explorer (azure_data_explorer): -
      -
    • Add option to skip table creation.
    • -
    • Add json_timestamp_layout option.
    • -
    -
  • -
  • ElasticSearch (elasticsearch): Implement NaN and inf handling.
  • -
  • Graylog (graylog): -
      -
    • Ensure graylog spec fields not prefixed with _.
    • -
    • Failing test due to port already in use.
    • -
    • Mute UDP/TCP tests by marking them as integration.
    • -
    • TLS support and message format.
    • -
    • Add TCP support.
    • -
    -
  • -
  • HTTP (http): Add use_batch_format.
  • -
  • InfluxDB V2 (influxdb_v2): Add retry to 413 errors with InfluxDB output.
  • -
  • Wavefront (wavefront): Flush sender on error to clean up broken connections.
  • -
-

Parser plugin updates

-
    -
  • XPath (xpath): Handle duplicate registration of protocol-buffer files gracefully
  • -
  • JSON v2 (json_v2): -
      -
    • Parser timestamp setting order.
    • -
    • Remove dead code.
    • -
    • Support defining field/tag tables within an object table.
    • -
    -
  • -
-

Processor plugin updates

-
    -
  • IfName (ifname): -
      -
    • Eliminate MIB dependency.
    • -
    • Parallelism fix.
    • -
    • Add more details to log messages.
    • -
    -
  • -
  • Starlark (starlark): Example for processing sparkplug_b messages.
  • -
  • RegEx (regex): Extend to allow renaming of measurements, tags, and fields.
  • -
-

Aggregator plugin updates

-
    -
  • Implement deprecation infrastructure
  • -
  • Add support of aggregator as Starlark script
  • -
-

New plugins

-

Inputs

- -

Outputs

- -

Aggregator

- -

v1.20.4

-
    -
  • Update BurntSushi/toml from 0.3.1 to 0.4.1.
  • -
  • Update gosnmp module from 1.32 to 1.33.
  • -
  • Update go.opentelemetry.io/otel from v0.23.0 to v0.24.0.
  • -
  • Fix plugin linters.
  • -
-

Input plugin updates

-
    -
  • Cisco Model-Driven Telemetry (cisco_telemetry_mdt): Move to new protobuf library.
  • -
  • InfluxDB (influxdb): Update input schema docs.
  • -
  • Intel RDT (intel_rdt): Correct the timezone to use local timezone by default instead of UTC from metrics gathered from the pqos tool.
  • -
  • IPMI Sensor (ipmi): Redact passwords in log files to maintain security.
  • -
  • Modbus (modbus): Do not build on OpenBSD.
  • -
  • MySQL (mysql): -
      -
    • Fix type conversion follow-up.
    • -
    • Correctly set the default paths.
    • -
    -
  • -
  • NVIDIA SMI (nvidia_smi): Correctly set the default paths.
  • -
  • Proxmox (proxmox): Parse the column types of the server status.
  • -
  • SQL Server (sqlserver): Add elastic pool in supported versions.
  • -
-

Output plugin updates

-
    -
  • Loki (loki): Include the metric name as a label for improved query performance and metric filtering.
  • -
-

v1.20.3

-
    -
  • Update Go to 1.17.2.
  • -
  • Update gjson module to v1.10.2.
  • -
  • Update Snowflake database driver module to 1.6.2.
  • -
  • Update github.com/apache/thrift module from 0.14.2 to 0.15.0.
  • -
  • Update github.com/aws/aws-sdk-go-v2/config module from 1.8.2 to 1.8.3.
  • -
  • Update github.com/Azure/azure-kusto-go module from 0.3.2 to 0.4.0.
  • -
  • Update github.com/docker/docker module from 20.10.7+incompatible to 20.10.9+incompatible.
  • -
  • Update github.com/golang-jwt/jwt/v4 module from 4.0.0 to 4.1.0.
  • -
  • Update github.com/jaegertracing/jaeger module from 1.15.1 to 1.26.0.
  • -
  • Update github.com/prometheus/common module from 0.26.0 to 0.31.1.
  • -
-

Input plugin updates

-
    -
  • IPMI Sensor (ipmi_sensor): Redact IPMI password in logs.
  • -
  • Kube Inventory (kube_inventory): -
      -
    • Do not skip resources with zero s/ns timestamps.
    • -
    • Fix segfault in ingress, persistentvolumeclaim, statefulset.
    • -
    -
  • -
  • Procstat (procstat): Revert and fix tag creation.
  • -
  • SQL Server (sqlserver): Add integration tests.
  • -
  • Amazon CloudWatch (cloudwatch): Use the AWS SDK v2 library.
  • -
  • ZFS (zfs): Check return code of zfs command for FreeBSD.
  • -
  • Ethtool (ethtool): Add normalization of tags.
  • -
  • Internet Speed (internet_speed): Resolve missing latency field.
  • -
  • Prometheus (prometheus): -
      -
    • Decode Prometheus scrape path from Kubernetes labels.
    • -
    • Move err check to correct place.
    • -
    -
  • -
  • Procstat (procstat): Correct conversion of int with specific bit size.
  • -
  • Webhooks (webhooks): Provide more fields.
  • -
  • MongoDB (mongodb): Solve compatibility issue when using 5.x relicaset.
  • -
  • Intel RDT (intel_rdt): Allow sudo usage.
  • -
  • MySQL (mysql): Fix inconsistent metric types.
  • -
-

Processor plugin updates

-
    -
  • Starlark (starlark): Pop operation for non-existing keys.
  • -
-

New plugins

-

External

- -

v1.20.2

-
    -
  • Fix makefile typo that prevented i386 tar and rpm packages from being built.
  • -
-

Input plugin updates

-
    -
  • Cloudwatch (cloudwatch): Use new session API.
  • -
  • Stackdriver (stackdriver): Migrate to cloud.google.com/go/monitoring/apiv3/v2.
  • -
-

Parser plugin updates

-
    -
  • JSON V2 (json_v2): Duplicate line_protocol when using object and fields.
  • -
  • Influx (influx): Fix memory leak.
  • -
-

v1.20.1

-
    -
  • Fix output buffer never completely flushing.
  • -
  • Update k8s.io/apimachinery module to 0.22.2.
  • -
  • Update consul module to 1.11.0.
  • -
  • Update github.com/testcontainers/testcontainers-go module to 0.11.1.
  • -
  • Update github.com/Azure/go-autorest/autorest/adal module.
  • -
  • Update github.com/Azure/go-autorest/autorest/azure/auth module to 0.5.8.
  • -
  • Update cloud.google.com/go/pubsub module to 1.17.0.
  • -
  • Update github.com/aws/smithy-go module to 1.8.0.
  • -
-

Input plugin updates

-
    -
  • ElasticSearch (elasticsearch_query): Add custom time/date format field.
  • -
  • OpenTelemetry (opentelemetry): Fix error returned to OpenTelemetry client.
  • -
  • Couchbase (couchbase): Fix insecure certificate validation.
  • -
  • MongoDB (mongodb): Fix panic due to nil dereference.
  • -
  • Intel RDT (intel_rdt): Prevent timeout when logging.
  • -
  • Procstat (procstat): Add missing tags.
  • -
-

Output plugin updates

-
    -
  • Loki (loki): Update http_headers setting to match sample config.
  • -
  • MQTT (mqtt): Add “keep alive” config option and documentation around issue with eclipse/mosquito version.
  • -
-

v.1.20

-
    -
  • Update Go to 1.17.0
  • -
  • Update runc module to v1.0.0-rc95.
  • -
  • Migrate dgrijalva/jwt-go to golang-jwt/jwt/v4.
  • -
  • Update thrift module to 0.14.2 and zipkin-go-opentracing 0.4.5.
  • -
  • Update cloud.google.com/go/pubsub module to 1.15.0.
  • -
  • Update github.com/tinylib/msgp module to 1.1.6.
  • -
-

Input plugin updates

-
    -
  • MongoDB (mongodb): Change command based on server version.
  • -
  • SQL (sql): Make timeout apply to single query.
  • -
  • SystemD Units (systemd_units): Add pattern support.
  • -
  • Cloudwatch (cloudwatch): -
      -
    • Pull metrics from multiple AWS CloudWatch namespaces.
    • -
    • Support AWS Web Identity Provider.
    • -
    -
  • -
  • Modbus (modbus): Add support for RTU over TCP.
  • -
  • Procstat (procstat): Support cgroup globs and include systemd unit children.
  • -
  • Suricata (suricata): Support alert event type.
  • -
  • Prometheus (prometheus): Add ability to query Consul Service catalog.
  • -
  • HTTP Listener V2 (http_listener_v2): Allow multiple paths and add path_tag.
  • -
  • HTTP (http): Add cookie authentication.
  • -
  • Syslog (syslog): Add RFC 3164 support for BSD-style syslog messages.
  • -
  • Jenkins (jenkins): Add option to include nodes by name.
  • -
  • SNMP Trap (snmp_trap): Improve MIB lookup performance.
  • -
  • Smart (smart): Add power mode status.
  • -
  • New Relic (newrelic): Add option to override metric_url.
  • -
-

Output plugin updates

-
    -
  • Dynatrace (dynatrace): Remove hardcoded int value.
  • -
  • InfluxDB v2 (influxdb_v2): Increase accepted retry-after header values.
  • -
  • SQL (sql): Add bool datatype.
  • -
  • Prometheus Client (prometheus_client): Add Landing page.
  • -
  • HTTP (http): Add cookie authentication.
  • -
-

Serializer plugin updates

-
    -
  • Prometheus (prometheus): Update timestamps and expiration time as new data arrives.
  • -
-

Parser plugin updates

-
    -
  • XPath (xpath): Add JSON, MessagePack, and Protocol-buffers format support.
  • -
-

New plugins

-

Input

- -

Output

- -

v.1.19.3

-
    -
  • Update sirupsen/logrus module from 1.7.0 to 1.8.1.
  • -
  • Update testcontainers/testcontainers-go module from 0.11.0 to 0.11.1.
  • -
  • Update golang/snappy module from 0.0.3 to 0.0.4.
  • -
  • Update aws/aws-sdk-go-v2 module from 1.3.2 to 1.8.0.
  • -
  • Update sensu/go module to v2.9.0.
  • -
  • Update hashicorp/consul/api module to 1.9.1.
  • -
-

Input plugin updates

-
    -
  • Prometheus (prometheus): Fix Kubernetes pod discovery.
  • -
  • Redis (redis) Improve redis commands documentation.
  • -
  • Clickhouse (clickhouse): Fix panic, improve handling empty result set.
  • -
  • OPC UA: (opcua): -
      -
    • Avoid closing session on a closed connection.
    • -
    • Fix reconnection regression introduced in 1.19.1.
    • -
    • Don’t skip good quality nodes after encountering bad quality node.
    • -
    -
  • -
  • Kubernetes Inventory (kube_inventory): Fix k8s nodes and pods parsing error.
  • -
  • PostgreSQL (postgresql): Normalize unix socket path.
  • -
  • vSphere (vsphere): Update vmware/govmomi module to v0.26.0 in order to support vSphere 7.0.
  • -
-

Output plugin updates

-
    -
  • Loki (loki): Sort logs by timestamp before writing to Loki.
  • -
  • CrateDB (cratedb): Replace dots in tag keys with underscores.
  • -
-

Processor plugin updates

-
    -
  • AWS (aws): Refactor EC2 init.
  • -
-

v.1.19.2

-
    -
  • Update Go to 1.16.6.
  • -
  • Linter fixes.
  • -
  • Update dynatrace-metric-utils-go module to v0.2.0.
  • -
  • Detect changes to configuration and reload Telegraf.
  • -
-

Input plugin updates

-
    -
  • CGroup (couchbase): Allow for multiple keys when parsing cgroups.
  • -
  • Kubernetes (kubernetes): Update plugin to attach pod labels to the kubernetes_pod_volume and kubernetes_pod_network metrics.
  • -
  • Kubernetes Inventory (kube_inventory): Fix a segmentation fault when selector labels were not present on a persistent volume claim.
  • -
  • MongoDB (mongodb): Switch to official mongo-go-driver module to fix an SSL authentication failure.
  • -
  • NSQ Consumer (couchbase): Fix a connection error when attempting to connect to an empty list of servers.
  • -
  • Prometheus (prometheus): Fix Prometheus cAdvisor authentication.
  • -
  • SQL (sql): Fix issue when handling a boolean column.
  • -
  • SQL Server (sqlserver): -
      -
    • Add TempDB troubleshooting stats and missing v2 query metrics.
    • -
    • Update to provide more detailed error messaging.
    • -
    -
  • -
  • StatsD (statsd): Fix a regression that didn’t allow integer percentiles.
  • -
  • x509 Certificate (x509_cert): Fix an issue where plugin would hang indefinitely to a UDP connection.
  • -
-

Output plugin updates

-
    -
  • Dynatrace Output (dynatrace): -
      -
    • Update plugin to allow optional default dimensions.
    • -
    • Fix a panic caused by uninitialized loggedMetrics map.
    • -
    -
  • -
  • InfluxDB (influxdb): Fix issue where metrics were reporting as written but not actually written.
  • -
-

Processor plugin updates

-
    -
  • IfName (ifname): Fix issue with SNMP empty metric name.
  • -
-

Parser plugin updates

-
    -
  • JSON v2 (json_v2): -
      -
    • Simplify how nesting is handled in parser.
    • -
    • Add support for large uint64 and int64 numbers.
    • -
    • Fix an issue to handle nested objects in arrays properly.
    • -
    -
  • -
-

v.1.19.1

-
    -
  • Update nat-server module to v2.2.6.
  • -
  • Update apimachinary module to v0.21.1.
  • -
  • Update jwt module to v1.2.2 and jwt-go module to v3.2.3.
  • -
  • Update couchbase module to v0.1.0.
  • -
  • Update signalfx module to v3.3.34.
  • -
  • Update gjson module to v1.8.0.
  • -
  • Linter fixes.
  • -
-

Input plugin updates

-
    -
  • SQL Server (sqlserver): Require authentication method to be specified.
  • -
  • Kube Inventory (kube_inventory): Fix segfault.
  • -
  • Couchbase (couchbase): Fix panic.
  • -
  • KNX (knx_listener): Fix nil pointer panic.
  • -
  • Procstat (procstat): Update gopsutil module to fix panic.
  • -
  • RabbitMQ (rabbitmq) Fix JSON unmarshall regression.
  • -
  • Dovecot (dovecot): Exclude read-timeout from being an error.
  • -
  • StatsD(statsd) Don’t stop parsing after parsing error.
  • -
  • SNMP (snmp): Add a check for oid and name to prevent empty metrics.
  • -
  • (x509_cert): -
      -
    • Fix ‘source’ tag for https.
    • -
    • Fix SNI support.
    • -
    -
  • -
-

Output plugin updates

-
    -
  • (http): Fix toml error when parsing insecure_skip_verify.
  • -
-

Parser plugin updates

-
    -
  • (json_v2): Don’t require tags to be added to included_keys.
  • -
-

v1.19.0

-
    -
  • Update Go to 1.16.5.
  • -
-

Bug fixes

-
    -
  • Update pgx to v4.
  • -
  • Fix reading configuration files starting with HTTP:
  • -
  • serializers.prometheusremotewrite: Update dependency and remove tags with empty values.
  • -
  • outputs.kafka: Don’t prevent telegraf from starting when there’s a connection error.
  • -
  • parsers.prometheusremotewrite: Update prometheus dependency to v2.21.0.
  • -
  • outputs.dynatrace: Use dynatrace-metric-utils.
  • -
  • Many linter fixes. (Thanks @zak-pawel and all!)
  • -
-

Features

-
    -
  • Configuration file environment variable can now be a URL.
  • -
  • Add named timestamp formats.
  • -
  • Allow multiple --config and --config-directory flags.
  • -
-

Plugin updates

-

Input plugin updates

-
    -
  • (aliyuncms): Add configuration option list of regions to query.
  • -
  • (cisco_telemetry_mdt): Add support for events and class based query.
  • -
  • (cloudwatch): Add wildcard support in dimensions configuration.
  • -
  • (couchbase): Add ~200 more Couchbase metrics via buckets endpoint.
  • -
  • (dovecot): Add support for Unix domain sockets.
  • -
  • (http_listener_v2): Add support for snappy compression
  • -
  • (http): Add OAuth2 to HTTP input.
  • -
  • (kinesis_consumer): Add content_encoding option with gzip and zlib support.
  • -
  • (logstash): Add support for version 7 queue statistics.
  • -
  • (mongodb): Optionally collect top statistics.
  • -
  • (mysql): Gather all MySQL channels.
  • -
  • (ping): Add an option to specify packet size.
  • -
  • (sqlserver): Add an optional health metric.
  • -
  • (sqlserver): Added login_name.
  • -
  • (sqlserver): Enable Azure Active Directory (AAD) authentication.
  • -
  • (sqlserver): input/sqlserver: Add service and save connection pools.
  • -
  • (vsphere): Add configuration option for the historical interval duration.
  • -
  • (x509_)cert: Wildcard support for certificate filenames.
  • -
-

Output plugin updates

-
    -
  • (datadog): Add HTTP proxy to DataDog output.
  • -
  • (graphite): Allow more characters in graphite tags.
  • -
-

Parser plugin updates

-
    -
  • (prometheusremotewrite): Add Starlark script for renaming metrics.
  • -
  • (value): Add custom field name configuration option.
  • -
-

Processor plugin updates

-
    -
  • (enum): Support float64.
  • -
  • (starlark): Add an example showing how to obtain IOPS from diskio input.
  • -
  • (starlark): Add math module.
  • -
  • (starlark): Add time module.
  • -
  • (starlark): Support nanosecond resolution timestamp.
  • -
  • (strings): Add UTF-8 sanitizer.
  • -
-

New plugins

-

Input

- -

Output

- -

Parser

- -

External

- -

v1.18.3

-
    -
  • Add FreeBSD ARMv7 build.
  • -
  • Dependencies: -
      -
    • Migrate from soniah/gosnmp to gosnmp/gosnmp v1.32.0.
    • -
    • Migrate from docker/libnetwork/ipvs to moby/ipvs.
    • -
    • Migrate from ericchiang/k8s to kubernetes/client-go.
    • -
    • Update hashicorp/consul/api module to v1.8.1.
    • -
    • Update shirou/gopsutil to v3.21.3.
    • -
    • Update microsoft/ApplicationInsights-Go to v0.4.4
    • -
    • Update gogo/protobuf to v1.3.2.
    • -
    • Update Azure/go-autorest/autorest/azure/auth to v0.5.6 and Azure/go-autorest/autorest to v0.11.17.
    • -
    • Update collectd.org to v0.5.0.
    • -
    • Update nats-io/nats.go to v1.10.0.
    • -
    • Update golang/protobuf to v1.5.1.
    • -
    -
  • -
-

Input plugin updates

- -

Output plugin updates

- -

v1.18.2

-
    -
  • Make JSON format compatible with nulls to ensure Telegraf successfully detects null values and returns an empty metric without error.
  • -
  • Update common.shim by changing NewStreamParser to accept larger inputs from scanner.
  • -
-

Input plugin updates

-
    -
  • APCUPSD Input (apcupsd): -Resolve an ‘ALARMDEL’ bug in a forked repository. This fix ensures the plugin works when no alarm delay duration is set.
  • -
  • NFS Client Input (nfsclient): Update to successfully collect metrics other than read and write.
  • -
  • SNMP Input (snmp): Update to log snmpv3 auth failures.
  • -
  • VMware vSphere Input (vsphere): Add MetricLookback setting to handle reporting delays in vCenter 6.7 and later.
  • -
  • OPC UA Client Input (opcua): Fix error handling.
  • -
-

Output plugin updates

- -

Processor plugin updates

-
    -
  • Converter Processor (converter): -Add support for float64 to support converting longer hexadecimal string values to a numeric type without losing in precision. Note, if a string number exceeds the size limit for float64, precision may be lost.
  • -
-

v1.18.1

-
    -
  • Agent: Closes running outputs when agent reloads on SIGHUP.
  • -
-

Input plugin updates

-
    -
  • Docker Input (docker): -Fix panic when parsing container statistics.
  • -
  • Exec Input (exec): -Fix truncated messages in debug mode; debug mode now shows full messages.
  • -
  • IPMI Sensor Input (ipmi_sensor): -Fix panic by implementing a length check to plugin.
  • -
  • MySQL Input (mysql): -Fix the ability to handle ‘binary logs’ query for MySQL version 8.0+.
  • -
  • NFS Client Input (nfsclient): -Fix integer overflow in fields received by mountstat.
  • -
  • Ping Input (ping): -Resolve error that prevented the agent from running when an unprivileged UDP ping was sent. Now, SetPrivileged(true) is always true in native mode to ensure a privileged ICMP ping is sent.
  • -
  • SNMP Input (snmp): -Fix init() when no MIBs are installed.
  • -
  • SQL Server Input (sqlserver): -Fix sqlserver_process_cpu calculation.
  • -
  • Tail Input (tail): -Added configurable option to override path tag.
  • -
-

Output plugin updates

- -

Processor plugin updates

-
    -
  • ifName (ifname): -Retrieve interface name more efficiently.
  • -
-

v1.18

-

Features

-
    -
  • Update to Go 1.16.2.
  • -
  • Add code signing for Windows and macOS.
  • -
  • More SNMP v3 authentication protocols, including SHA-512.
  • -
  • Add support for DataDog distributions metric type.
  • -
-

New plugins

-

Inputs

- -

Outputs

- -

External

- -

Aggregators

- -

Processors

- -

Parsers

- -

Serializers

- -

v.1.17.3

-
    -
  • Update to Go 1.15.8.
  • -
-

Input plugin updates

-
    -
  • Filestat (filestat): Skip missing files.
  • -
  • MQTT Consumer (mqtt_consumer): Fix reconnection issues.
  • -
  • Ping (ping): -
      -
    • Fix a timeout for deadline configuration.
    • -
    • Update README with correct cmd for native ping on Linux.
    • -
    • Fix percentile calculations.
    • -
    -
  • -
  • SNMP (snmp): Add support to expose IPv4/IPv6 as connection-schemes.
  • -
  • x509 Certificate (x509_cert): Fix a timeout issue.
  • -
  • -
-

Output plugin updates

-
    -
  • InfluxDB v1.x (influxdb): Validate InfluxDB response after creating a database to avoid JSON parsing errors.
  • -
  • Warp10 (warp10): Add support for commas in tags to be URL encoded.
  • -
-

Miscellaneous fixes and updates

-
    -
  • Telegraf configuration file (telegraf.conf): Resolve issue reading flush_jitter output.
  • -
  • Library updates: -
      -
    • Update github.com/gopcua/opcua to 0.1.13.
    • -
    • Update go-ping to latest version.
    • -
    -
  • -
-

v.1.17.2

-

Input plugin updates

-
    -
  • ping: -
      -
    • Added support to the interface in native mode using either the name or IP address.
    • -
    • Resolved regression from 1.17.1 by adding back missing function.
    • -
    -
  • -
-

v.1.17.1

-

Features

-
    -
  • Add Event Log support for Windows platforms.
  • -
  • Allow specifying SNI hostnames in common.tls.
  • -
-

Input plugin updates

-
    -
  • csv: -
      -
    • Add ability to define an array of string skip values.
    • -
    • Address issue of ignoring missing values.
    • -
    -
  • -
  • gnmi: Metric path no longer has leading character truncated.
  • -
  • http_listener_v2: Fixed an issue with stop() when plugin fails to start.
  • -
  • ipmi_sensor: -
      -
    • Add setting to enable caching.
    • -
    • Add hex_key parameter.
    • -
    -
  • -
  • jenkins: Add support for inclusive job list.
  • -
  • lustre2: No longer crashes if the field name and value are not separated.
  • -
  • ping: Use go-ping library when method = "native" in the configuration
  • -
  • prometheus: Use mime-type to handle protocol-buffer responses.
  • -
  • procstat: -
      -
    • Provide an option to include core count when reporting cpu_usage
    • -
    • Use the same timestamp for all metrics in the same Gather() cycle.
    • -
    -
  • -
  • postgresql_extensible: Add timestamp column option to postgres_extensible to handle log-like queries.
  • -
  • snmp: Extended the internal SNMP wrapper to support AES-192, AES-192C, AES-256, and AES-256C.
  • -
  • webhooks: Use the measurement json field from the Particle.io webhook as the measurement name.
  • -
  • x509_cert: Fixed a timeout issue
  • -
  • zookeeper: Improve mntr regex expression to match user-specific keys.
  • -
-

Output plugin updates

-
    -
  • http: Add option to control idle connection timeout.
  • -
  • influxdb_v2: -
      -
    • Log no longer flooded with errors when Elasticsearch receiver is in read-only state.
    • -
    • Add exponential backoff and respecting client error responses.
    • -
    -
  • -
-

Aggregator plugin updates

-
    -
  • merge: Performance optimization improvements.
  • -
-

v1.17.0

-

Features

-
    -
  • Update Go to 1.15.5.
  • -
  • Added support for Linux/ppc64le.
  • -
-

New plugins

-

Inputs

- -

Outputs

- -

Output data formats (serializers)

- -

Parsers

- -

Input plugin updates

-
    -
  • aerospike: Fix edge case where unexpected hex string was converted to integer if all digits.
  • -
  • bcache: Fix tests for Windows.
  • -
  • bind: Add configurable timeout.
  • -
  • carbon2: Fix tests.
  • -
  • ecs: Remove duplicated field from ecs_task.
  • -
  • execd: Add support for new lines in line protocol fields.
  • -
  • github: Add query of pull request statistics.
  • -
  • graphite: Parse tags.
  • -
  • http: Add proxy support.
  • -
  • http_response: Fix network test.
  • -
  • jenkins: Add build number field to jenkins_job measurement.
  • -
  • kafka_consumer: Enable ztsd compression and idempotent writes.
  • -
  • kube_inventory: -
      -
    • Fix issue with missing metrics when pod has only pending containers.
    • -
    • Update string parsing of allocatable cpu cores.
    • -
    -
  • -
  • modbus: Add FLOAT64-IEEE support.
  • -
  • monit: Add response_time.
  • -
  • mysql: Add per user metrics.
  • -
  • mqtt_consumer: Fix issue with concurrent map write.
  • -
  • opcuaAdd node groups.
  • -
  • ping: -
      -
    • Add percentiles.
    • -
    • Fix potential issue with race condition.
    • -
    -
  • -
  • snmp: -
      -
    • Add support for converting hex strings to integers.
    • -
    • Translate field values.
    • -
    -
  • -
  • socket_listener: Fix crash when receiving invalid data.
  • -
  • sqlserver: -
      -
    • Add tags for monitoring readable secondaries for Azure SQL MI.
    • -
    • Add SQL Server HA/DR Availability Group queries.
    • -
    • Remove duplicate column (session_db_name).
    • -
    • Add column measurement_db_type to output of all queries if not empty.
    • -
    -
  • -
  • statsd: Add configurable Max TTL duration.
  • -
  • vsphere: Fix spelling of datacenter check.
  • -
  • win_services: Add Glob pattern matching.
  • -
  • zfs: Add dataset metrics.
  • -
-

Output plugin updates

-
    -
  • kafka: Enable ztsd compression and idempotent writes.
  • -
  • nats: Add name parameter.
  • -
-

Processor plugin updates

-
    -
  • starlark: Can now store state between runs using a global state variable.
  • -
-

v1.16.3

-

Features

-
    -
  • Update godirwalk to 1.16.1 for Dragonfly BSD support.
  • -
-

Input plugin updates

-
    -
  • -

    APCUPSD (apcupsd): Add driver and CUDA version.

    -
  • -
  • -

    CSV Parser (csv): Fix issue where CSV timestamp was being read as Unix instead of Go reference time.

    -
  • -
  • -

    gNMI (gnmi): Add logging of SubscribeResponse_Error response types.

    -
  • -
  • -

    NVIDIA SMI (nvidia_smi): Add driver and CUDA version.

    -
  • -
  • -

    PHP-FPM (phpfpm): Fix issue with “index out of range” error.

    -
  • -
  • -

    SQL Server (sqlserver): Fix typo in database_name column.

    -
  • -
-

Output plugin updates

-
    -
  • Wavefront (wavefront): -
      -
    • Distinguish between retryable and non-retryable errors .
    • -
    • Add debug-level logging for metric data that is not retryable.
    • -
    -
  • -
-

Parser plugin updates

-
    -
  • Starlark (starlark): -
      -
    • Allow the processor to manage errors that occur in the apply function.
    • -
    • Add support for logging.
    • -
    • Add capability to return multiple metrics.
    • -
    -
  • -
-

v1.16.2

-

Input plugin updates

-
    -
  • CSV Parser (csv): Fix parsing multiple CSV files with different headers.
  • -
  • DC/OS (dcos): Fix high-severity vulnerability in previous version of the jwt-go library.
  • -
  • gNMI (gnmi): Add support for bytes encoding for gNMI messages.
  • -
  • Proxmox ( proxmox): -
      -
    • Fix a few issues with error reporting.
    • -
    • Now ignores QEMU templates.
    • -
    -
  • -
  • RAS (ras): Fix tests failing on some systems.
  • -
  • Redfish (redfish): Fix a parsing issue.
  • -
  • SMART (smart): Fix an issue to recognize all devices from the configuration.
  • -
  • SQL Server (sqlserver): Fix an issue with errors in on-premise instance queries.
  • -
  • Systemd Units (systemd_units): Add --plain to the command invocation to fix an issue for reporting errors for units not found.
  • -
  • vSphere (vsphere) -
      -
    • Fix to how metrics were counted.
    • -
    • Fix to metrics being skipped under in certain specific circumstances.
    • -
    -
  • -
-

Output plugin updates

-
    -
  • Dynatrace (dynatrace): Fix pushing metrics to separate Dynatrace environments.
  • -
  • Wavefront (wavefront): Add immediate_flush tag.
  • -
-

v1.16.1

-

Input plugin updates

-
    -
  • Apache Kafka Consumer (kafka_consumer): Add Kafka SASL-mechanism authentication support for SCRAM-SHA-256, SCRAM-SHA-512, and GSSAPI.
  • -
  • Microsoft SQL Server (sqlserver): -
      -
    • Fix a syntax error in Azure queries.
    • -
    • Remove synthetic performance counters that no longer exist from the sqlserver_performance_counters measurement.
    • -
    • Add a new tag (sql_version_desc) to identify the readable SQL Server version.
    • -
    -
  • -
  • RAS (ras): -
      -
    • Disable on specific Linux architectures (MIPS64, mips64le, ppc64le, riscv64).
    • -
    • Fix an issue to properly close file handlers.
    • -
    -
  • -
  • Processes (processes): Fix an issue with receiving no such file or directory stat error.
  • -
  • Windows Performance Counters (win_perf_counters): Fix an issue with the counter where a negative denominator error would cause gathering operations to fail.
  • -
-

Output plugin updates

-
    -
  • Apache Kafka (kafka): Add Kafka SASL-mechanism authentication support for SCRAM-SHA-256, SCRAM-SHA-512, GSSAPI.
  • -
-

v1.16.0

-

New plugins

-

Inputs

- -

Outputs

- -

External

- -

Input plugin updates

-
    -
  • aerospike: Add set and histogram reporting.
  • -
  • agent: -
      -
    • Send metrics in FIFO order.
    • -
    • Fix issue with execd restart_delay being ignored.
    • -
    • Sort plugin name lists for output.
    • -
    -
  • -
  • clickhouse: Add additional metrics.
  • -
  • cloudwatch: Implement AWS CloudWatch Input Plugin ListMetrics API calls to use Active Metric Filter.
  • -
  • consul: Add metric_version flag.
  • -
  • docker: Fix vulnerabilities found in BDBA scan.
  • -
  • execd: Fix issue with restart_delay being ignored.
  • -
  • gnmi: Next message after send returns EOF.
  • -
  • http_listener_v2: Make header tags case-insensitive.
  • -
  • http_response: Match on status code.
  • -
  • jenkins: Multiple escaping occurs on at certain folder depth.
  • -
  • kubernetes: Add missing error check for HTTP requirement failure.
  • -
  • modbus: Extend support of fixed point values on input.
  • -
  • mongodb: Add pages written from cache metric.
  • -
  • net: Fix broken link to proc.c.
  • -
  • snmp Add agent host tag configuration option.
  • -
  • smart: Add missing NVMe attributes.
  • -
  • sqlserver: -
      -
    • Database_type config to Split up sql queries by engine type
    • -
    • Fixed query mapping
    • -
    • New refactoring and formatting queries.
    • -
    • Add more performance counters.
    • -
    -
  • -
  • tail: -
      -
    • Close file to ensure it has been flushed.
    • -
    • Fix following on EOF.
    • -
    -
  • -
-

Output plugin updates

-
    -
  • elasticsearch: Added force_document_id option to ES output enable resend data and avoid duplicated ES documents.
  • -
  • opentsdb: Skips NaN and Inf JSON values.
  • -
-

Processor plugin updates

-
    -
  • execd: Increased the maximum serialized metric size in line protocol
  • -
  • ifname: Add addTag debugging.
  • -
  • starlark: Add JSON parsing support.
  • -
-

Bug fixes

-
    -
  • Fix darwin package build flags.
  • -
  • shim: -
      -
    • Fix bug with loading plugins with no config.
    • -
    • Logger improvements.
    • -
    • Fix issue with loading processor config from execd.
    • -
    -
  • -
  • Initialize aggregation processors.
  • -
  • Fix arch name in deb/rpm builds.
  • -
  • Fix issue with rpm /var/log/telegraf permissions
  • -
  • Fix docker-image make target.
  • -
  • Remove Event field from serializers.splunkmetric.
  • -
  • Fix panic on streaming processors using logging
  • -
  • ParseError.Error panic in parsers.influx
  • -
  • Fix procstat performance regression
  • -
  • Fix serialization when using carbon2.
  • -
  • Fix bugs found by LGTM analysis platform.
  • -
  • Update to Go 1.15.2
  • -
-

v.1.15.3

-

Features

-
    -
  • processors.starlark: -
      -
    • Improve the quality of docs by executing them as tests.
    • -
    • Add pivot example.
    • -
    -
  • -
  • outputs.application_insights: Added ability to set endpoint url.
  • -
  • inputs.sqlserver: Added new counter - Lock Timeouts (timeout > 0)/sec.
  • -
-

Bug fixes

-
    -
  • agent: Fix minor error message race condition.
  • -
  • build: Update dockerfiles to Go 1.14.
  • -
  • shim: -
      -
    • Fix bug in logger affecting AddError.
    • -
    • Fix issue with config.Duration.
    • -
    -
  • -
  • inputs.eventhub_consumer: Fix string to int conversion.
  • -
  • inputs.http_listener_v2: Make http header tags case-insensitive.
  • -
  • inputs.modbus: Extend support of fixed point values.
  • -
  • inputs.ping: Fix issue for FreeBSD’s ping6.
  • -
  • inputs.vsphere: Fixed missing cluster name.
  • -
  • outputs.opentsdb Fix JSON handling of values NaN and Inf.
  • -
-

v1.15.2

-

Bug Fixes

-
    -
  • Fix RPM /var/log/telegraf permissions.
  • -
  • Fix tail following on EOF.
  • -
-

v1.15.1

-

Bug fixes

-
    -
  • Fix architecture in non-amd64 deb and rpm packages.
  • -
-

v1.15.0

- -
-

Critical bug that impacted non-amd64 packages was introduced in 1.15.0. Do not install this release. Instead, install 1.15.1, which includes the features, new plugins, and bug fixes below.

- -
- -

Breaking changes

-

Breaking changes are updates that may cause Telegraf plugins to fail or function incorrectly. If you have one of the following plugins installed, make sure to update your plugin as needed:

-
    -
  • Logparser (logparser) input plugin: Deprecated. Use the tail input with data_format = "grok" as a replacement.
  • -
  • Cisco GNMI Telemetry (cisco_telemetry_gnmi) input plugin: Renamed to gnmi to better reflect its general support for gNMI devices.
  • -
  • Splunkmetric (splunkmetric) serializer: Several fields used primarily for debugging have been removed. If you are making use of these fields, they can be added back with the tag option.
  • -
-

New plugins

-

Inputs

- -

Outputs

- -

Processors

- -

Features

-
    -
  • Telegraf’s --test mode runs processors and aggregators before printing metrics.
  • -
  • Official packages built with Go 1.14.5.
  • -
  • When updating the Debian package, you will no longer be prompted to merge the telegraf.conf file. Instead, the new version will be installed to /etc/telegraf/telegraf.conf.sample. The tar and zip packages now include the version in the top-level directory.
  • -
  • Allow per input overriding of collection_jitter and precision.
  • -
  • Deploy Telegraf configuration as telegraf.conf.sample.
  • -
  • Use Docker log timestamp as metric time.
  • -
  • Apply ping deadline to DNS lookup.
  • -
  • Support multiple templates for graphite serializers.
  • -
  • Add configurable separator graphite serializer and output.
  • -
  • Add support for SIGUSR1 to trigger flush.
  • -
  • Add support for once mode that writes to outputs and exits.
  • -
  • Run processors and aggregators during test mode.
  • -
  • Add timezone configuration to CSV parser.
  • -
-

Input plugin updates

-
    -
  • Ceph Storage (ceph): Add support for MDS and RGW sockets.
  • -
  • ECS (ecs): Add v3 metadata support.
  • -
  • Fibaro (fibaro): Add support for battery-level monitoring.
  • -
  • File (file): -
      -
    • Support UTF-16.
    • -
    • Exclude csv_timestamp_column and csv_measurement_column from fields.
    • -
    -
  • -
  • HTTP (http): Add reading bearer token.
  • -
  • HTTP Listener v2 (http_listener_v2): Add ability to specify HTTP headers as tags.
  • -
  • HTTP Response (http_response): -
      -
    • Add authentication support.
    • -
    • Allow collection of HTTP headers.
    • -
    • Add ability to collect response body as field.
    • -
    -
  • -
  • Icinga 2 (icinga2): -
      -
    • Fix source field.
    • -
    • Add tag for server hostname.
    • -
    -
  • -
  • InfluxDB Listener (influxdb_listener): Add option to save retention policy as tag.
  • -
  • IPtables (iptables): Extract target as a tag for each rule.
  • -
  • Kibana (kibana): Fix json unmarshal error.
  • -
  • Kubernetes Inventory (kube_inventory): Add ability to add selectors as tags.
  • -
  • Mem (mem): Add laundry on FreeBSD.
  • -
  • Microsoft SQL Server (sqlserver): -
      -
    • Add VolumeSpace query.
    • -
    • Add cpu query.
    • -
    • Add counter type to perfmon collector.
    • -
    • Improve compatibility with older server versions.
    • -
    • Fix typo in total_elapsed_time_ms field.
    • -
    -
  • -
  • Modbus (modbus): -
      -
    • Add support for 64-bit integer types.
    • -
    • Add retry when replica is busy.
    • -
    • Add ability to specify measurement per register.
    • -
    -
  • -
  • MongoDB (monogdb): -
      -
    • Add commands stats.
    • -
    • Add additional fields.
    • -
    • Add cluster state integer.
    • -
    • Add option to disable cluster status.
    • -
    • Add additional conccurrent transaction information.
    • -
    -
  • -
  • NVIDIA SMI (nvidia_smi): Add video codec stats.
  • -
  • Procstat (procstat): -
      -
    • Improve performance.
    • -
    • Fix memory leak.
    • -
    -
  • -
  • S.M.A.R.T. (smart): Add missing nvme attributes.
  • -
  • SNMP Trap (snmp_trap): Add SNMPv3 trap support.
  • -
  • System (system): Fix incorrect uptime when clock is adjusted.
  • -
  • Tail (tail): Support UTF-16.
  • -
-

Output plugin updates

-
    -
  • Enum (enum): Add integer mapping support.
  • -
-

Processor plugin updates

-
    -
  • Date (date): -
      -
    • Add field creation.
    • -
    • Add integer unix time support.
    • -
    -
  • -
  • Wavefront (wavefront): Add truncate_tags setting.
  • -
-

Bug fixes

-
    -
  • Fix ability to write metrics to CloudWatch with IMDSv1 disabled.
  • -
  • Fix vSphere 6.7 missing data issue.
  • -
  • Fix gzip support in socket_listener with tcp sockets.
  • -
  • Fix interval drift when round_interval is set in agent.
  • -
  • Fix incorrect uptime when clock is adjusted.
  • -
  • Remove trailing backslash from tag keys/values in influx serializer.
  • -
  • Fix incorrect Azure SQL DB server properties.
  • -
  • Send metrics in FIFO order.
  • -
-

v1.14.5

-

Bug fixes

-
    -
  • Improve the performance of the procstat input.
  • -
  • Fix ping exit code handling on non-Linux operating systems.
  • -
  • Fix errors in output of the sensors command.
  • -
  • Prevent startup when tags have incorrect type in configuration file.
  • -
  • Fix panic with GJSON multiselect query in JSON parser.
  • -
  • Allow any key usage type on x509 certificate.
  • -
  • Allow histograms and summary types without buckets or quantiles in prometheus_client output.
  • -
-

v1.14.4

-

Bug fixes

-
    -
  • Fix the cannot insert the value NULL error with the PerformanceCounters query in the sqlServer input plugin.
  • -
  • Fix a typo in the naming of the gc_cpu_fraction field in the influxdb input plugin.
  • -
  • Fix a numeric to bool conversion in the converter processor.
  • -
  • Fix an issue with the influx stream parser blocking when the data is in buffer.
  • -
-

v1.14.3

-

Bug fixes

-
    -
  • Use same timestamp for all objects in arrays in the json parser.
  • -
  • Handle multiple metrics with the same timestamp in dedup processor.
  • -
  • Fix reconnection of timed out HTTP2 connections influxdb outputs.
  • -
  • Fix negative value parsing in impi_sensor input.
  • -
-

v1.14.2

-

Bug fixes

-
    -
  • Trim white space from instance tag in sqlserver input .
  • -
  • Use increased AWS Cloudwatch GetMetricData limit of 500 metrics per call.
  • -
  • Fix limit on dimensions in azure_monitor output.
  • -
  • Fix 64-bit integer to string conversion in snmp input.
  • -
  • Fix shard indices reporting in elasticsearch input plugin.
  • -
  • Ignore fields with Not a Number or Infinity floats in the JSON serializer.
  • -
  • Fix typo in name of gc_cpu_fraction field of the kapacitor input.
  • -
  • Don’t retry create database when using database_tag if forbidden by the server in influxdb output.
  • -
  • Allow CR and FF inside of string fields in InfluxDB line protocol parser.
  • -
-

v1.14.1

-

Bug fixes

-
    -
  • Fix PerformanceCounter query performance degradation in sqlserver input.
  • -
  • Fix error when using the Name field in template processor.
  • -
  • Fix export timestamp not working for Prometheus on v2.
  • -
  • Fix exclude database and retention policy tags.
  • -
  • Fix status path when using globs in phpfpm.
  • -
-

v1.14

-

Breaking changes

-

Breaking changes are updates that may cause Telegraf plugins to fail or function incorrectly. If you have one of the following plugins installed, make sure to update your plugin as needed:

-
    -
  • Microsoft SQL Server (sqlserver) input plugin: Renamed the sqlserver_azurestats measurement to sqlserver_azure_db_resource_stats to resolve an issue where numeric metrics were previously being reported incorrectly as strings.
  • -
  • Date (date) processor plugin: Now uses the UTC timezone when creating its tag. Previously, the local time was used.
  • -
- -
-

Support for SSL v3.0 is deprecated in this release. -Telegraf now uses the Go TLS library.

- -
- -

New plugins

-

Inputs

- -

Processors

- -

Outputs

- -

Features

-

Input plugin updates

-
    -
  • Apache Kafka Consumer (kafka_consumer): Add SASL version control to support Microsoft Azure Event Hub.
  • -
  • Apcupsd (apcupsd): Add new tag model and new metrics: battery_date, nominal_input_voltage, nominal_battery_voltage, nominal_power, firmware.
  • -
  • Cisco Model-driven Telemetry (MDT) (cisco_telemetry_gnmi) input plugin: -
      -
    • Add support for GNMI DecimalVal type.
    • -
    • Replace dash (-) with underscore (_) when handling embedded tags.
    • -
    -
  • -
  • DiskIO (diskio): Add counters for merged reads and writes.
  • -
  • IPMI Sensor (ipmi_sensor): Add use_sudo option.
  • -
  • Jenkins (jenkins): -
      -
    • Add source and port tags to jenkins_job metrics.
    • -
    • Add new fields total_executors and busy_executors.
    • -
    -
  • -
  • Kubernetes (kubernetes): Add ability to collect pod labels.
  • -
  • Microsoft SQL Server (sqlserver): -
      -
    • Add RBPEX IO statistics to DatabaseIO query.
    • -
    • Add space on disk for each file to DatabaseIO query.
    • -
    • Calculate DB Name instead of GUID in physical_db_name.
    • -
    • Add DatabaseIO TempDB per Azure DB.
    • -
    • Add query_include option for explicitly including queries.
    • -
    • Add volume_mount_point to DatabaseIO query.
    • -
    -
  • -
  • MongoDB (mongodb): -
      -
    • Add page_faults for WiredTiger storage engine.
    • -
    • Add latency statistics.
    • -
    • Add replica set tag (rs_name).
    • -
    -
  • -
  • NATS Consumer (nats_consumer): Add support for credentials file.
  • -
  • NGINX Plus API (nginx_plus_api): Add support for new endpoints.
  • -
  • OpenLDAP (openldap): Add support for MDB database information.
  • -
  • PHP-FPM (phpfpm): Allow globs in FPM unix socket paths (unixsocket).
  • -
  • Procstat (procstat): Add process created_at time.
  • -
  • Prometheus (prometheus) input plugin: Add label and field selectors for Kubernetes service discovery.
  • -
  • RabbitMQ (rabbitmq): Add slave_nodes and synchronized_slave_nodes metrics.
  • -
  • StatsD (statsd): Add UDP internal metrics.
  • -
  • Unbound (unbound): Expose -c cfgfile option of unbound-control and set the default unbound configuration (config_file= "/etc/unbound/unbound.conf) in the Telegraf configuration file.
  • -
  • VMware vSphere (vsphere): Add option to exclude resources by inventory path, including vm_exclude, host_exclude, cluster_exclude (for both clusters and datastores), and datacenter_exclude.
  • -
  • X.509 Certificate (x509_cert): Add server_name override.
  • -
-

Output plugin updates

-
    -
  • Apache Kafka (kafka): Add topic_tag and exclude_topic_tag options.
  • -
  • Graylog (graylog): Allow a user defined field (short_message_field) to be used as the GELF short_message.
  • -
  • InfluxDB v1.x (influxdb): Add support for setting the retention policy using a tag (retention_policy_tag).
  • -
  • NATS Output (nats): Add support for credentials file.
  • -
-

Aggregator plugin updates

-
    -
  • Histogram (histogram): Add non-cumulative histogram.
  • -
-

Processor plugin updates

-
    -
  • Converter (converter): Add support for converting tag or field to measurement.
  • -
  • Date (date): Add date offset and timezone options.
  • -
  • Strings (strings): Add support for titlecase transformation.
  • -
-

Bug fixes

-
    -
  • Fix Telegraf log rotation to use actual file size instead of bytes written.
  • -
  • Fix internal Telegraf metrics to prevent output split into multiple lines.
  • -
  • Chrony (chrony) input plugin: When plugin is enabled, search for chronyc only.
  • -
  • Microsoft SQL Server (sqlserver) input plugin: -
      -
    • Fix conversion to floats in AzureDBResourceStats query.
    • -
    • Fix case sensitive collation.
    • -
    • Fix several issues with DatabaseIO query.
    • -
    • Fix schedulers query compatibility with pre SQL-2016.
    • -
    -
  • -
  • InfluxDB Listener (influxdb_listener): -
      -
    • Fix request failing with EOF.
    • -
    • Continue parsing after error.
    • -
    • Set headers on ping URL.
    • -
    -
  • -
-

v1.13.4

-

Release Notes

-

Official packages now built with Go 1.13.8.

-

Bug fixes

-
    -
  • Parse NaN values from summary types in Prometheus (prometheus) input plugin.
  • -
  • Fix PgBouncer (pgbouncer) input plugin when used with newer PgBouncer versions.
  • -
  • Support up to 8192 stats in the Ethtool (ethtool) input plugin.
  • -
  • Fix performance counters collection on named instances in Microsoft SQL Server (sqlserver) input plugin.
  • -
  • Use add time for Prometheus expiration calculation.
  • -
  • Fix inconsistency with input error counting in Telegraf v1.x (internal) input plugin.
  • -
  • Use the same timestamp per call if no time is provided in Prometheus (prometheus) input plugin.
  • -
-

v1.13.3

-

Bug fixes

-
    -
  • Update Kibana (kibana) input plugin to support Kibana 6.4 and later.
  • -
  • Prevent duplicate TrackingIDs from being returned in the following queue consumer input plugins: -
      -
    • Amazon Kineses Consumer (kinesis_consumer)
    • -
    • AMQP Consumer (amqp_consumer)
    • -
    • Apache Consumer (apache_consumer)
    • -
    • MQTT Consumer (mqtt_consumer)
    • -
    • NATS Consumer (nats_consumer)
    • -
    • NSQ Consumer (nsq_consumer)
    • -
    -
  • -
  • Increase support for up to 4096 statistics in the Ethtool (ethtool) input plugin.
  • -
  • Remove expired metrics from the Prometheus Client (prometheus_client) output plugin. Previously, expired metrics were only removed when new metrics were added.
  • -
-

v1.13.2

-

Bug fixes

-
    -
  • Warn without error when Processes (processes) input is started on Windows.
  • -
  • Only parse certificate blocks in X.509 Certificate (x509_cert) input plugin.
  • -
  • Add custom attributes for all resource types in VMware vSphere (vsphere) input plugin.
  • -
  • Support URL agent address form with UDP in SNMP (snmp) input plugin.
  • -
  • Record device fields in the SMART (smart) input plugin when attributes is false.
  • -
  • Remove invalid timestamps from Kafka messages.
  • -
  • Update json parser to fix json_strict option and set default to true.
  • -
-

v1.13.1

-

Bug fixes

-
    -
  • Fix ServerProperty query stops working on Azure after failover.
  • -
  • Add leading period to OID in SNMP v1 generic traps.
  • -
  • Fix missing config fields in prometheus serializer.
  • -
  • Fix panic on connection loss with undelivered messages in MQTT Consumer -(mqtt_consumer) input plugin.
  • -
  • Encode query hash fields as hex strings in SQL Server (sqlserver) input plugin.
  • -
  • Invalidate diskio cache if the metadata mtime has changed.
  • -
  • Show platform not supported warning only on plugin creation.
  • -
  • Fix rabbitmq cannot complete gather after request error.
  • -
  • Fix /sbin/init --version executed on Telegraf startup.
  • -
  • Use last path element as field key if path fully specified in Cisco GNMI Telemetry -(cisco_telemetry_gnmi) input plugin.
  • -
-

v1.13

-

Release Notes

-

Official packages built with Go 1.13.5. -The Prometheus Format (prometheus) input plugin and Prometheus Client (prometheus_client) -output have a new mapping to and from Telegraf metrics, which can be enabled by setting metric_version = 2. -The original mapping is deprecated. When both plugins have the same setting, -passthrough metrics are unchanged. -Refer to the Prometheus input plugin -for details about the mapping.

-

New Inputs

- -

New Processors

- -

New Aggregators

- -

Features

-
    -
  • Add per node memory stats to RabbitMQ (rabbitmq) input plugin.
  • -
  • Add ability to read query from file to PostgreSQL (postgresql_extensible) input plugin.
  • -
  • Add replication metrics to the Redis (redis) input plugin.
  • -
  • Support NX-OS telemetry extensions in Cisco Model-driven Telemetry (cisco_telemetry_mdt) -input plugin.
  • -
  • Allow graphite parser to create Inf and NaN values.
  • -
  • Use prefix base detection for ints in grok parser.
  • -
  • Add more performance counter metrics to Microsoft SQL Server (sqlserver) input plugin.
  • -
  • Add millisecond unix time support to grok parser.
  • -
  • Add container ID as optional source tag to Docker (docker) and Docker Log -(docker_log) input plugins.
  • -
  • Add lang parameter to OpenWeatherMap (openweathermap) input plugin.
  • -
  • Log file open errors at debug level in Tail (tail) input plugin.
  • -
  • Add timeout option to Amazon CloudWatch (cloudwatch) input plugin.
  • -
  • Support custom success codes in HTTP (http) input plugin.
  • -
  • Improve IPVS (ipvs) input plugin error strings and logging.
  • -
  • Add strict mode to JSON parser that can be disabled to ignore invalid items.
  • -
  • Add support for Kubernetes 1.16 and remove deprecated API usage.
  • -
  • Add gathering of RabbitMQ federation link metrics.
  • -
  • Add bearer token defaults for Kubernetes plugins.
  • -
  • Add support for SNMP over TCP.
  • -
  • Add support for per output flush jitter.
  • -
  • Add a nameable file tag to File (file) input plugin.
  • -
  • Add Splunk MultiMetric support.
  • -
  • Add support for sending HTTP Basic Auth in InfluxDB (influxdb) input plugin.
  • -
  • Add ability to configure the url tag in the Prometheus Format (prometheus) input plugin.
  • -
  • Add Prometheus metric_version=2 mapping to internal metrics/line protocol.
  • -
  • Add Prometheus metric_version=2 support to Prometheus Client (prometheus_client) output plugin.
  • -
  • Add content_encoding compression support to Socket Listener (socket_listener) input plugin.
  • -
  • Add high resolution metrics support to Amazon CloudWatch (cloudwatch) output plugin.
  • -
  • Add SReclaimable and SUnreclaim to Memory (mem) input plugin.
  • -
  • Allow multiple certificates per file in X.509 Certificate (x509_cert) input plugin.
  • -
  • Add additional tags to the X.509 Certificate (x509_cert) input plugin.
  • -
  • Add batch data format support to File (file) output plugin.
  • -
  • Support partition assignment strategy configuration in Apache Kafka Consumer -(kafka_consumer) input plugin.
  • -
  • Add node type tag to MongoDB (mongodb) input plugin.
  • -
  • Add uptime_ns field to MongoDB (mongodb) input plugin.
  • -
  • Support resolution of symlinks in Filecount (filecount) input plugin.
  • -
  • Set message timestamp to the metric time in Apache Kafka (kafka) output plugin.
  • -
  • Add base64decode operation to String (string) processor.
  • -
  • Add option to control collecting global variables to MySQL (mysql) input plugin.
  • -
-

Bug fixes

-
    -
  • Show correct default settings in MySQL (mysql) sample configuration.
  • -
  • Use 1h or 3h rain values as appropriate in OpenWeatherMap (openweathermap) input plugin.
  • -
  • Fix not a valid field error in Windows with Nvidia SMI (nvidia_smi) input plugin.
  • -
  • Fix InfluxDB (influxdb) output serialization on connection closed.
  • -
  • Fix ping skips remaining hosts after DNS lookup error.
  • -
  • Log MongoDB oplog auth errors at debug level.
  • -
  • Remove trailing underscore trimming from json flattener.
  • -
  • Revert change causing CPU usage to be capped at 100 percent.
  • -
  • Accept any media type in the Prometheus Format (prometheus) input plugin.
  • -
  • Fix unix socket dial arguments in uWSGI (uwsgi) input plugin.
  • -
  • Replace colon characters in Prometheus (prometheus_client) output labels with metric_version=1.
  • -
  • Set TrimLeadingSpace when TrimSpace is on in CSV (csv) parser.
  • -
-

v1.12.6

-

Bug fixes

-
    -
  • Fix many plugin errors logged at debug logging level.
  • -
  • Use nanosecond precision in Docker Log (docker_log) input plugin.
  • -
  • Fix interface option with method = native in Ping (ping) input plugin.
  • -
  • Fix panic in MongoDB (mongodb) input plugin if shard connection pool stats are unreadable.
  • -
-

v1.12.5

-

Bug fixes

-
    -
  • Fix incorrect results in Ping (ping) input plugin.
  • -
  • Add missing character replacement to sql_instance tag.
  • -
  • Change no metric error message to debug level in CloudWatch (cloudwatch) input plugin.
  • -
  • Add missing ServerProperties query to SQLServer (sqlserver) input plugin documentation.
  • -
  • Fix MongoDB connections_total_created field loading.
  • -
  • Fix metric creation when node is offline in Jenkins (jenkins) input plugin.
  • -
  • Fix Docker uptime_ns calculation when container has been restarted.
  • -
  • Fix MySQL field type conflict in conversion of gtid_mode to an integer.
  • -
  • Fix MySQL field type conflict with ssl_verify_depth and ssl_ctx_verify_depth.
  • -
-

v1.12.4

-
    -
  • Build official packages with Go 1.12.12.
  • -
-

Bug fixes

-
    -
  • Fix metric generation with Ping (ping) input plugin native method.
  • -
  • Exclude alias tag if unset from plugin internal stats.
  • -
  • Fix socket_mode option in PowerDNS Recursor (powerdns_recursor) input plugin.
  • -
-

v1.12.3

-
    -
  • Build official packages with Go 1.12.10.
  • -
-

Bug fixes

-
    -
  • Use batch serialization format in Exec (exec) output plugin.
  • -
  • Use case-insensitive serial number match in S.M.A.R.T. (smart) input plugin.
  • -
  • Add authorization header only when environment variable is set.
  • -
  • Fix issue when running multiple MySQL and SQL Server plugin instances.
  • -
  • Fix database routing on retry with exclude_database_tag.
  • -
  • Fix logging panic in Exec (exec) input plugin with Nagios data format.
  • -
-

v1.12.2

-

Bug fixes

-
    -
  • Fix timestamp format detection in csv and json parsers.
  • -
  • Apcupsd input (apcupsd) -
      -
    • Fix parsing of BATTDATE.
    • -
    -
  • -
  • Keep boolean values listed in json_string_fields.
  • -
  • Disable Go plugin support in official builds.
  • -
  • Cisco GNMI Telemetry input (cisco_telemetry_gnmi) -
      -
    • Fix path handling issues.
    • -
    -
  • -
-

v1.12.1

-

Bug fixes

-
    -
  • Fix dependenciess on GLIBC_2.14 symbol version.
  • -
  • Filecount input (filecount) -
      -
    • Fix filecount for paths with trailing slash.
    • -
    -
  • -
  • Icinga2 input (icinga2) -
      -
    • Convert check state to an integer.
    • -
    -
  • -
  • Apache Kafka Consumer input (kafka_consumer) -
      -
    • Fix could not mark message delivered error.
    • -
    -
  • -
  • MongoDB input (mongodb) -
      -
    • Skip collection stats when disabled.
    • -
    -
  • -
  • HTTP Response input (http_response) -
      -
    • Fix error reading closed response body.
    • -
    -
  • -
  • Apcupsd input (apcupsd) -
      -
    • Fix documentation to reflect plugin.
    • -
    -
  • -
  • InfluxDB v2 output (influxdb_v2) -
      -
    • Display retry log message only when retry after is received.
    • -
    -
  • -
-

v1.12

-

Release Notes

-
    -
  • The cluster health related fields in the Elasticsearch input have been split out -from the elasticsearch_indices measurement into the new elasticsearch_cluster_health_indices -measurement as they were originally combined by error.
  • -
-

New Inputs

-
    -
  • Apcupsd (apcupsd) - Contributed by @jonaz
  • -
  • Docker Log (docker_log) - Contributed by @prashanthjbabu
  • -
  • Fireboard (fireboard) - Contributed by @ronnocol
  • -
  • Logstash (logstash) - Contributed by @lkmcs @dmitryilyin @arkady-emelyanov
  • -
  • MarkLogic (marklogic) - Contributed by @influxdata
  • -
  • OpenNTPD (openntpd) - Contributed by @aromeyer
  • -
  • uWSGI (uwsgi) - Contributed by @blaggacao
  • -
-

New Parsers

- -

New Processors

-
    -
  • Date (date) - Contributed by @influxdata
  • -
  • Pivot (pivot) - Contributed by @influxdata
  • -
  • Tag Limit (tag_limit) - Contributed by @memory
  • -
  • Unpivot (unpivot) - Contributed by @influxdata
  • -
-

New Outputs

-
    -
  • Exec (exec) - Contributed by @Jaeyo
  • -
-

Features

-
    -
  • Improve performance of wavefront serializer.
  • -
  • Allow regex processor to append tag values.
  • -
  • Add starttime field to phpfpm input.
  • -
  • Add cluster name tag to elasticsearch indices.
  • -
  • Add support for interface field in http_response input plugin.
  • -
  • Add container uptime_ns in docker input plugin.
  • -
  • Add better user-facing errors for API timeouts in docker input.
  • -
  • Add TLS mutual auth support to jti_openconfig_telemetry input.
  • -
  • Add support for ES 7.x to elasticsearch output.
  • -
  • Add basic auth to prometheus input plugin.
  • -
  • Add node roles tag to elasticsearch input.
  • -
  • Support floats in statsd percentiles.
  • -
  • Add native Go ping method to ping input plugin.
  • -
  • Resume from last known offset in tail input when reloading Telegraf.
  • -
  • Add improved support for Azure SQL Database to sqlserver input.
  • -
  • Add extra attributes for NVMe devices to smart input.
  • -
  • Add docker_devicemapper measurement to docker input plugin.
  • -
  • Add basic auth support to elasticsearch input.
  • -
  • Support string field glob matching in json parser.
  • -
  • Update gjson to allow multipath syntax in json parser.
  • -
  • Add support for collecting SQL Requests to identify waits and blocking to sqlserver input.
  • -
  • Collect k8s endpoints, ingress, and services in kube_inventory plugin.
  • -
  • Add support for field/tag keys to strings processor.
  • -
  • Add certificate verification status to x509_cert input.
  • -
  • Support percentage value parsing in redis input.
  • -
  • Load external Go plugins from --plugin-directory.
  • -
  • Add ability to exclude db/bucket tag from influxdb outputs.
  • -
  • Gather per collections stats in mongodb input plugin.
  • -
  • Add TLS & credentials configuration for nats_consumer input plugin.
  • -
  • Add support for enterprise repos to github plugin.
  • -
  • Add Indices stats to elasticsearch input.
  • -
  • Add left function to string processor.
  • -
  • Add grace period for metrics late for aggregation.
  • -
  • Add diff and non_negative_diff to basicstats aggregator.
  • -
  • Add device tags to smart_attributes.
  • -
  • Collect framework_offers and allocator metrics in mesos input.
  • -
  • Add Telegraf and Go version to the internal input plugin.
  • -
  • Update the number of logical CPUs dynamically in system plugin.
  • -
  • Add darwin (macOS) builds to the release.
  • -
  • Add configurable timeout setting to smart input.
  • -
  • Add memory_usage field to procstat input plugin.
  • -
  • Add support for custom attributes to vsphere input.
  • -
  • Add cmdstat metrics to redis input.
  • -
  • Add content_length metric to http_response input plugin.
  • -
  • Add database_tag option to influxdb_listener to add database from query string.
  • -
  • Add capability to limit TLS versions and cipher suites.
  • -
  • Add topic_tag option to mqtt_consumer.
  • -
  • Add ability to label inputs for logging.
  • -
  • Add TLS support to nginx_plus, nginx_plus_api and nginx_vts.
  • -
-

Bug fixes

-
    -
  • Fix sensor read error stops reporting of all sensors in temp input.
  • -
  • Fix double pct replacement in sysstat input.
  • -
  • Fix race in master node detection in elasticsearch input.
  • -
  • Fix SSPI authentication not working in sqlserver input.
  • -
  • Fix memory error panic in mqtt input.
  • -
  • Support Kafka 2.3.0 consumer groups.
  • -
  • Fix persistent session in mqtt_consumer.
  • -
  • Fix finder inconsistencies in vsphere input.
  • -
  • Fix parsing multiple metrics on the first line of tailed file.
  • -
  • Send TERM to exec processes before sending KILL signal.
  • -
  • Query oplog only when connected to a replica set.
  • -
  • Use environment variables to locate Program Files on Windows.
  • -
-

v1.11.5

-

Bug fixes

-
    -
  • Update go-sql-driver/mysql driver to 1.4.1 to address auth issues.
  • -
  • Return error status from --test if input plugins produce an error.
  • -
  • Fix with multiple instances only last configuration is used in smart input.
  • -
  • Build official packages with Go 1.12.9.
  • -
  • Split out -w argument in iptables input plugin.
  • -
  • Add support for parked process state on Linux.
  • -
  • Remove leading slash from rcon command.
  • -
  • Allow jobs with dashes in the name in lustre2 input plugin.
  • -
-

v1.11.4

-

Bug fixes

-

Plugins

-
    -
  • Kubernetes input (kubernetes) -
      -
    • Correct typo in logsfs_available_bytes field.
    • -
    -
  • -
  • Datadog output (datadog) -
      -
    • Skip floats that are NaN or Inf.
    • -
    -
  • -
  • Socket Listener input (socket_listener) -
      -
    • Fix reload panic.
    • -
    -
  • -
-

v1.11.3

-

Bug fixes

-

Agent

-
    -
  • Treat empty array as successful parse in JSON parser.
  • -
  • Fix template pattern partial wildcard matching.
  • -
-

Plugins

-
    -
  • Bind input (bind) -
      -
    • Add missing rcode and zonestat.
    • -
    -
  • -
  • GitHub input -
      -
    • -
        -
      • Fix panic.
      • -
      -
    • -
    -
  • -
  • Lustre2 input (lustre2) -
      -
    • Fix config parse regression.
    • -
    -
  • -
  • NVIDIA-SMI output (nvidia-smi) -
      -
    • Handle unknown error.
    • -
    -
  • -
  • StatD input (statd) -
      -
    • Fix panic when processing Datadog events.
    • -
    -
  • -
  • VMware vSphere input (vsphere) -
      -
    • Fix unable to reconnect after vCenter reboot.
    • -
    -
  • -
-

v1.11.2

-

Bug fixes

-

Plugins

-
    -
  • Bind input (bind) -
      -
    • Fix value out of range error on 32-bit systems.
    • -
    -
  • -
  • Burrow input (burrow) -
      -
    • Apply topic filter to partition metrics.
    • -
    -
  • -
  • Filecount input (filecount) -
      -
    • Fix path separator handling in Windows.
    • -
    -
  • -
  • Logparser input (logparser) -
      -
    • Fix stop working after reload.
    • -
    -
  • -
  • Ping input (ping) -
      -
    • Fix source address ping flag on BSD.
    • -
    -
  • -
  • StatsD input (statsd) -
      -
    • Fix panic with empty Datadog tag string.
    • -
    -
  • -
  • Tail input (tail) -
      -
    • Fix stop working after reload.
    • -
    -
  • -
-

v1.11.1

-

Bug fixes

-

Agent

-
    -
  • Fix panic if pool_mode column does not exist.
  • -
  • Add missing container_id field to docker_container_status metrics.
  • -
  • Add device, serial_no, and wwn tags to synthetic attributes.
  • -
-

Plugins

-
    -
  • Cisco GNMI Telemetry input (cisco_telemetry_gnmi) -
      -
    • Omit keys when creating measurement names for GNMI telemetry.
    • -
    -
  • -
  • Disk input (disk) -
      -
    • Cannot set mount_points option.
    • -
    -
  • -
  • NGINX Plus API input (nginx_plus_api) -
      -
    • Skip 404 error reporting.
    • -
    -
  • -
  • Procstat input (procstat) -
      -
    • Don’t consider pid of 0 when using systemd lookup.
    • -
    -
  • -
  • StatsD input (statsd) -
      -
    • Fix parsing of remote TCP address.
    • -
    -
  • -
  • System input (system) -
      -
    • Ignore error when utmp is missing.
    • -
    -
  • -
-

v1.11.0

-
    -
  • System (system) input plugin -
      -
    • The uptime_format field has been deprecated — use the uptime field instead.
    • -
    -
  • -
  • Amazon Cloudwatch Statistics (cloudwatch) input plugin -
      -
    • Updated to use a more efficient API and now requires GetMetricData permissions -instead of GetMetricStatistics. The units tag is not -available from this API and is no longer collected.
    • -
    -
  • -
-

New input plugins

- -

New aggregator plugins

- -

New output plugins

- -

New output data formats (serializers)

- -

Features

-

Agent

-
    -
  • Add CLI support for outputting sections of the configuration.
  • -
  • Add service-display-name option for use with Windows service.
  • -
  • Add support for log rotation.
  • -
  • Allow env vars ${} expansion syntax in configuration file.
  • -
  • Allow devices option to match against devlinks.
  • -
-

Input data formats

-
    -
  • Nagios -
      -
    • Add support for multiple line text and perfdata.
    • -
    -
  • -
-

Input plugins

-
    -
  • AMQP Consumer (amqp_consumer) -
      -
    • Support passive queue declaration.
    • -
    • Add support for gzip compression.
    • -
    -
  • -
  • Amazon Cloudwatch Statistics (cloudwatch) -
      -
    • Use more efficient GetMetricData API to collect Cloudwatch metrics.
    • -
    • Allow selection of collected statistic types in cloudwatch input.
    • -
    -
  • -
  • Apache Solr (solr) -
      -
    • Add support for HTTP basic auth.
    • -
    -
  • -
  • Hddtemp (hddtemp) -
      -
    • Add source tag.
    • -
    -
  • -
  • InfluxDB Listener (influxdb_listener) -
      -
    • Support verbose query parameter in ping endpoint.
    • -
    -
  • -
  • NVIDIA SMI (nvidia-smi) -
      -
    • Extend metrics collected from Nvidia GPUs.
    • -
    -
  • -
  • Net (net) -
      -
    • Speed up interface stat collection.
    • -
    -
  • -
  • PHP FM (phpfm) -
      -
    • Enhance HTTP connection options.
    • -
    -
  • -
  • Ping (ping) -
      -
    • Add TTL field.
    • -
    -
  • -
  • Procstat (procstat) -
      -
    • Add cmdline tag.
    • -
    • Add pagefault data.
    • -
    -
  • -
  • Prometheus (prometheus) -
      -
    • Add namespace restriction.
    • -
    -
  • -
  • SMART (smart) -
      -
    • Support more drive types.
    • -
    -
  • -
  • Socket Listener (socket_listener) -
      -
    • Add option to set permissions for UNIX domain sockets.
    • -
    -
  • -
  • StatsD (statsd) -
      -
    • Add support for Datadog events.
    • -
    -
  • -
-

Output plugins

-
    -
  • AMQP (amqp) -
      -
    • Add support for gzip compression.
    • -
    -
  • -
  • File (file) -
      -
    • Add file rotation support.
    • -
    -
  • -
  • Stackdriver (stackdriver) -
      -
    • Set user agent. -– VMware Wavefront (wavefront)
    • -
    • Add option to use strict sanitization rules.
    • -
    -
  • -
-

Aggregator plugins

-
    -
  • Histogram aggregator -
      -
    • Add option to reset buckets on flush.
    • -
    -
  • -
-

Processor plugins

-
    -
  • Converter (converter) -
      -
    • Add hexadecimal string to integer conversion.
    • -
    -
  • -
  • Enum (enum) -
      -
    • Support tags.
    • -
    -
  • -
-

Bug fixes

-

Agent

-
    -
  • Create Windows service only when specified or in service manager.
  • -
  • Don’t start Telegraf when stale pid file found.
  • -
  • Fix inline table support in configuration file.
  • -
  • Fix multi-line basic strings support in configuration file.
  • -
  • Fix multiple SIGHUP causes Telegraf to shutdown.
  • -
  • Fix batch fails when single metric is unserializable.
  • -
  • Log a warning on write if the metric buffer has overflowed.
  • -
-

Plugins

-
    -
  • AMQP (amqp) output -
      -
    • Fix direct exchange routing key.
    • -
    -
  • -
  • Apex Neptune (apex_neptune) inpur -
      -
    • Skip invalid power times.
    • -
    -
  • -
  • Docker (docker) input -
      -
    • Fix docker input does not parse image name correctly.
    • -
    -
  • -
  • Fibaro (fibaro) input -
      -
    • Set default timeout of 5s.
    • -
    -
  • -
  • InfluxDB v1.x (influxdb) output -
      -
    • Fix connection leak on reload.
    • -
    -
  • -
  • InfluxDB v2 output -
      -
    • Fix connection leak on reload.
    • -
    -
  • -
  • Lustre 2 (lustre2) input -
      -
    • Fix only one job per storage target reported.
    • -
    -
  • -
  • Microsoft Azure Monitor (azure_monitor) output -
      -
    • Fix scale set resource id.
    • -
    -
  • -
  • Microsoft SQL Server (sqlserver) input -Fix connection closing on error.
  • -
  • Minecraft (minecraft) input -
      -
    • Support Minecraft server 1.13 and newer.
    • -
    -
  • -
  • NGINX Upstream Check (nginx_upstream_check) input -
      -
    • Fix TOML option name.
    • -
    -
  • -
  • PgBounder (pgbouncer) input -
      -
    • Fix unsupported pkt type error.
    • -
    -
  • -
  • Procstat (procstat) input -
      -
    • Verify a process passed by pid_file exists.
    • -
    -
  • -
  • VMware vSphere (vsphere) input -
      -
    • Fixed datastore name mapping.
    • -
    -
  • -
-

v1.10.4

-

Bug fixes

-

Agent

-
    -
  • Create telegraf user in pre-install RPM scriptlet.
  • -
  • Fix parse of unix timestamp with more than ns precision.
  • -
  • Fix race condition in the Wavefront parser.
  • -
-

Plugins

-
    -
  • HTTP output plugin (http) -
      -
    • Fix http output cannot set Host header.
    • -
    -
  • -
  • IPMI Sensor input (ipmi_sensor) -
      -
    • Add support for hex values.
    • -
    -
  • -
  • InfluxDB v2 output (influxdb_v2) -
      -
    • Don’t discard metrics on forbidden error.
    • -
    -
  • -
  • Interrupts input (interrupts) -
      -
    • Restore field name case.
    • -
    -
  • -
  • NTPQ input (ntpq) -
      -
    • Skip lines with missing refid.
    • -
    -
  • -
  • VMware vSphere input (vsphere) -
      -
    • Fix interval estimation.
    • -
    -
  • -
-

v1.10.3

-

Bug fixes

-

Agent

-
    -
  • Set log directory attributes in RPM specification.
  • -
-

Plugins

-
    -
  • Prometheus Client (prometheus_client) output plugin. -
      -
    • Allow colons in metric names.
    • -
    -
  • -
-

v1.10.2

-

Breaking changes

-

Grok input data format (parser): string fields no longer have leading and trailing quotation marks removed. -If you are capturing quoted strings, the patterns might need to be updated.

-

Bug fixes

-

Agent

-
    -
  • Fix deadlock when Telegraf is aligning aggregators.
  • -
  • Add owned directories to RPM package specification.
  • -
  • Fix drop tracking of metrics removed with aggregator drop_original.
  • -
  • Fix aggregator window alignment.
  • -
  • Fix panic during shutdown of multiple aggregators.
  • -
  • Fix tags applied to wrong metric on parse error.
  • -
-

Plugins

-
    -
  • Ceph (ceph) input -
      -
    • Fix missing cluster stats.
    • -
    -
  • -
  • DiskIO (diskio) input -
      -
    • Fix reading major and minor block devices identifiers.
    • -
    -
  • -
  • File (file) output -
      -
    • Fix open file error handling.
    • -
    -
  • -
  • Filecount (filecount) input -
      -
    • Fix basedir check and parent dir extraction.
    • -
    -
  • -
  • Grok (grok) parser -
      -
    • Fix last character removed from string field.
    • -
    -
  • -
  • InfluxDB v2 (influxdb_v2) output -
      -
    • Fix plugin name in output logging.
    • -
    -
  • -
  • Prometheus (prometheus) input -
      -
    • Fix parsing of kube config certificate-authority-data.
    • -
    -
  • -
  • Prometheus (prometheus) output -
      -
    • Remove tags that would create invalid label names.
    • -
    -
  • -
  • StatsD (statsd) input -
      -
    • Listen before leaving start.
    • -
    -
  • -
-

v1.10.1

-

Bug fixes

-
    -
  • Show error when TLS configuration cannot be loaded.
  • -
  • Add base64-encoding/decoding for Google Cloud PubSub (pubsub) plugins.
  • -
  • Fix type compatibility in VMware vSphere (vsphere) input plugin with use_int_samples option.
  • -
  • Fix VMware vSphere (vsphere) input plugin shows failed task in vCenter.
  • -
  • Fix invalid measurement name and skip column in the CSV input data format parser.
  • -
  • Fix System (system) input plugin causing high CPU usage on Raspbian.
  • -
-

v1.10

-

New input plugins

- -

New output plugins

- -

New output data formats (serializers)

- -

Features

-
    -
  • General -
      -
    • Allow for force gathering ES cluster stats.
    • -
    • Add Linux mipsle packages.
    • -
    -
  • -
  • Input plugins -
      -
    • Ceph (ceph) -
        -
      • Add read and write op per second fields.
      • -
      -
    • -
    • CouchDB (couchdb) -
        -
      • Add support for basic auth.
      • -
      -
    • -
    • DNS Query (dns_query) -
        -
      • Add rcode tag and field.
      • -
      -
    • -
    • DiskIO (diskio) -
        -
      • Include DEVLINKS in available udev properties.
      • -
      -
    • -
    • HTTP (http) -
        -
      • Add support for sending a request body to http input.
      • -
      -
    • -
    • InfluxDB Listener (influxdb_listener) -
        -
      • Add internal metric for line too long.
      • -
      -
    • -
    • Interrupts (interrupts) -
        -
      • Add option to store cpu as a tag.
      • -
      -
    • -
    • Kafka Consumer (kafka_consumer) -
        -
      • Add ability to tag metrics with topic.
      • -
      -
    • -
    • Kubernetes (k8s)
    • -
    • Support passing bearer token directly.
    • -
    • Microsoft SQL Server (sqlserver) -
        -
      • Add log send and redo queue fields.
      • -
      -
    • -
    • MongoDB (mongodb) -
        -
      • Add flush_total_time_ns and additional wired tiger fields.
      • -
      -
    • -
    • Procstat (procstat_lookup) -
        -
      • Add running field.
      • -
      -
    • -
    • Prometheus (prometheus) -
        -
      • Support passing bearer token directly.
      • -
      • Add option to report input timestamp.
      • -
      -
    • -
    • VMware vSphere (vsphere) -
        -
      • Improve scalability.
      • -
      • Add resource path-based filtering.
      • -
      -
    • -
    • Varnish (varnish) -
        -
      • Add configurable timeout.
      • -
      -
    • -
    -
  • -
  • Output plugins -
      -
    • MQTT (mqtt) -
        -
      • Add option to set retain flag on messages.
      • -
      -
    • -
    • Stackdriver (stackdriver) -
        -
      • Add resource type and resource label support
      • -
      -
    • -
    • VMware Wavefront (wavefront) -
        -
      • Add support for the Wavefront Direct Ingestion API.
      • -
      -
    • -
    -
  • -
  • Aggregator plugins -
      -
    • Value Counter (valuecounter) -
        -
      • Allow counting float values.
      • -
      -
    • -
    -
  • -
  • Data formats -
      -
    • Input data formats
    • -
    • CSV -
        -
      • Support unix_us and unix_ns timestamp format.
      • -
      • Add support for unix and unix_ms timestamps.
      • -
      -
    • -
    • Grok (grok) -
        -
      • Allow parser to produce metrics with no fields.
      • -
      -
    • -
    • JSON -
        -
      • Add micro and nanosecond unix timestamp support.
      • -
      -
    • -
    • Output data formats -
        -
      • ServiceNow Metrics
      • -
      -
    • -
    -
  • -
-

Bug fixes

-
    -
  • General -
      -
    • Use systemd in Amazon Linux 2 rpm.
    • -
    • Fix initscript removes pidfile of restarted Telegraf process.
    • -
    -
  • -
  • Input plugins -
      -
    • Consul (consul) -
        -
      • Use datacenter option spelling.
      • -
      -
    • -
    • InfluxDB Listener (influxdb_listener) -
        -
      • Remove auth from /ping route.
      • -
      -
    • -
    • Microsoft SQL Server (sqlserver) -
        -
      • Set deadlock priority.
      • -
      -
    • -
    • Nstat (nstat) -
        -
      • Remove error log when snmp6 directory does not exist.
      • -
      -
    • -
    • Ping (ping) -
        -
      • Host not added when using custom arguments.
      • -
      -
    • -
    • X.509 Certificate -
        -
      • Fix input stops checking certificates after first error.
      • -
      -
    • -
    -
  • -
  • Output plugins -
      -
    • Prometheus (prometheus) -
        -
      • Sort metrics by timestamp.
      • -
      -
    • -
    • Stackdriver (stackdriver) -
        -
      • Skip string fields when writing.
      • -
      • Send metrics in ascending time order.
      • -
      -
    • -
    -
  • -
-

v1.9.5

-

Bug fixes

-
    -
  • General -
      -
    • Use systemd in Amazon Linux 2 rpm.
    • -
    -
  • -
  • Ceph Storage (ceph) input plugin -
      -
    • Add backwards compatibility fields in usage and pool statistics.
    • -
    -
  • -
  • InfluxDB (influxdb) output plugin -
      -
    • Fix UDP line splitting.
    • -
    -
  • -
  • Microsoft SQL Server (sqlserver) input plugin -
      -
    • Set deadlock priority to low.
    • -
    • Disable results by row in AzureDB query.
    • -
    -
  • -
  • Nstat (nstat) input plugin -
      -
    • Remove error log when snmp6 directory does not exist.
    • -
    -
  • -
  • Ping (ping) input plugin -
      -
    • Host not added when using custom arguments.
    • -
    -
  • -
  • Stackdriver (stackdriver) output plugin -
      -
    • Skip string fields when writing to stackdriver output.
    • -
    • Send metrics in ascending time order.
    • -
    -
  • -
-

v1.9.4

-

Bug fixes

-
    -
  • General -
      -
    • Fix skip_rows and skip_columns options in csv parser.
    • -
    • Build official packages with Go 1.11.5.
    • -
    -
  • -
  • Jenkins input plugin -
      -
    • Always send basic auth in jenkins input.
    • -
    -
  • -
  • Syslog (syslog) input plugin -
      -
    • Fix definition of multiple syslog plugins.
    • -
    -
  • -
-

v1.9.3

-

Bug fixes

-
    -
  • General -
      -
    • Fix latest metrics not sent first when output fails.
    • -
    • Fix internal_write buffer_size not reset on timed writes.
    • -
    -
  • -
  • AMQP Consumer (amqp_consumer) input plugin -
      -
    • Fix amqp_consumer input stops consuming when it receives -unparsable messages.
    • -
    -
  • -
  • Couchbase (couchbase) input plugin -
      -
    • Remove userinfo from cluster tag in couchbase input.
    • -
    -
  • -
  • Microsoft SQL Server (sqlserver) input plugin -
      -
    • Fix arithmetic overflow in sqlserver) input.
    • -
    -
  • -
  • Prometheus (prometheus) input plugin -
      -
    • Fix prometheus input not detecting added and removed pods.
    • -
    -
  • -
-

v1.9.2

-

Bug fixes

-
    -
  • Increase varnishstat timeout.
  • -
  • Remove storage calculation for non-Azure-managed instances and add server version.
  • -
  • Fix error sending empty tag value in azure_monitor output.
  • -
  • Fix panic with Prometheus input plugin on shutdown.
  • -
  • Support non-transparent framing of syslog messages.
  • -
  • Apply global- and plugin-level metric modifications before filtering.
  • -
  • Fix num_remapped_pgs field in ceph plugin.
  • -
  • Add PDH_NO_DATA to known counter error codes in win_perf_counters.
  • -
  • Fix amqp_consumer stops consuming on empty message.
  • -
  • Fix multiple replace tables not working in strings processor.
  • -
  • Allow non-local UDP connections in net_response.
  • -
  • Fix TOML option names in parser processor.
  • -
  • Fix panic in Docker input with bad endpoint.
  • -
  • Fix original metric modified by aggregator filters.
  • -
-

v1.9.1

-

Bug fixes

-
    -
  • Fix boolean handling in splunkmetric serializer.
  • -
  • Set default config values in Jenkins input.
  • -
  • Fix server connection and document stats in MongoDB input.
  • -
  • Add X-Requested-By header to Graylog input.
  • -
  • Fix metric memory not freed from the metric buffer on write.
  • -
  • Add support for client TLS certificates in PostgreSQL inputs.
  • -
  • Prevent panic when marking the offset in kafka_consumer.
  • -
  • Add early metrics to aggregator and honor drop_original setting.
  • -
  • Use -W flag on BSD variants in ping input.
  • -
  • Allow delta metrics in Wavefront parser.
  • -
-

v1.9.0

-

Release Notes

-
    -
  • -

    The HTTP Listener (http_listener) input plugin has been renamed to -InfluxDB Listener (influxdb_listener) input plugin and -use of the original name is deprecated. The new name better describes the -intended use of the plugin as an InfluxDB relay. For general purpose -transfer of metrics in any format using HTTP, InfluxData recommends using -HTTP Listener v2 (http_listener_v2) input plugin.

    -
  • -
  • -

    Input plugins are no longer limited from adding metrics when the output is -writing and new metrics will move into the metric buffer as needed. This -will provide more robust degradation and recovery when writing to a slow -output at high throughput.

    -

    To avoid overconsumption when reading from queue consumers, the following -input plugins use the new option max_undelivered_messages to limit the number -of outstanding unwritten metrics:

    -
      -
    • Apache Kafka Consumer (kafka_consumer)
    • -
    • AMQP Consumer (amqp_consumer)
    • -
    • MQTT Consumer (mqtt_consumer)
    • -
    • NATS Consumer (nats_consumer)
    • -
    • NSQ Consumer (nsq_consumer)
    • -
    -
  • -
-

New input plugins

- -

New output plugins

- -

Features

-
    -
  • General -
      -
    • Add ability to define a custom service name when installing as a Windows service.
    • -
    • Add new configuration for CSV column explicit type conversion.
    • -
    • Add Telegraf version to User-Agent header.
    • -
    • Add ability to specify bytes options as strings with units.
    • -
    • Add per output flush_interval, metric_buffer_limit, and metric_batch_size.
    • -
    -
  • -
  • Amazon Kinesis (kinesis) output plugin -
      -
    • Use DescribeStreamSummary in place of ListStreams.
    • -
    -
  • -
  • DNS Query (dns_query) input plugin -
      -
    • Query servers in parallel.
    • -
    -
  • -
  • Datadog (datadog) output plugin -
      -
    • Add an option to specify a custom URL.
    • -
    • Use non-allocating field and tag accessors.
    • -
    -
  • -
  • Filecount (filecount) input plugin -
      -
    • Add per-directory file count.
    • -
    -
  • -
  • HTTP Output (http output) plugin -
      -
    • Add entity-body compression.
    • -
    -
  • -
  • Memcached (memcached) input plugin -
      -
    • Collect additional statistics.
    • -
    -
  • -
  • NSQ (nsq) input plugin -
      -
    • Add TLS configuration support.
    • -
    -
  • -
  • Ping (ping) input plugin -
      -
    • Add support for IPv6.
    • -
    -
  • -
  • Procstat (procstat) input plugin -
      -
    • Add Windows service name lookup.
    • -
    -
  • -
  • Prometheus (prometheus) input plugin -
      -
    • Add scraping for Prometheus annotation in Kubernetes.
    • -
    • Allow connecting to Prometheus using UNIX socket.
    • -
    -
  • -
  • Strings (strings) processor plugin -
      -
    • Add replace function.
    • -
    -
  • -
  • VMware vSphere (vsphere) input plugin -
      -
    • Add LUN to data source translation.
    • -
    -
  • -
-

Bug fixes

-
    -
  • Remove time_key from the field values in JSON parser.
  • -
  • Fix input time rounding when using a custom interval.
  • -
  • Fix potential deadlock or leaked resources on restart or reload.
  • -
  • Fix outputs block inputs when batch size is reached.
  • -
  • Fix potential missing datastore metrics in VMware vSphere (vsphere) input plugin.
  • -
-

v1.8.3

-

Bug fixes

-
    -
  • Add DN attributes as tags in X.509 Certificate (x509_cert) input plugin to avoid series overwrite.
  • -
  • Prevent connection leak by closing unused connections in AMQP (amqp) output plugin.
  • -
  • Use default partition key when tag does not exist in Amazon Kinesis (kinesis) output plugin.
  • -
  • Log the correct error in JTI OpenConfig Telemetry (jti_openconfig_telemetry) input plugin.
  • -
  • Handle panic when IMPI Sensor (ipmi_sensor) input plugin gets bad input.
  • -
  • Don’t add unserializable fields to Jolokia2 (jolokia2) input plugin.
  • -
  • Fix version check in PostgreSQL Exstensible (postgresql_extensible) plugin.
  • -
-

v1.8.2

-

Bug fixes

-
    -
  • Aerospike (aerospike) input plugin -
      -
    • Support uint fields.
    • -
    -
  • -
  • Docker (docker) input plugin -
      -
    • Use container name from list if no name in container stats.
    • -
    -
  • -
  • Filecount (filecount) input plugin -
      -
    • Prevent panic on error in file stat.
    • -
    -
  • -
  • InfluxDB v2 (influxdb_v2) input plugin -
      -
    • Update write path to match updated v2 API.
    • -
    -
  • -
  • Logparser (logparser) input plugin -
      -
    • Fix panic.
    • -
    -
  • -
  • MongoDB (mongodb) input plugin -
      -
    • Lower authorization errors to debug level.
    • -
    -
  • -
  • MQTT Consumer (mqtt_consumer) input plugin -
      -
    • Fix connect and reconnect.
    • -
    -
  • -
  • Ping (ping) input plugin -
      -
    • Return correct response code.
    • -
    -
  • -
  • VMware vSphere (vsphere) input plugin -
      -
    • Fix missing timeouts.
    • -
    -
  • -
  • X.509 Certificate (x509_cert) input plugin -
      -
    • Fix segfault.
    • -
    -
  • -
-

v1.8.1

-

Bug fixes

-
    -
  • Fix hardware_type may be truncated in Microsoft SQL Server (sqlserver) input plugin.
  • -
  • Improve performance in Basicstats (basicstats) aggregator plugin.
  • -
  • Add hostname to TLS config for SNI support in X.509 Certificate (x509_cert) input plugin.
  • -
  • Don’t add tags with empty values to OpenTSDB (opentsdb) output plugin.
  • -
  • Fix panic during network error in VMware vSphere (vsphere) input plugin.
  • -
  • Unify error response in HTTP Listener (http_listener) input plugin with InfluxDB (influxdb) output plugin.
  • -
  • Add UUID to VMs in VMware vSphere (vsphere) input plugin.
  • -
  • Skip tags with empty values in Amazon Cloudwatch (cloudwatch) output plugin.
  • -
  • Fix missing non-realtime samples in VMware vSphere (vsphere) input plugin.
  • -
  • Fix case of timezone/grok_timezone options in grok parser and logparser input plugin.
  • -
-

v1.8

-

New input plugins

- -

New processor plugins

- -

New aggregator plugins

- -

New output plugins

- -

New input data formats (parsers)

-
    -
  • csv - Contributed by @maxunt
  • -
  • grok - Contributed by @maxunt
  • -
  • logfmt - Contributed by @Ayrdrie & @maxunt
  • -
  • wavefront - Contributed by @puckpuck
  • -
-

New output data formats (serializers)

- -

Features

-
    -
  • Add SSL/TLS support to Redis (redis) input plugin.
  • -
  • Add tengine input plugin.
  • -
  • Add power draw field to the NVIDIA SMI (nvidia_smi) input plugin.
  • -
  • Add support for Solr 7 to the Solr (solr) input plugin.
  • -
  • Add owner tag on partitions in Burrow (burrow) input plugin.
  • -
  • Add container status tag to Docker (docker) input plugin.
  • -
  • Add ValueCounter (valuecounter) aggregator plugin.
  • -
  • Add new measurement with results of pgrep lookup to Procstat (procstat) input plugin.
  • -
  • Add support for comma in logparser timestamp format.
  • -
  • Add path tag to Tail (tail) input plugin.
  • -
  • Add log message when tail is added or removed from a file.
  • -
  • Add option to use of counter time in win perf counters.
  • -
  • Add energy and power field and device id tag to Fibaro (fibaro) input plugin.
  • -
  • Add HTTP path configuration for OpenTSDB output.
  • -
  • Gather IPMI metrics concurrently.
  • -
  • Add mongo document and connection metrics.
  • -
  • Add enum processor plugin.
  • -
  • Add user tag to procstat input.
  • -
  • Add support for multivalue metrics to collectd parser.
  • -
  • Add support for setting kafka client id.
  • -
  • Add file input plugin and grok parser.
  • -
  • Improve cloudwatch output performance.
  • -
  • Add x509_cert input plugin.
  • -
  • Add IPSIpAddress syntax to ipaddr conversion in snmp plugin.
  • -
  • Add Filecount input plugin.
  • -
  • Add support for configuring an AWS endpoint_url.
  • -
  • Send all messages before waiting for results in Kafka output plugin.
  • -
  • Add support for lz4 compression to Kafka output plugin.
  • -
  • Split multiple sensor keys in ipmi input.
  • -
  • Support StatisticValues in cloudwatch output plugin.
  • -
  • Add ip restriction for the prometheus_client output.
  • -
  • Add PgBouncer (pgbouncer) input plugin.
  • -
  • Add ActiveMQ input plugin.
  • -
  • Add wavefront parser plugin.
  • -
  • Add rename processor plugin.
  • -
  • Add message ‘max_bytes’ configuration to kafka input.
  • -
  • Add gopsutil meminfo fields to Mem (mem) input plugin.
  • -
  • Document how to parse Telegraf logs.
  • -
  • Use dep v0.5.0.
  • -
  • Add ability to set measurement from matched text in grok parser.
  • -
  • Drop message batches in Kafka (kafka) output plugin if too large.
  • -
  • Add support for static and random routing keys in Kafka (kafka) output plugin.
  • -
  • Add logfmt parser plugin.
  • -
  • Add parser processor plugin.
  • -
  • Add Icinga2 input plugin.
  • -
  • Add name, time, path and string field options to JSON parser.
  • -
  • Add forwarded records to sqlserver input.
  • -
  • Add Kibana input plugin.
  • -
  • Add csv parser plugin.
  • -
  • Add read_buffer_size option to statsd input.
  • -
  • Add azure_monitor output plugin.
  • -
  • Add queue_durability parameter to amqp_consumer input.
  • -
  • Add strings processor.
  • -
  • Add OAuth 2.0 support to HTTP output plugin.
  • -
  • Add Unix epoch timestamp support for JSON parser.
  • -
  • Add options for basic auth to haproxy input.
  • -
  • Add temp input plugin.
  • -
  • Add Beanstalkd input plugin.
  • -
  • Add means to specify server password for redis input.
  • -
  • Add Splunk Metrics serializer.
  • -
  • Add input plugin for VMware vSphere.
  • -
  • Align metrics window to interval in cloudwatch input.
  • -
  • Improve Azure Managed Instance support + more in sqlserver input.
  • -
  • Allow alternate binaries for iptables input plugin.
  • -
  • Add influxdb_v2 output plugin.
  • -
-

Bug fixes

-
    -
  • Fix divide by zero in logparser input.
  • -
  • Fix instance and object name in performance counters with backslashes.
  • -
  • Reset/flush saved contents from bad metric.
  • -
  • Document all supported cli arguments.
  • -
  • Log access denied opening a service at debug level in win_services.
  • -
  • Add support for Kafka 2.0.
  • -
  • Fix nagios parser does not support ranges in performance data.
  • -
  • Fix nagios parser does not strip quotes from performance data.
  • -
  • Fix null value crash in postgresql_extensible input.
  • -
  • Remove the startup authentication check from the cloudwatch output.
  • -
  • Support tailing files created after startup in tail input.
  • -
  • Fix CSV format configuration loading.
  • -
-

v1.7.4

-

Bug fixes

-
    -
  • Continue sending write batch in UDP if a metric is unserializable in InfluxDB (influxdb) output plugin.
  • -
  • Fix PowerDNS (powerdns) input plugin tests.
  • -
  • Fix burrow_group offset calculation for Burrow (burrow) input plugin.
  • -
  • Add result_code value for errors running ping command.
  • -
  • Remove timeout deadline for UDP in Syslog (syslog) input plugin.
  • -
  • Ensure channel is closed if an error occurs in CGroup (cgroup) input plugin.
  • -
  • Fix sending of basic authentication credentials in HTTP (output) output plugin.
  • -
  • Use the correct GOARM value in the Linux armel package.
  • -
-

v1.7.3

-

Bug fixes

-
    -
  • Reduce required Docker API version.
  • -
  • Keep leading whitespace for messages in syslog input.
  • -
  • Skip bad entries on interrupt input.
  • -
  • Preserve metric type when using filters in output plugins.
  • -
  • Fix error message if URL is unparseable in InfluxDB output.
  • -
  • Use explicit zpool properties to fix parse error on FreeBSD 11.2.
  • -
  • Lock buffer when adding metrics.
  • -
-

v1.7.2

-

Bug fixes

-
    -
  • Use localhost as default server tag in Zookeeper (zookeeper) input plugin.
  • -
  • Don’t set values when pattern doesn’t match in Regex (regex) processor plugin.
  • -
  • Fix output format of Printer (printer) processor plugin.
  • -
  • Fix metric can have duplicate field.
  • -
  • Return error if NewRequest fails in HTTP (http) output plugin.
  • -
  • Reset read deadline for Syslog (syslog) input plugin.
  • -
  • Exclude cached memory on Docker (docker) input plugin.
  • -
-

v1.7.1

-

Bug fixes

-
    -
  • Treat sigterm as a clean shutdown signal.
  • -
  • Fix selection of tags under nested objects in the JSON parser.
  • -
  • Fix Postfix (postfix) input plugin handling of multilevel queues.
  • -
  • Fix Syslog (syslog input plugin timestamp parsing with single digit day of month.
  • -
  • Handle MySQL (mysql) input plugin variations in the user_statistics collecting.
  • -
  • Fix Minmax (minmax) and Basicstats (basicstats) aggregator plugins to use uint64.
  • -
  • Document Swap (swap) input plugin.
  • -
  • Fix incorrect precision being applied to metric in HTTP Listener (http_listener) input plugin.
  • -
-

v1.7

-

Release notes

-
    -
  • -

    The Cassandra (cassandra) input plugin has been deprecated in favor of the Jolokia2 (jolokia2) -input plugin which is much more configurable and more performant. The -example configuration will help you -get started.

    -
  • -
  • -

    For plugins supporting TLS, you can now specify the certificate and keys -using tls_ca, tls_cert, tls_key. These options behave the same as -the, now deprecated, ssl forms.

    -
  • -
-

New input plugins

- -

New processor plugins

-
    -
  • converter - Contributed by @influxdata
  • -
  • regex - Contributed by @44px
  • -
  • topk - Contributed by @mirath
  • -
-

New output plugins

- -

Features

-
    -
  • Add repl_oplog_window_sec metric to MongoDB (mongodb) input plugin.
  • -
  • Add per-host shard metrics in MongoDB (mongodb) input plugin.
  • -
  • Skip files with leading .. in config directory.
  • -
  • Add TLS support to socket_writer and socket_listener plugins.
  • -
  • Add snmp input option to strip non-fixed length index suffixes.
  • -
  • Add server version tag to the Docker (docker) input plugin.
  • -
  • Add support for LeoFS 1.4 to leofs input.
  • -
  • Add parameter to force the interval of gather for Sysstat (sysstat).
  • -
  • Support BusyBox ping in the Ping (ping) input plugin.
  • -
  • Add Mcrouter (mcrouter) input plugin.
  • -
  • Add TopK (topk) processor plugin.
  • -
  • Add cursor metrics to MongoDB (mongodb) input plugin.
  • -
  • Add tag/integer pair for result to Network Response (net_response) input plugin.
  • -
  • Add Application Insights (application_insights) output plugin.
  • -
  • Added several important Elasticsearch cluster health metrics.
  • -
  • Add batch mode to mqtt output.
  • -
  • Add Aurora (aurora) input plugin.
  • -
  • Add Regex (regex) processor plugin.
  • -
  • Add support for Graphite 1.1 tags.
  • -
  • Add timeout option to Sensors (sensors) input plugin.
  • -
  • Add Burrow (burrow) input plugin.
  • -
  • Add option to Unbound (unbound) input plugin to use threads as tags.
  • -
  • Add support for TLS and username/password auth to Aerospike (aerospike) input plugin.
  • -
  • Add special syslog timestamp parser to grok parser that uses current year.
  • -
  • Add Syslog (syslog) input plugin.
  • -
  • Print the enabled aggregator and processor plugins on startup.
  • -
  • Add static routing_key option to amqp output.
  • -
  • Add passive mode exchange declaration option to AMQP Consumer (amqp_consumer) input plugin.
  • -
  • Add counter fields to PF (pf) input plugin.
  • -
-

Bug fixes

-
    -
  • Write to working file outputs if any files are not writeable.
  • -
  • Add all win_perf_counters fields for a series in a single metric.
  • -
  • Report results of dns_query instead of 0ms on timeout.
  • -
  • Add consul service tags to metric.
  • -
  • Fix wildcards and multi instance processes in win_perf_counters.
  • -
  • Fix crash on 32-bit Windows in win_perf_counters.
  • -
  • Fix win_perf_counters not collecting at every interval.
  • -
  • Use same flags for all BSD family ping variants.
  • -
-

v1.6.4

-

Bug fixes

-
    -
  • Fix SNMP overriding of auto-configured table fields.
  • -
  • Fix uint support in CloudWatch output.
  • -
  • Fix documentation of instance_name option in Varnish input.
  • -
  • Revert to previous Aerospike library version due to memory leak.
  • -
-

v1.6.3

-

Bug fixes

-
    -
  • Fix intermittent panic in Aerospike input plugin.
  • -
  • Fix connection leak in the Jolokia agent (Jolokia2_agent) input plugin.
  • -
  • Fix Jolokia agent (Jolokia2_agent) input plugin timeout parsing.
  • -
  • Fix error parsing Dropwizard metrics.
  • -
  • Fix Librato (librato) output plugin support for unsigned integer (uint) and Boolean (bool).
  • -
  • Fix WaitGroup deadlock, if URL is incorrect, in Apache input plugin.
  • -
-

v1.6.2

-

Bug fixes

-
    -
  • Use same timestamp for fields in system input.
  • -
  • Fix handling of uint64 in Datadog (datadog) output.
  • -
  • Ignore UTF8 BOM in JSON parser.
  • -
  • Fix case for slave metrics in MySQL (mysql) input.
  • -
  • Fix uint support in CrateDB (cratedb) output.
  • -
-

v1.6.1

-

Bug fixes

-
    -
  • Report mem input fields as gauges instead of counters.
  • -
  • Fix Graphite outputs unsigned integers in wrong format.
  • -
  • Report available fields if utmp is unreadable.
  • -
  • Fix potential no fields error writing to outputs.
  • -
  • Fix uptime reporting in system input when ran inside docker.
  • -
  • Fix mem input cannot allocate memory error on FreeBSD-based systems.
  • -
  • Fix duplicate tags when overriding an existing tag.
  • -
  • Add server argument as first argument in the Unbound (unbound) input plugin.
  • -
  • Fix handling of floats with multiple leading zeroes.
  • -
  • Return errors in SSL/TLS configuration of MongoDB (mongodb) input plugin.
  • -
-

v1.6

-

Release notes

-
    -
  • -

    The MySQL (mysql) input plugin has been updated fix a number of type conversion -issues. This may cause a field type error when inserting into InfluxDB due -the change of types.

    -

    To address this, we have introduced a new metric_version option to control -enabling the new format. -For in depth recommendations on upgrading, see Metric version in the MySQL input plugin documentation.

    -

    You are encouraged to migrate to the new model when possible as the old version -is deprecated and will be removed in a future version.

    -
  • -
  • -

    The PostgreSQL (postgresql) input plugin now defaults to using a persistent connection to the database. -In environments where TCP connections are terminated, the max_lifetime -setting should be set less than the collection interval to prevent errors.

    -
  • -
  • -

    The SQL Server (sqlserver) input plugin has a new query and data model that can be enabled -by setting query_version = 2. -Migrate to the new model, if possible, since the old version is deprecated and will be removed in a future version.

    -
  • -
  • -

    The OpenLDAP (openldap) input plugin has a new option, reverse_metric_names = true, that reverses metric -names to improve grouping. -Enable this option, when possible, as the old ordering is deprecated.

    -
  • -
  • -

    The new HTTP (http) input plugin, when configured with data_format = "json", can perform the -same task as the, now deprecated, HTTP JSON (httpjson) input plugin.

    -
  • -
-

New input plugins

- -

New processor plugins

- -

New parsers

- -

Features

-
    -
  • Add health status mapping from string to int in Elasticsearch (elasticsearch) input plugin.
  • -
  • Add control over which stats to gather in BasicStats (basicstats) aggregator plugin.
  • -
  • Add messages_delivered_get to RabbitMQ (rabbitmq) input plugin.
  • -
  • Add wired field to mem input plugin.
  • -
  • Add support for gathering exchange metrics to the RabbitMQ (rabbitmq) input plugin.
  • -
  • Add support for additional metrics on Linux in Zfs (zfs) input plugin.
  • -
  • Add available_entropy field to Kernel (kernel) input plugin.
  • -
  • Add user privilege level setting to IPMI sensors.
  • -
  • Use persistent connection to PostgreSQL database.
  • -
  • Add support for dropwizard input data format.
  • -
  • Add container health metrics to Docker (docker) input plugin.
  • -
  • Add support for using globs in devices list of DiskIO (diskio) input plugin.
  • -
  • Allow running as console application on Windows.
  • -
  • Add listener counts and node running status to RabbitMQ (rabbitmq) input plugin.
  • -
  • Add NATS Server Monitoring (nats) input plugin.
  • -
  • Add ability to select which queues will be gathered in RabbitMQ (rabbitmq) input plugin.
  • -
  • Add support for setting BSD source address to the ping (ping) input plugin.
  • -
  • Add Ipset (ipset) input plugin.
  • -
  • Add TLS and HTTP basic auth to Prometheus Client (prometheus_client) output plugin.
  • -
  • Add new sqlserver output data model.
  • -
  • Add native Go method for finding pid to the Procstat (procstat) input plugin.
  • -
  • Add additional metrics and reverse metric names option to OpenLDAP (openldap) input plugin.
  • -
  • Add TLS support to the Mesos (mesos) input plugin.
  • -
  • Add HTTP (http) input plugin.
  • -
  • Add keep alive support to the TCP mode of StatsD (statsd) input plugin .
  • -
  • Support deadline in Ping (ping) input plugin.
  • -
  • Add option to disable labels in the Prometheus Client (prometheus) output plugin for string fields.
  • -
  • Add shard server stats to the MongoDB (mongodb) input plugin.
  • -
  • Add server option to Unbound (unbound) input plugin.
  • -
  • Convert boolean metric values to float in Datadog (datadog) output plugin.
  • -
  • Add Solr 3 compatibility.
  • -
  • Add sum stat to BasicStats (basicstats) aggregator plugin.
  • -
  • Add ability to override proxy from environment in HTTP Response (http_response) input plugin.
  • -
  • Add host to ping timeout log message.
  • -
  • Add override processor plugin.
  • -
  • Add status_code and result tags and result_type field to HTTP Response (http_response) input plugin.
  • -
  • Added config flag to skip collection of network protocol metrics.
  • -
  • Add TLS support to Kapacitor (kapacitor) input plugin.
  • -
  • Add HTTP basic auth support to the HTTP Listener (http_listener) input plugin.
  • -
  • Tags in output InfluxDB Line Protocol are now sorted.
  • -
  • InfluxDB Line Protocol parser now accepts DOS line endings.
  • -
  • An option has been added to skip database creation in the InfluxDB (influxdb) output plugin.
  • -
  • Add support for connecting to InfluxDB over a UNIX domain socket.
  • -
  • Add optional unsigned integer support to the influx data format.
  • -
  • Add TLS support to Zookeeper (zookeeper) input plugin.
  • -
  • Add filters for container state to Docker (docker) input plugin.
  • -
-

Bug fixes

-
    -
  • Fix various MySQL data type conversions.
  • -
  • Fix metric buffer limit in internal plugin after reload.
  • -
  • Fix panic in HTTP Response (http_response) input plugin on invalid regex.
  • -
  • Fix socket_listener setting ReadBufferSize on TCP sockets.
  • -
  • Add tag for target URL to phpfpm input plugin.
  • -
  • Fix cannot unmarshal object error in Mesosphere DC/OS (dcos) input plugin.
  • -
  • Fix InfluxDB output not able to reconnect when server address changes.
  • -
  • Fix parsing of DOS line endings in the SMART (smart) input plugin.
  • -
  • Fix precision truncation when no timestamp included.
  • -
  • Fix SNMPv3 connection with Cisco ASA 5515 in SNMP (snmp) input plugin.
  • -
-

v1.5.3

-

Bug fixes

-
    -
  • Set path to / if HOST_MOUNT_PREFIX matches full path.
  • -
  • Remove userinfo from url tag in Prometheus input plugin.
  • -
  • Fix Ping input plugin not reporting zero durations.
  • -
  • Disable keepalive in MQTT output plugin to prevent deadlock.
  • -
  • Fix collation difference in SQL Server (sqlserver) input plugin.
  • -
  • Fix uptime metric in Passenger (passenger) input plugin.
  • -
  • Add output of stderr in case of error to exec log message.
  • -
-

v1.5.2

-

Bug fixes

-
    -
  • Ignore empty lines in Graphite plaintext.
  • -
  • Fix index out of bounds error in Solr input plugin.
  • -
  • Reconnect before sending Graphite metrics if disconnected.
  • -
  • Align aggregator period with internal ticker to avoid skipping metrics.
  • -
  • Fix a potential deadlock when using aggregators.
  • -
  • Limit wait time for writes in MQTT (mqtt) output plugin.
  • -
  • Revert change in Graphite (graphite) output plugin where dot(.) in field key was replaced by underscore (_).
  • -
  • Add timeout to Wavefront output write.
  • -
  • Exclude master_replid fields from Redis input.
  • -
-

v1.5.1

-

Bug fixes

-
    -
  • Fix name error in jolokia2_agent sample config.
  • -
  • Fix DC/OS input - login expiration time.
  • -
  • Set Content-Type charset parameter in InfluxDB (influxdb) output plugin and allow it to be overridden.
  • -
  • Document permissions setup for Postfix (postfix) input plugin.
  • -
  • Fix deliver_get field in RabbitMQ (rabbitmq) input plugin.
  • -
  • Escape environment variables during config TOML parsing.
  • -
-

v1.5

-

New plugins

-

Input plugins

- -

Aggregator plugins

- -

Output plugins

- -

Release notes

-
    -
  • -

    In the Kinesis (kinesis) output plugin, use of the partition_key and -use_random_partitionkey options has been deprecated in favor of the -partition subtable. This allows for more flexible methods to set the -partition key such as by metric name or by tag.

    -
  • -
  • -

    With the release of the new improved Jolokia2 (jolokia2) input plugin, the legacy jolokia -plugin is deprecated and will be removed in a future release. Users of this -plugin are encouraged to update to the new jolokia2 plugin.

    -
  • -
-

Features

-
    -
  • Add support for sharding based on metric name.
  • -
  • Add Kafka output plugin topic_suffix option.
  • -
  • Include mount mode option in disk metrics.
  • -
  • TLS and MTLS enhancements to HTTP Listener input plugin.
  • -
  • Add polling method to logparser and tail inputs.
  • -
  • Add timeout option for Kubernetes (kubernetes) input plugin.
  • -
  • Add support for timing sums in statsd input plugin.
  • -
  • Add resource limit monitoring to Procstat (procstat) input plugin.
  • -
  • Add support for k8s service DNS discovery to Prometheus Client (prometheus) input plugin.
  • -
  • Add configurable metrics endpoint to (prometheus) output plugin.
  • -
  • Add support for NSQLookupd to nsq_consumer.
  • -
  • Add configurable separator for metrics and fields in OpenTSDB (opentsdb) output plugin.
  • -
  • Add support for the rollbar occurrence webhook event.
  • -
  • Add extra wired tiger cache metrics to mongodb input.
  • -
  • Collect Docker Swarm service metrics in Docker (docker) input plugin.
  • -
  • Add cluster health level configuration to Elasticsearch (elasticsearch) input plugin.
  • -
  • Add ability to limit node stats in Elasticsearch (elasticsearch) input plugin.
  • -
  • Add UDP IPv6 support to StatsD (statsd) input plugin.
  • -
  • Use labels in Prometheus Client (prometheus) output plugin for string fields.
  • -
  • Add support for decimal timestamps to ts-epoch modifier.
  • -
  • Add histogram and summary types and use in Prometheus (prometheus) plugins.
  • -
  • Gather concurrently from snmp agents.
  • -
  • Perform DNS lookup before ping and report result.
  • -
  • Add instance name option to Varnish (varnish) plugin.
  • -
  • Add support for SSL settings to ElasticSearch (elasticsearch) output plugin.
  • -
  • Add modification_time field to Filestat (filestat) input plugin.
  • -
  • Add systemd unit pid and cgroup matching to Procstat (procstat) .
  • -
  • Use MAX() instead of SUM() for latency measurements in SQL Server (sqlserver) input plugin.
  • -
  • Add index by week number to Elasticsearch (elasticsearch) output plugin.
  • -
  • Add support for tags in the index name in Elasticsearch (elasticsearch) output plugin.
  • -
  • Add slab to mem plugin.
  • -
  • Add support for glob patterns in net input plugin.
  • -
  • Add option to AMQP (amqp) output plugin to publish persistent messages.
  • -
  • Support I (idle) process state on procfs+Linux.
  • -
-

Bug fixes

-
    -
  • Fix webhooks input address in use during reload.
  • -
  • Unlock Statsd when stopping to prevent deadlock.
  • -
  • Fix cloudwatch output requires unneeded permissions.
  • -
  • Fix prometheus passthrough for existing value types.
  • -
  • Always ignore autofs filesystems in disk input.
  • -
  • Fail metrics parsing on unescaped quotes.
  • -
  • Whitelist allowed char classes for graphite output.
  • -
  • Use hexadecimal ids and lowercase names in zipkin input.
  • -
  • Fix snmp-tools output parsing with Windows EOLs.
  • -
  • Add shadow-utils dependency to rpm package.
  • -
  • Use deb-systemd-invoke to restart service.
  • -
  • Fix kafka_consumer outside range of offsets error.
  • -
  • Fix separation of multiple prometheus_client outputs.
  • -
  • Don’t add system input uptime_format as a counter.
  • -
-

v1.4.5

-

Bug fixes

-
    -
  • Fix global variable collection when using interval_slow option in MySQL input.
  • -
  • Fix error getting net connections info in netstat input.
  • -
  • Fix HOST_MOUNT_PREFIX in Docker with disk input.
  • -
-

v1.4.4

-

Bug fixes

-
    -
  • Use schema specified in mqtt_consumer input.
  • -
  • Redact Datadog API key in log output.
  • -
  • Fix error getting PIDs in netstat input.
  • -
  • Support HOST_VAR envvar to locate /var in system input.
  • -
  • Use current time if Docker container read time is zero value.
  • -
-

v1.4.3

-

Bug fixes

-
    -
  • Fix container name filters in Docker input.
  • -
  • Fix snmpwalk address format in leofs input.
  • -
  • Fix case sensitivity issue in SQL Server query.
  • -
  • Fix CPU input plugin stuck after suspend on Linux.
  • -
  • Fix MongoDB input panic when restarting MongoDB.
  • -
  • Preserve URL path prefix in InfluxDB output.
  • -
  • Fix TELEGRAF_OPTS expansion in systemd service unit.
  • -
  • Remove warning when JSON contains null value.
  • -
  • Fix ACL token usage in consul input plugin.
  • -
  • Fix unquoting error with Tomcat 6.
  • -
  • Fix syscall panic in diskio on some Linux systems.
  • -
-

v1.4.2

-

Bug fixes

-
    -
  • Fix error if int larger than 32-bit in /proc/vmstat.
  • -
  • Fix parsing of JSON with a UTF8 BOM in httpjson.
  • -
  • Allow JSON data format to contain zero metrics.
  • -
  • Fix format of connection_timeout in mqtt_consumer.
  • -
  • Fix case sensitivity error in SQL Server input.
  • -
  • Add support for proxy environment variables to http_response.
  • -
  • Add support for standard proxy env vars in outputs.
  • -
  • Fix panic in CPU input if number of CPUs changes.
  • -
  • Use chunked transfer encoding in InfluxDB output.
  • -
-

v1.4.1

-

Bug fixes

-
    -
  • Fix MQTT input exits if Broker is not available on startup.
  • -
  • Fix optional field value conversions in fluentd input.
  • -
  • Whitelist allowed char classes for opentsdb output.
  • -
  • Fix counter and gauge metric types.
  • -
  • Fix skipped line with empty target in iptables.
  • -
  • Fix duplicate keys in perf counters sqlserver query.
  • -
  • Fix panic in statsd p100 calculation.
  • -
  • Fix arm64 packages contain 32-bit executable.
  • -
-

v1.4.0

-

Release Notes

-
    -
  • The kafka_consumer input has been updated to support Kafka 0.9 and -above style consumer offset handling. The previous version of this plugin -supporting Kafka 0.8 and below is available as the kafka_consumer_legacy -plugin.
  • -
  • In the aerospike input the node_name field has been changed to be a tag -for both the aerospike_node and aerospike_namespace measurements.
  • -
  • The default prometheus_client port has been changed to 9273.
  • -
-

New plugins

-
    -
  • fail2ban
  • -
  • fluentd
  • -
  • histogram
  • -
  • minecraft
  • -
  • openldap
  • -
  • salesforce
  • -
  • tomcat
  • -
  • win_services
  • -
  • zipkin
  • -
-

Features

-
    -
  • Add Kafka 0.9+ consumer support.
  • -
  • Add support for self-signed certs to InfluxDB input plugin.
  • -
  • Add TCP listener for statsd input.
  • -
  • Add Docker container environment variables as tags. Only whitelisted.
  • -
  • Add timeout option to IPMI sensor plugin.
  • -
  • Add support for an optional SSL/TLS configuration to Nginx input plugin.
  • -
  • Add timezone support for logparser timestamps.
  • -
  • Add result_type field for http_response input.
  • -
  • Add include/exclude filters for docker containers.
  • -
  • Add secure connection support to graphite output.
  • -
  • Add min/max response time on linux/darwin to ping.
  • -
  • Add HTTP Proxy support to influxdb output.
  • -
  • Add standard SSL options to mysql input.
  • -
  • Add input plugin for fail2ban.
  • -
  • Support HOST_PROC in processes and linux_sysctl_fs inputs.
  • -
  • Add Minecraft input plugin.
  • -
  • Add support for RethinkDB 1.0 handshake protocol.
  • -
  • Add optional usage_active and time_active CPU metrics.
  • -
  • Change default prometheus_client port.
  • -
  • Add fluentd input plugin.
  • -
  • Add result_type field to net_response input plugin.
  • -
  • Add read timeout to socket_listener.
  • -
  • Add input plugin for OpenLDAP.
  • -
  • Add network option to dns_query.
  • -
  • Add redis_version field to redis input.
  • -
  • Add tls options to docker input.
  • -
  • Add histogram aggregator plugin.
  • -
  • Add Zipkin input plugin.
  • -
  • Add Windows Services input plugin.
  • -
  • Add path tag to logparser containing path of logfile.
  • -
  • Add Salesforce input plugin.
  • -
  • Add option to run varnish under sudo.
  • -
  • Add weighted_io_time to diskio input.
  • -
  • Add gzip content-encoding support to influxdb output.
  • -
  • Allow using system plugin in Windows.
  • -
  • Add Tomcat input plugin.
  • -
  • HTTP headers can be added to InfluxDB output.
  • -
-

Bug fixes

-
    -
  • Improve logging of errors in Cassandra input.
  • -
  • [enh] set db_version at 0 if query version fails.
  • -
  • Fixed SQL Server input to work with case sensitive server collation.
  • -
  • Systemd does not see all shutdowns as failures.
  • -
  • Reuse transports in input plugins.
  • -
  • Inputs processes fails with “no such process”.
  • -
  • Fix multiple plugin loading in win_perf_counters.
  • -
  • MySQL input: log and continue on field parse error.
  • -
  • Fix timeout option in Windows ping input sample configuration.
  • -
  • Fix Kinesis output plugin in govcloud.
  • -
  • Fix Aerospike input adds all nodes to a single series.
  • -
  • Improve Prometheus Client output documentation.
  • -
  • Display error message if prometheus output fails to listen.
  • -
  • Fix elasticsearch output content type detection warning.
  • -
  • Prevent possible deadlock when using aggregators.
  • -
  • Fix combined tagdrop/tagpass filtering.
  • -
  • Fix filtering when both pass and drop match an item.
  • -
  • Only report cpu usage for online cpus in docker input.
  • -
  • Start first aggregator period at startup time.
  • -
  • Fix panic in logparser if file cannot be opened.
  • -
  • Default to localhost if zookeeper has no servers set.
  • -
  • Fix docker memory and cpu reporting in Windows.
  • -
  • Allow iptable entries with trailing text.
  • -
  • Sanitize password from couchbase metric.
  • -
  • Converge to typed value in prometheus output.
  • -
  • Skip compilation of logparser and tail on solaris.
  • -
  • Discard logging from tail library.
  • -
  • Remove log message on ping timeout.
  • -
  • Don’t retry points beyond retention policy.
  • -
  • Don’t start Telegraf on install in Amazon Linux.
  • -
  • Enable hddtemp input on all platforms.
  • -
  • Escape backslash within string fields.
  • -
  • Fix parsing of SHM remotes in ntpq input
  • -
  • Don’t fail parsing zpool stats if pool health is UNAVAIL on FreeBSD.
  • -
  • Fix NSQ input plugin when used with version 1.0.0-compat.
  • -
  • Added CloudWatch metric constraint validation.
  • -
  • Skip non-numerical values in graphite format.
  • -
  • Fix panic when handling string fields with escapes.
  • -
-

v1.3.5

-

Bug fixes

-
    -
  • Fix prometheus output cannot be reloaded.
  • -
  • Fix filestat reporting exists when cannot list directory.
  • -
  • Fix ntpq parse issue when using dns_lookup.
  • -
  • Fix panic when agent.interval = “0s”.
  • -
-

v1.3.4

-

Bug fixes

-
    -
  • Fix handling of escape characters within fields.
  • -
  • Fix chrony plugin does not track system time offset.
  • -
  • Do not allow metrics with trailing slashes.
  • -
  • Prevent Write from being called concurrently.
  • -
-

v1.3.3

-

Bug fixes

-
    -
  • Allow dos line endings in tail and logparser.
  • -
  • Remove label value sanitization in prometheus output.
  • -
  • Fix bug parsing default timestamps with modified precision.
  • -
  • Fix panic in elasticsearch input if cannot determine master.
  • -
-

v1.3.2

-

Bug fixes

-
    -
  • Fix InfluxDB UDP metric splitting.
  • -
  • Fix mongodb/leofs urls without scheme.
  • -
  • Fix inconsistent label dimensions in prometheus output.
  • -
-

v1.3.1

-

Bug fixes

-
    -
  • Fixed sqlserver input to work with case-sensitive server collation.
  • -
  • Reuse transports in input plugins.
  • -
  • Process input fails with no such process.
  • -
  • Fix InfluxDB output database quoting.
  • -
  • Fix net input on older Linux kernels.
  • -
  • Fix panic in mongo input.
  • -
  • Fix length calculation of split metric buffer.
  • -
-

v1.3.0

-

Changes to the Windows ping plugin

-

Users of the windows ping plugin will need to drop or migrate their measurements to continue using the plugin. -The reason for this is that the windows plugin was outputting a different type than the linux plugin. -This made it impossible to use the ping plugin for both windows and linux machines.

-

Changes to the Ceph plugin

-

For the Ceph plugin, the ceph_pgmap_state metric content has been modified to use a unique field count, with each state expressed as a state tag.

-

Telegraf < 1.3:

- - -
# field_name             value
-active+clean             123
-active+clean+scrubbing   3
-

Telegraf >= 1.3:

- - -
# field_name    value       tag
-count           123         state=active+clean
-count           3           state=active+clean+scrubbing
-

Rewritten Riemann plugin

-

The Riemann output plugin has been rewritten -and the previous riemann plugin is incompatible with the new one. -The reasons for this are outlined in issue #1878. -The previous Riemann output will still be available using outputs.riemann_legacy if needed, but that will eventually be deprecated. -It is highly recommended that all users migrate to the new Riemann output plugin.

-

New Socket Listener and Socket Writer plugins

-

Generic Socket Listener and Socket Writer plugins have been implemented for receiving and sending UDP, TCP, unix, & unix-datagram data. -These plugins will replace udp_listener and tcp_listener, which are still available but will be deprecated eventually.

-

Features

- -

Bug fixes

-
    -
  • Allow @ symbol in password for the ipmi_sensor plugin.
  • -
  • Fix arithmetic overflow error converting numeric to data type int in SQL Server input.
  • -
  • Flush jitter can inhibit metric collection.
  • -
  • Add missing fields for HAproxy input.
  • -
  • Handle null startTime for stopped pods for the Kubernetes input.
  • -
  • Fix cpu input panic when /proc/stat is empty.
  • -
  • Fix telegraf swallowing panics in –test mode.
  • -
  • Create pidfile with 644 permissions & defer file deletion.
  • -
  • Fix install/remove of telegraf on non-systemd Debian/Ubuntu systems.
  • -
  • Fix for reloading telegraf freezes prometheus output.
  • -
  • Fix when empty tag value causes error on InfluxDB output.
  • -
  • buffer_size field value is negative number from “internal” plugin.
  • -
  • Missing error handling in the MySQL plugin leads to segmentation violation.
  • -
  • Fix type conflict in windows ping plugin.
  • -
  • logparser: regexp with lookahead.
  • -
  • Telegraf can crash in LoadDirectory on 0600 files.
  • -
  • Iptables input: document better that rules without a comment are ignored.
  • -
  • Fix win_perf_counters capping values at 100.
  • -
  • Exporting Ipmi.Path to be set by config.
  • -
  • Remove warning if parse empty content.
  • -
  • Update default value for Cloudwatch rate limit.
  • -
  • create /etc/telegraf/telegraf.d directory in tarball.
  • -
  • Return error on unsupported serializer data format.
  • -
  • Fix Windows Performance Counters multi instance identifier.
  • -
  • Add write timeout to Riemann output.
  • -
  • fix timestamp parsing on prometheus plugin.
  • -
  • Fix deadlock when output cannot write.
  • -
  • Fix connection leak in postgresql.
  • -
  • Set default measurement name for snmp input.
  • -
  • Improve performance of diskio with many disks.
  • -
  • The internal input plugin uses the wrong units for heap_objects.
  • -
  • Fix ipmi_sensor config is shared between all plugin instances.
  • -
  • Network statistics not collected when system has alias interfaces.
  • -
  • Sysstat plugin needs LANG=C or similar locale.
  • -
  • File output closes standard streams on reload.
  • -
  • AMQP output disconnect blocks all outputs.
  • -
  • Improve documentation for redis input plugin.
  • -
-

v1.2.1

-

Bug fixes

-
    -
  • Fix segfault on nil metrics with InfluxDB output.
  • -
  • Fix negative number handling.
  • -
-

Features

-
    -
  • Go (golang) version update 1.7.4 -> 1.7.5
  • -
-

v1.2

-

Release Notes

-
    -
  • -

    The StatsD plugin will now default all “delete_” config options to “true”. This -will change te default behavior for users who were not specifying these parameters -in their config file.

    -
  • -
  • -

    The StatsD plugin will also no longer save it’s state on a service reload. -Essentially we have reverted PR #887. -The reason for this is that saving the state in a global variable is not -thread-safe (see #1975 & #2102), -and this creates issues if users want to define multiple instances -of the statsd plugin. Saving state on reload may be considered in the future, -but this would need to be implemented at a higher level and applied to all -plugins, not just statsd.

    -
  • -
-

Features

-
    -
  • Fix improper calculation of CPU percentages
  • -
  • Use RFC3339 timestamps in log output.
  • -
  • Non-default HTTP timeouts for RabbitMQ plugin.
  • -
  • “Discard” output plugin added, primarily for testing purposes.
  • -
  • The JSON parser can now parse an array of objects using the same configuration.
  • -
  • Option to use device name rather than path for reporting disk stats.
  • -
  • Telegraf “internal” plugin for collecting stats on itself.
  • -
  • Update GoLang version to 1.7.4.
  • -
  • Support a metric.Split function.
  • -
  • Elasticsearch “shield” (basic auth) support doc.
  • -
  • Fix over-querying of cloudwatch metrics
  • -
  • OpenTSDB basic auth support.
  • -
  • RabbitMQ Connection metrics.
  • -
  • HAProxy session limit metric.
  • -
  • Accept strings for StatsD sets.
  • -
  • Change StatsD default “reset” behavior.
  • -
  • Enable setting ClientID in MQTT output.
  • -
  • MongoDB input plugin: Improve state data.
  • -
  • Ping input: add standard deviation field.
  • -
  • Add GC pause metric to InfluxDB input plugin.
  • -
  • Added response_timeout property to prometheus input plugin.
  • -
  • Pulling github.com/lxn/win’s pdh wrapper into Telegraf.
  • -
  • Support negative statsd counters.
  • -
  • Elasticsearch cluster stats support.
  • -
  • Change Amazon Kinesis output plugin to use the built-in serializer plugins.
  • -
  • Hide username/password from elasticsearch error log messages.
  • -
  • Configurable HTTP timeouts in Jolokia plugin.
  • -
  • Allow changing jolokia attribute delimiter.
  • -
-

Bug fixes

-
    -
  • Fix the Value data format not trimming null characters from input.
  • -
  • Fix windows .net plugin.
  • -
  • Cache & expire metrics for delivery to prometheus
  • -
  • Fix potential panic in aggregator plugin metric maker.
  • -
  • Add optional ability to define PID as a tag.
  • -
  • Fix win_perf_counters not gathering non-English counters.
  • -
  • Fix panic when file stat info cannot be collected due to permissions or other issue(s).
  • -
  • Graylog output should set short_message field.
  • -
  • Hddtemp always put the value in the field temperature.
  • -
  • Properly collect nested jolokia struct data.
  • -
  • Fix puppetagent inputs plugin to support string for config variable.
  • -
  • Fix docker input plugin tags when registry has port.
  • -
  • Fix tail input when reading from a pipe.
  • -
  • MongoDB plugin always shows 0 replication lag.
  • -
  • Consul plugin: add check_id as a tag in metrics to avoid overwrites.
  • -
  • Partial fix: logparser CLF pattern with IPv6 addresses.
  • -
  • Fix thread-safety when using multiple instances of the statsd input plugin.
  • -
  • Docker input: interface conversion panic fix.
  • -
  • SNMP: ensure proper context is present on error messages.
  • -
  • OpenTSDB: add tcp:// prefix if no scheme provided.
  • -
  • Influx parser: parse line-protocol without newlines.
  • -
  • InfluxDB output: fix field type conflict blocking output buffer.
  • -
-

v1.1.2

-

Bug fixes

-
    -
  • Make snmptranslate not required when using numeric OID.
  • -
  • Add a global snmp translation cache.
  • -
-

v1.1.1

-

Bug fixes

-
    -
  • Fix issue parsing toml durations with single quotes.
  • -
-

v1.1.0

-

Release Notes

-
    -
  • -

    Telegraf now supports two new types of plugins: processors & aggregators.

    -
  • -
  • -

    On systemd Telegraf will no longer redirect it’s stdout to /var/log/telegraf/telegraf.log. -On most systems, the logs will be directed to the systemd journal and can be -accessed by journalctl -u telegraf.service. Consult the systemd journal -documentation for configuring journald. The logfile config option -available in 1.1 lets users configure Telegraf to -continue sending logs to /var/log/telegraf/telegraf.log.

    -
  • -
-

Features

-
    -
  • Processor & Aggregator plugin support.
  • -
  • Adding the tags in the graylog output plugin.
  • -
  • Telegraf systemd service, log to journal.
  • -
  • Allow numeric and non-string values for tag_keys.
  • -
  • Adding Gauge and Counter metric types.
  • -
  • Remove carraige returns from exec plugin output on Windows
  • -
  • Elasticsearch input: configurable timeout.
  • -
  • Massage metric names in Instrumental output plugin
  • -
  • Apache Mesos improvements.
  • -
  • Add Ceph Cluster Performance Statistics
  • -
  • Ability to configure response_timeout in httpjson input.
  • -
  • Add additional redis metrics.
  • -
  • Added capability to send metrics through HTTP API for OpenTSDB.
  • -
  • iptables input plugin.
  • -
  • Add filestack webhook plugin.
  • -
  • Add server hostname for each Docker measurements.
  • -
  • Add NATS output plugin.
  • -
  • HTTP service listener input plugin.
  • -
  • Add database blacklist option for Postgresql
  • -
  • Add Docker container state metrics to Docker input plugin output
  • -
  • Add support to SNMP for IP & MAC address conversion.
  • -
  • Add support to SNMP for OID index suffixes.
  • -
  • Change default arguments for SNMP plugin.
  • -
  • Apache Mesos input plugin: very high-cardinality mesos-task metrics removed.
  • -
  • Logging overhaul to centralize the logger & log levels, & provide a logfile config option.
  • -
  • HAProxy plugin socket glob matching.
  • -
  • Add Kubernetes plugin for retrieving pod metrics.
  • -
-

Bug fixes

-
    -
  • Fix NATS plug-ins reconnection logic.
  • -
  • Set required default values in udp_listener & tcp_listener.
  • -
  • Fix toml unmarshal panic in Duration objects.
  • -
  • Fix handling of non-string values for JSON keys listed in tag_keys.
  • -
  • Fix mongodb input panic on version 2.2.
  • -
  • Fix statsd scientific notation parsing.
  • -
  • Sensors plugin strconv.ParseFloat: parsing “”: invalid syntax.
  • -
  • Fix prometheus_client reload panic.
  • -
  • Fix Apache Kafka consumer panic when nil error is returned down errs channel.
  • -
  • Speed up statsd parsing.
  • -
  • Fix powerdns integer parse error handling.
  • -
  • Fix varnish plugin defaults not being used.
  • -
  • Fix Windows glob paths.
  • -
  • Fix issue loading config directory on Windows.
  • -
  • Windows remote management interactive service fix.
  • -
  • SQLServer, fix issue when case sensitive collation is activated.
  • -
  • Fix huge allocations in http_listener when dealing with huge payloads.
  • -
  • Fix translating SNMP fields not in MIB.
  • -
  • Fix SNMP emitting empty fields.
  • -
  • SQL Server waitstats truncation bug.
  • -
  • Fix logparser common log format: numbers in ident.
  • -
  • Fix JSON Serialization in OpenTSDB output.
  • -
  • Fix Graphite template ordering, use most specific.
  • -
  • Fix snmp table field initialization for non-automatic table.
  • -
  • cgroups path being parsed as metric.
  • -
  • Fix phpfpm fcgi client panic when URL does not exist.
  • -
  • Fix config file parse error logging.
  • -
  • Delete nil fields in the metric maker.
  • -
  • Fix MySQL special characters in DSN parsing.
  • -
  • Ping input odd timeout behavior.
  • -
  • Switch to github.com/kballard/go-shellquote.
  • -
-

v1.0.1

-

Bug fixes

-
    -
  • Prometheus output: Fix bug with multi-batch writes.
  • -
  • Fix unmarshal of influxdb metrics with null tags.
  • -
  • Add configurable timeout to influxdb input plugin.
  • -
  • Fix statsd no default value panic.
  • -
-

v1.0

-

Release Notes

-

Breaking Change The SNMP plugin is being deprecated in it’s current form. -The new SNMP plugin -fixes many of the issues and confusions -of its predecessor. For users wanting to continue to use the deprecated SNMP -plugin, you will need to change your config file from [[inputs.snmp]] to -[[inputs.snmp_legacy]]. The configuration of the new SNMP plugin is not -backwards-compatible.

-

Breaking Change: Aerospike main server node measurements have been renamed -aerospike_node. Aerospike namespace measurements have been renamed to -aerospike_namespace. They will also now be tagged with the node_name -that they correspond to. This has been done to differentiate measurements -that pertain to node vs. namespace statistics.

-

Breaking Change: users of github_webhooks must change to the new -[[inputs.webhooks]] plugin.

-

This means that the default github_webhooks config:

- - -
# A Github Webhook Event collector
-[[inputs.github_webhooks]]
-  ## Address and port to host Webhook listener on
-  service_address = ":1618"
-

should now look like:

- - -
# A Webhooks Event collector
-[[inputs.webhooks]]
-  ## Address and port to host Webhook listener on
-  service_address = ":1618"
-
-  [inputs.webhooks.github]
-    path = "/"
-
    -
  • -

    Telegraf now supports being installed as an official windows service, -which can be installed via -> C:\Program Files\Telegraf\telegraf.exe --service install

    -
  • -
  • -

    flush_jitter behavior has been changed. The random jitter will now be -evaluated at every flush interval, rather than once at startup. This makes it -consistent with the behavior of collection_jitter.

    -
  • -
  • -

    PostgreSQL plugins now handle oid and name typed columns seamlessly, previously they were ignored/skipped.

    -
  • -
-

Features

-
    -
  • postgresql_extensible now handles name and oid types correctly.
  • -
  • Separate container_version from container_image tag.
  • -
  • Support setting per-device and total metrics for Docker network and blockio.
  • -
  • MongoDB input plugin: adding per DB stats from db.stats()
  • -
  • Add tls support for certs to RabbitMQ input plugin.
  • -
  • Webhooks input plugin.
  • -
  • Rollbar webhook plugin.
  • -
  • Mandrill webhook plugin.
  • -
  • docker-machine/boot2docker no longer required for unit tests.
  • -
  • cgroup input plugin.
  • -
  • Add input plugin for consuming metrics from NSQD.
  • -
  • Add ability to read Redis from a socket.
  • -
  • Breaking Change - Redis role tag renamed to replication_role to avoid global_tags override.
  • -
  • Fetching Galera status metrics in MySQL
  • -
  • Aerospike plugin refactored to use official client library.
  • -
  • Add measurement name arg to logparser plugin.
  • -
  • logparser: change resp_code from a field to a tag.
  • -
  • Implement support for fetching hddtemp data
  • -
  • statsd: do not log every dropped metric.
  • -
  • Add precision rounding to all metrics on collection.
  • -
  • Add support for Tengine.
  • -
  • Logparser input plugin for parsing grok-style log patterns.
  • -
  • ElasticSearch: now supports connecting to ElasticSearch via SSL.
  • -
  • Add graylog input plugin.
  • -
  • Consul input plugin.
  • -
  • conntrack input plugin.
  • -
  • vmstat input plugin.
  • -
  • Standardized AWS credentials evaluation & wildcard CloudWatch dimensions.
  • -
  • Add SSL config options to http_response plugin.
  • -
  • Graphite parser: add ability to specify multiple tag keys, for consistency with influxdb parser.
  • -
  • Make DNS lookups for chrony configurable.
  • -
  • Allow wildcard filtering of varnish stats.
  • -
  • Support for glob patterns in exec plugin commands configuration.
  • -
  • RabbitMQ input: made url parameter optional by using DefaultURL (http://localhost:15672) if not specified.
  • -
  • Limit AWS GetMetricStatistics requests to 10 per second.
  • -
  • RabbitMQ/Apache/InfluxDB inputs: made url(s) parameter optional by using reasonable input defaults if not specified.
  • -
  • Refactor of flush_jitter argument.
  • -
  • Add inactive & active memory to mem plugin.
  • -
  • Official Windows service.
  • -
  • Forking sensors command to remove C package dependency.
  • -
  • Add a new SNMP plugin.
  • -
-

Bug fixes

-
    -
  • Fix make windows build target.
  • -
  • Fix error race conditions and partial failures.
  • -
  • nstat: fix inaccurate config panic.
  • -
  • jolokia: fix handling multiple multi-dimensional attributes.
  • -
  • Fix prometheus character sanitizing. Sanitize more win_perf_counters characters.
  • -
  • Add diskio io_time to FreeBSD & report timing metrics as ms (as linux does).
  • -
  • Fix covering Amazon Linux for post remove flow.
  • -
  • procstat missing fields: read/write bytes & count.
  • -
  • diskio input plugin: set ‘skip_serial_number = true’ by default to avoid high cardinality.
  • -
  • nil metrics panic fix.
  • -
  • Fix datarace in apache input plugin.
  • -
  • Add read_repairs statistics to riak plugin.
  • -
  • Fix memory/connection leak in Prometheus input plugin.
  • -
  • Trim BOM from config file for Windows support.
  • -
  • Prometheus client output panic on service reload.
  • -
  • Prometheus parser, protobuf format header fix.
  • -
  • Prometheus output, metric refresh and caching fixes.
  • -
  • Panic fix for multiple graphite outputs under very high load.
  • -
  • Instrumental output has better reconnect behavior.
  • -
  • Remove PID from procstat plugin to fix cardinality issues.
  • -
  • Cassandra input: version 2.x “column family” fix.
  • -
  • Shared WaitGroup in Exec plugin.
  • -
  • logparser: honor modifiers in “pattern” config.
  • -
  • logparser: error and exit on file permissions/missing errors.
  • -
  • Make the user able to specify full path for HAproxy stats.
  • -
  • Fix Redis url, an extra “tcp://” was added.
  • -
  • Fix exec plugin panic when using single binary.
  • -
  • Fixed incorrect prometheus metrics source selection.
  • -
  • Set default Zookeeper chroot to empty string.
  • -
  • Fix overall ping timeout to be calculated based on per-ping timeout.
  • -
  • Change “default” retention policy to “”.
  • -
  • Graphite output mangling ‘%’ character.
  • -
  • Prometheus input plugin now supports x509 certs authentication.
  • -
  • Fix systemd service.
  • -
  • Fix influxdb n_shards counter.
  • -
  • Fix potential kernel plugin integer parse error.
  • -
  • Fix potential influxdb input type assertion panic.
  • -
  • Still send processes metrics if a process exited during metric collection.
  • -
  • disk plugin panic when usage grab fails.
  • -
  • Removed leaked “database” tag on redis metrics.
  • -
  • Processes plugin: fix potential error with /proc/net/stat directory.
  • -
  • Fix rare RHEL 5.2 panic in gopsutil diskio gathering function.
  • -
  • Remove IF NOT EXISTS from influxdb output database creation.
  • -
  • Fix quoting with text values in postgresql_extensible plugin.
  • -
  • Fix win_perf_counter “index out of range” panic.
  • -
  • Fix ntpq panic when field is missing.
  • -
  • Sanitize graphite output field names.
  • -
  • Fix MySQL plugin not sending 0 value fields.
  • -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
-

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
-
- - -
- -
- - - - - - - - - - - - - - -